X-Git-Url: https://git.wpitchoune.net/gitweb/?p=prss.git;a=blobdiff_plain;f=src%2Fmain.c;h=849c112d0c8ef3b560052e96628298fe37477855;hp=d3f134b0f203b48e4492fd7ad107bb62e04dfe14;hb=48e7c0631ee3371b5cf6503417b4ec1c2b733176;hpb=4e8c884a282bcf16f486d06164ee187faa8a2610
diff --git a/src/main.c b/src/main.c
index d3f134b..849c112 100644
--- a/src/main.c
+++ b/src/main.c
@@ -81,11 +81,6 @@ void update()
GtkTreeIter iter;
char *title;
- ttrss_set_config(g_settings_get_string(settings, "url"),
- g_settings_get_string(settings, "user"),
- g_settings_get_string(settings, "password"));
- ws_open_session();
-
model = gtk_tree_view_get_model(GTK_TREE_VIEW(w_treeview));
printf("update(): clear feed tree\n");
@@ -108,7 +103,7 @@ void update()
gtk_list_store_set(GTK_LIST_STORE(model),
&iter,
0, title,
- 1, (*feeds),
+ 1, (*feeds)->id,
-1);
free(title);
feeds++;
@@ -179,6 +174,7 @@ int feed_cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
struct feed *feed;
struct headline **headlines;
char *title;
+ int feed_id;
if (model_state)
return TRUE;
@@ -190,32 +186,37 @@ int feed_cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
if (path) {
model = gtk_tree_view_get_model(treeview);
gtk_tree_model_get_iter(model, &iter, path);
- gtk_tree_model_get(model, &iter, 1, &feed, -1);
+ gtk_tree_model_get(model, &iter, 1, &feed_id, -1);
+
+ feed = ttrss_get_feed(feed_id);
headline_model = gtk_tree_view_get_model(w_headlineview);
headline_store = GTK_LIST_STORE(headline_model);
model_state = 1;
gtk_list_store_clear(headline_store);
- headlines = ttrss_feed_get_headlines(feed);
- while (headlines && *headlines) {
- gtk_list_store_append(headline_store, &iter);
-
- if ((*headlines)->unread)
- title = g_strdup_printf("%s",
- (*headlines)->title);
- else
- title = strdup((*headlines)->title);
-
- gtk_list_store_set(headline_store,
- &iter,
- 0, title,
- 1, (*headlines),
- -1);
-
- free(title);
-
- headlines++;
+ if (feed) {
+ headlines = ttrss_feed_get_headlines(feed);
+ while (headlines && *headlines) {
+ gtk_list_store_append(headline_store, &iter);
+
+ if ((*headlines)->unread)
+ title = g_strdup_printf
+ ("%s",
+ (*headlines)->title);
+ else
+ title = strdup((*headlines)->title);
+
+ gtk_list_store_set(headline_store,
+ &iter,
+ 0, title,
+ 1, (*headlines),
+ -1);
+
+ free(title);
+
+ headlines++;
+ }
}
model_state = 0;
@@ -352,6 +353,11 @@ int main(int argc, char **argv)
gtk_init(NULL, NULL);
settings = g_settings_new("prss");
+ ttrss_set_config(g_settings_get_string(settings, "url"),
+ g_settings_get_string(settings, "user"),
+ g_settings_get_string(settings, "password"));
+ ws_open_session();
+
builder = gtk_builder_new();
gtk_builder_add_from_file
(builder,