summaryrefslogtreecommitdiff
path: root/libmatekbd/matekbd-util.c
diff options
context:
space:
mode:
authorStefano Karapetsas <[email protected]>2012-09-03 17:14:37 +0200
committerStefano Karapetsas <[email protected]>2012-09-03 17:14:37 +0200
commit74e8c123722068886a8b12872601b14f5cc3bbe9 (patch)
treedd680caed288f9056b31d26221c8f007dc1740d6 /libmatekbd/matekbd-util.c
parent35c8125877e60b0c3279dd15b26bf0e85df5b136 (diff)
downloadlibmatekbd-74e8c123722068886a8b12872601b14f5cc3bbe9.tar.bz2
libmatekbd-74e8c123722068886a8b12872601b14f5cc3bbe9.tar.xz
migrate to gsettings
Diffstat (limited to 'libmatekbd/matekbd-util.c')
-rw-r--r--libmatekbd/matekbd-util.c118
1 files changed, 42 insertions, 76 deletions
diff --git a/libmatekbd/matekbd-util.c b/libmatekbd/matekbd-util.c
index e52ee5c..50e1b36 100644
--- a/libmatekbd/matekbd-util.c
+++ b/libmatekbd/matekbd-util.c
@@ -27,7 +27,7 @@
#include <libxklavier/xklavier.h>
-#include <mateconf/mateconf-client.h>
+#include <gio/gio.h>
#include <matekbd-config-private.h>
@@ -47,70 +47,26 @@ matekbd_install_glib_log_appender (void)
xkl_set_log_appender (matekbd_log_appender);
}
-#define MATEKBD_PREVIEW_CONFIG_KEY_PREFIX MATEKBD_CONFIG_KEY_PREFIX "/preview"
+#define MATEKBD_PREVIEW_CONFIG_SCHEMA MATEKBD_CONFIG_SCHEMA ".preview"
-const gchar MATEKBD_PREVIEW_CONFIG_DIR[] = MATEKBD_PREVIEW_CONFIG_KEY_PREFIX;
-const gchar MATEKBD_PREVIEW_CONFIG_KEY_X[] =
- MATEKBD_PREVIEW_CONFIG_KEY_PREFIX "/x";
-const gchar MATEKBD_PREVIEW_CONFIG_KEY_Y[] =
- MATEKBD_PREVIEW_CONFIG_KEY_PREFIX "/y";
-const gchar MATEKBD_PREVIEW_CONFIG_KEY_WIDTH[] =
- MATEKBD_PREVIEW_CONFIG_KEY_PREFIX "/width";
-const gchar MATEKBD_PREVIEW_CONFIG_KEY_HEIGHT[] =
- MATEKBD_PREVIEW_CONFIG_KEY_PREFIX "/height";
+const gchar MATEKBD_PREVIEW_CONFIG_KEY_X[] = "x";
+const gchar MATEKBD_PREVIEW_CONFIG_KEY_Y[] = "y";
+const gchar MATEKBD_PREVIEW_CONFIG_KEY_WIDTH[] = "width";
+const gchar MATEKBD_PREVIEW_CONFIG_KEY_HEIGHT[] = "height";
GdkRectangle *
matekbd_preview_load_position (void)
{
- GError *gerror = NULL;
GdkRectangle *rv = NULL;
gint x, y, w, h;
- MateConfClient *conf_client = mateconf_client_get_default ();
-
- if (conf_client == NULL)
- return NULL;
-
- x = mateconf_client_get_int (conf_client,
- MATEKBD_PREVIEW_CONFIG_KEY_X, &gerror);
- if (gerror != NULL) {
- xkl_debug (0, "Error getting the preview x: %s\n",
- gerror->message);
- g_error_free (gerror);
- g_object_unref (G_OBJECT (conf_client));
- return NULL;
- }
-
- y = mateconf_client_get_int (conf_client,
- MATEKBD_PREVIEW_CONFIG_KEY_Y, &gerror);
- if (gerror != NULL) {
- xkl_debug (0, "Error getting the preview y: %s\n",
- gerror->message);
- g_error_free (gerror);
- g_object_unref (G_OBJECT (conf_client));
- return NULL;
- }
-
- w = mateconf_client_get_int (conf_client,
- MATEKBD_PREVIEW_CONFIG_KEY_WIDTH, &gerror);
- if (gerror != NULL) {
- xkl_debug (0, "Error getting the preview width: %s\n",
- gerror->message);
- g_error_free (gerror);
- g_object_unref (G_OBJECT (conf_client));
- return NULL;
- }
+ GSettings* settings = g_settings_new (MATEKBD_PREVIEW_CONFIG_SCHEMA);
- h = mateconf_client_get_int (conf_client,
- MATEKBD_PREVIEW_CONFIG_KEY_HEIGHT, &gerror);
- if (gerror != NULL) {
- xkl_debug (0, "Error getting the preview height: %s\n",
- gerror->message);
- g_error_free (gerror);
- g_object_unref (G_OBJECT (conf_client));
- return NULL;
- }
+ x = g_settings_get_int (settings, MATEKBD_PREVIEW_CONFIG_KEY_X);
+ y = g_settings_get_int (settings, MATEKBD_PREVIEW_CONFIG_KEY_Y);
+ w = g_settings_get_int (settings, MATEKBD_PREVIEW_CONFIG_KEY_WIDTH);
+ h = g_settings_get_int (settings, MATEKBD_PREVIEW_CONFIG_KEY_HEIGHT);
- g_object_unref (G_OBJECT (conf_client));
+ g_object_unref (settings);
rv = g_new (GdkRectangle, 1);
if (x == -1 || y == -1 || w == -1 || h == -1) {
@@ -135,25 +91,35 @@ matekbd_preview_load_position (void)
void
matekbd_preview_save_position (GdkRectangle * rect)
{
- MateConfClient *conf_client = mateconf_client_get_default ();
- MateConfChangeSet *cs;
- GError *gerror = NULL;
-
- cs = mateconf_change_set_new ();
-
- mateconf_change_set_set_int (cs, MATEKBD_PREVIEW_CONFIG_KEY_X, rect->x);
- mateconf_change_set_set_int (cs, MATEKBD_PREVIEW_CONFIG_KEY_Y, rect->y);
- mateconf_change_set_set_int (cs, MATEKBD_PREVIEW_CONFIG_KEY_WIDTH,
- rect->width);
- mateconf_change_set_set_int (cs, MATEKBD_PREVIEW_CONFIG_KEY_HEIGHT,
- rect->height);
-
- mateconf_client_commit_change_set (conf_client, cs, TRUE, &gerror);
- if (gerror != NULL) {
- g_warning ("Error saving preview configuration: %s\n",
- gerror->message);
- g_error_free (gerror);
+ GSettings* settings = g_settings_new (MATEKBD_PREVIEW_CONFIG_SCHEMA);
+
+ g_settings_delay (settings);
+
+ g_settings_set_int (settings, MATEKBD_PREVIEW_CONFIG_KEY_X, rect->x);
+ g_settings_set_int (settings, MATEKBD_PREVIEW_CONFIG_KEY_Y, rect->y);
+ g_settings_set_int (settings, MATEKBD_PREVIEW_CONFIG_KEY_WIDTH, rect->width);
+ g_settings_set_int (settings, MATEKBD_PREVIEW_CONFIG_KEY_HEIGHT, rect->height);
+
+ g_settings_apply (settings);
+
+ g_object_unref (settings);
+}
+
+/**
+ * matekbd_strv_append:
+ *
+ * Returns: (transfer full) (array zero-terminated=1): Append string to strv array
+ */
+gchar **
+matekbd_strv_append (gchar ** arr, gchar * element)
+{
+ gint old_length = (arr == NULL) ? 0 : g_strv_length (arr);
+ gchar **new_arr = g_new0 (gchar *, old_length + 2);
+ if (arr != NULL) {
+ memcpy (new_arr, arr, old_length * sizeof (gchar *));
+ g_free (arr);
}
- mateconf_change_set_unref (cs);
- g_object_unref (G_OBJECT (conf_client));
+ new_arr[old_length] = element;
+ return new_arr;
}
+