+
+ return ttrss_get_headline(id);
+ }
+
+ return NULL;
+}
+
+static char *headline_get_formated_headline(struct headline *h)
+{
+ if (h->unread)
+ return g_strdup_printf("<b>%s</b>", h->title);
+ else
+ return strdup(h->title);
+}
+
+static char *headline_get_date(struct headline *h)
+{
+ struct tm *tmp;
+ char date[200];
+
+ tmp = localtime(&h->date);
+
+ if (h->unread)
+ strftime(date, sizeof(date), "<b>%D</b>", tmp);
+ else
+ strftime(date, sizeof(date), "%D", tmp);
+
+ return strdup(date);
+}
+
+int feed_cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
+{
+ GtkTreeIter iter;
+ GtkTreeModel *headline_model;
+ GtkListStore *headline_store;
+ struct feed *feed;
+ struct headline **headlines, *h;
+ char *title, *date;
+
+ if (model_state)
+ return TRUE;
+
+ log_debug("feed_cursor_changed_cbk()");
+
+ feed = get_selected_feed();
+
+ if (feed) {
+ headline_model = gtk_tree_view_get_model(w_headlinetree);
+ headline_store = GTK_LIST_STORE(headline_model);
+ model_state = 1;
+ gtk_list_store_clear(headline_store);
+
+ if (feed) {
+ headlines = ttrss_feed_get_headlines(feed);
+ while (headlines && *headlines) {
+ gtk_list_store_append(headline_store, &iter);
+
+ h = *headlines;
+
+ title = headline_get_formated_headline(h);
+ date = headline_get_date(h);
+
+ gtk_list_store_set(headline_store,
+ &iter,
+ COL_HEADLINE_TITLE,
+ title,
+ COL_HEADLINE_ID,
+ h->id,
+ COL_HEADLINE_DATE,
+ date,
+ COL_HEADLINE_EPOCH_TIME,
+ h->date,
+ -1);
+
+ g_free(title);
+ free(date);
+
+ headlines++;
+ }
+ }
+
+ model_state = 0;