Accepting request 236169 from home:mgorse:branches:GNOME:Factory
- Add dconf-use-g_settings_get_default_value.patch: Display correct default value when a custom database is in use (bnc#873225) OBS-URL: https://build.opensuse.org/request/show/236169 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/dconf?expand=0&rev=66
This commit is contained in:
parent
9914f56324
commit
5b4d2f05ab
199
dconf-use-g_settings_get_default_value.patch
Normal file
199
dconf-use-g_settings_get_default_value.patch
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
From f6bf1516b480ceb13b54ac401b45426e4bc8ed6d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mike Gorse <mgorse@suse.com>
|
||||||
|
Date: Thu, 1 May 2014 12:56:11 -0500
|
||||||
|
Subject: [PATCH] Use g_settings_get_default_value() to retrieve default values
|
||||||
|
|
||||||
|
GSettings now has an API to retrieve a default value, and using it is
|
||||||
|
more reliable than parsing the schema ourselves.
|
||||||
|
|
||||||
|
https://bugzilla.gnome.org/show_bug.cgi?id=668234
|
||||||
|
---
|
||||||
|
editor/dconf-editor.vala | 5 ++-
|
||||||
|
editor/dconf-model.vala | 7 ++++-
|
||||||
|
editor/dconf-schema.vala | 80 +-----------------------------------------------
|
||||||
|
3 files changed, 11 insertions(+), 81 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/editor/dconf-editor.vala b/editor/dconf-editor.vala
|
||||||
|
index 671b9b5..467a6c6 100644
|
||||||
|
--- a/editor/dconf-editor.vala
|
||||||
|
+++ b/editor/dconf-editor.vala
|
||||||
|
@@ -223,7 +223,10 @@ class ConfigurationEditor : Gtk.Application
|
||||||
|
if (selected_key.schema != null)
|
||||||
|
{
|
||||||
|
var gettext_domain = selected_key.schema.gettext_domain;
|
||||||
|
+ Settings settings;
|
||||||
|
+
|
||||||
|
schema_name = selected_key.schema.schema.id;
|
||||||
|
+ settings = new Settings (schema_name);
|
||||||
|
if (selected_key.schema.summary != null)
|
||||||
|
summary = selected_key.schema.summary;
|
||||||
|
if (gettext_domain != null && summary != "")
|
||||||
|
@@ -233,7 +236,7 @@ class ConfigurationEditor : Gtk.Application
|
||||||
|
if (gettext_domain != null && description != "")
|
||||||
|
description = dgettext(gettext_domain, description);
|
||||||
|
type = key_to_description(selected_key);
|
||||||
|
- default_value = selected_key.schema.default_value.print(false);
|
||||||
|
+ default_value = settings.get_default_value (((Key)(iter.user_data)).name).print(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
diff --git a/editor/dconf-model.vala b/editor/dconf-model.vala
|
||||||
|
index 8b43d60..ae25f86 100644
|
||||||
|
--- a/editor/dconf-model.vala
|
||||||
|
+++ b/editor/dconf-model.vala
|
||||||
|
@@ -37,6 +37,7 @@ public class Key : GLib.Object
|
||||||
|
}
|
||||||
|
|
||||||
|
private Variant? _value;
|
||||||
|
+ private Variant? _default_value;
|
||||||
|
public Variant value
|
||||||
|
{
|
||||||
|
get
|
||||||
|
@@ -45,7 +46,11 @@ public class Key : GLib.Object
|
||||||
|
if (_value != null)
|
||||||
|
return _value;
|
||||||
|
else
|
||||||
|
- return schema.default_value;
|
||||||
|
+ {
|
||||||
|
+ var settings = new Settings (schema.schema.id);
|
||||||
|
+ _default_value = settings.get_default_value (name);
|
||||||
|
+ return _default_value;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
diff --git a/editor/dconf-schema.vala b/editor/dconf-schema.vala
|
||||||
|
index fd35fb2..862eff3 100644
|
||||||
|
--- a/editor/dconf-schema.vala
|
||||||
|
+++ b/editor/dconf-schema.vala
|
||||||
|
@@ -3,7 +3,6 @@ public class SchemaKey
|
||||||
|
public Schema schema;
|
||||||
|
public string name;
|
||||||
|
public string type;
|
||||||
|
- public Variant default_value;
|
||||||
|
public SchemaValueRange? range;
|
||||||
|
public SchemaValueRange type_range;
|
||||||
|
public List<SchemaChoice> choices;
|
||||||
|
@@ -40,18 +39,7 @@ public class SchemaKey
|
||||||
|
|
||||||
|
for (var child = node->children; child != null; child = child->next)
|
||||||
|
{
|
||||||
|
- if (child->name == "default")
|
||||||
|
- {
|
||||||
|
- try
|
||||||
|
- {
|
||||||
|
- default_value = Variant.parse(new VariantType(type), child->get_content());
|
||||||
|
- }
|
||||||
|
- catch (VariantParseError e)
|
||||||
|
- {
|
||||||
|
- // ...
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- else if (child->name == "summary")
|
||||||
|
+ if (child->name == "summary")
|
||||||
|
summary = child->get_content();
|
||||||
|
else if (child->name == "description")
|
||||||
|
description = child->get_content();
|
||||||
|
@@ -129,9 +117,6 @@ public class SchemaKey
|
||||||
|
else if (child->type != Xml.ElementType.TEXT_NODE && child->type != Xml.ElementType.COMMENT_NODE)
|
||||||
|
warning ("Unknown child tag in <key>, <%s>", child->name);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- //if (default_value == null)
|
||||||
|
- // ?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -248,9 +233,6 @@ public class SchemaEnum
|
||||||
|
else if (child->type != Xml.ElementType.TEXT_NODE && child->type != Xml.ElementType.COMMENT_NODE)
|
||||||
|
warning ("Unknown tag in <enum>, <%s>", child->name);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- //if (default_value == null)
|
||||||
|
- // ?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -301,9 +283,6 @@ public class SchemaFlags
|
||||||
|
else if (child->type != Xml.ElementType.TEXT_NODE && child->type != Xml.ElementType.COMMENT_NODE)
|
||||||
|
warning ("Unknown tag in <flags>, <%s>", child->name);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- //if (default_value == null)
|
||||||
|
- // ?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -407,53 +386,6 @@ public class SchemaList
|
||||||
|
delete doc;
|
||||||
|
}
|
||||||
|
|
||||||
|
- public void parse_override(string path)
|
||||||
|
- {
|
||||||
|
- var keyfile = new KeyFile();
|
||||||
|
- try
|
||||||
|
- {
|
||||||
|
- keyfile.load_from_file(path, KeyFileFlags.NONE);
|
||||||
|
- }
|
||||||
|
- catch (Error e)
|
||||||
|
- {
|
||||||
|
- warning("Failed to load override file %s: %s", path, e.message);
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- foreach (var group in keyfile.get_groups())
|
||||||
|
- {
|
||||||
|
- var schema = schemas.lookup(group);
|
||||||
|
- if (schema == null)
|
||||||
|
- continue;
|
||||||
|
-
|
||||||
|
- string[] keys;
|
||||||
|
- try { keys = keyfile.get_keys(group); } catch (Error e) { continue; }
|
||||||
|
-
|
||||||
|
- foreach (var key_name in keys)
|
||||||
|
- {
|
||||||
|
- string value;
|
||||||
|
- try { value = keyfile.get_value(group, key_name); } catch (Error e) { continue; }
|
||||||
|
-
|
||||||
|
- var key = schema.keys.lookup (key_name);
|
||||||
|
- if (key == null)
|
||||||
|
- continue;
|
||||||
|
-
|
||||||
|
- Variant default_value;
|
||||||
|
- try
|
||||||
|
- {
|
||||||
|
- default_value = Variant.parse(new VariantType(key.type), value);
|
||||||
|
- }
|
||||||
|
- catch (VariantParseError e)
|
||||||
|
- {
|
||||||
|
- // ...
|
||||||
|
- continue;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- key.default_value = default_value;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
public void load_directory(string dir) throws Error
|
||||||
|
{
|
||||||
|
var directory = File.new_for_path(dir);
|
||||||
|
@@ -471,15 +403,5 @@ public class SchemaList
|
||||||
|
}
|
||||||
|
|
||||||
|
i = directory.enumerate_children (FileAttribute.STANDARD_NAME, 0, null);
|
||||||
|
- while (true)
|
||||||
|
- {
|
||||||
|
- var info = i.next_file (null);
|
||||||
|
- if (info == null)
|
||||||
|
- break;
|
||||||
|
- var name = info.get_name();
|
||||||
|
-
|
||||||
|
- if (name.has_suffix(".override"))
|
||||||
|
- parse_override(Path.build_filename(dir, name, null));
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--
|
||||||
|
1.8.4
|
||||||
|
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jun 3 18:19:03 UTC 2014 - mgorse@suse.com
|
||||||
|
|
||||||
|
- Add dconf-use-g_settings_get_default_value.patch: Display
|
||||||
|
correct default value when a custom database is in use
|
||||||
|
(bnc#873225)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Mar 24 19:49:28 UTC 2014 - zaitor@opensuse.org
|
Mon Mar 24 19:49:28 UTC 2014 - zaitor@opensuse.org
|
||||||
|
|
||||||
|
@ -25,6 +25,8 @@ Group: System/Libraries
|
|||||||
Url: http://live.gnome.org/dconf
|
Url: http://live.gnome.org/dconf
|
||||||
Source: http://download.gnome.org/sources/dconf/0.20/%{name}-%{version}.tar.xz
|
Source: http://download.gnome.org/sources/dconf/0.20/%{name}-%{version}.tar.xz
|
||||||
Source99: baselibs.conf
|
Source99: baselibs.conf
|
||||||
|
# PATCH-FIX-UPSTREAM dconf-use-g_settings_get_default_value.patch bnc#873225 bgo#668234 mgorse@suse.com -- Have editor display correct default value when an administrator has a custom database.
|
||||||
|
Patch0: dconf-use-g_settings_get_default_value.patch
|
||||||
# For directory ownership
|
# For directory ownership
|
||||||
BuildRequires: dbus-1
|
BuildRequires: dbus-1
|
||||||
BuildRequires: docbook-xsl-stylesheets
|
BuildRequires: docbook-xsl-stylesheets
|
||||||
@ -127,6 +129,7 @@ have configuration storage systems.
|
|||||||
%lang_package
|
%lang_package
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
|
|
||||||
%if 0%{?BUILD_FROM_VCS}
|
%if 0%{?BUILD_FROM_VCS}
|
||||||
[ -x ./autogen.sh ] && NOCONFIGURE=1 ./autogen.sh
|
[ -x ./autogen.sh ] && NOCONFIGURE=1 ./autogen.sh
|
||||||
|
Loading…
Reference in New Issue
Block a user