[gnome-color-manager] trivial: add a 'saved' property to GcmDevice to indicate if it's profile is backed by a keyfile
- From: Richard Hughes <rhughes src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-color-manager] trivial: add a 'saved' property to GcmDevice to indicate if it's profile is backed by a keyfile
- Date: Fri, 1 Jan 2010 16:43:44 +0000 (UTC)
commit d75b5ce16022f8b39cb845d2dacd569bd28b0a8d
Author: Richard Hughes <richard hughsie com>
Date: Fri Jan 1 16:42:55 2010 +0000
trivial: add a 'saved' property to GcmDevice to indicate if it's profile is backed by a keyfile
src/gcm-client.c | 9 +++++++++
src/gcm-device.c | 37 +++++++++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+), 0 deletions(-)
---
diff --git a/src/gcm-client.c b/src/gcm-client.c
index 0202d73..58eb50f 100644
--- a/src/gcm-client.c
+++ b/src/gcm-client.c
@@ -658,6 +658,7 @@ gcm_client_add_unconnected_device (GcmClient *client, GKeyFile *keyfile, const g
"id", id,
"connected", FALSE,
"title", title,
+ "saved", TRUE,
NULL);
/* load the device */
@@ -721,6 +722,9 @@ gcm_client_add_saved (GcmClient *client, GError **error)
gcm_client_add_unconnected_device (client, keyfile, groups[i]);
} else {
egg_debug ("found already added %s", groups[i]);
+ g_object_set (device,
+ "saved", TRUE,
+ NULL);
}
}
out:
@@ -815,6 +819,11 @@ gcm_client_delete_device (GcmClient *client, GcmDevice *device, GError **error)
if (!ret)
goto out;
+ /* update status */
+ g_object_set (device,
+ "saved", FALSE,
+ NULL);
+
/* emit a signal */
egg_debug ("emit removed: %s", id);
g_signal_emit (client, signals[SIGNAL_REMOVED], 0, device);
diff --git a/src/gcm-device.c b/src/gcm-device.c
index b700c2a..071ef6f 100644
--- a/src/gcm-device.c
+++ b/src/gcm-device.c
@@ -52,6 +52,7 @@ static void gcm_device_finalize (GObject *object);
struct _GcmDevicePrivate
{
gboolean connected;
+ gboolean saved;
gfloat gamma;
gfloat brightness;
gfloat contrast;
@@ -72,6 +73,7 @@ enum {
PROP_TYPE,
PROP_ID,
PROP_CONNECTED,
+ PROP_SAVED,
PROP_SERIAL,
PROP_MODEL,
PROP_MANUFACTURER,
@@ -197,6 +199,20 @@ gcm_device_load (GcmDevice *device, GError **error)
goto out;
}
+ /* has key */
+ ret = g_key_file_has_group (file, device->priv->id);
+ if (!ret) {
+ /* not fatal */
+ egg_warning ("failed to find parameters for %s", device->priv->id);
+ ret = TRUE;
+ goto out;
+ }
+
+ /* we are backed by a keyfile */
+ g_object_set (device,
+ "saved", TRUE,
+ NULL);
+
/* load data */
g_free (device->priv->profile_filename);
device->priv->profile_filename = g_key_file_get_string (file, device->priv->id, "profile", NULL);
@@ -367,6 +383,11 @@ gcm_device_save (GcmDevice *device, GError **error)
g_error_free (error_local);
goto out;
}
+
+ /* update status */
+ g_object_set (device,
+ "saved", TRUE,
+ NULL);
out:
g_free (data);
g_free (filename);
@@ -397,6 +418,9 @@ gcm_device_get_property (GObject *object, guint prop_id, GValue *value, GParamSp
case PROP_CONNECTED:
g_value_set_boolean (value, priv->connected);
break;
+ case PROP_SAVED:
+ g_value_set_boolean (value, priv->saved);
+ break;
case PROP_SERIAL:
g_value_set_string (value, priv->serial);
break;
@@ -453,6 +477,9 @@ gcm_device_set_property (GObject *object, guint prop_id, const GValue *value, GP
case PROP_CONNECTED:
priv->connected = g_value_get_boolean (value);
break;
+ case PROP_SAVED:
+ priv->saved = g_value_get_boolean (value);
+ break;
case PROP_SERIAL:
g_free (priv->serial);
priv->serial = g_strdup (g_value_get_string (value));
@@ -533,6 +560,14 @@ gcm_device_class_init (GcmDeviceClass *klass)
g_object_class_install_property (object_class, PROP_CONNECTED, pspec);
/**
+ * GcmDevice:saved:
+ */
+ pspec = g_param_spec_boolean ("saved", NULL, NULL,
+ FALSE,
+ G_PARAM_READWRITE);
+ g_object_class_install_property (object_class, PROP_SAVED, pspec);
+
+ /**
* GcmCalibrate:serial:
*/
pspec = g_param_spec_string ("serial", NULL, NULL,
@@ -624,6 +659,8 @@ gcm_device_init (GcmDevice *device)
GError *error = NULL;
device->priv = GCM_DEVICE_GET_PRIVATE (device);
device->priv->id = NULL;
+ device->priv->saved = FALSE;
+ device->priv->connected = FALSE;
device->priv->serial = NULL;
device->priv->manufacturer = NULL;
device->priv->model = NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]