]> spindle.queued.net Git - midori/commitdiff
Use speeddial property to store GKeyFile with speeddial entries
authorPaweł Forysiuk <tuxator@o2.pl>
Mon, 14 Mar 2011 19:07:18 +0000 (20:07 +0100)
committerChristian Dywan <christian@twotoasts.de>
Tue, 22 Mar 2011 22:01:59 +0000 (23:01 +0100)
midori/main.c
midori/midori-app.c
midori/midori-browser.c

index d224192655234709678c0965fdc25d1842bbd07f..7d1687464caf724d6529ac628faca137f56ec7dd 100644 (file)
@@ -1467,19 +1467,28 @@ signal_handler (int signal_id)
 }
 #endif
 
-#if 0
-static void
-midori_speeddial_import_from_json (const gchar* json_file,
-                                   const gchar* speeddial_file)
+static GKeyFile*
+speeddial_new_from_file (const gchar* config,
+                         GError**     error)
 {
+
+    GKeyFile* key_file = g_key_file_new ();
+    gchar* config_file = g_build_filename (config, "speeddial", NULL);
     guint i = 0;
     guint columns = 3;
     guint slot_count = 0;
     gchar* json_content;
     gchar** parts;
-    GKeyFile* key_file = g_key_file_new ();
 
-    g_file_get_contents (json_file, &json_content, NULL, NULL);
+    if (g_key_file_load_from_file (key_file, config_file, G_KEY_FILE_NONE, error))
+    {
+        g_free (config_file);
+        return key_file;
+    }
+
+    katze_assign (config_file, g_build_filename (config, "speeddial.json", NULL));
+    g_file_get_contents (config_file, &json_content, NULL, NULL);
+    g_free (config_file);
     parts = g_strsplit (json_content ? json_content : "", ",", -1);
     while (parts && parts[i] != NULL)
     {
@@ -1588,13 +1597,10 @@ midori_speeddial_import_from_json (const gchar* json_file,
     g_key_file_set_integer (key_file, "settings", "columns", columns);
     g_key_file_set_integer (key_file, "settings", "rows", slot_count / columns);
 
-    sokoke_key_file_save_to_file (key_file, speeddial_file, NULL);
-
     g_strfreev (parts);
     g_free (json_content);
-    g_key_file_free (key_file);
+    return key_file;
 }
-#endif
 
 static void
 midori_soup_session_block_uris_cb (SoupSession* session,
@@ -1812,9 +1818,7 @@ main (int    argc,
     MidoriWebSettings* settings;
     gchar* config_file;
     gchar* bookmarks_file;
-#if 0
-    gchar* speeddial_file;
-#endif
+    GKeyFile* speeddial;
     gboolean bookmarks_exist;
     MidoriStartup load_on_startup;
     KatzeArray* search_engines;
@@ -2231,16 +2235,7 @@ main (int    argc,
     g_free (bookmarks_file);
     midori_startup_timer ("History read: \t%f");
 
-    #if 0
-    speeddial_file = g_build_filename (config, "speeddial", NULL);
-    if (g_access (speeddial_file, F_OK) != 0)
-    {
-        gchar* json_file = g_build_filename (config, "speeddial.json", NULL);
-        midori_speeddial_import_from_json (json_file, speeddial_file);
-        g_free (json_file);
-    }
-    g_free (speeddial_file);
-    #endif
+    speeddial = speeddial_new_from_file (config, &error);
 
     /* In case of errors */
     if (error_messages->len)
@@ -2359,6 +2354,7 @@ main (int    argc,
                        "trash", trash,
                        "search-engines", search_engines,
                        "history", history,
+                       "speed-dial", speeddial,
                        NULL);
     g_object_unref (history);
     g_object_unref (search_engines);
@@ -2419,6 +2415,7 @@ main (int    argc,
     }
 
     g_object_unref (settings);
+    g_key_file_free (speeddial);
     g_object_unref (app);
     g_free (config_file);
     return 0;
index 4440de704628bae01949df89c45748f82810de2e..f88741e2d6a9ec04b864629d87a1dd547fea2698 100644 (file)
@@ -60,6 +60,7 @@ struct _MidoriApp
     KatzeArray* trash;
     KatzeArray* search_engines;
     KatzeArray* history;
+    GKeyFile* speeddial;
     KatzeArray* extensions;
     KatzeArray* browsers;
 
@@ -97,6 +98,7 @@ enum
     PROP_TRASH,
     PROP_SEARCH_ENGINES,
     PROP_HISTORY,
+    PROP_SPEED_DIAL,
     PROP_EXTENSIONS,
     PROP_BROWSERS,
     PROP_BROWSER
@@ -149,6 +151,7 @@ midori_browser_new_window_cb (MidoriBrowser* browser,
                       "trash", app->trash,
                       "search-engines", app->search_engines,
                       "history", app->history,
+                      "speed-dial", app->speeddial,
                       NULL);
     else
         new_browser = midori_app_create_browser (app);
@@ -365,6 +368,23 @@ midori_app_class_init (MidoriAppClass* class)
                                      KATZE_TYPE_ARRAY,
                                      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+
+
+    /**
+    * MidoriApp:speed-dial:
+    *
+    * The speed dial configuration file.
+    *
+    * Since: 0.3.4
+    */
+    g_object_class_install_property (gobject_class,
+                                     PROP_SPEED_DIAL,
+                                     g_param_spec_pointer (
+                                     "speed-dial",
+                                     "Speeddial",
+                                     "Pointer to key-value object with speed dial items",
+                                     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
     /**
     * MidoriApp:browsers:
     *
@@ -717,6 +737,7 @@ midori_app_init (MidoriApp* app)
     app->trash = NULL;
     app->search_engines = NULL;
     app->history = NULL;
+    app->speeddial = NULL;
     app->extensions = NULL;
     app->browsers = katze_array_new (MIDORI_TYPE_BROWSER);
 
@@ -743,6 +764,7 @@ midori_app_finalize (GObject* object)
     katze_object_assign (app->trash, NULL);
     katze_object_assign (app->search_engines, NULL);
     katze_object_assign (app->history, NULL);
+    app->speeddial = NULL;
     katze_object_assign (app->extensions, NULL);
     katze_object_assign (app->browsers, NULL);
 
@@ -793,6 +815,9 @@ midori_app_set_property (GObject*      object,
     case PROP_HISTORY:
         katze_object_assign (app->history, g_value_dup_object (value));
         break;
+    case PROP_SPEED_DIAL:
+        app->speeddial = g_value_get_pointer (value);
+        break;
     case PROP_EXTENSIONS:
         katze_object_assign (app->extensions, g_value_dup_object (value));
         break;
@@ -830,6 +855,9 @@ midori_app_get_property (GObject*    object,
     case PROP_HISTORY:
         g_value_set_object (value, app->history);
         break;
+    case PROP_SPEED_DIAL:
+        g_value_set_pointer (value, app->speeddial);
+        break;
     case PROP_EXTENSIONS:
         g_value_set_object (value, app->extensions);
         break;
@@ -1122,6 +1150,7 @@ midori_app_create_browser (MidoriApp* app)
                          "trash", app->trash,
                          "search-engines", app->search_engines,
                          "history", app->history,
+                         "speed-dial", app->speeddial,
                          NULL);
 }
 
index 10c12b12ae8ac12a90c91d47650c5d5ed3b3107f..d552281ea06eb8503d25eba5702137b06ed88a1e 100644 (file)
@@ -94,6 +94,7 @@ struct _MidoriBrowser
     KatzeArray* trash;
     KatzeArray* search_engines;
     KatzeArray* history;
+    GKeyFile* speeddial;
     gboolean show_tabs;
 
     gboolean show_navigationbar;
@@ -128,6 +129,7 @@ enum
     PROP_TRASH,
     PROP_SEARCH_ENGINES,
     PROP_HISTORY,
+    PROP_SPEED_DIAL,
     PROP_SHOW_TABS,
 };
 
@@ -2085,6 +2087,22 @@ midori_browser_class_init (MidoriBrowserClass* class)
                                      KATZE_TYPE_ARRAY,
                                      flags));
 
+    /**
+    * MidoriBrowser:speed-dial:
+    *
+    * The speed dial configuration file.
+    *
+    * Since: 0.3.4
+    */
+    g_object_class_install_property (gobject_class,
+                                     PROP_SPEED_DIAL,
+                                     g_param_spec_pointer (
+                                     "speed-dial",
+                                     "Speeddial",
+                                     "Pointer to key-value object with speed dial items",
+                                     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+
     /**
      * MidoriBrowser:show-tabs:
      *
@@ -5651,6 +5669,7 @@ midori_browser_init (MidoriBrowser* browser)
     browser->bookmarks = NULL;
     browser->trash = NULL;
     browser->search_engines = NULL;
+    browser->speeddial = NULL;
 
     /* Setup the window metrics */
     g_signal_connect (browser, "realize",
@@ -6097,6 +6116,7 @@ midori_browser_finalize (GObject* object)
     katze_object_assign (browser->trash, NULL);
     katze_object_assign (browser->search_engines, NULL);
     katze_object_assign (browser->history, NULL);
+    browser->speeddial = NULL;
 
     katze_assign (browser->news_aggregator, NULL);
 
@@ -6663,6 +6683,9 @@ midori_browser_set_property (GObject*      object,
     case PROP_HISTORY:
         midori_browser_set_history (browser, g_value_get_object (value));
         break;
+    case PROP_SPEED_DIAL:
+        browser->speeddial = g_value_get_pointer (value);
+        break;
     case PROP_SHOW_TABS:
         browser->show_tabs = g_value_get_boolean (value);
         if (browser->show_tabs)
@@ -6738,6 +6761,9 @@ midori_browser_get_property (GObject*    object,
     case PROP_HISTORY:
         g_value_set_object (value, browser->history);
         break;
+    case PROP_SPEED_DIAL:
+        g_value_set_pointer (value, browser->speeddial);
+        break;
     case PROP_SHOW_TABS:
         g_value_set_boolean (value, browser->show_tabs);
         break;