[gnome-commander/GSettings] Migrate gnome_config options from .gnome2/gnome-commander-size into GSettings



commit 725004ec7d9181c4e0c9e49b37c7c9d13114987d
Author: Uwe Scholz <uwescholz src gnome org>
Date:   Sun Aug 7 12:49:57 2016 +0200

    Migrate gnome_config options from .gnome2/gnome-commander-size into GSettings

 data/org.gnome.gnome-commander.gschema.xml |   77 ++++++++++++++++++++++++++
 src/gnome-cmd-data.cc                      |   83 ++++++++++++++++++++++------
 src/gnome-cmd-data.h                       |   15 ++++-
 src/gnome-cmd-file-list.cc                 |   25 +++-----
 src/gnome-cmd-file-list.h                  |    1 -
 5 files changed, 164 insertions(+), 37 deletions(-)
---
diff --git a/data/org.gnome.gnome-commander.gschema.xml b/data/org.gnome.gnome-commander.gschema.xml
index 323a089..f24f294 100644
--- a/data/org.gnome.gnome-commander.gschema.xml
+++ b/data/org.gnome.gnome-commander.gschema.xml
@@ -276,6 +276,83 @@
           Position of the main window in vertical direction.
       </description>
     </key>
+    <key name="main-win-width" type="u">
+      <default>600</default>
+      <summary>Main window width</summary>
+      <description>
+          This options defines the width of the main window.
+      </description>
+    </key>
+    <key name="main-win-height" type="u">
+      <default>400</default>
+      <summary>Main window heigth</summary>
+      <description>
+          This options defines the heigth of the main window.
+      </description>
+    </key>
+    <key name="column-width-icon" type="u">
+      <default>16</default>
+      <summary>Width of icon column</summary>
+      <description>
+          This options defines the width of the icon column.
+      </description>
+    </key>
+    <key name="column-width-name" type="u">
+      <default>140</default>
+      <summary>Width of name column</summary>
+      <description>
+          This options defines the width of the name column.
+      </description>
+    </key>
+    <key name="column-width-ext" type="u">
+      <default>40</default>
+      <summary>Width of extension column</summary>
+      <description>
+          This options defines the width of the extension column.
+      </description>
+    </key>
+    <key name="column-width-dir" type="u">
+      <default>240</default>
+      <summary>Width of directory column</summary>
+      <description>
+          This options defines the width of the directory column.
+      </description>
+    </key>
+    <key name="column-width-size" type="u">
+      <default>70</default>
+      <summary>Width of size column</summary>
+      <description>
+          This options defines the width of the size column.
+      </description>
+    </key>
+    <key name="column-width-date" type="u">
+      <default>150</default>
+      <summary>Width of date column</summary>
+      <description>
+          This options defines the width of the date column.
+      </description>
+    </key>
+    <key name="column-width-perm" type="u">
+      <default>70</default>
+      <summary>Width of permissions column</summary>
+      <description>
+          This options defines the width of the permissions column.
+      </description>
+    </key>
+    <key name="column-width-owner" type="u">
+      <default>50</default>
+      <summary>Width of owner column</summary>
+      <description>
+          This options defines the width of the owner column.
+      </description>
+    </key>
+    <key name="column-width-group" type="u">
+      <default>50</default>
+      <summary>Width of group column</summary>
+      <description>
+          This options defines the width of the group column.
+      </description>
+    </key>
     <!-- https://developer.gimp.org/api/2.0/gdk/gdk-Event-Structures.html#GdkWindowState -->
     <key name="main-win-state" type="u">
       <default l10n="messages">4</default>
diff --git a/src/gnome-cmd-data.cc b/src/gnome-cmd-data.cc
index cd3033f..59b022c 100644
--- a/src/gnome-cmd-data.cc
+++ b/src/gnome-cmd-data.cc
@@ -3022,6 +3022,49 @@ void GnomeCmdData::migrate_all_data_to_gsettings()
     }
     g_free(package_config_path);
 
+    ////////////////////////////////////////////////////////////////////////////
+    // Data migration from .gnome2/gnome-commander-size, created by gnome_config
+    ////////////////////////////////////////////////////////////////////////////
+    package_config_path = g_strdup_printf("%s-size",gnome_config_get_real_path(PACKAGE));
+    fd = fopen (package_config_path, "r");
+    if (fd)
+    {
+        // main_win/width
+        migrate_data_int_value_into_gsettings(get_int ("/gnome-commander-size/main_win/width", 600),
+                                                        options.gcmd_settings->general, 
GCMD_SETTINGS_MAIN_WIN_WIDTH);
+        // main_win/height
+        migrate_data_int_value_into_gsettings(get_int ("/gnome-commander-size/main_win/height", 400),
+                                                        options.gcmd_settings->general, 
GCMD_SETTINGS_MAIN_WIN_HEIGHT);
+        // column-widths/fs_col_width0..8
+        migrate_data_int_value_into_gsettings(get_int ("/gnome-commander-size/column-widths/fs_col_width0", 
16),
+                                                        options.gcmd_settings->general, 
GCMD_SETTINGS_COLUMN_WIDTH_ICON);
+        migrate_data_int_value_into_gsettings(get_int ("/gnome-commander-size/column-widths/fs_col_width1", 
140),
+                                                        options.gcmd_settings->general, 
GCMD_SETTINGS_COLUMN_WIDTH_NAME);
+        migrate_data_int_value_into_gsettings(get_int ("/gnome-commander-size/column-widths/fs_col_width2", 
40),
+                                                        options.gcmd_settings->general, 
GCMD_SETTINGS_COLUMN_WIDTH_EXT);
+        migrate_data_int_value_into_gsettings(get_int ("/gnome-commander-size/column-widths/fs_col_width3", 
240),
+                                                        options.gcmd_settings->general, 
GCMD_SETTINGS_COLUMN_WIDTH_DIR);
+        migrate_data_int_value_into_gsettings(get_int ("/gnome-commander-size/column-widths/fs_col_width4", 
70),
+                                                        options.gcmd_settings->general, 
GCMD_SETTINGS_COLUMN_WIDTH_SIZE);
+        migrate_data_int_value_into_gsettings(get_int ("/gnome-commander-size/column-widths/fs_col_width5", 
150),
+                                                        options.gcmd_settings->general, 
GCMD_SETTINGS_COLUMN_WIDTH_DATE);
+        migrate_data_int_value_into_gsettings(get_int ("/gnome-commander-size/column-widths/fs_col_width6", 
70),
+                                                        options.gcmd_settings->general, 
GCMD_SETTINGS_COLUMN_WIDTH_PERM);
+        migrate_data_int_value_into_gsettings(get_int ("/gnome-commander-size/column-widths/fs_col_width7", 
50),
+                                                        options.gcmd_settings->general, 
GCMD_SETTINGS_COLUMN_WIDTH_OWNER);
+        migrate_data_int_value_into_gsettings(get_int ("/gnome-commander-size/column-widths/fs_col_width8", 
50),
+                                                        options.gcmd_settings->general, 
GCMD_SETTINGS_COLUMN_WIDTH_GROUP);
+        fclose (fd);
+
+        // Rename config file
+        gchar* temp;
+        temp = g_strdup_printf("%s.deprecated", package_config_path);
+        if (g_rename(package_config_path, temp) != 0 )
+            g_warning("Renaming of %s to %s failed!", package_config_path, temp);
+        g_free(temp);
+    }
+    g_free(package_config_path);
+
     // Activate gcmd gsettings signals
     gcmd_connect_gsettings_signals(gnome_cmd_data.options.gcmd_settings);
 }
@@ -3350,15 +3393,17 @@ void GnomeCmdData::load()
     options.select_dirs = g_settings_get_boolean (options.gcmd_settings->general, GCMD_SETTINGS_SELECT_DIRS);
     options.case_sens_sort = g_settings_get_boolean (options.gcmd_settings->general, 
GCMD_SETTINGS_CASE_SENSITIVE);
 
-    main_win_width = get_int ("/gnome-commander-size/main_win/width", 600);
-    main_win_height = get_int ("/gnome-commander-size/main_win/height", 400);
-
-    for (gint i=0; i<GnomeCmdFileList::NUM_COLUMNS; i++)
-    {
-        gchar *tmp = g_strdup_printf ("/gnome-commander-size/column-widths/fs_col_width%d", i);
-        fs_col_width[i] = get_int (tmp, 
GnomeCmdFileList::get_column_default_width((GnomeCmdFileList::ColumnID) i));
-        g_free (tmp);
-    }
+    main_win_width = g_settings_get_uint (options.gcmd_settings->general, GCMD_SETTINGS_MAIN_WIN_WIDTH);
+    main_win_height = g_settings_get_uint (options.gcmd_settings->general, GCMD_SETTINGS_MAIN_WIN_HEIGHT);
+    fs_col_width[0] = g_settings_get_uint (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_ICON);
+    fs_col_width[1] = g_settings_get_uint (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_NAME);
+    fs_col_width[2] = g_settings_get_uint (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_EXT);
+    fs_col_width[3] = g_settings_get_uint (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_DIR);
+    fs_col_width[4] = g_settings_get_uint (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_SIZE);
+    fs_col_width[5] = g_settings_get_uint (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_DATE);
+    fs_col_width[6] = g_settings_get_uint (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_PERM);
+    fs_col_width[7] = g_settings_get_uint (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_OWNER);
+    fs_col_width[8] = g_settings_get_uint (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_GROUP);
 
     options.color_mode = gcmd_owner.is_root() ? (GnomeCmdColorMode) GNOME_CMD_COLOR_DEEP_BLUE
                                               : (GnomeCmdColorMode) g_settings_get_enum 
(options.gcmd_settings->colors, GCMD_SETTINGS_COLORS_THEME);
@@ -3937,15 +3982,17 @@ void GnomeCmdData::save()
     if (quick_connect_uri)
         set_gsettings_when_changed (options.gcmd_settings->network, GCMD_SETTINGS_QUICK_CONNECT_URI, 
(gpointer) quick_connect_uri);
 
-    gnome_config_set_int ("/gnome-commander-size/main_win/width", main_win_width);
-    gnome_config_set_int ("/gnome-commander-size/main_win/height", main_win_height);
-
-    for (gint i=0; i<GnomeCmdFileList::NUM_COLUMNS; i++)
-    {
-        gchar *tmp = g_strdup_printf ("/gnome-commander-size/column-widths/fs_col_width%d", i);
-        gnome_config_set_int (tmp, fs_col_width[i]);
-        g_free (tmp);
-    }
+    set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_MAIN_WIN_WIDTH, 
&(main_win_width));
+    set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_MAIN_WIN_HEIGHT, 
&(main_win_height));
+    set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_ICON, 
&(fs_col_width[0]));
+    set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_NAME, 
&(fs_col_width[1]));
+    set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_EXT, 
&(fs_col_width[2]));
+    set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_DIR, 
&(fs_col_width[3]));
+    set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_SIZE, 
&(fs_col_width[4]));
+    set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_DATE, 
&(fs_col_width[5]));
+    set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_PERM, 
&(fs_col_width[6]));
+    set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_OWNER, 
&(fs_col_width[7]));
+    set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_COLUMN_WIDTH_GROUP, 
&(fs_col_width[8]));
 
     set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_SAVE_DIRS_ON_EXIT, 
&(options.save_dirs_on_exit));
     set_gsettings_when_changed      (options.gcmd_settings->general, GCMD_SETTINGS_SAVE_TABS_ON_EXIT, 
&(options.save_tabs_on_exit));
diff --git a/src/gnome-cmd-data.h b/src/gnome-cmd-data.h
index 88bb897..c697b60 100644
--- a/src/gnome-cmd-data.h
+++ b/src/gnome-cmd-data.h
@@ -99,6 +99,17 @@ GcmdSettings *gcmd_settings_new (void);
 #define GCMD_SETTINGS_DEV_ONLY_ICON                   "dev-only-icon"
 #define GCMD_SETTINGS_MAINMENU_VISIBILITY             "mainmenu-visibility"
 #define GCMD_SETTINGS_QUICK_SEARCH_SHORTCUT           "quick-search"
+#define GCMD_SETTINGS_MAIN_WIN_WIDTH                  "main-win-width"
+#define GCMD_SETTINGS_MAIN_WIN_HEIGHT                 "main-win-height"
+#define GCMD_SETTINGS_COLUMN_WIDTH_ICON               "column-width-icon"
+#define GCMD_SETTINGS_COLUMN_WIDTH_NAME               "column-width-name"
+#define GCMD_SETTINGS_COLUMN_WIDTH_EXT                "column-width-ext"
+#define GCMD_SETTINGS_COLUMN_WIDTH_DIR                "column-width-dir"
+#define GCMD_SETTINGS_COLUMN_WIDTH_SIZE               "column-width-size"
+#define GCMD_SETTINGS_COLUMN_WIDTH_DATE               "column-width-date"
+#define GCMD_SETTINGS_COLUMN_WIDTH_PERM               "column-width-perm"
+#define GCMD_SETTINGS_COLUMN_WIDTH_OWNER              "column-width-owner"
+#define GCMD_SETTINGS_COLUMN_WIDTH_GROUP              "column-width-group"
 
 #define GCMD_PREF_FILTER                              "org.gnome.gnome-commander.preferences.filter"
 #define GCMD_SETTINGS_FILTER_HIDE_UNKNOWN             "hide-unknown"
@@ -614,8 +625,8 @@ struct GnomeCmdData
 
     gboolean                     use_gcmd_block;
 
-    gint                         main_win_width;
-    gint                         main_win_height;
+    guint                        main_win_width;
+    guint                        main_win_height;
     GdkWindowState               main_win_state;
 
     std::map<guint,std::vector<Tab> > tabs;
diff --git a/src/gnome-cmd-file-list.cc b/src/gnome-cmd-file-list.cc
index fab468e..2e082d7 100644
--- a/src/gnome-cmd-file-list.cc
+++ b/src/gnome-cmd-file-list.cc
@@ -95,7 +95,6 @@ struct GnomeCmdFileListColumn
 {
     guint id;
     const gchar *title;
-    guint default_width;
     GtkJustification justification;
     GtkSortType default_sort_direction;
     GCompareDataFunc sort_func;
@@ -113,15 +112,15 @@ static gint sort_by_group (GnomeCmdFile *f1, GnomeCmdFile *f2, GnomeCmdFileList
 
 
 static GnomeCmdFileListColumn file_list_column[GnomeCmdFileList::NUM_COLUMNS] =
-{{GnomeCmdFileList::COLUMN_ICON,"",16,GTK_JUSTIFY_CENTER,GTK_SORT_ASCENDING, NULL},
- {GnomeCmdFileList::COLUMN_NAME, N_("name"), 140, GTK_JUSTIFY_LEFT, GTK_SORT_ASCENDING, (GCompareDataFunc) 
sort_by_name},
- {GnomeCmdFileList::COLUMN_EXT, N_("ext"), 40, GTK_JUSTIFY_LEFT, GTK_SORT_ASCENDING, (GCompareDataFunc) 
sort_by_ext},
- {GnomeCmdFileList::COLUMN_DIR, N_("dir"), 240, GTK_JUSTIFY_LEFT, GTK_SORT_ASCENDING, (GCompareDataFunc) 
sort_by_dir},
- {GnomeCmdFileList::COLUMN_SIZE, N_("size"), 70, GTK_JUSTIFY_RIGHT, GTK_SORT_DESCENDING, (GCompareDataFunc) 
sort_by_size},
- {GnomeCmdFileList::COLUMN_DATE, N_("date"), 150, GTK_JUSTIFY_LEFT, GTK_SORT_DESCENDING, (GCompareDataFunc) 
sort_by_date},
- {GnomeCmdFileList::COLUMN_PERM, N_("perm"), 70, GTK_JUSTIFY_LEFT, GTK_SORT_ASCENDING, (GCompareDataFunc) 
sort_by_perm},
- {GnomeCmdFileList::COLUMN_OWNER, N_("uid"), 50, GTK_JUSTIFY_LEFT, GTK_SORT_ASCENDING, (GCompareDataFunc) 
sort_by_owner},
- {GnomeCmdFileList::COLUMN_GROUP, N_("gid"), 50, GTK_JUSTIFY_LEFT, GTK_SORT_ASCENDING, (GCompareDataFunc) 
sort_by_group}};
+{{GnomeCmdFileList::COLUMN_ICON,"",GTK_JUSTIFY_CENTER,GTK_SORT_ASCENDING, NULL},
+ {GnomeCmdFileList::COLUMN_NAME, N_("name"), GTK_JUSTIFY_LEFT, GTK_SORT_ASCENDING, (GCompareDataFunc) 
sort_by_name},
+ {GnomeCmdFileList::COLUMN_EXT, N_("ext"), GTK_JUSTIFY_LEFT, GTK_SORT_ASCENDING, (GCompareDataFunc) 
sort_by_ext},
+ {GnomeCmdFileList::COLUMN_DIR, N_("dir"), GTK_JUSTIFY_LEFT, GTK_SORT_ASCENDING, (GCompareDataFunc) 
sort_by_dir},
+ {GnomeCmdFileList::COLUMN_SIZE, N_("size"), GTK_JUSTIFY_RIGHT, GTK_SORT_DESCENDING, (GCompareDataFunc) 
sort_by_size},
+ {GnomeCmdFileList::COLUMN_DATE, N_("date"), GTK_JUSTIFY_LEFT, GTK_SORT_DESCENDING, (GCompareDataFunc) 
sort_by_date},
+ {GnomeCmdFileList::COLUMN_PERM, N_("perm"), GTK_JUSTIFY_LEFT, GTK_SORT_ASCENDING, (GCompareDataFunc) 
sort_by_perm},
+ {GnomeCmdFileList::COLUMN_OWNER, N_("uid"), GTK_JUSTIFY_LEFT, GTK_SORT_ASCENDING, (GCompareDataFunc) 
sort_by_owner},
+ {GnomeCmdFileList::COLUMN_GROUP, N_("gid"), GTK_JUSTIFY_LEFT, GTK_SORT_ASCENDING, (GCompareDataFunc) 
sort_by_group}};
 
 
 struct GnomeCmdFileListClass
@@ -1665,12 +1664,6 @@ static void gnome_cmd_file_list_init (GnomeCmdFileList *fl)
  * Public functions
  ***********************************/
 
-guint GnomeCmdFileList::get_column_default_width (ColumnID col)
-{
-    return file_list_column[col].default_width;
-}
-
-
 GnomeCmdFileList::ColumnID GnomeCmdFileList::get_sort_column() const
 {
     return (ColumnID) priv->current_col;
diff --git a/src/gnome-cmd-file-list.h b/src/gnome-cmd-file-list.h
index ef9a146..23ab33e 100644
--- a/src/gnome-cmd-file-list.h
+++ b/src/gnome-cmd-file-list.h
@@ -198,7 +198,6 @@ struct GnomeCmdFileList
 
     ColumnID get_sort_column() const;
     GtkSortType get_sort_order() const;
-    static guint get_column_default_width(ColumnID col);
 
     void invalidate_tree_size();
 


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