[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