X-Git-Url: https://git.wpitchoune.net/gitweb/?p=prss.git;a=blobdiff_plain;f=src%2Fmain.c;h=b0d6852ebb5336b9ca3708211a04db868f57d489;hp=3957c8d41839670d6ed59a0383441da1a28f80bd;hb=54c2b8d3bd8fe1a775263657d4c2d317de37f1e6;hpb=9f752e37ef5c5c4207a81c7a5a5f4d9536872c61 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();