[gnome-commander/GSettings] Adds file permission display mode (perm_disp_mode) to GSettings migration



commit 3aed372f24d2861d4a8cca196088bf8065f94f43
Author: Uwe Scholz <uwescholz src gnome org>
Date:   Sat May 14 15:42:03 2016 +0200

    Adds file permission display mode (perm_disp_mode) to GSettings migration

 data/org.gnome.gnome-commander.gschema.xml |   16 ++++++++++++----
 src/gnome-cmd-data.cc                      |   23 +++++++++++++++++++++--
 src/gnome-cmd-data.h                       |    1 +
 3 files changed, 34 insertions(+), 6 deletions(-)
---
diff --git a/data/org.gnome.gnome-commander.gschema.xml b/data/org.gnome.gnome-commander.gschema.xml
index 353b142..d460d0f 100644
--- a/data/org.gnome.gnome-commander.gschema.xml
+++ b/data/org.gnome.gnome-commander.gschema.xml
@@ -28,6 +28,11 @@
     <value nick="powered" value="3"/>
   </enum>
 
+  <enum id="org.gnome.gnome-commander.preferences.perm-display-mode-enum">
+    <value nick="text" value="0"/>
+    <value nick="numbers" value="1"/>
+  </enum>
+
   <schema gettext-domain="gnome-commander" id="org.gnome.gnome-commander.preferences.general" 
path="/org/gnome/gnome-commander/preferences/general/">
     <key name="use-default-font" type="b">
       <default>true</default>
@@ -49,10 +54,13 @@
         using units such as B, KB or MB.
       </description>
     </key>
-    <key name="perm-disp-mode" type="i">
-      <default l10n="messages">1</default>
-      <summary></summary>
-      <description></description>
+    <key name='perm-display-mode' enum='org.gnome.gnome-commander.preferences.perm-display-mode-enum'>
+      <default l10n="messages">'text'</default>
+      <summary>Defines how the file permission will be displayed in the associated pane column.</summary>
+      <description>
+        The 'text' option results in a symbolic representation (e.g. rw-r--r--), whereas 'numbers'
+        results in an octal number representation (e.g. 644) of the mode bits pattern.
+      </description>
     </key>
     <key name="layout" type="i">
       <default l10n="messages">2</default>
diff --git a/src/gnome-cmd-data.cc b/src/gnome-cmd-data.cc
index 7274b12..26e8f0b 100644
--- a/src/gnome-cmd-data.cc
+++ b/src/gnome-cmd-data.cc
@@ -86,6 +86,16 @@ void on_size_display_mode_changed ()
     main_win->update_view();
 }
 
+void on_perm_display_mode_changed ()
+{
+    gint perm_disp_mode;
+
+    perm_disp_mode = g_settings_get_enum (gnome_cmd_data.options.gcmd_settings->general, 
GCMD_SETTINGS_PERM_DISP_MODE);
+    gnome_cmd_data.options.perm_disp_mode = (GnomeCmdPermDispMode) perm_disp_mode;
+
+    main_win->update_view();
+}
+
 static void gcmd_settings_class_init (GcmdSettingsClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -106,6 +116,11 @@ static void gcmd_connect_gsettings_signals(GcmdSettings *gs)
                       "changed::size-display-mode",
                       G_CALLBACK (on_size_display_mode_changed),
                       NULL);
+
+    g_signal_connect (gs->general,
+                      "changed::perm-display-mode",
+                      G_CALLBACK (on_perm_display_mode_changed),
+                      NULL);
 }
 
 
@@ -1428,6 +1443,10 @@ void GnomeCmdData::migrate_all_data_to_gsettings()
         ihelper = migrate_data_int_value_into_gsettings(gnome_cmd_data_get_int ("/options/size_disp_mode", 
GNOME_CMD_SIZE_DISP_MODE_POWERED),
                                                         options.gcmd_settings->general, 
GCMD_SETTINGS_SIZE_DISP_MODE);
         g_settings_set_enum (options.gcmd_settings->general, GCMD_SETTINGS_SIZE_DISP_MODE, ihelper);
+        // perm_disp_mode
+        ihelper = migrate_data_int_value_into_gsettings(gnome_cmd_data_get_int ("/options/perm_disp_mode", 
GNOME_CMD_SIZE_DISP_MODE_POWERED),
+                                                        options.gcmd_settings->general, 
GCMD_SETTINGS_PERM_DISP_MODE);
+        g_settings_set_enum (options.gcmd_settings->general, GCMD_SETTINGS_PERM_DISP_MODE, ihelper);
 
         // ToDo: Move old xml-file to ~/.gnome-commander/gnome-commander.xml.backup
         //       à la save_devices_old ("devices.backup");
@@ -1530,7 +1549,7 @@ void GnomeCmdData::load()
     options.color_themes[GNOME_CMD_COLOR_NONE].curs_bg = NULL;
 
     options.size_disp_mode = (GnomeCmdSizeDispMode) g_settings_get_enum (options.gcmd_settings->general, 
GCMD_SETTINGS_SIZE_DISP_MODE);
-    options.perm_disp_mode = (GnomeCmdPermDispMode) gnome_cmd_data_get_int ("/options/perm_disp_mode", 
GNOME_CMD_PERM_DISP_MODE_TEXT);
+    options.perm_disp_mode = (GnomeCmdPermDispMode) g_settings_get_enum (options.gcmd_settings->general, 
GCMD_SETTINGS_PERM_DISP_MODE);
 
 #ifdef HAVE_LOCALE_H
     gchar *utf8_date_format = gnome_cmd_data_get_string ("/options/date_disp_mode", "%x %R");
@@ -1996,7 +2015,7 @@ void GnomeCmdData::load_more()
 void GnomeCmdData::save()
 {
     g_settings_set_enum       (options.gcmd_settings->general, GCMD_SETTINGS_SIZE_DISP_MODE, 
options.size_disp_mode);
-    gnome_cmd_data_set_int    ("/options/perm_disp_mode", options.perm_disp_mode);
+    g_settings_set_enum       (options.gcmd_settings->general, GCMD_SETTINGS_PERM_DISP_MODE, 
options.perm_disp_mode);
     gnome_cmd_data_set_int    ("/options/layout", options.layout);
     gnome_cmd_data_set_int    ("/options/list_row_height", options.list_row_height);
 
diff --git a/src/gnome-cmd-data.h b/src/gnome-cmd-data.h
index db0dea9..ccc8dcc 100644
--- a/src/gnome-cmd-data.h
+++ b/src/gnome-cmd-data.h
@@ -52,6 +52,7 @@ GcmdSettings *gcmd_settings_new (void);
 #define GCMD_SETTINGS_PANEL_FONT                      "panel-font"
 #define GCMD_SETTINGS_SYSTEM_FONT                     "monospace-font-name"
 #define GCMD_SETTINGS_SIZE_DISP_MODE                  "size-display-mode"
+#define GCMD_SETTINGS_PERM_DISP_MODE                  "perm-display-mode"
 
 #define GCMD_PREF_GENERAL                             "org.gnome.gnome-commander.preferences.general"
 


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