(no commit message)
authorJean-Philippe Orsini <jeanfi@gmail.com>
Tue, 23 Apr 2013 07:14:38 +0000 (07:14 +0000)
committerJean-Philippe Orsini <jeanfi@gmail.com>
Tue, 23 Apr 2013 07:14:38 +0000 (07:14 +0000)
src/glade/prss.glade
src/main.c
src/ttrss.c
src/ttrss.h

index 3315f2c..ebab096 100644 (file)
                         <property name="can_focus">True</property>
                         <property name="model">headline_store</property>
                         <signal name="cursor-changed" handler="headline_cursor_changed_cbk" swapped="no"/>
+                        <signal name="row-activated" handler="headline_row_activated_cbk" swapped="no"/>
                         <child internal-child="selection">
                           <object class="GtkTreeSelection" id="treeview-selection2"/>
                         </child>
index ceeb9b7..861309d 100644 (file)
@@ -243,6 +243,37 @@ int headline_cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
        return TRUE;
 }
 
+void headline_row_activated_cbk(GtkWidget *widget, gpointer data)
+{
+       GdkScreen *screen;
+       GError *error;
+       GtkTreeSelection *selection;
+       GtkTreeModel *model;
+       GtkTreeIter iter;
+       struct feed *feed;
+       const char *url;
+
+       printf("headline_row_activated_cbk\n");
+
+       selection = gtk_tree_view_get_selection(w_headlineview);
+       model = gtk_tree_view_get_model(w_headlineview);
+
+       if (gtk_tree_selection_get_selected(selection, &model, &iter)) {
+               gtk_tree_model_get(model, &iter, 1, &feed, -1);
+               url = feed->url;
+
+               if (gtk_widget_has_screen (widget))
+                       screen = gtk_widget_get_screen(widget);
+               else
+                       screen = gdk_screen_get_default();
+               
+               printf("%s\n", url);
+
+               error = NULL;
+               gtk_show_uri(screen, url, gtk_get_current_event_time(), &error);
+       }
+}
+
 gboolean
 window_delete_event_cbk(GtkWidget *widget, GdkEvent *event, gpointer data)
 {
index c22cf34..2c57b4e 100644 (file)
@@ -160,6 +160,9 @@ static struct headline **get_headlines(int feed_id)
                        j = json_object_object_get(jheadline, "title");
                        h->title = strdup(json_object_get_string(j));
 
+                       j = json_object_object_get(jheadline, "link");
+                       h->url = strdup(json_object_get_string(j));
+
                        h->excerpt = NULL;
                        h->content = NULL;
 
index 020d77a..801485e 100644 (file)
@@ -23,6 +23,7 @@
 struct headline {
        int id;
 
+       char *url;
        char *title;
        char *excerpt;
        char *content;