From ed63b3e6c7c9decf35284907644234bbde3d99f2 Mon Sep 17 00:00:00 2001 From: Shaun McCance Date: Mon, 16 Jun 2014 16:08:13 -0400 Subject: [PATCH] Removed read later --- src/yelp-application.c | 94 --------------------- src/yelp-application.h | 9 -- src/yelp-window.c | 221 +++---------------------------------------------- 3 files changed, 11 insertions(+), 313 deletions(-) diff --git a/src/yelp-application.c b/src/yelp-application.c index 0a730125..42deb074 100644 --- a/src/yelp-application.c +++ b/src/yelp-application.c @@ -43,7 +43,6 @@ static gboolean editor_mode = FALSE; enum { - READ_LATER_CHANGED, LAST_SIGNAL }; static gint signals[LAST_SIGNAL] = { 0 }; @@ -99,9 +98,6 @@ static void application_set_font_sensitivity (YelpApplication *a static void bookmarks_changed (GSettings *settings, const gchar *key, YelpApplication *app); -static void readlater_changed (GSettings *settings, - const gchar *key, - YelpApplication *app); static gboolean window_resized (YelpWindow *window, YelpApplication *app); @@ -161,14 +157,6 @@ yelp_application_class_init (YelpApplicationClass *klass) object_class->dispose = yelp_application_dispose; object_class->finalize = yelp_application_finalize; - signals[READ_LATER_CHANGED] = - g_signal_new ("read-later-changed", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, - 0, NULL, NULL, - g_cclosure_marshal_VOID__STRING, - G_TYPE_NONE, 1, G_TYPE_STRING); - g_type_class_add_private (klass, sizeof (YelpApplicationPrivate)); } @@ -533,8 +521,6 @@ application_get_doc_settings (YelpApplication *app, const gchar *doc_uri) g_object_set_data ((GObject *) settings, "doc_uri", key); g_signal_connect (settings, "changed::bookmarks", G_CALLBACK (bookmarks_changed), app); - g_signal_connect (settings, "changed::readlater", - G_CALLBACK (readlater_changed), app); g_free (settings_path); } return settings; @@ -700,76 +686,6 @@ yelp_application_get_bookmarks (YelpApplication *app, return g_settings_get_value (settings, "bookmarks"); } -void -yelp_application_add_read_later (YelpApplication *app, - const gchar *doc_uri, - const gchar *full_uri, - const gchar *title) -{ - GSettings *settings; - - settings = application_get_doc_settings (app, doc_uri); - - if (settings) { - GVariantBuilder builder; - GVariantIter *iter; - gchar *this_uri, *this_title; - gboolean broken = FALSE; - g_settings_get (settings, "readlater", "a(ss)", &iter); - g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)")); - while (g_variant_iter_loop (iter, "(&s&s)", &this_uri, &this_title)) { - if (g_str_equal (full_uri, this_uri)) { - /* Already have this link */ - broken = TRUE; - break; - } - g_variant_builder_add (&builder, "(ss)", this_uri, this_title); - } - g_variant_iter_free (iter); - - if (!broken) { - GVariant *value; - g_variant_builder_add (&builder, "(ss)", full_uri, title); - value = g_variant_builder_end (&builder); - g_settings_set_value (settings, "readlater", value); - } - } -} - -void -yelp_application_remove_read_later (YelpApplication *app, - const gchar *doc_uri, - const gchar *full_uri) -{ - GSettings *settings; - - settings = application_get_doc_settings (app, doc_uri); - - if (settings) { - GVariantBuilder builder; - GVariantIter *iter; - gchar *this_uri, *this_title; - g_settings_get (settings, "readlater", "a(ss)", &iter); - g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)")); - while (g_variant_iter_loop (iter, "(&s&s)", &this_uri, &this_title)) { - if (!g_str_equal (this_uri, full_uri)) - g_variant_builder_add (&builder, "(ss)", this_uri, this_title); - } - g_variant_iter_free (iter); - - g_settings_set_value (settings, "readlater", g_variant_builder_end (&builder)); - } -} - -GVariant * -yelp_application_get_read_later (YelpApplication *app, - const gchar *doc_uri) -{ - GSettings *settings = application_get_doc_settings (app, doc_uri); - - return g_settings_get_value (settings, "readlater"); -} - static void bookmarks_changed (GSettings *settings, const gchar *key, @@ -780,16 +696,6 @@ bookmarks_changed (GSettings *settings, g_signal_emit_by_name (app, "bookmarks-changed", doc_uri); } -static void -readlater_changed (GSettings *settings, - const gchar *key, - YelpApplication *app) -{ - const gchar *doc_uri = g_object_get_data ((GObject *) settings, "doc_uri"); - if (doc_uri) - g_signal_emit (app, signals[READ_LATER_CHANGED], 0, doc_uri); -} - static gboolean window_resized (YelpWindow *window, YelpApplication *app) diff --git a/src/yelp-application.h b/src/yelp-application.h index e89bacdb..25bcb178 100644 --- a/src/yelp-application.h +++ b/src/yelp-application.h @@ -69,14 +69,5 @@ void yelp_application_update_bookmarks (YelpApplication *app, const gchar *title); GVariant * yelp_application_get_bookmarks (YelpApplication *app, const gchar *doc_uri); -void yelp_application_add_read_later (YelpApplication *app, - const gchar *doc_uri, - const gchar *full_uri, - const gchar *title); -void yelp_application_remove_read_later (YelpApplication *app, - const gchar *doc_uri, - const gchar *full_uri); -GVariant * yelp_application_get_read_later (YelpApplication *app, - const gchar *doc_uri); #endif /* __YELP_APPLICATION_H__ */ diff --git a/src/yelp-window.c b/src/yelp-window.c index 737a4584..d13d936e 100644 --- a/src/yelp-window.c +++ b/src/yelp-window.c @@ -82,13 +82,10 @@ static void window_go_all (GtkAction *action, YelpWindow *window); static void window_open_location (GtkAction *action, YelpWindow *window); -static void window_read_later (GtkAction *action, - YelpWindow *window); -static gboolean read_later_clicked (GtkLinkButton *button, - YelpWindow *window); -static void app_read_later_changed (YelpApplication *app, - const gchar *doc_uri, - YelpWindow *window); + + + + static void app_bookmarks_changed (YelpApplication *app, const gchar *doc_uri, YelpWindow *window); @@ -102,9 +99,6 @@ static void action_new_window (GSimpleAction *action, static void action_close_window (GSimpleAction *action, GVariant *parameter, gpointer userdata); -static void action_print (GSimpleAction *action, - GVariant *parameter, - gpointer userdata); static void action_search (GSimpleAction *action, GVariant *parameter, gpointer userdata); @@ -134,17 +128,14 @@ static void view_uri_selected (YelpView *view, static void view_root_title (YelpView *view, GParamSpec *pspec, YelpWindow *window); -static gboolean view_is_xref_uri (YelpView *view, - GtkAction *action, - const gchar *uri, - YelpWindow *window); - +#if 0 static void hidden_entry_activate (GtkEntry *entry, YelpWindow *window); static void hidden_entry_hide (YelpWindow *window); static gboolean hidden_key_press (GtkWidget *widget, GdkEventKey *event, YelpWindow *window); +#endif enum { PROP_0, @@ -188,7 +179,6 @@ struct _YelpWindowPrivate { YelpApplication *application; gulong bookmarks_changed; - gulong read_later_changed; /* no refs on these, owned by containers */ GtkWidget *header; @@ -206,12 +196,6 @@ struct _YelpWindowPrivate { YelpView *view; GtkWidget *hidden_entry; - GtkWidget *read_later_vbox; - - /* refs because we dynamically add & remove */ - GtkWidget *align_location; - GtkWidget *align_hidden; - GtkWidget *read_later; gchar *doc_uri; @@ -277,26 +261,11 @@ yelp_window_dispose (GObject *object) { YelpWindowPrivate *priv = GET_PRIV (object); - if (priv->read_later_changed) { - g_source_remove (priv->read_later_changed); - priv->read_later_changed = 0; - } - if (priv->bookmarks_changed) { g_source_remove (priv->bookmarks_changed); priv->bookmarks_changed = 0; } - if (priv->align_location) { - g_object_unref (priv->align_location); - priv->align_location = NULL; - } - - if (priv->align_hidden) { - g_object_unref (priv->align_hidden); - priv->align_hidden = NULL; - } - G_OBJECT_CLASS (yelp_window_parent_class)->dispose (object); } @@ -347,9 +316,7 @@ static void window_construct (YelpWindow *window) { GtkWidget *scroll; - GtkAction *action; GtkWidget *box, *button; - gchar *color, *text; GMenu *menu, *section; YelpWindowPrivate *priv = GET_PRIV (window); gboolean rtl; @@ -370,15 +337,6 @@ window_construct (YelpWindow *window) entries, G_N_ELEMENTS (entries), window); yelp_view_register_actions (priv->view, G_ACTION_MAP (window)); - action = gtk_action_new ("ReadLinkLater", _("Read Link _Later"), NULL, NULL); - g_signal_connect (action, "activate", G_CALLBACK (window_read_later), window); - yelp_view_add_link_action (priv->view, action, - (YelpViewActionValidFunc) view_is_xref_uri, - window); - priv->read_later_changed = - g_signal_connect (priv->application, "read-later-changed", - G_CALLBACK (app_read_later_changed), window); - priv->vbox_full = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3); gtk_container_add (GTK_CONTAINER (window), priv->vbox_full); @@ -439,9 +397,8 @@ window_construct (YelpWindow *window) g_menu_append (section, _("Next Page"), "win.yelp-view-go-next"); g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); g_object_unref (section); + /* FIXME */ /* all documents */ - /* larger/smaller text */ - /* show text cursor */ /* open location */ gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), G_MENU_MODEL (menu)); @@ -467,7 +424,8 @@ window_construct (YelpWindow *window) G_BINDING_BIDIRECTIONAL); gtk_header_bar_pack_end (GTK_HEADER_BAR (priv->header), button); - g_signal_connect_swapped (window, "key-press-event", gtk_search_bar_handle_event, priv->search_bar); + g_signal_connect_swapped (window, "key-press-event", + G_CALLBACK (gtk_search_bar_handle_event), priv->search_bar); /** Bookmarks **/ button = gtk_menu_button_new (); @@ -553,24 +511,6 @@ window_construct (YelpWindow *window) GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (priv->vbox_view), scroll, TRUE, TRUE, 0); - /** Read Later **/ - priv->read_later = g_object_ref_sink (gtk_info_bar_new ()); - box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - color = yelp_settings_get_color (yelp_settings_get_default (), - YELP_SETTINGS_COLOR_TEXT_LIGHT); - text = g_markup_printf_escaped ("%s", - color, _("Read Later")); - button = gtk_label_new (text); - g_object_set (button, "use-markup", TRUE, "xalign", 0.0, NULL); - g_free (color); - g_free (text); - gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (priv->read_later))), - box, - FALSE, FALSE, 0); - priv->read_later_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - gtk_box_pack_start (GTK_BOX (box), priv->read_later_vbox, FALSE, FALSE, 0); - g_signal_connect (priv->view, "new-view-requested", G_CALLBACK (view_new_window), window); g_signal_connect (priv->view, "loaded", G_CALLBACK (view_loaded), window); g_signal_connect (priv->view, "notify::yelp-uri", G_CALLBACK (view_uri_selected), window); @@ -994,7 +934,6 @@ window_open_location (GtkAction *action, YelpWindow *window) gchar *color; YelpWindowPrivate *priv = GET_PRIV (window); - gtk_widget_show_all (priv->align_hidden); gtk_entry_set_text (GTK_ENTRY (priv->hidden_entry), ""); gtk_widget_grab_focus (priv->hidden_entry); @@ -1025,127 +964,6 @@ window_open_location (GtkAction *action, YelpWindow *window) #endif } -static void -read_later_resolved (YelpUri *uri, - YelpWindow *window) -{ - gchar *fulluri; - const gchar *text = (const gchar *) g_object_get_data ((GObject *) uri, "link-text"); - YelpWindowPrivate *priv = GET_PRIV (window); - YelpUri *base; - gchar *doc_uri; - - g_object_get (priv->view, "yelp-uri", &base, NULL); - doc_uri = yelp_uri_get_document_uri (uri); - fulluri = yelp_uri_get_canonical_uri (uri); - - yelp_application_add_read_later (priv->application, doc_uri, fulluri, text); - - g_object_unref (base); - g_free (doc_uri); - g_free (fulluri); -} - -static void -window_read_later (GtkAction *action, - YelpWindow *window) -{ - YelpWindowPrivate *priv = GET_PRIV (window); - YelpUri *uri; - gchar *text; - - uri = yelp_view_get_active_link_uri (priv->view); - text = yelp_view_get_active_link_text (priv->view); - - g_object_set_data_full ((GObject *) uri, "link-text", text, g_free); - - if (!yelp_uri_is_resolved (uri)) { - g_signal_connect (uri, "resolved", - G_CALLBACK (read_later_resolved), - window); - yelp_uri_resolve (uri); - } - else { - read_later_resolved (uri, window); - } -} - -static gboolean -read_later_clicked (GtkLinkButton *button, - YelpWindow *window) -{ - YelpWindowPrivate *priv = GET_PRIV (window); - YelpUri *base; - gchar *doc_uri; - gchar *fulluri; - - fulluri = g_strdup (gtk_link_button_get_uri (button)); - - g_object_get (priv->view, "yelp-uri", &base, NULL); - doc_uri = yelp_uri_get_document_uri (base); - - yelp_application_remove_read_later (priv->application, doc_uri, fulluri); - - g_object_unref (base); - g_free (doc_uri); - - yelp_view_load (priv->view, fulluri); - - g_free (fulluri); - return TRUE; -} - -static void -app_read_later_changed (YelpApplication *app, - const gchar *doc_uri, - YelpWindow *window) -{ - GVariant *value; - GVariantIter *viter; - gchar *uri, *title; /* do not free */ - GList *children; - gboolean has_children = FALSE; - YelpWindowPrivate *priv = GET_PRIV (window); - - children = gtk_container_get_children (GTK_CONTAINER (priv->read_later_vbox)); - while (children) { - gtk_container_remove (GTK_CONTAINER (priv->read_later_vbox), - GTK_WIDGET (children->data)); - children = g_list_delete_link (children, children); - } - - value = yelp_application_get_read_later (priv->application, doc_uri); - g_variant_get (value, "a(ss)", &viter); - while (g_variant_iter_loop (viter, "(&s&s)", &uri, &title)) { - GtkWidget *align, *link; - - align = gtk_alignment_new (0.0, 0.0, 0.0, 0.0); - g_object_set (align, "left-padding", 6, NULL); - gtk_box_pack_start (GTK_BOX (priv->read_later_vbox), align, FALSE, FALSE, 0); - - link = gtk_link_button_new_with_label (uri, title); - g_object_set (link, "xalign", 0.0, NULL); - g_signal_connect (link, "activate-link", G_CALLBACK (read_later_clicked), window); - gtk_container_add (GTK_CONTAINER (align), link); - - gtk_widget_show_all (align); - has_children = TRUE; - } - g_variant_iter_free (viter); - g_variant_unref (value); - - if (has_children) { - if (gtk_widget_get_parent (priv->read_later) == NULL) { - gtk_box_pack_end (GTK_BOX (priv->vbox_full), priv->read_later, FALSE, FALSE, 0); - gtk_widget_show_all (priv->read_later); - } - } - else { - if (gtk_widget_get_parent (priv->read_later) != NULL) - gtk_container_remove (GTK_CONTAINER (priv->vbox_full), priv->read_later); - } -} - static gboolean find_entry_key_press (GtkEntry *entry, GdkEventKey *event, @@ -1262,7 +1080,6 @@ view_loaded (YelpView *view, page_id, icon, title); - app_read_later_changed (priv->application, doc_uri, window); g_free (page_id); g_free (icon); g_free (title); @@ -1305,15 +1122,6 @@ view_uri_selected (YelpView *view, g_object_unref (uri); } -static gboolean -view_is_xref_uri (YelpView *view, - GtkAction *action, - const gchar *uri, - YelpWindow *window) -{ - return g_str_has_prefix (uri, "xref:"); -} - static void view_root_title (YelpView *view, GParamSpec *pspec, @@ -1338,6 +1146,7 @@ view_root_title (YelpView *view, } } +#if 0 static void hidden_entry_activate (GtkEntry *entry, YelpWindow *window) @@ -1356,15 +1165,6 @@ hidden_entry_hide (YelpWindow *window) { YelpWindowPrivate *priv = GET_PRIV (window); - if (gtk_widget_get_parent (priv->align_hidden) != NULL) { -#if 0 - gtk_container_remove (GTK_CONTAINER (priv->hbox), - priv->align_hidden); - gtk_box_pack_start (GTK_BOX (priv->hbox), - priv->align_location, - TRUE, TRUE, 0); -#endif - } } static gboolean @@ -1379,3 +1179,4 @@ hidden_key_press (GtkWidget *widget, } return FALSE; } +#endif -- 2.11.4.GIT