diff options
author | Stefano Karapetsas <[email protected]> | 2014-04-23 20:01:33 +0200 |
---|---|---|
committer | Stefano Karapetsas <[email protected]> | 2014-04-23 20:01:33 +0200 |
commit | eea33a0d62b99342a67becde98d2b7eb78754896 (patch) | |
tree | c9fc367163f583d1c3d9e6dab164e78ec3f7f45f | |
parent | 0da16b7a0f2d43d50c3087ba904b224eb7e846b3 (diff) | |
download | mate-panel-eea33a0d62b99342a67becde98d2b7eb78754896.tar.bz2 mate-panel-eea33a0d62b99342a67becde98d2b7eb78754896.tar.xz |
Use common GSettings function from libmate-desktop
-rw-r--r-- | mate-panel/Makefile.am | 2 | ||||
-rw-r--r-- | mate-panel/panel-gsettings.c | 178 | ||||
-rw-r--r-- | mate-panel/panel-gsettings.h | 53 | ||||
-rw-r--r-- | mate-panel/panel-layout.c | 6 | ||||
-rw-r--r-- | mate-panel/panel-profile.c | 10 |
5 files changed, 8 insertions, 241 deletions
diff --git a/mate-panel/Makefile.am b/mate-panel/Makefile.am index 10926af8..879dc07a 100644 --- a/mate-panel/Makefile.am +++ b/mate-panel/Makefile.am @@ -35,7 +35,6 @@ panel_sources = \ drawer.c \ panel-config-global.c \ panel-util.c \ - panel-gsettings.c \ panel-properties-dialog.c \ panel-run-dialog.c \ menu.c \ @@ -84,7 +83,6 @@ panel_headers = \ panel-util.h \ panel-properties-dialog.h \ panel-config-global.h \ - panel-gsettings.h \ panel-run-dialog.h \ menu.h \ panel-context-menu.h \ diff --git a/mate-panel/panel-gsettings.c b/mate-panel/panel-gsettings.c deleted file mode 100644 index 91444576..00000000 --- a/mate-panel/panel-gsettings.c +++ /dev/null @@ -1,178 +0,0 @@ -/* - * panel-gsettings.c: panel gsettings utility methods - * - * Copyright (C) 2001 - 2003 Sun Microsystems, Inc. - * 2012 Stefano Karapetsas - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * Authors: - * Mark McLoughlin <[email protected]> - * Glynn Foster <[email protected]> - * Stefano Karapetsas <[email protected]> - */ - -#include <config.h> - -#include "panel-gsettings.h" - -#include <string.h> -#include <glib.h> -#include <gio/gio.h> - -#include <libpanel-util/panel-cleanup.h> - -/* (copied from gnome-panel) - * Adapted from is_valid_keyname() in glib (gio/glib-compile-schemas.c) - * Differences: - * - gettext support removed (we don't need translations here) - * - remove support for allow_any_name - */ -gboolean -panel_gsettings_is_valid_keyname (const gchar *key, - GError **error) -{ - gint i; - - if (key[0] == '\0') - { - g_set_error_literal (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "empty names are not permitted"); - return FALSE; - } - - if (!g_ascii_islower (key[0])) - { - g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "invalid name '%s': names must begin " - "with a lowercase letter", key); - return FALSE; - } - - for (i = 1; key[i]; i++) - { - if (key[i] != '-' && - !g_ascii_islower (key[i]) && - !g_ascii_isdigit (key[i])) - { - g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "invalid name '%s': invalid character '%c'; " - "only lowercase letters, numbers and dash ('-') " - "are permitted.", key, key[i]); - return FALSE; - } - - if (key[i] == '-' && key[i + 1] == '-') - { - g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "invalid name '%s': two successive dashes ('--') " - "are not permitted.", key); - return FALSE; - } - } - - if (key[i - 1] == '-') - { - g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "invalid name '%s': the last character may not be a " - "dash ('-').", key); - return FALSE; - } - - if (i > 32) - { - g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - "invalid name '%s': maximum length is 32", key); - return FALSE; - } - - return TRUE; -} - -/* copied from gnome-panel */ -gboolean -panel_gsettings_append_strv (GSettings *settings, - const gchar *key, - const gchar *value) -{ - gchar **old; - gchar **new; - gint size; - gboolean retval; - - old = g_settings_get_strv (settings, key); - - for (size = 0; old[size] != NULL; size++); - - size += 1; /* appended value */ - size += 1; /* NULL */ - - new = g_realloc_n (old, size, sizeof (gchar *)); - - new[size - 2] = g_strdup (value); - new[size - 1] = NULL; - - retval = g_settings_set_strv (settings, key, - (const gchar **) new); - - g_strfreev (new); - - return retval; -} - -/* copied from gnome-panel */ -gboolean -panel_gsettings_remove_all_from_strv (GSettings *settings, - const gchar *key, - const gchar *value) -{ - GArray *array; - gchar **old; - gint i; - gboolean retval; - - old = g_settings_get_strv (settings, key); - array = g_array_new (TRUE, TRUE, sizeof (gchar *)); - - for (i = 0; old[i] != NULL; i++) { - if (g_strcmp0 (old[i], value) != 0) - array = g_array_append_val (array, old[i]); - } - - retval = g_settings_set_strv (settings, key, - (const gchar **) array->data); - - g_strfreev (old); - g_array_free (array, TRUE); - - return retval; -} - - - -/* convert a gchar ** to GList (taken from libmatekbd code) */ -GSList* -panel_gsettings_strv_to_gslist (gchar **array) -{ - GSList *list = NULL; - gint i; - if (array != NULL) { - for (i = 0; array[i]; i++) { - list = g_slist_append (list, g_strdup (array[i])); - } - } - return list; -} diff --git a/mate-panel/panel-gsettings.h b/mate-panel/panel-gsettings.h deleted file mode 100644 index 823dbb10..00000000 --- a/mate-panel/panel-gsettings.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * panel-gsettings.h: panel gsettings utility methods - * - * Copyright (C) 2001 - 2003 Sun Microsystems, Inc. - * 2012 Stefano Karapetsas - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301, USA. - * - * Authors: - * Mark McLoughlin <[email protected]> - * Glynn Foster <[email protected]> - * Stefano Karapetsas <[email protected]> - */ - -#ifndef __PANEL_GSETTINGS_H__ -#define __PANEL_GSETTINGS_H__ - -#include <glib.h> -#include <gio/gio.h> - -#include "panel-enums.h" - -G_BEGIN_DECLS - -gboolean panel_gsettings_is_valid_keyname (const gchar *key, - GError **error); - -gboolean panel_gsettings_append_strv (GSettings *settings, - const gchar *key, - const gchar *value); - -gboolean panel_gsettings_remove_all_from_strv (GSettings *settings, - const gchar *key, - const gchar *value); - -GSList* panel_gsettings_strv_to_gslist (gchar **array); - -G_END_DECLS - -#endif /* __PANEL_GSETTINGS_H__ */ diff --git a/mate-panel/panel-layout.c b/mate-panel/panel-layout.c index 9b1d2801..d3a4a9a2 100644 --- a/mate-panel/panel-layout.c +++ b/mate-panel/panel-layout.c @@ -30,10 +30,10 @@ #include <gio/gio.h> #include <libmate-desktop/mate-dconf.h> +#include <libmate-desktop/mate-gsettings.h> #include "panel-layout.h" #include "panel-profile.h" -#include "panel-gsettings.h" #include "panel-schemas.h" #include "panel-enums.h" @@ -150,7 +150,7 @@ panel_layout_append_group_helper (GKeyFile *keyfile, if (!*id) id = NULL; - if (id && !panel_gsettings_is_valid_keyname (id, &error)) { + if (id && !mate_gsettings_is_valid_keyname (id, &error)) { g_warning ("Invalid id name in layout '%s' (%s)", id, error->message); g_error_free (error); return FALSE; @@ -256,7 +256,7 @@ panel_layout_append_group_helper (GKeyFile *keyfile, GSettings *panel_settings; panel_settings = g_settings_new (PANEL_SCHEMA); - panel_gsettings_append_strv (panel_settings, + mate_gsettings_append_strv (panel_settings, id_list_key, unique_id); g_object_unref (panel_settings); diff --git a/mate-panel/panel-profile.c b/mate-panel/panel-profile.c index 5ddca421..3f41207e 100644 --- a/mate-panel/panel-profile.c +++ b/mate-panel/panel-profile.c @@ -33,6 +33,7 @@ #include <libpanel-util/panel-list.h> #include <libmate-desktop/mate-dconf.h> +#include <libmate-desktop/mate-gsettings.h> #include "applet.h" #include "panel.h" @@ -41,7 +42,6 @@ #include "panel-multiscreen.h" #include "panel-toplevel.h" #include "panel-lockdown.h" -#include "panel-gsettings.h" #include "panel-schemas.h" typedef struct { @@ -946,7 +946,7 @@ panel_profile_add_to_list (PanelGSettingsKeyType type, key = g_strdup (PANEL_OBJECT_ID_LIST_KEY); if ((key != NULL) && (new_id != NULL)) { - panel_gsettings_append_strv (profile_settings, + mate_gsettings_append_strv (profile_settings, key, new_id); g_free (key); @@ -964,7 +964,7 @@ panel_profile_remove_from_list (PanelGSettingsKeyType type, else if (type == PANEL_GSETTINGS_OBJECTS) key = g_strdup (PANEL_OBJECT_ID_LIST_KEY); - panel_gsettings_remove_all_from_strv (profile_settings, + mate_gsettings_remove_all_from_strv (profile_settings, key, id); g_free (key); @@ -1572,7 +1572,7 @@ panel_profile_toplevel_id_list_notify (GSettings *settings, toplevel_ids_strv = g_settings_get_strv (settings, key); - toplevel_ids = panel_gsettings_strv_to_gslist (toplevel_ids_strv); + toplevel_ids = mate_gsettings_strv_to_gslist (toplevel_ids_strv); toplevel_ids = panel_g_slist_make_unique (toplevel_ids, (GCompareFunc)g_strcmp0, FALSE); @@ -1616,7 +1616,7 @@ panel_profile_object_id_list_update (gchar **objects) GSList *sublist = NULL, *l; GSList *object_ids; - object_ids = panel_gsettings_strv_to_gslist (objects); + object_ids = mate_gsettings_strv_to_gslist (objects); object_ids = panel_g_slist_make_unique (object_ids, (GCompareFunc)g_strcmp0, FALSE); |