X-Git-Url: https://git.wpitchoune.net/gitweb/?p=prss.git;a=blobdiff_plain;f=src%2Fmain.c;h=849c112d0c8ef3b560052e96628298fe37477855;hp=934b85251b09cd256f7ebff2c4b669c44cca8767;hb=48e7c0631ee3371b5cf6503417b4ec1c2b733176;hpb=3b14915e76fc7a05512e0523afd39556c0a14567
diff --git a/src/main.c b/src/main.c
index 934b852..849c112 100644
--- a/src/main.c
+++ b/src/main.c
@@ -81,16 +81,12 @@ 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");
model_state = 1;
gtk_list_store_clear(GTK_LIST_STORE(model));
+ gtk_list_store_clear(GTK_LIST_STORE(gtk_tree_view_get_model(w_headlineview)));
printf("update(): clear feed tree done\n");
feeds = ttrss_get_feeds();
while (feeds && *feeds) {
@@ -107,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++;
@@ -178,6 +174,10 @@ 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;
printf("feed_cursor_changed_cbk\n");
@@ -186,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_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;
@@ -348,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,