[Xfce4-commits] <midori:master> Merge userstyles into the userscript panel

Christian Dywan noreply at xfce.org
Wed Sep 23 19:30:01 CEST 2009


Updating branch refs/heads/master
         to ba1084d2360ad9829a8cdbc65eb21db4dd61a448 (commit)
       from b3817bfc522869952397a853cfaf4853366c27de (commit)

commit ba1084d2360ad9829a8cdbc65eb21db4dd61a448
Author: Christian Dywan <christian at twotoasts.de>
Date:   Tue Sep 22 23:46:51 2009 +0200

    Merge userstyles into the userscript panel

 midori/main.c          |    5 --
 midori/midori-stock.h  |    3 +-
 midori/sokoke.c        |    1 -
 panels/midori-addons.c |   97 ++++++++++++++---------------------------------
 4 files changed, 30 insertions(+), 76 deletions(-)

diff --git a/midori/main.c b/midori/main.c
index 109b5a7..4f46ba6 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -960,11 +960,6 @@ midori_app_add_browser_cb (MidoriApp*     app,
     gtk_widget_show (addon);
     midori_panel_append_page (MIDORI_PANEL (panel), MIDORI_VIEWABLE (addon));
 
-    /* Userstyles */
-    addon = midori_addons_new (MIDORI_ADDON_USER_STYLES, GTK_WIDGET (browser));
-    gtk_widget_show (addon);
-    midori_panel_append_page (MIDORI_PANEL (panel), MIDORI_VIEWABLE (addon));
-
     /* Plugins */
     addon = g_object_new (MIDORI_TYPE_PLUGINS, "app", app, NULL);
     gtk_widget_show (addon);
diff --git a/midori/midori-stock.h b/midori/midori-stock.h
index 2ee090d..5e5f86a 100644
--- a/midori/midori-stock.h
+++ b/midori/midori-stock.h
@@ -28,7 +28,6 @@
 #define STOCK_WEB_BROWSER        "web-browser"
 #define STOCK_NEWS_FEED          "news-feed"
 #define STOCK_STYLE              "gnome-settings-theme"
-#define STOCK_STYLES             "gnome-settings-theme"
 #define STOCK_TRANSFER           "package"
 #define STOCK_TRANSFERS          "package"
 #define STOCK_PLUGINS            GTK_STOCK_CONVERT
@@ -38,7 +37,7 @@
 #define STOCK_IMAGE              "gnome-mime-image"
 #define STOCK_NETWORK_OFFLINE    "network-offline"
 #define STOCK_SCRIPT             "stock_script"
-#define STOCK_SCRIPTS            "stock_script"
+#define STOCK_SCRIPTS            "gnome-settings-theme"
 #define STOCK_SEND               "stock_mail-send"
 #define STOCK_TAB_NEW            "stock_new-tab"
 #define STOCK_USER_TRASH         "gnome-stock-trash"
diff --git a/midori/sokoke.c b/midori/sokoke.c
index 1bc9aa1..0032aaf 100644
--- a/midori/sokoke.c
+++ b/midori/sokoke.c
@@ -866,7 +866,6 @@ sokoke_register_stock_items (void)
         { STOCK_HISTORY,        N_("_History"), 0, 0, GTK_STOCK_SORT_ASCENDING },
         { STOCK_HOMEPAGE,       N_("_Homepage"), 0, 0, GTK_STOCK_HOME },
         { STOCK_SCRIPTS,        N_("_Userscripts"), 0, 0, GTK_STOCK_EXECUTE },
-        { STOCK_STYLES,         N_("User_styles"), 0, 0, GTK_STOCK_SELECT_COLOR },
         { STOCK_TAB_NEW,        N_("New _Tab"), 0, 0, GTK_STOCK_ADD },
         { STOCK_TRANSFERS,      N_("_Transfers"), 0, 0, GTK_STOCK_SAVE },
         { STOCK_PLUGINS,        N_("Netscape p_lugins"), 0, 0, GTK_STOCK_CONVERT },
diff --git a/panels/midori-addons.c b/panels/midori-addons.c
index db30288..cb81b01 100644
--- a/panels/midori-addons.c
+++ b/panels/midori-addons.c
@@ -29,7 +29,6 @@ struct _MidoriAddons
 {
     GtkVBox parent_instance;
 
-    MidoriAddonKind kind;
     GtkWidget* web_widget;
     GtkWidget* toolbar;
     GtkWidget* treeview;
@@ -137,23 +136,13 @@ midori_addons_class_init (MidoriAddonsClass* class)
 static const gchar*
 midori_addons_get_label (MidoriViewable* viewable)
 {
-    if (MIDORI_ADDONS (viewable)->kind == MIDORI_ADDON_USER_SCRIPTS)
-        return _("Userscripts");
-    else if (MIDORI_ADDONS (viewable)->kind == MIDORI_ADDON_USER_STYLES)
-        return _("Userstyles");
-    else
-        return NULL;
+    return _("Userscripts");
 }
 
 static const gchar*
 midori_addons_get_stock_id (MidoriViewable* viewable)
 {
-    if (MIDORI_ADDONS (viewable)->kind == MIDORI_ADDON_USER_SCRIPTS)
-        return STOCK_SCRIPTS;
-    else if (MIDORI_ADDONS (viewable)->kind == MIDORI_ADDON_USER_STYLES)
-        return STOCK_STYLES;
-    else
-        return NULL;
+    return STOCK_SCRIPTS;
 }
 
 static void
@@ -175,7 +164,7 @@ midori_addons_set_property (GObject*      object,
     switch (prop_id)
     {
     case PROP_KIND:
-        addons->kind = g_value_get_enum (value);
+        /* Ignored */
         break;
     case PROP_WEB_WIDGET:
         katze_object_assign (addons->web_widget, g_value_dup_object (value));
@@ -197,7 +186,7 @@ midori_addons_get_property (GObject*    object,
     switch (prop_id)
     {
     case PROP_KIND:
-        g_value_set_enum (value, addons->kind);
+        g_value_set_enum (value, MIDORI_ADDON_USER_SCRIPTS);
         break;
     case PROP_WEB_WIDGET:
         g_value_set_object (value, addons->web_widget);
@@ -208,57 +197,31 @@ midori_addons_get_property (GObject*    object,
     }
 }
 
-static const gchar*
-_addons_get_folder (MidoriAddons* addons)
-{
-    switch (addons->kind)
-    {
-    case MIDORI_ADDON_USER_SCRIPTS:
-        return "scripts";
-    case MIDORI_ADDON_USER_STYLES:
-        return "styles";
-    default:
-        return NULL;
-    }
-}
-
-static const gchar*
-_addons_get_extension (MidoriAddons* addons)
-{
-    switch (addons->kind)
-    {
-    case MIDORI_ADDON_USER_SCRIPTS:
-        return ".js";
-    case MIDORI_ADDON_USER_STYLES:
-        return ".css";
-    default:
-        return NULL;
-    }
-}
-
 static GSList*
 _addons_get_directories (MidoriAddons* addons)
 {
+    const gchar* folders[] = { "scripts", "styles" };
     GSList *directories;
+    guint i;
     const char* const* datadirs;
-    const gchar* folder;
     gchar* path;
 
-    folder = _addons_get_folder (addons);
-
-    /* user data dir */
-    path = g_build_path (G_DIR_SEPARATOR_S, g_get_user_data_dir (),
-                         PACKAGE_NAME, folder, NULL);
-    directories = g_slist_prepend (NULL, path);
+    directories = NULL;
 
-    /* system data dirs */
-    datadirs = g_get_system_data_dirs ();
-    while (*datadirs)
+    for (i = 0; i < G_N_ELEMENTS (folders); i++)
     {
-        path = g_build_path (G_DIR_SEPARATOR_S, *datadirs,
-                             PACKAGE_NAME, folder, NULL);
+        path = g_build_path (G_DIR_SEPARATOR_S, g_get_user_data_dir (),
+                             PACKAGE_NAME, folders[i], NULL);
         directories = g_slist_prepend (directories, path);
-        datadirs++;
+
+        datadirs = g_get_system_data_dirs ();
+        while (*datadirs)
+        {
+            path = g_build_path (G_DIR_SEPARATOR_S, *datadirs,
+                                 PACKAGE_NAME, folders[i], NULL);
+            directories = g_slist_prepend (directories, path);
+            datadirs++;
+        }
     }
 
     return directories;
@@ -269,8 +232,6 @@ _addons_get_files (MidoriAddons* addons)
 {
     GSList* files;
     GDir* addon_dir;
-    const gchar* folder;
-    const gchar* extension;
     GSList* list;
     GSList* directories;
     const gchar* filename;
@@ -278,8 +239,6 @@ _addons_get_files (MidoriAddons* addons)
     gchar* fullname;
 
     files = NULL;
-    folder = _addons_get_folder (addons);
-    extension = _addons_get_extension (addons);
 
     directories = _addons_get_directories (addons);
     list = directories;
@@ -290,7 +249,8 @@ _addons_get_files (MidoriAddons* addons)
         {
             while ((filename = g_dir_read_name (addon_dir)))
             {
-                if (g_str_has_suffix (filename, extension))
+                if (g_str_has_suffix (filename, ".js")
+                    || g_str_has_suffix (filename, ".css"))
                 {
                     fullname = g_build_filename (dirname, filename, NULL);
                     files = g_slist_prepend (files, fullname);
@@ -324,8 +284,10 @@ midori_addons_button_add_clicked_cb (GtkToolItem*  toolitem,
         GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (addons))),
         GTK_DIALOG_DESTROY_WITH_PARENT,
         GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE,
-        "Put scripts in the folder ~/.local/share/midori/%s",
-        _addons_get_folder (addons));
+        _("Copy userscripts to the folder %s and "
+        "copy userstyles to the folder %s."),
+        "~/.local/share/midori/scripts",
+        "~/.local/share/midori/styles");
     gtk_dialog_run (GTK_DIALOG (dialog));
     gtk_widget_destroy (dialog);
 }
@@ -850,7 +812,7 @@ midori_web_widget_context_ready_cb (GtkWidget*         web_widget,
             }
 
         exception = NULL;
-        if (addons->kind == MIDORI_ADDON_USER_SCRIPTS &&
+        if (g_str_has_suffix (fullname, ".js") &&
             !_js_script_from_file (js_context, fullname, &exception))
         {
             message = g_strdup_printf ("console.error ('%s');", exception);
@@ -858,7 +820,7 @@ midori_web_widget_context_ready_cb (GtkWidget*         web_widget,
             g_free (message);
             g_free (exception);
         }
-        else if (addons->kind == MIDORI_ADDON_USER_STYLES &&
+        else if (g_str_has_suffix (fullname, ".css") &&
             !_js_style_from_file (js_context, fullname, &exception))
         {
             message = g_strdup_printf ("console.error ('%s');", exception);
@@ -1012,7 +974,6 @@ midori_addons_update_elements (MidoriAddons* addons)
     struct AddonElement* element;
 
     g_return_if_fail (MIDORI_IS_ADDONS (addons));
-    g_return_if_fail (addons->kind != MIDORI_ADDON_NONE);
 
     /* FIXME: would GHashTable be better? */
     disabled = g_tree_new ((GCompareFunc)strcmp);
@@ -1043,7 +1004,7 @@ midori_addons_update_elements (MidoriAddons* addons)
         excludes = NULL;
         broken = FALSE;
 
-        if (addons->kind == MIDORI_ADDON_USER_SCRIPTS)
+        if (g_str_has_suffix (fullname, ".js"))
         {
             name = NULL;
             if (!js_metadata_from_file (fullname, &includes, &excludes,
@@ -1056,7 +1017,7 @@ midori_addons_update_elements (MidoriAddons* addons)
                 displayname = name;
             }
         }
-        else if (addons->kind == MIDORI_ADDON_USER_STYLES)
+        else if (g_str_has_suffix (fullname, ".css"))
         {
             if (!css_metadata_from_file (fullname, &includes, &excludes))
                 broken = TRUE;



More information about the Xfce4-commits mailing list