[gnome-settings-daemon/wip/benzea/multiple-keybindings: 4/11] common: Pass new default value during schema migration



commit ca3fa0ece794f1013cfee5b33ff3ca635028a480
Author: Benjamin Berg <bberg redhat com>
Date:   Wed Feb 6 16:28:37 2019 +0100

    common: Pass new default value during schema migration
    
    This will be required to migrate user settings of keybindings.

 plugins/common/gsd-settings-migrate.c | 9 ++++++---
 plugins/common/gsd-settings-migrate.h | 2 +-
 plugins/mouse/gsd-mouse-manager.c     | 6 +++---
 plugins/wacom/gsd-wacom-manager.c     | 4 ++--
 4 files changed, 12 insertions(+), 9 deletions(-)
---
diff --git a/plugins/common/gsd-settings-migrate.c b/plugins/common/gsd-settings-migrate.c
index a6d10df0..b72b6987 100644
--- a/plugins/common/gsd-settings-migrate.c
+++ b/plugins/common/gsd-settings-migrate.c
@@ -34,13 +34,14 @@ gsd_settings_migrate_check (const gchar             *origin_schema,
                             guint                    n_entries)
 {
         GSettings *origin_settings, *dest_settings;
-        GVariant *variant;
         guint i;
 
         origin_settings = g_settings_new_with_path (origin_schema, origin_path);
         dest_settings = g_settings_new_with_path (dest_schema, dest_path);
 
         for (i = 0; i < n_entries; i++) {
+                g_autoptr(GVariant) variant = NULL;
+
                 variant = g_settings_get_user_value (origin_settings, entries[i].origin_key);
 
                 if (!variant)
@@ -48,9 +49,12 @@ gsd_settings_migrate_check (const gchar             *origin_schema,
 
                 if (entries[i].dest_key) {
                         if (entries[i].func) {
+                                g_autoptr(GVariant) new_default = NULL;
                                 GVariant *modified;
 
-                                modified = entries[i].func (variant);
+                                new_default = g_settings_get_default_value (dest_settings, 
entries[i].dest_key);
+
+                                modified = entries[i].func (variant, new_default);
                                 g_variant_unref (variant);
                                 variant = g_variant_ref_sink (modified);
                         }
@@ -59,7 +63,6 @@ gsd_settings_migrate_check (const gchar             *origin_schema,
                 }
 
                 g_settings_reset (origin_settings, entries[i].origin_key);
-                g_variant_unref (variant);
         }
 
         g_object_unref (origin_settings);
diff --git a/plugins/common/gsd-settings-migrate.h b/plugins/common/gsd-settings-migrate.h
index 65e8598c..7211a975 100644
--- a/plugins/common/gsd-settings-migrate.h
+++ b/plugins/common/gsd-settings-migrate.h
@@ -24,7 +24,7 @@
 
 typedef struct _GsdSettingsMigrateEntry GsdSettingsMigrateEntry;
 
-typedef GVariant * (* GsdSettingsMigrateFunc) (GVariant *variant);
+typedef GVariant * (* GsdSettingsMigrateFunc) (GVariant *variant, GVariant *new_default);
 
 struct _GsdSettingsMigrateEntry
 {
diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c
index fc1e4bce..a3f0fc88 100644
--- a/plugins/mouse/gsd-mouse-manager.c
+++ b/plugins/mouse/gsd-mouse-manager.c
@@ -246,7 +246,7 @@ gsd_mouse_manager_finalize (GObject *object)
 }
 
 static GVariant *
-map_speed (GVariant *variant)
+map_speed (GVariant *variant, GVariant *new_default)
 {
         gdouble value;
 
@@ -259,7 +259,7 @@ map_speed (GVariant *variant)
 }
 
 static GVariant *
-map_send_events (GVariant *variant)
+map_send_events (GVariant *variant, GVariant *new_default)
 {
         gboolean enabled;
 
@@ -273,7 +273,7 @@ map_send_events (GVariant *variant)
 }
 
 static GVariant *
-map_edge_scrolling_enabled (GVariant *variant)
+map_edge_scrolling_enabled (GVariant *variant, GVariant *new_default)
 {
        GsdTouchpadScrollMethod  method;
 
diff --git a/plugins/wacom/gsd-wacom-manager.c b/plugins/wacom/gsd-wacom-manager.c
index fd249b48..7822c8e9 100644
--- a/plugins/wacom/gsd-wacom-manager.c
+++ b/plugins/wacom/gsd-wacom-manager.c
@@ -118,7 +118,7 @@ G_DEFINE_TYPE (GsdWacomManager, gsd_wacom_manager, G_TYPE_OBJECT)
 static gpointer manager_object = NULL;
 
 static GVariant *
-map_tablet_mapping (GVariant *value)
+map_tablet_mapping (GVariant *value, GVariant *new_default)
 {
         const gchar *mapping;
 
@@ -127,7 +127,7 @@ map_tablet_mapping (GVariant *value)
 }
 
 static GVariant *
-map_tablet_left_handed (GVariant *value)
+map_tablet_left_handed (GVariant *value, GVariant *new_default)
 {
         const gchar *rotation = g_variant_get_string (value, NULL);
         return g_variant_new_boolean (g_strcmp0 (rotation, "half") == 0 ||


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