[gnome-commander/GSettings] Starts conversion of data to gsettings with options.size_disp_mode



commit 32aa5bb010ed687cffc03ba7085358379131fb42
Author: Uwe Scholz <uwescholz src gnome org>
Date:   Fri Apr 29 19:57:16 2016 +0200

    Starts conversion of data to gsettings with options.size_disp_mode

 src/gnome-cmd-data.cc |  274 +++++++++++++++++++++++++------------------------
 src/gnome-cmd-data.h  |    5 +-
 src/main.cc           |    1 +
 3 files changed, 143 insertions(+), 137 deletions(-)
---
diff --git a/src/gnome-cmd-data.cc b/src/gnome-cmd-data.cc
index 658f3be..0f56d90 100644
--- a/src/gnome-cmd-data.cc
+++ b/src/gnome-cmd-data.cc
@@ -49,6 +49,141 @@ using namespace std;
 GnomeCmdData gnome_cmd_data;
 GnomeVFSVolumeMonitor *monitor = NULL;
 
+struct _GcmdSettings
+{
+    GObject parent;
+
+    GSettings *general;
+    GSettings *interface;
+};
+
+G_DEFINE_TYPE (GcmdSettings, gcmd_settings, G_TYPE_OBJECT)
+
+static void gcmd_settings_finalize (GObject *object)
+{
+//    GcmdSettings *gs = GCMD_SETTINGS (object);
+//
+//    g_free (gs->old_scheme);
+//
+    G_OBJECT_CLASS (gcmd_settings_parent_class)->finalize (object);
+}
+
+static void gcmd_settings_dispose (GObject *object)
+{
+    GcmdSettings *gs = GCMD_SETTINGS (object);
+
+    g_clear_object (&gs->general);
+    g_clear_object (&gs->interface);
+
+    G_OBJECT_CLASS (gcmd_settings_parent_class)->dispose (object);
+}
+
+static void set_font (GcmdSettings *gs,
+                      const gchar *font)
+{
+    //Hier muss jetzt die Schrift in den Panels aktualisiert werden!
+    printf("%s\n", font);
+}
+
+static void on_system_font_changed (GSettings     *settings,
+                                    const gchar   *key,
+                                    GcmdSettings *gs)
+{
+
+    gboolean use_default_font;
+
+    use_default_font = g_settings_get_boolean (gs->general,
+                           GCMD_SETTINGS_USE_DEFAULT_FONT);
+
+    if (use_default_font)
+    {
+        gchar *font;
+
+        font = g_settings_get_string (settings, key);
+        set_font (gs, font);
+        g_free (font);
+    }
+}
+
+static void on_use_default_font_changed (GSettings     *settings,
+                                         const gchar   *key,
+                                         GcmdSettings *gs)
+{
+    gboolean def;
+    gchar *font;
+
+    def = g_settings_get_boolean (settings, key);
+
+    if (def)
+    {
+        font = g_settings_get_string (gs->interface,
+                          GCMD_SETTINGS_SYSTEM_FONT);
+    }
+    else
+    {
+        font = g_settings_get_string (gs->general,
+                          GCMD_SETTINGS_PANEL_FONT);
+    }
+
+    set_font (gs, font);
+
+    g_free (font);
+}
+
+static void on_general_font_changed (GSettings     *settings,
+                                     const gchar   *key,
+                                     GcmdSettings *gs)
+{
+    gboolean use_default_font;
+
+    use_default_font = g_settings_get_boolean (gs->general,
+                           GCMD_SETTINGS_USE_DEFAULT_FONT);
+
+    if (!use_default_font)
+    {
+        gchar *font;
+
+        font = g_settings_get_string (settings, key);
+        set_font (gs, font);
+        g_free (font);
+    }
+}
+
+static void gcmd_settings_class_init (GcmdSettingsClass *klass)
+{
+    GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+    object_class->finalize = gcmd_settings_finalize;
+    object_class->dispose = gcmd_settings_dispose;
+}
+
+GcmdSettings *gcmd_settings_new ()
+{
+    return (GcmdSettings *) g_object_new (GCMD_TYPE_SETTINGS, NULL);
+}
+
+static void gcmd_settings_init (GcmdSettings *gs)
+{
+    gs->interface = g_settings_new ("org.gnome.desktop.interface");
+    gs->general = g_settings_new (GCMD_PREF_GENERAL);
+
+    g_signal_connect (gs->interface,
+                      "changed::monospace-font-name",
+                      G_CALLBACK (on_system_font_changed),
+                      gs);
+
+    g_signal_connect (gs->general,
+                      "changed::use-default-font",
+                      G_CALLBACK (on_use_default_font_changed),
+                      gs);
+
+    g_signal_connect (gs->general,
+                      "changed::panel-font",
+                      G_CALLBACK (on_general_font_changed),
+                      gs);
+}
+
+
 struct GnomeCmdData::Private
 {
     GnomeCmdConList *con_list;
@@ -1867,7 +2002,7 @@ void GnomeCmdData::load()
  *     (2) rename data files in *.bak; (3) return TRUE
  * @li If no: return FALSE
  */
-gboolean GnomeCmdData::load_data_into_gsettings (const gchar *fname)
+gboolean GnomeCmdData::migrate_data_into_gsettings (const gchar *fname, GcmdSettings *settings)
 {
     gboolean xml_was_there;
     gchar *xml_cfg_path = config_dir ? g_build_filename (config_dir, PACKAGE ".xml", NULL) : 
g_build_filename (g_get_home_dir (), "." PACKAGE, PACKAGE ".xml", NULL);
@@ -1876,7 +2011,8 @@ gboolean GnomeCmdData::load_data_into_gsettings (const gchar *fname)
 
     if (fd)
     {
-        // ToDo: Data migration
+        // Data migration
+        g_settings_set_int (settings->general, GCMD_SETTINGS_SIZE_DISP_MODE, options.size_disp_mode);
 
         fclose (fd);
         xml_was_there = TRUE;
@@ -2320,137 +2456,3 @@ XML::xstream &operator << (XML::xstream &xml, GnomeCmdData::BookmarksConfig &cfg
 
     return xml;
 }
-
-struct _GcmdSettings
-{
-    GObject parent;
-
-    GSettings *general;
-    GSettings *interface;
-};
-
-G_DEFINE_TYPE (GcmdSettings, gcmd_settings, G_TYPE_OBJECT)
-
-static void gcmd_settings_finalize (GObject *object)
-{
-//    GcmdSettings *gs = GCMD_SETTINGS (object);
-//
-//    g_free (gs->old_scheme);
-//
-    G_OBJECT_CLASS (gcmd_settings_parent_class)->finalize (object);
-}
-
-static void gcmd_settings_dispose (GObject *object)
-{
-    GcmdSettings *gs = GCMD_SETTINGS (object);
-
-    g_clear_object (&gs->general);
-    g_clear_object (&gs->interface);
-
-    G_OBJECT_CLASS (gcmd_settings_parent_class)->dispose (object);
-}
-
-static void set_font (GcmdSettings *gs,
-                      const gchar *font)
-{
-    //Hier muss jetzt die Schrift in den Panels aktualisiert werden!
-    printf("%s\n", font);
-}
-
-static void on_system_font_changed (GSettings     *settings,
-                                    const gchar   *key,
-                                    GcmdSettings *gs)
-{
-
-    gboolean use_default_font;
-
-    use_default_font = g_settings_get_boolean (gs->general,
-                           GCMD_SETTINGS_USE_DEFAULT_FONT);
-
-    if (use_default_font)
-    {
-        gchar *font;
-
-        font = g_settings_get_string (settings, key);
-        set_font (gs, font);
-        g_free (font);
-    }
-}
-
-static void on_use_default_font_changed (GSettings     *settings,
-                                         const gchar   *key,
-                                         GcmdSettings *gs)
-{
-    gboolean def;
-    gchar *font;
-
-    def = g_settings_get_boolean (settings, key);
-
-    if (def)
-    {
-        font = g_settings_get_string (gs->interface,
-                          GCMD_SETTINGS_SYSTEM_FONT);
-    }
-    else
-    {
-        font = g_settings_get_string (gs->general,
-                          GCMD_SETTINGS_PANEL_FONT);
-    }
-
-    set_font (gs, font);
-
-    g_free (font);
-}
-
-static void on_general_font_changed (GSettings     *settings,
-                                     const gchar   *key,
-                                     GcmdSettings *gs)
-{
-    gboolean use_default_font;
-
-    use_default_font = g_settings_get_boolean (gs->general,
-                           GCMD_SETTINGS_USE_DEFAULT_FONT);
-
-    if (!use_default_font)
-    {
-        gchar *font;
-
-        font = g_settings_get_string (settings, key);
-        set_font (gs, font);
-        g_free (font);
-    }
-}
-
-static void gcmd_settings_class_init (GcmdSettingsClass *klass)
-{
-    GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
-    object_class->finalize = gcmd_settings_finalize;
-    object_class->dispose = gcmd_settings_dispose;
-}
-
-GcmdSettings *gcmd_settings_new ()
-{
-    return (GcmdSettings *) g_object_new (GCMD_TYPE_SETTINGS, NULL);
-}
-
-static void gcmd_settings_init (GcmdSettings *gs)
-{
-    gs->interface = g_settings_new ("org.gnome.desktop.interface");
-    gs->general = g_settings_new ("org.gnome.gnome-commander.preferences.general");
-
-    g_signal_connect (gs->interface,
-                      "changed::monospace-font-name",
-                      G_CALLBACK (on_system_font_changed),
-                      gs);
-
-    g_signal_connect (gs->general,
-                      "changed::use-default-font",
-                      G_CALLBACK (on_use_default_font_changed),
-                      gs);
-
-    g_signal_connect (gs->general,
-                      "changed::panel-font",
-                      G_CALLBACK (on_general_font_changed),
-                      gs);
-}
diff --git a/src/gnome-cmd-data.h b/src/gnome-cmd-data.h
index d462a69..fff6745 100644
--- a/src/gnome-cmd-data.h
+++ b/src/gnome-cmd-data.h
@@ -51,6 +51,9 @@ GcmdSettings *gcmd_settings_new (void);
 #define GCMD_SETTINGS_USE_DEFAULT_FONT                "use-default-font"
 #define GCMD_SETTINGS_PANEL_FONT                      "panel-font"
 #define GCMD_SETTINGS_SYSTEM_FONT                     "monospace-font-name"
+#define GCMD_SETTINGS_SIZE_DISP_MODE                  "size-disp-mode"
+
+#define GCMD_PREF_GENERAL                             "org.gnome.gnome-commander.preferences.general"
 
 struct GnomeCmdConRemote;
 
@@ -488,7 +491,7 @@ struct GnomeCmdData
     void free();                // FIXME: free() -> ~GnomeCmdData()
 
     void load();
-    gboolean load_data_into_gsettings (const gchar *fname);
+    gboolean migrate_data_into_gsettings (const gchar *fname, GcmdSettings *settings);
     void load_more();
     void save();
     gint gnome_cmd_data_get_int (const gchar *path, int def);
diff --git a/src/main.cc b/src/main.cc
index f96abcd..b979268 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -148,6 +148,7 @@ int main (int argc, char *argv[])
     gcmd_user_actions.init();
     gnome_cmd_data.load();
     settings = gcmd_settings_new ();
+    gnome_cmd_data.migrate_data_into_gsettings(NULL, settings);
 
     app = unique_app_new ("org.gnome.GnomeCommander", NULL);
 


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