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");
gtk_list_store_set(GTK_LIST_STORE(model),
&iter,
0, title,
- 1, (*feeds),
+ 1, (*feeds)->id,
-1);
free(title);
feeds++;
struct feed *feed;
struct headline **headlines;
char *title;
+ int feed_id;
if (model_state)
return TRUE;
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("<b>%s</b>",
- (*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
+ ("<b>%s</b>",
+ (*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;
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,