[Xfce4-commits] <midori:master> Move extension/ privacy preferences to Midori.Preferences

Christian Dywan noreply at xfce.org
Thu Nov 22 02:02:03 CET 2012


Updating branch refs/heads/master
         to c7e5a156e0e038095ccf585cb043cccd0177fe7a (commit)
       from 06f4542258a2e71f24b054ba4dcf4b29590e9f35 (commit)

commit c7e5a156e0e038095ccf585cb043cccd0177fe7a
Author: Christian Dywan <christian at twotoasts.de>
Date:   Thu Nov 22 01:59:08 2012 +0100

    Move extension/ privacy preferences to Midori.Preferences

 midori/main.c               |  130 +------------------------------------------
 midori/midori-extension.c   |   27 +++++++++
 midori/midori-extension.h   |    6 ++
 midori/midori-preferences.c |  107 +++++++++++++++++++++++++++++++++++
 midori/midori-preferences.h |    9 +++
 5 files changed, 152 insertions(+), 127 deletions(-)

diff --git a/midori/main.c b/midori/main.c
index 0e405e5..385dca2 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -15,7 +15,6 @@
 #include "midori-bookmarks.h"
 #include "panels/midori-bookmarks.h"
 #include "midori-extension.h"
-#include "midori-extensions.h"
 #include "midori-history.h"
 #include "midori-transfers.h"
 #include "midori-panel.h"
@@ -465,61 +464,11 @@ midori_trash_add_item_cb (KatzeArray* trash,
 }
 
 static void
-midori_load_module (MidoriApp*   app,
-                    const gchar* extension_path,
-                    const gchar* filename,
-                    gboolean     activate);
-static void
 midori_browser_show_preferences_cb (MidoriBrowser*    browser,
                                     KatzePreferences* preferences,
                                     MidoriApp*        app)
 {
-    KatzeArray* array;
-    gchar* extension_path;
-    GtkWidget* scrolled;
-    GtkWidget* addon;
-    GList* children;
-    GtkWidget* page;
-
-    if (!g_module_supported ())
-        return;
-
-    array = katze_object_get_object (app, "extensions");
-    if ((extension_path = midori_paths_get_lib_path (PACKAGE_NAME)))
-    {
-        GDir* extension_dir = NULL;
-        if ((extension_dir = g_dir_open (extension_path, 0, NULL)))
-        {
-            const gchar* filename;
-            while ((filename = g_dir_read_name (extension_dir)))
-                midori_load_module (app, extension_path, filename, FALSE);
-            g_dir_close (extension_dir);
-        }
-        g_free (extension_path);
-    }
-
-
-    /* Reset frozen list: allow active extensions to be saved */
-    g_object_set_data (G_OBJECT (app), "extensions", NULL);
-
-    /* Hide if there are no extensions at all */
-    if (!katze_array_get_nth_item (array, 0))
-    {
-        g_object_unref (array);
-        return;
-    }
-    g_object_unref (array);
-
-    scrolled = g_object_new (KATZE_TYPE_SCROLLED, "visible", TRUE, NULL);
-    /* For lack of a better way of keeping descriptions visible */
-    g_object_set (scrolled, "hscrollbar-policy", GTK_POLICY_NEVER, NULL);
-    addon = g_object_new (MIDORI_TYPE_EXTENSIONS, "app", app, NULL);
-    children = gtk_container_get_children (GTK_CONTAINER (addon));
-    gtk_widget_reparent (g_list_nth_data (children, 0), scrolled);
-    g_list_free (children);
-    page = katze_preferences_add_category (preferences,
-                                           _("Extensions"), STOCK_EXTENSION);
-    gtk_box_pack_start (GTK_BOX (page), scrolled, TRUE, TRUE, 4);
+    midori_preferences_add_extension_category (preferences, app);
 }
 
 static void
@@ -528,53 +477,7 @@ midori_browser_privacy_preferences_cb (MidoriBrowser*    browser,
                                        MidoriApp*        app)
 {
     MidoriWebSettings* settings = midori_browser_get_settings (browser);
-    GtkWidget* button;
-    GtkWidget* label;
-    gchar* markup;
-
-    katze_preferences_add_category (preferences, _("Privacy"), GTK_STOCK_INDEX);
-    katze_preferences_add_group (preferences, NULL);
-    button = gtk_label_new (_("Delete old Cookies after:"));
-    gtk_misc_set_alignment (GTK_MISC (button), 0.0, 0.5);
-    gtk_widget_set_tooltip_text (button, _("The maximum number of days to save cookies for"));
-    katze_preferences_add_widget (preferences, button, "indented");
-    button = katze_property_proxy (settings, "maximum-cookie-age", "days");
-    gtk_widget_set_tooltip_text (button, _("The maximum number of days to save cookies for"));
-    katze_preferences_add_widget (preferences, button, "spanned");
-    #ifdef HAVE_LIBSOUP_2_29_91
-    button = katze_property_proxy (settings, "first-party-cookies-only", NULL);
-    gtk_button_set_label (GTK_BUTTON (button), _("Only accept Cookies from sites you visit"));
-    gtk_widget_set_tooltip_text (button, _("Block cookies sent by third-party websites"));
-    katze_preferences_add_widget (preferences, button, "filled");
-    #endif
-
-    markup = g_strdup_printf ("<span size=\"smaller\">%s</span>",
-        _("Cookies store login data, saved games, "
-          "or user profiles for advertisement purposes."));
-    label = gtk_label_new (NULL);
-    gtk_label_set_markup (GTK_LABEL (label), markup);
-    g_free (markup);
-    katze_preferences_add_widget (preferences, label, "filled");
-    button = katze_property_proxy (settings, "enable-offline-web-application-cache", NULL);
-    gtk_button_set_label (GTK_BUTTON (button), _("Enable offline web application cache"));
-    katze_preferences_add_widget (preferences, button, "indented");
-    button = katze_property_proxy (settings, "enable-html5-local-storage", NULL);
-    gtk_button_set_label (GTK_BUTTON (button), _("Enable HTML5 local storage support"));
-    katze_preferences_add_widget (preferences, button, "spanned");
-    button = katze_property_proxy (settings, "strip-referer", NULL);
-    /* i18n: Reworded: Shorten details propagated when going to another page */
-    gtk_button_set_label (GTK_BUTTON (button), _("Strip referrer details sent to websites"));
-    /* i18n: Referer here is not a typo but a technical term */
-    gtk_widget_set_tooltip_text (button, _("Whether the \"Referer\" header should be shortened to the hostname"));
-    katze_preferences_add_widget (preferences, button, "indented");
-    katze_preferences_add_widget (preferences, gtk_label_new (NULL), "indented");
-    button = gtk_label_new (_("Delete pages from history after:"));
-    gtk_misc_set_alignment (GTK_MISC (button), 0.0, 0.5);
-    gtk_widget_set_tooltip_text (button, _("The maximum number of days to save the history for"));
-    katze_preferences_add_widget (preferences, button, "indented");
-    button = katze_property_proxy (settings, "maximum-history-age", "days");
-    gtk_widget_set_tooltip_text (button, _("The maximum number of days to save the history for"));
-    katze_preferences_add_widget (preferences, button, "spanned");
+    midori_preferences_add_privacy_category (preferences, settings);
 }
 
 static void
@@ -1063,33 +966,6 @@ midori_load_soup_session_full (gpointer settings)
 }
 
 static void
-midori_load_module (MidoriApp*   app,
-                    const gchar* extension_path,
-                    const gchar* filename,
-                    gboolean     activate)
-{
-    GObject* extension = midori_extension_load_from_file (extension_path, filename, activate, FALSE);
-    if (extension == NULL)
-        return;
-
-    midori_extension_activate (extension, filename, activate, app);
-    if (!extension  && g_module_error () != NULL)
-    {
-        KatzeArray* extensions = katze_object_get_object (app, "extensions");
-        extension = g_object_new (MIDORI_TYPE_EXTENSION,
-                                  "name", filename,
-                                  "description", g_module_error (),
-                                  NULL);
-        g_warning ("%s", g_module_error ());
-        katze_array_add_item (extensions, extension);
-        g_object_unref (extensions);
-    }
-
-    if (extension != NULL)
-        g_object_unref (extension);
-}
-
-static void
 extensions_update_cb (KatzeArray* extensions,
                       MidoriApp*  app)
 {
@@ -1122,7 +998,7 @@ midori_load_extensions (gpointer data)
             gint i = 0;
             const gchar* filename;
             while ((filename = keys[i++]))
-                midori_load_module (app, extension_path, filename, TRUE);
+                midori_extension_activate_gracefully (app, extension_path, filename, TRUE);
             g_free (extension_path);
         }
     }
diff --git a/midori/midori-extension.c b/midori/midori-extension.c
index 39643b7..57e9772 100644
--- a/midori/midori-extension.c
+++ b/midori/midori-extension.c
@@ -564,6 +564,33 @@ midori_extension_load_from_file (const gchar* extension_path,
     return NULL;
 }
 
+void
+midori_extension_activate_gracefully (MidoriApp*   app,
+                                      const gchar* extension_path,
+                                      const gchar* filename,
+                                      gboolean     activate)
+{
+    GObject* extension = midori_extension_load_from_file (extension_path, filename, activate, FALSE);
+    if (extension == NULL)
+        return;
+
+    midori_extension_activate (extension, filename, activate, app);
+    if (!extension && g_module_error () != NULL)
+    {
+        KatzeArray* extensions = katze_object_get_object (app, "extensions");
+        extension = g_object_new (MIDORI_TYPE_EXTENSION,
+                                  "name", filename,
+                                  "description", g_module_error (),
+                                  NULL);
+        g_warning ("%s", g_module_error ());
+        katze_array_add_item (extensions, extension);
+        g_object_unref (extensions);
+    }
+
+    if (extension != NULL)
+        g_object_unref (extension);
+}
+
 static void
 midori_load_extension (MidoriApp*       app,
                        MidoriExtension* extension,
diff --git a/midori/midori-extension.h b/midori/midori-extension.h
index 37dca80..02d0a4f 100644
--- a/midori/midori-extension.h
+++ b/midori/midori-extension.h
@@ -60,6 +60,12 @@ midori_extension_activate           (GObject*     extension,
                                      gboolean     activate,
                                      MidoriApp*   app);
 
+void
+midori_extension_activate_gracefully (MidoriApp*   app,
+                                      const gchar* extension_path,
+                                      const gchar* filename,
+                                      gboolean     activate);
+
 gboolean
 midori_extension_is_prepared         (MidoriExtension* extension);
 
diff --git a/midori/midori-preferences.c b/midori/midori-preferences.c
index cbdf69b..1b072dd 100644
--- a/midori/midori-preferences.c
+++ b/midori/midori-preferences.c
@@ -13,6 +13,8 @@
 
 #include "midori-app.h"
 #include "midori-core.h"
+#include "midori-extension.h"
+#include "panels/midori-extensions.h"
 #include "midori-platform.h"
 
 #include <string.h>
@@ -521,3 +523,108 @@ midori_preferences_set_settings (MidoriPreferences* preferences,
     button = katze_property_proxy (settings, "identify-as", "custom-user-agent");
     SPANNED_ADD (button);
 }
+
+void
+midori_preferences_add_privacy_category (KatzePreferences*  preferences,
+                                         MidoriWebSettings* settings)
+{
+    GtkWidget* button;
+    GtkWidget* label;
+    gchar* markup;
+
+    katze_preferences_add_category (preferences, _("Privacy"), GTK_STOCK_INDEX);
+    katze_preferences_add_group (preferences, NULL);
+    button = gtk_label_new (_("Delete old Cookies after:"));
+    gtk_misc_set_alignment (GTK_MISC (button), 0.0, 0.5);
+    gtk_widget_set_tooltip_text (button, _("The maximum number of days to save cookies for"));
+    katze_preferences_add_widget (preferences, button, "indented");
+    button = katze_property_proxy (settings, "maximum-cookie-age", "days");
+    gtk_widget_set_tooltip_text (button, _("The maximum number of days to save cookies for"));
+    katze_preferences_add_widget (preferences, button, "spanned");
+    #ifdef HAVE_LIBSOUP_2_29_91
+    button = katze_property_proxy (settings, "first-party-cookies-only", NULL);
+    gtk_button_set_label (GTK_BUTTON (button), _("Only accept Cookies from sites you visit"));
+    gtk_widget_set_tooltip_text (button, _("Block cookies sent by third-party websites"));
+    katze_preferences_add_widget (preferences, button, "filled");
+    #endif
+
+    markup = g_strdup_printf ("<span size=\"smaller\">%s</span>",
+        _("Cookies store login data, saved games, "
+          "or user profiles for advertisement purposes."));
+    label = gtk_label_new (NULL);
+    gtk_label_set_markup (GTK_LABEL (label), markup);
+    g_free (markup);
+    katze_preferences_add_widget (preferences, label, "filled");
+    button = katze_property_proxy (settings, "enable-offline-web-application-cache", NULL);
+    gtk_button_set_label (GTK_BUTTON (button), _("Enable offline web application cache"));
+    katze_preferences_add_widget (preferences, button, "indented");
+    button = katze_property_proxy (settings, "enable-html5-local-storage", NULL);
+    gtk_button_set_label (GTK_BUTTON (button), _("Enable HTML5 local storage support"));
+    katze_preferences_add_widget (preferences, button, "spanned");
+    button = katze_property_proxy (settings, "strip-referer", NULL);
+    /* i18n: Reworded: Shorten details propagated when going to another page */
+    gtk_button_set_label (GTK_BUTTON (button), _("Strip referrer details sent to websites"));
+    /* i18n: Referer here is not a typo but a technical term */
+    gtk_widget_set_tooltip_text (button, _("Whether the \"Referer\" header should be shortened to the hostname"));
+    katze_preferences_add_widget (preferences, button, "indented");
+    katze_preferences_add_widget (preferences, gtk_label_new (NULL), "indented");
+    button = gtk_label_new (_("Delete pages from history after:"));
+    gtk_misc_set_alignment (GTK_MISC (button), 0.0, 0.5);
+    gtk_widget_set_tooltip_text (button, _("The maximum number of days to save the history for"));
+    katze_preferences_add_widget (preferences, button, "indented");
+    button = katze_property_proxy (settings, "maximum-history-age", "days");
+    gtk_widget_set_tooltip_text (button, _("The maximum number of days to save the history for"));
+    katze_preferences_add_widget (preferences, button, "spanned");
+}
+
+void
+midori_preferences_add_extension_category (KatzePreferences*  preferences,
+                                           MidoriApp*         app)
+{
+    KatzeArray* array;
+    gchar* extension_path;
+    GtkWidget* scrolled;
+    GtkWidget* addon;
+    GList* children;
+    GtkWidget* page;
+
+    if (!g_module_supported ())
+        return;
+
+    array = katze_object_get_object (app, "extensions");
+    if ((extension_path = midori_paths_get_lib_path (PACKAGE_NAME)))
+    {
+        GDir* extension_dir = NULL;
+        if ((extension_dir = g_dir_open (extension_path, 0, NULL)))
+        {
+            const gchar* filename;
+            while ((filename = g_dir_read_name (extension_dir)))
+                midori_extension_activate_gracefully (app, extension_path, filename, FALSE);
+            g_dir_close (extension_dir);
+        }
+        g_free (extension_path);
+    }
+
+    /* Reset frozen list: allow active extensions to be saved */
+    g_object_set_data (G_OBJECT (app), "extensions", NULL);
+
+    /* Hide if there are no extensions at all */
+    if (!katze_array_get_nth_item (array, 0))
+    {
+        g_object_unref (array);
+        return;
+    }
+    g_object_unref (array);
+
+    scrolled = g_object_new (KATZE_TYPE_SCROLLED, "visible", TRUE, NULL);
+    /* For lack of a better way of keeping descriptions visible */
+    g_object_set (scrolled, "hscrollbar-policy", GTK_POLICY_NEVER, NULL);
+    addon = g_object_new (MIDORI_TYPE_EXTENSIONS, "app", app, NULL);
+    children = gtk_container_get_children (GTK_CONTAINER (addon));
+    gtk_widget_reparent (g_list_nth_data (children, 0), scrolled);
+    g_list_free (children);
+    page = katze_preferences_add_category (preferences,
+                                           _("Extensions"), STOCK_EXTENSION);
+    gtk_box_pack_start (GTK_BOX (page), scrolled, TRUE, TRUE, 4);
+}
+
diff --git a/midori/midori-preferences.h b/midori/midori-preferences.h
index 89c6f9d..601d5a5 100644
--- a/midori/midori-preferences.h
+++ b/midori/midori-preferences.h
@@ -12,6 +12,7 @@
 #ifndef __MIDORI_PREFERENCES_H__
 #define __MIDORI_PREFERENCES_H__
 
+#include "midori-app.h"
 #include "midori-websettings.h"
 
 #include <katze/katze.h>
@@ -50,6 +51,14 @@ void
 midori_preferences_set_settings     (MidoriPreferences* preferences,
                                      MidoriWebSettings* settings);
 
+void
+midori_preferences_add_privacy_category (KatzePreferences*  preferences,
+                                         MidoriWebSettings* settings);
+
+void
+midori_preferences_add_extension_category (KatzePreferences*  preferences,
+                                           MidoriApp*         app);
+
 G_END_DECLS
 
 #endif /* __MIDORI_PREFERENCES_H__ */


More information about the Xfce4-commits mailing list