11
#define LIGHT_LOCKER_SCHEMA "apps.light-locker"
13
/* Property identifiers */
19
PROP_LOCK_AFTER_SCREENSAVER,
24
static void ll_config_get_property (GObject *object,
28
static void ll_config_set_property (GObject *object,
36
GObjectClass __parent__;
43
guint lock_after_screensaver;
44
gboolean late_locking : 1;
45
gboolean lock_on_suspend : 1;
48
G_DEFINE_TYPE (LLConfig, ll_config, G_TYPE_OBJECT)
52
* ll_config_set_property:
53
* @object : a #LLConfig instance passed as #GObject.
54
* @prop_id : the ID of the property being set.
55
* @value : the value of the property being set.
56
* @pspec : the property #GParamSpec.
58
* Write property-values to GSettings.
60
static void ll_config_set_property (GObject *object,
65
LLConfig *conf = LL_CONFIG (object);
69
case PROP_LATE_LOCKING:
70
conf->late_locking = g_value_get_boolean(value);
73
case PROP_LOCK_AFTER_SCREENSAVER:
74
conf->lock_after_screensaver = g_value_get_uint(value);
77
case PROP_LOCK_ON_SUSPEND:
78
conf->lock_on_suspend = g_value_get_boolean(value);
82
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
88
* ll_config_get_property:
89
* @object : a #LLConfig instance passed as #GObject.
90
* @prop_id : the ID of the property being retrieved.
91
* @value : the return variable for the value of the property being retrieved.
92
* @pspec : the property #GParamSpec.
94
* Read property-values from GSettings.
96
static void ll_config_get_property (GObject *object,
101
LLConfig *conf = LL_CONFIG (object);
105
case PROP_LATE_LOCKING:
106
g_value_set_boolean(value, conf->late_locking);
109
case PROP_LOCK_AFTER_SCREENSAVER:
110
g_value_set_uint(value, conf->lock_after_screensaver);
113
case PROP_LOCK_ON_SUSPEND:
114
g_value_set_boolean(value, conf->lock_on_suspend);
118
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
124
* ll_config_class_init:
125
* @klass : a #LLConfigClass to initialize.
127
* Initialize a base #LLConfigClass instance.
130
ll_config_class_init (LLConfigClass *klass)
132
GObjectClass *object_class = G_OBJECT_CLASS (klass);
134
object_class->get_property = ll_config_get_property;
135
object_class->set_property = ll_config_set_property;
138
* LLConfig:lock-on-suspend:
140
* Enable lock-on-suspend
142
g_object_class_install_property (object_class,
143
PROP_LOCK_ON_SUSPEND,
144
g_param_spec_boolean ("lock-on-suspend",
151
* LLConfig:late-locking:
153
* Lock after screensaver has ended.
155
g_object_class_install_property (object_class,
157
g_param_spec_boolean ("late-locking",
164
* LLConfig:lock-after-screensaver:
166
* Seconds after screensaver to lock
168
g_object_class_install_property (object_class,
169
PROP_LOCK_AFTER_SCREENSAVER,
170
g_param_spec_uint ("lock-after-screensaver",
181
* @conf : a #LLConfig instance.
183
* Initialize a #LLConfig instance.
186
ll_config_init (LLConfig *conf)
188
#ifdef WITH_SETTINGS_BACKEND
189
GSettingsSchemaSource *schema_source;
190
GSettingsSchema *schema;
191
GParamSpec **prop_list;
195
conf->lock_after_screensaver = 5;
196
#ifdef WITH_LATE_LOCKING
197
conf->late_locking = WITH_LATE_LOCKING;
199
#ifdef WITH_LOCK_ON_SUSPEND
200
conf->lock_on_suspend = WITH_LOCK_ON_SUSPEND;
203
#ifdef WITH_SETTINGS_BACKEND
205
#if WITH_SETTINGS_BACKEND == GSETTINGS
206
schema_source = g_settings_schema_source_get_default();
207
schema = g_settings_schema_source_lookup (schema_source, LIGHT_LOCKER_SCHEMA, FALSE);
210
conf->settings = g_settings_new(LIGHT_LOCKER_SCHEMA);
212
prop_list = g_object_class_list_properties (G_OBJECT_GET_CLASS (conf), &n_prop);
213
for (i = 0; i < n_prop; i++)
215
const gchar *name = g_param_spec_get_name (prop_list[i]);
216
g_settings_bind (conf->settings, name, conf, name, G_SETTINGS_BIND_DEFAULT);
220
g_settings_schema_unref (schema);
224
g_warning("Schema \"%s\" not found. Not storing runtime settings.", LIGHT_LOCKER_SCHEMA);
234
* Create a new #LLConfig instance.
239
return g_object_new (LL_TYPE_CONFIG, NULL);