<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gpointer1 -->
- <column type="gpointer"/>
+ <column type="gint"/>
</columns>
</object>
<object class="GtkListStore" id="headline_store">
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gpointer1 -->
- <column type="gpointer"/>
+ <column type="gint"/>
</columns>
</object>
<object class="GtkDialog" id="settings_dialog">
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,
struct feed **ttrss_get_feeds()
{
- struct feed **tmp;
-
- tmp = ws_update_feeds(data);
- feeds_free(data);
- data = tmp;
+ data = ws_update_feeds(data);
return data;
}
}
void ttrss_set_article_unread(int id, int unread)
-{
+{
struct json_object *rp, *rq;
printf("ttrss_set_article_unread %d %d\n", id, unread);
data = NULL;
ws_init(url, user, pwd);
}
+
+struct feed *ttrss_get_feed(int id)
+{
+ return feeds_get_feed(data, id);
+}
struct feed *feed_new(int id, const char *url, const char *title);
void feed_free(struct feed *feed);
void feeds_free(struct feed **feed);
+struct feed *feeds_get_feed(struct feed **feed, int i);
struct headline **headlines_add(struct headline **list, struct headline *h);
struct headline *headline_new(int id, const char *url, const char *title);