1
/* GconfPreferencesBackend.cs
3
* GNOME Do is the legal property of its developers. Please refer to the
4
* COPYRIGHT file distributed with this
7
* This program is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation, either version 3 of the License, or
10
* (at your option) any later version.
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
17
* You should have received a copy of the GNU General Public License
18
* along with this program. If not, see <http://www.gnu.org/licenses/>.
25
public class GconfPreferencesBackend : IPreferencesBackend
27
const string GConfRootPath = "/apps/gnome-do/preferences";
32
public GconfPreferencesBackend (string name)
35
client = new GConf.Client();
39
/// If key contains an absolute path, return it; otherwise, return
40
/// an absolute path for the key by appending it to Do's root gconf path.
42
/// <param name="key">
43
/// A <see cref="System.String"/> gconf key, containing either an
44
/// absolute path or a key relative to Do's root path (e.g "key_binding"
48
/// A <see cref="System.String"/> containing an absolute gconf path.
50
private string MakeKeyPath (string key)
52
if (key.StartsWith ("/")) return key;
53
return string.Format ("{0}/{1}/{2}", GConfRootPath, name, key);
56
public bool Set<T> (string key, T val)
62
client.Set (MakeKeyPath (key), val);
69
public bool TryGet<T> (string key, out T val)
75
val = (T) client.Get (MakeKeyPath (key));