From 54c2b8d3bd8fe1a775263657d4c2d317de37f1e6 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Sun, 28 Apr 2013 08:25:56 +0000 Subject: [PATCH] --- src/glade/prss.glade | 208 +++++++++++++++++++++++++++++++++++++-------------- src/main.c | 66 +++++++++++++--- src/ttrss_ws.c | 8 +- 3 files changed, 209 insertions(+), 73 deletions(-) diff --git a/src/glade/prss.glade b/src/glade/prss.glade index 4298b56..6bbbd31 100644 --- a/src/glade/prss.glade +++ b/src/glade/prss.glade @@ -5,7 +5,7 @@ Refresh gtk-refresh - + @@ -13,7 +13,7 @@ - + @@ -21,6 +21,20 @@ + + + + + + + + horizontal + + + vertical + + + False 5 @@ -71,89 +85,167 @@ - + True False - True - + True False - URL: + True + + + True + False + URL: + + + 0 + 0 + 1 + 1 + + + + + True + False + Login: + + + 0 + 1 + 1 + 1 + + + + + True + False + 1 + Password: + + + 0 + 2 + 1 + 1 + + + + + True + True + • + True + + + 1 + 0 + 1 + 1 + + + + + True + True + • + True + + + 1 + 1 + 1 + 1 + + + + + True + True + False + • + True + + + 1 + 2 + 1 + 1 + + - - 0 - 0 - 1 - 1 - - - + + True False - Login: + Account - 0 - 1 - 1 - 1 + False - + True False - 1 - Password: + + + True + False + Layout: + + + 0 + 0 + 1 + 1 + + + + + True + False + liststore1 + 0 + + + + 0 + + + + + 1 + 0 + 1 + 1 + + - 0 - 2 - 1 - 1 + 1 - - + + True - True - • + False + Interface - 1 - 0 - 1 - 1 + 1 + False - - True - True - • - - - 1 - 1 - 1 - 1 - + - - - True - True - False - • - - - 1 - 2 - 1 - 1 - + + diff --git a/src/main.c b/src/main.c index 3957c8d..b0d6852 100644 --- a/src/main.c +++ b/src/main.c @@ -38,6 +38,8 @@ static const char *program_name; static GSettings *settings; +static GtkPaned *w_panel; + static int model_state; enum { @@ -122,8 +124,8 @@ void update() gtk_list_store_set(GTK_LIST_STORE(model), &iter, - 0, title, - 1, (*feeds)->id, + COL_FEED_TITLE, title, + COL_FEED_ID, (*feeds)->id, -1); free(title); feeds++; @@ -133,6 +135,24 @@ void update() log_debug("update() done"); } +void update_layout() +{ + int layout; + + layout = g_settings_get_int(settings, "layout"); + + switch (layout) { + case 1: + gtk_orientable_set_orientation(GTK_ORIENTABLE(w_panel), + GTK_ORIENTATION_HORIZONTAL); + break; + case 0: + default: + gtk_orientable_set_orientation(GTK_ORIENTABLE(w_panel), + GTK_ORIENTATION_VERTICAL); + } +} + void refresh_clicked_cbk(GtkWidget *btn, gpointer data) { log_debug("refresh_clicked_cbk()"); @@ -145,6 +165,7 @@ void settings_activate_cbk(GtkWidget *menu_item, gpointer data) GtkDialog *diag; GtkBuilder *builder; GtkEntry *login, *url, *pwd; + GtkComboBox *layout; log_debug("settings_activate_cbk()"); @@ -166,7 +187,17 @@ void settings_activate_cbk(GtkWidget *menu_item, gpointer data) pwd = GTK_ENTRY(gtk_builder_get_object(builder, "password_entry")); gtk_entry_set_text(pwd, g_settings_get_string(settings, "password")); + layout = GTK_COMBO_BOX(gtk_builder_get_object(builder, + "layout")); + + gtk_combo_box_set_active(layout, g_settings_get_int(settings, + "layout")); + if (gtk_dialog_run(diag)) { + g_settings_set_int(settings, + "layout", + gtk_combo_box_get_active(layout)); + g_settings_set_string(settings, "password", gtk_entry_get_text(pwd)); @@ -182,6 +213,7 @@ void settings_activate_cbk(GtkWidget *menu_item, gpointer data) g_settings_get_string(settings, "password")); ws_open_session(); + update_layout(); update(); } @@ -271,8 +303,10 @@ int feed_cursor_changed_cbk(GtkTreeView *treeview, gpointer data) gtk_list_store_set(headline_store, &iter, - 0, title, - 1, (*headlines)->id, + COL_HEADLINE_TITLE, + title, + COL_HEADLINE_ID, + (*headlines)->id, -1); free(title); @@ -292,7 +326,7 @@ int headline_cursor_changed_cbk(GtkTreeView *treeview, gpointer data) GtkTreeIter iter; GtkTreeModel *model; struct headline *headline; - char *str; + char *str, *tmp; log_debug("headline_cursor_changed_cbk()"); @@ -302,15 +336,22 @@ int headline_cursor_changed_cbk(GtkTreeView *treeview, gpointer data) headline = get_selected_headline(&iter); if (headline) { - str = ttrss_get_headline_content(headline); - - if (str) + tmp = ttrss_get_headline_content(headline); + + if (tmp) { + str = g_strdup_printf("

%s

%s", + headline->url, + headline->title, + tmp); + free(tmp); + web_load(str); - else + free(str); + } else { web_load(""); + } - free(str); - + if (headline->unread) { ttrss_set_article_unread(headline->id, 0); headline->unread = 0; @@ -486,6 +527,8 @@ int main(int argc, char **argv) w_headlinetree = GTK_TREE_VIEW(gtk_builder_get_object(builder, "headline_tree")); + w_panel = GTK_PANED(gtk_builder_get_object(builder, "paned2")); + gtk_builder_connect_signals(builder, NULL); panh = GTK_WIDGET(gtk_builder_get_object(builder, "webkit_window")); @@ -495,6 +538,7 @@ int main(int argc, char **argv) g_object_unref(G_OBJECT(builder)); gtk_widget_show_all(window); + update_layout(); gtk_main(); diff --git a/src/ttrss_ws.c b/src/ttrss_ws.c index 92bd60c..d2c673f 100644 --- a/src/ttrss_ws.c +++ b/src/ttrss_ws.c @@ -208,7 +208,7 @@ char *ws_login() int ws_open_session() { - int /*version, */result; + int version, result; log_debug("ws_open_session()"); @@ -219,16 +219,16 @@ int ws_open_session() session_id = ws_login(); if (session_id) { - /*version = ws_get_api_version(); + version = ws_get_api_version(); log_debug("API version= %d", version); - + if (version > 0) { result = 1; } else { free(session_id); session_id = NULL; result = 0; - }*/ + } result = 1; } else { result = 0; -- 2.7.4