[devhelp/wip/swilmet/misc: 3/3] window: various small code improvements



commit 41f3cf295e8ae31a1bb6d62b5f2deec661c9eecb
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Sun Nov 15 14:30:34 2015 +0100

    window: various small code improvements

 src/dh-window.c |  222 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 123 insertions(+), 99 deletions(-)
---
diff --git a/src/dh-window.c b/src/dh-window.c
index bfc597c..e38638d 100644
--- a/src/dh-window.c
+++ b/src/dh-window.c
@@ -141,7 +141,7 @@ static void           window_tab_set_title           (DhWindow        *window,
                                                       const gchar     *title);
 static void           window_close_tab               (DhWindow *window,
                                                       gint      page_num);
-static gboolean       do_search                      (DhWindow *window);
+static void           do_search                      (DhWindow *window);
 
 G_DEFINE_TYPE_WITH_PRIVATE (DhWindow, dh_window, GTK_TYPE_APPLICATION_WINDOW);
 
@@ -182,12 +182,10 @@ window_close_tab (DhWindow *window,
 
         pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook));
 
-        if (pages == 0) {
+        if (pages == 0)
                 gtk_widget_destroy (GTK_WIDGET (window));
-        }
-        else if (pages == 1) {
+        else if (pages == 1)
                 gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), FALSE);
-        }
 }
 
 static void
@@ -226,7 +224,8 @@ copy_cb (GSimpleAction *action,
                 GtkClipboard *clipboard;
                 clipboard = gtk_widget_get_clipboard (widget, GDK_SELECTION_CLIPBOARD);
                 gtk_clipboard_set_text (clipboard,
-                                dh_link_get_name(priv->selected_search_link), -1);
+                                        dh_link_get_name (priv->selected_search_link),
+                                        -1);
         } else {
                 WebKitWebView *web_view;
 
@@ -249,8 +248,9 @@ find_cb (GSimpleAction *action,
         gtk_widget_grab_focus (priv->search_entry);
 
         /* The behaviour for WebKit1 is to re-enable highlighting without
-           starting a new search. WebKit2 API does not allow that
-           without invoking a new search. */
+         * starting a new search. WebKit2 API does not allow that
+         * without invoking a new search.
+         */
         do_search (window);
 }
 
@@ -274,18 +274,18 @@ static int
 window_get_current_zoom_level_index (DhWindow *window)
 {
         WebKitWebView *web_view;
-        double previous, current, mean;
+        double previous;
         double zoom_level = ZOOM_DEFAULT;
         int i;
 
         web_view = window_get_active_web_view (window);
-        if (web_view)
+        if (web_view != NULL)
                 zoom_level = webkit_web_view_get_zoom_level (web_view);
 
         previous = zoom_levels[0].level;
         for (i = 1; i < n_zoom_levels; i++) {
-                current = zoom_levels[i].level;
-                mean = sqrt (previous * current);
+                double current = zoom_levels[i].level;
+                double mean = sqrt (previous * current);
 
                 if (zoom_level <= mean)
                         return i - 1;
@@ -300,36 +300,37 @@ static void
 window_update_zoom_actions_state (DhWindow *window)
 {
         GAction *action;
-        int zoom_level_idx;
+        int zoom_level_index;
         gboolean enabled;
 
-        zoom_level_idx = window_get_current_zoom_level_index (window);
+        zoom_level_index = window_get_current_zoom_level_index (window);
 
-        enabled = zoom_levels[zoom_level_idx].level < ZOOM_MAXIMAL;
+        enabled = zoom_levels[zoom_level_index].level < ZOOM_MAXIMAL;
         action = g_action_map_lookup_action (G_ACTION_MAP (window), "zoom-in");
         g_simple_action_set_enabled (G_SIMPLE_ACTION (action), enabled);
 
-        enabled = zoom_levels[zoom_level_idx].level > ZOOM_MINIMAL;
+        enabled = zoom_levels[zoom_level_index].level > ZOOM_MINIMAL;
         action = g_action_map_lookup_action (G_ACTION_MAP (window), "zoom-out");
         g_simple_action_set_enabled (G_SIMPLE_ACTION (action), enabled);
 
-        enabled = zoom_levels[zoom_level_idx].level != ZOOM_DEFAULT;
+        enabled = zoom_levels[zoom_level_index].level != ZOOM_DEFAULT;
         action = g_action_map_lookup_action (G_ACTION_MAP (window), "zoom-default");
         g_simple_action_set_enabled (G_SIMPLE_ACTION (action), enabled);
 }
 
 static void
 show_sidebar_cb (GSimpleAction *action,
-                    GVariant      *parameter,
-                    gpointer       user_data)
+                 GVariant      *parameter,
+                 gpointer       user_data)
 {
         DhWindow *window = user_data;
         DhWindowPrivate *priv = dh_window_get_instance_private (window);
+        gboolean visible;
 
-        gboolean visible = !gtk_widget_get_visible (priv->grid_sidebar);
+        visible = gtk_widget_get_visible (priv->grid_sidebar);
 
-        g_simple_action_set_state (action, g_variant_new_boolean(visible));
-        gtk_widget_set_visible (priv->grid_sidebar, visible);
+        g_simple_action_set_state (action, g_variant_new_boolean (!visible));
+        gtk_widget_set_visible (priv->grid_sidebar, !visible);
 }
 
 static void
@@ -338,14 +339,17 @@ zoom_in_cb (GSimpleAction *action,
             gpointer       user_data)
 {
         DhWindow *window = user_data;
-        int zoom_level_idx;
+        int zoom_level_index;
 
-        zoom_level_idx = window_get_current_zoom_level_index (window);
-        if (zoom_levels[zoom_level_idx].level < ZOOM_MAXIMAL) {
+        zoom_level_index = window_get_current_zoom_level_index (window);
+        if (zoom_levels[zoom_level_index].level < ZOOM_MAXIMAL) {
+                double new_zoom_level;
                 WebKitWebView *web_view;
 
+                new_zoom_level = zoom_levels[zoom_level_index + 1].level;
+
                 web_view = window_get_active_web_view (window);
-                webkit_web_view_set_zoom_level (web_view, zoom_levels[zoom_level_idx + 1].level);
+                webkit_web_view_set_zoom_level (web_view, new_zoom_level);
                 window_update_zoom_actions_state (window);
         }
 
@@ -357,14 +361,17 @@ zoom_out_cb (GSimpleAction *action,
              gpointer       user_data)
 {
         DhWindow *window = user_data;
-        int zoom_level_idx;
+        int zoom_level_index;
 
-        zoom_level_idx = window_get_current_zoom_level_index (window);
-        if (zoom_levels[zoom_level_idx].level > ZOOM_MINIMAL) {
+        zoom_level_index = window_get_current_zoom_level_index (window);
+        if (zoom_levels[zoom_level_index].level > ZOOM_MINIMAL) {
+                double new_zoom_level;
                 WebKitWebView *web_view;
 
+                new_zoom_level = zoom_levels[zoom_level_index - 1].level;
+
                 web_view = window_get_active_web_view (window);
-                webkit_web_view_set_zoom_level (web_view, zoom_levels[zoom_level_idx - 1].level);
+                webkit_web_view_set_zoom_level (web_view, new_zoom_level);
                 window_update_zoom_actions_state (window);
         }
 }
@@ -402,14 +409,16 @@ go_back_cb (GSimpleAction *action,
 {
         DhWindow      *window = user_data;
         DhWindowPrivate *priv;
+        gint current_page_num;
         WebKitWebView *web_view;
         GtkWidget     *frame;
 
         priv = dh_window_get_instance_private (window);
 
-        frame = gtk_notebook_get_nth_page (
-                GTK_NOTEBOOK (priv->notebook),
-                gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)));
+        current_page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook));
+        frame = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook),
+                                           current_page_num);
+
         web_view = g_object_get_data (G_OBJECT (frame), "web_view");
 
         webkit_web_view_go_back (web_view);
@@ -422,13 +431,16 @@ go_forward_cb (GSimpleAction *action,
 {
         DhWindow      *window = user_data;
         DhWindowPrivate *priv;
+        gint current_page_num;
         WebKitWebView *web_view;
         GtkWidget     *frame;
 
         priv = dh_window_get_instance_private (window);
 
+        current_page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook));
         frame = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook),
-                                           gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)));
+                                           current_page_num);
+
         web_view = g_object_get_data (G_OBJECT (frame), "web_view");
 
         webkit_web_view_go_forward (web_view);
@@ -448,46 +460,56 @@ gear_menu_cb (GSimpleAction *action,
 }
 
 static void
-window_open_link_cb (DhWindow *window,
-                     const char *location,
-                     DhOpenLinkFlags flags)
+window_open_link_cb (DhWindow        *window,
+                     const char      *location,
+                     DhOpenLinkFlags  flags)
 {
-        if (flags & DH_OPEN_LINK_NEW_TAB) {
-                window_open_new_tab (window, location, FALSE);
-        }
-        else if (flags & DH_OPEN_LINK_NEW_WINDOW) {
-                dh_app_new_window (DH_APP (gtk_window_get_application (GTK_WINDOW (window))));
+        switch (flags) {
+                case DH_OPEN_LINK_NEW_WINDOW:
+                        dh_app_new_window (DH_APP (gtk_window_get_application (GTK_WINDOW (window))));
+                        break;
+
+                case DH_OPEN_LINK_NEW_TAB:
+                        window_open_new_tab (window, location, FALSE);
+                        break;
+
+                default:
+                        g_assert_not_reached ();
         }
 }
 
 static GActionEntry win_entries[] = {
         /* file */
-        { "new-tab",          new_tab_cb,          NULL, NULL, NULL },
-        { "print",            print_cb,            NULL, NULL, NULL },
-        { "close",            close_cb,            NULL, NULL, NULL },
+        { "new-tab",          new_tab_cb },
+        { "print",            print_cb },
+        { "close",            close_cb },
+
         /* edit */
-        { "copy",             copy_cb,             NULL, NULL, NULL },
-        { "find",             find_cb,             NULL, NULL, NULL },
-        { "find-next",        find_next_cb,        NULL, NULL, NULL },
-        { "find-previous",    find_previous_cb,    NULL, NULL, NULL },
+        { "copy",             copy_cb },
+        { "find",             find_cb },
+        { "find-previous",    find_previous_cb },
+        { "find-next",        find_next_cb },
+
         /* view */
-        { "show-sidebar",     NULL,     NULL, "false", show_sidebar_cb },
-        { "zoom-in",          zoom_in_cb,          NULL, NULL, NULL },
-        { "zoom-out",         zoom_out_cb,         NULL, NULL, NULL },
-        { "zoom-default",     zoom_default_cb,     NULL, NULL, NULL },
-        { "focus-search",     focus_search_cb,     NULL, NULL, NULL },
+        { "show-sidebar",     NULL, NULL, "false", show_sidebar_cb },
+        { "zoom-in",          zoom_in_cb },
+        { "zoom-out",         zoom_out_cb },
+        { "zoom-default",     zoom_default_cb },
+        { "focus-search",     focus_search_cb },
+
         /* go */
-        { "go-back",          go_back_cb,          NULL, "false", NULL },
-        { "go-forward",       go_forward_cb,       NULL, "false", NULL },
+        { "go-back",          go_back_cb, NULL, "false" },
+        { "go-forward",       go_forward_cb, NULL, "false" },
+
         /* gear menu */
-        { "gear-menu",        gear_menu_cb,        NULL, "false", NULL },
+        { "gear-menu",        gear_menu_cb, NULL, "false" },
 };
 
 static void
-settings_fonts_changed_cb (DhSettings *settings,
+settings_fonts_changed_cb (DhSettings  *settings,
                            const gchar *font_name_fixed,
                            const gchar *font_name_variable,
-                           gpointer user_data)
+                           gpointer     user_data)
 {
         DhWindow *window = DH_WINDOW (user_data);
         DhWindowPrivate *priv;
@@ -497,7 +519,7 @@ settings_fonts_changed_cb (DhSettings *settings,
         priv = dh_window_get_instance_private (window);
 
         /* change font for all pages */
-        for (i = 0; i < gtk_notebook_get_n_pages (GTK_NOTEBOOK(priv->notebook)); i++) {
+        for (i = 0; i < gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook)); i++) {
                 GtkWidget *page = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), i);
                 view = WEBKIT_WEB_VIEW (g_object_get_data (G_OBJECT (page), "web_view"));
                 dh_util_view_set_font (view, font_name_fixed, font_name_variable);
@@ -547,24 +569,29 @@ screen_changed_cb (GtkWidget *window,
         GtkSettings *previous_settings = gtk_settings_get_for_screen (previous_screen);
         GtkSettings *current_settings = gtk_widget_get_settings (window);
 
-        /* if the screen has changed we need to re-retrieve the GtkSettings object,
-           and disconnect the old signal handlers before re-connecting again */
+        /* If the screen has changed we need to re-retrieve the GtkSettings object,
+         * and disconnect the old signal handlers before re-connecting again.
+         */
         if (current_settings != previous_settings) {
-                if (priv->xft_dpi_changed_id) {
-                        if (priv->gtk_settings != NULL && g_signal_handler_is_connected (priv->gtk_settings, 
priv->xft_dpi_changed_id))
+                if (priv->xft_dpi_changed_id != 0) {
+                        if (priv->gtk_settings != NULL &&
+                            g_signal_handler_is_connected (priv->gtk_settings, priv->xft_dpi_changed_id))
                                 g_signal_handler_disconnect (priv->gtk_settings, priv->xft_dpi_changed_id);
                         priv->xft_dpi_changed_id = 0;
                 }
+
                 priv->gtk_settings = NULL;
         }
 
-        /* now store the new GtkSettings and (re)connect the signals if needed */
+        /* Now store the new GtkSettings and (re)connect the signals if needed. */
         if (priv->gtk_settings == NULL) {
                 GdkScreen *screen = gtk_widget_get_screen (window);
                 priv->gtk_settings = gtk_settings_get_for_screen (screen);
                 priv->xft_dpi_changed_id =
-                        g_signal_connect (priv->gtk_settings, "notify::gtk-xft-dpi",
-                                          G_CALLBACK (gtk_xft_dpi_changed_cb), window);
+                        g_signal_connect (priv->gtk_settings,
+                                          "notify::gtk-xft-dpi",
+                                          G_CALLBACK (gtk_xft_dpi_changed_cb),
+                                          window);
 
         }
 
@@ -572,20 +599,18 @@ screen_changed_cb (GtkWidget *window,
 }
 
 static gboolean
-window_configure_event_cb (GtkWidget *window,
-                           GdkEventConfigure *event,
-                           gpointer user_data)
+window_configure_event_cb (GtkWidget         *window,
+                           GdkEventConfigure *event)
 {
-        DhWindow *dhwindow;
-        DhWindowPrivate  *priv;
+        DhWindowPrivate *priv;
 
-        dhwindow = DH_WINDOW (user_data);
-        priv = dh_window_get_instance_private (dhwindow);
+        priv = dh_window_get_instance_private (DH_WINDOW (window));
 
-        dh_util_window_settings_save (
-                GTK_WINDOW (window),
-                dh_settings_peek_window_settings (priv->settings), TRUE);
-        return FALSE;
+        dh_util_window_settings_save (GTK_WINDOW (window),
+                                      dh_settings_peek_window_settings (priv->settings),
+                                      TRUE);
+
+        return GDK_EVENT_PROPAGATE;
 }
 
 static void
@@ -638,9 +663,9 @@ dh_window_init (DhWindow *window)
         accel_group = gtk_accel_group_new ();
         gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
         for (i = 0; i < G_N_ELEMENTS (tab_accel_keys); i++) {
-                closure =  g_cclosure_new (G_CALLBACK (window_web_view_tab_accel_cb),
-                                           window,
-                                           NULL);
+                closure = g_cclosure_new (G_CALLBACK (window_web_view_tab_accel_cb),
+                                          window,
+                                          NULL);
                 gtk_accel_group_connect (accel_group,
                                          tab_accel_keys[i],
                                          GDK_MOD1_MASK,
@@ -657,15 +682,15 @@ dh_window_dispose (GObject *object)
 
         priv = dh_window_get_instance_private (window);
 
-        if (priv->xft_dpi_changed_id) {
-                if (priv->gtk_settings != NULL && g_signal_handler_is_connected (priv->gtk_settings, 
priv->xft_dpi_changed_id))
+        if (priv->xft_dpi_changed_id != 0) {
+                if (priv->gtk_settings != NULL &&
+                    g_signal_handler_is_connected (priv->gtk_settings, priv->xft_dpi_changed_id))
                         g_signal_handler_disconnect (priv->gtk_settings, priv->xft_dpi_changed_id);
                 priv->xft_dpi_changed_id = 0;
         }
 
         g_clear_object (&priv->settings);
 
-        /* Chain up to the parent class */
         G_OBJECT_CLASS (dh_window_parent_class)->dispose (object);
 }
 
@@ -708,10 +733,10 @@ dh_window_class_init (DhWindowClass *klass)
 }
 
 static void
-window_web_view_switch_page_cb (GtkNotebook     *notebook,
-                                gpointer         page,
-                                guint            new_page_num,
-                                DhWindow        *window)
+window_web_view_switch_page_cb (GtkNotebook *notebook,
+                                gpointer     page,
+                                guint        new_page_num,
+                                DhWindow    *window)
 {
         DhWindowPrivate *priv;
         GtkWidget *new_page;
@@ -719,7 +744,7 @@ window_web_view_switch_page_cb (GtkNotebook     *notebook,
         priv = dh_window_get_instance_private (window);
 
         new_page = gtk_notebook_get_nth_page (notebook, new_page_num);
-        if (new_page) {
+        if (new_page != NULL) {
                 WebKitWebView  *new_web_view;
                 const gchar    *location;
 
@@ -728,7 +753,7 @@ window_web_view_switch_page_cb (GtkNotebook     *notebook,
                 /* Sync the book tree */
                 location = webkit_web_view_get_uri (new_web_view);
 
-                if (location)
+                if (location != NULL)
                         dh_sidebar_select_uri (DH_SIDEBAR (priv->sidebar), location);
 
                 window_check_history (window, new_web_view);
@@ -743,10 +768,10 @@ window_web_view_switch_page_cb (GtkNotebook     *notebook,
 }
 
 static void
-window_web_view_switch_page_after_cb (GtkNotebook     *notebook,
-                                      gpointer         page,
-                                      guint            new_page_num,
-                                      DhWindow        *window)
+window_web_view_switch_page_after_cb (GtkNotebook *notebook,
+                                      gpointer     page,
+                                      guint        new_page_num,
+                                      DhWindow    *window)
 {
         window_update_zoom_actions_state (window);
 }
@@ -1041,7 +1066,7 @@ window_web_view_button_press_event_cb (WebKitWebView  *web_view,
         return FALSE;
 }
 
-static gboolean
+static void
 do_search (DhWindow *window)
 {
         DhWindowPrivate *priv;
@@ -1057,8 +1082,6 @@ do_search (DhWindow *window)
 
         search_text = gtk_entry_get_text (GTK_ENTRY (priv->search_entry));
         webkit_find_controller_search (find_controller, search_text, find_options, G_MAXUINT);
-
-        return FALSE;
 }
 
 static void
@@ -1454,9 +1477,10 @@ dh_window_new (DhApp *application)
 
         window_populate (window);
 
-        g_signal_connect (window, "configure-event",
+        g_signal_connect (window,
+                          "configure-event",
                           G_CALLBACK (window_configure_event_cb),
-                          window);
+                          NULL);
 
         dh_util_window_settings_restore (
                 GTK_WINDOW (window),


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]