From d2d15da67e19e821d051d1b2382885854acd140c Mon Sep 17 00:00:00 2001 From: Stefano Karapetsas Date: Sat, 24 Nov 2012 18:17:36 +0100 Subject: charpick: migrate to gsettings --- charpick/Makefile.am | 23 ++++---- charpick/charpick.c | 66 ++++------------------ charpick/charpick.h | 5 +- charpick/charpick.schemas.in | 36 ------------ ...rg.mate.panel.applet.charpick.gschema.xml.in.in | 14 +++++ charpick/properties.c | 18 +++--- 6 files changed, 47 insertions(+), 115 deletions(-) delete mode 100644 charpick/charpick.schemas.in create mode 100644 charpick/org.mate.panel.applet.charpick.gschema.xml.in.in diff --git a/charpick/Makefile.am b/charpick/Makefile.am index 40c62338..2597bded 100644 --- a/charpick/Makefile.am +++ b/charpick/Makefile.am @@ -4,7 +4,7 @@ INCLUDES = \ -I. \ -I$(srcdir) \ -DCHARPICK_MENU_UI_DIR=\""$(uidir)"\" \ - $(MATE_APPLETS3_CFLAGS) \ + $(MATE_APPLETS4_CFLAGS) \ $(GUCHARMAP_CFLAGS) libexec_PROGRAMS = charpick_applet2 @@ -14,7 +14,7 @@ charpick_applet2_SOURCES = charpick.c \ properties.c charpick_applet2_LDADD = \ - $(MATE_APPLETS3_LIBS) \ + $(MATE_APPLETS4_LIBS) \ $(GUCHARMAP_LIBS) appletdir = $(datadir)/mate-panel/applets @@ -38,25 +38,22 @@ org.mate.panel.applet.CharpickerAppletFactory.service: $(service_in_files) -e "s|\@LIBEXECDIR\@|$(libexecdir)|" \ $< > $@ -CLEANFILES = $(applet_DATA) $(applet_DATA).in $(service_DATA) $(schemas_DATA) +@INTLTOOL_XML_NOMERGE_RULE@ +gsettings_SCHEMAS = org.mate.panel.applet.charpick.gschema.xml +@GSETTINGS_RULES@ -schemasdir = @MATECONF_SCHEMA_FILE_DIR@ -schemas_in_files = charpick.schemas.in -schemas_DATA = $(schemas_in_files:.schemas.in=.schemas) +%.gschema.xml.in: %.gschema.xml.in.in Makefile + $(AM_V_GEN) $(SED) -e 's^\@GETTEXT_PACKAGE\@^$(GETTEXT_PACKAGE)^g' < $< > $@ -@INTLTOOL_SCHEMAS_RULE@ uidir = $(datadir)/mate-2.0/ui ui_DATA = charpick-applet-menu.xml +CLEANFILES = $(applet_DATA) $(applet_DATA).in $(service_DATA) $(gsettings_SCHEMAS_in) $(gsettings_SCHEMAS) *.gschema.valid + EXTRA_DIST = \ org.mate.applets.CharpickerApplet.mate-panel-applet.in.in \ $(service_in_files) \ $(ui_DATA) \ - $(schemas_in_files) - -if MATECONF_SCHEMAS_INSTALL -install-data-local: - MATECONF_CONFIG_SOURCE=$(MATECONF_SCHEMA_CONFIG_SOURCE) $(MATECONFTOOL) --makefile-install-rule $(schemas_DATA) ; -endif + $(gsettings_SCHEMAS_in_in) -include $(top_srcdir)/git.mk diff --git a/charpick/charpick.c b/charpick/charpick.c index 1c544338..3e3ab77b 100644 --- a/charpick/charpick.c +++ b/charpick/charpick.c @@ -5,6 +5,7 @@ #include #include #include +#include #ifdef HAVE_GUCHARMAP # include #endif @@ -112,25 +113,6 @@ static const gunichar * const chartable[] = { af_ZA_code }; -gboolean -key_writable (MatePanelApplet *applet, const char *key) -{ - gboolean writable; - char *fullkey; - static MateConfClient *client = NULL; - if (client == NULL) - client = mateconf_client_get_default (); - - fullkey = mate_panel_applet_mateconf_get_full_key (applet, key); - - writable = mateconf_client_key_is_writable (client, fullkey, NULL); - - g_free (fullkey); - - return writable; -} - - /* sets the picked character as the selection when it gets a request */ static void charpick_selection_handler(GtkWidget *widget, @@ -299,8 +281,8 @@ menuitem_activated (GtkMenuItem *menuitem, charpick_data *curr_data) curr_data->charlist = string; build_table (curr_data); - if (key_writable (applet, "current_list")) - mate_panel_applet_mateconf_set_string (applet, "current_list", curr_data->charlist, NULL); + if (g_settings_is_writable (curr_data->settings, "current-list")) + g_settings_set_string (curr_data->settings, "current-list", curr_data->charlist); } void @@ -653,46 +635,20 @@ applet_destroy (GtkWidget *widget, gpointer data) void save_chartable (charpick_data *curr_data) { - MatePanelApplet *applet = MATE_PANEL_APPLET (curr_data->applet); - MateConfValue *value; - GList *list = curr_data->chartable; - GSList *slist = NULL; - - while (list) { - gchar *charlist = list->data; - MateConfValue *v1; - v1 = mateconf_value_new_from_string (MATECONF_VALUE_STRING, charlist, NULL); - slist = g_slist_append (slist, v1); - list = g_list_next (list); - } - - value = mateconf_value_new (MATECONF_VALUE_LIST); - mateconf_value_set_list_type (value, MATECONF_VALUE_STRING); - mateconf_value_set_list_nocopy (value, slist); - mate_panel_applet_mateconf_set_value (applet, "chartable", value, NULL); - mateconf_value_free (value); + mate_panel_applet_settings_set_glist (curr_data->settings, + "chartable", curr_data->chartable); } static void get_chartable (charpick_data *curr_data) { MatePanelApplet *applet = MATE_PANEL_APPLET (curr_data->applet); - MateConfValue *value; gint i, n; + GSList *value = NULL; - value = mate_panel_applet_mateconf_get_value (applet, "chartable", NULL); + value = mate_panel_applet_settings_get_gslist (curr_data->settings, "chartable"); if (value) { - GSList *slist = mateconf_value_get_list (value); - while (slist) { - MateConfValue *v1 = slist->data; - gchar *charlist; - - charlist = g_strdup (mateconf_value_get_string (v1)); - curr_data->chartable = g_list_append (curr_data->chartable, charlist); - - slist = g_slist_next (slist); - } - mateconf_value_free (value); + curr_data->chartable = value; } else { n = G_N_ELEMENTS (chartable); @@ -703,7 +659,7 @@ get_chartable (charpick_data *curr_data) curr_data->chartable = g_list_append (curr_data->chartable, string); } - if ( ! key_writable (MATE_PANEL_APPLET (curr_data->applet), "chartable")) + if ( ! g_settings_is_writable (curr_data->settings, "chartable")) save_chartable (curr_data); } @@ -760,7 +716,6 @@ charpicker_applet_fill (MatePanelApplet *applet) mate_panel_applet_set_background_widget (applet, GTK_WIDGET (applet)); - mate_panel_applet_add_preferences (applet, "/schemas/apps/charpick/prefs", NULL); mate_panel_applet_set_flags (applet, MATE_PANEL_APPLET_EXPAND_MINOR); curr_data = g_new0 (charpick_data, 1); @@ -768,10 +723,11 @@ charpicker_applet_fill (MatePanelApplet *applet) curr_data->applet = GTK_WIDGET (applet); curr_data->about_dialog = NULL; curr_data->add_edit_dialog = NULL; + curr_data->settings = mate_panel_applet_settings_new (applet, "org.mate.panel.applet.charpick"); get_chartable (curr_data); - string = mate_panel_applet_mateconf_get_string (applet, "current_list", NULL); + string = g_settings_get_string (curr_data->settings, "current-list"); if (string) { list = curr_data->chartable; while (list) { diff --git a/charpick/charpick.h b/charpick/charpick.h index 4a945334..939556ba 100644 --- a/charpick/charpick.h +++ b/charpick/charpick.h @@ -3,9 +3,9 @@ #include #include #include -#include +#include #include -#include +#include #define NO_LAST_INDEX -1 @@ -28,6 +28,7 @@ struct _charpick_data { GtkWidget *menu; GtkWidget *add_edit_dialog; GtkWidget *add_edit_entry; + GSettings *settings; }; diff --git a/charpick/charpick.schemas.in b/charpick/charpick.schemas.in deleted file mode 100644 index bb3c9d7c..00000000 --- a/charpick/charpick.schemas.in +++ /dev/null @@ -1,36 +0,0 @@ - - - - - /schemas/apps/charpick/prefs/default_list - charpick_applet2 - string - - DEPRECATED - Characters shown on applet startup - - - - - - /schemas/apps/charpick/prefs/current_list - charpick_applet2 - string - - Characters shown on applet startup - The string that the user had selected when the applet was last used. This string will be displayed when the user starts the applet. - - - - - /schemas/apps/charpick/prefs/chartable - charpick_applet2 - list - string - - List of available palettes - List of strings containing the available palettes. - - - - - diff --git a/charpick/org.mate.panel.applet.charpick.gschema.xml.in.in b/charpick/org.mate.panel.applet.charpick.gschema.xml.in.in new file mode 100644 index 00000000..555cc4b6 --- /dev/null +++ b/charpick/org.mate.panel.applet.charpick.gschema.xml.in.in @@ -0,0 +1,14 @@ + + + + '' + <_summary>Characters shown on applet startup + <_description>The string that the user had selected when the applet was last used. This string will be displayed when the user starts the applet. + + + [] + <_summary>List of available palettes + <_description>List of strings containing the available palettes. + + + diff --git a/charpick/properties.c b/charpick/properties.c index c3347352..ba979385 100644 --- a/charpick/properties.c +++ b/charpick/properties.c @@ -162,10 +162,10 @@ add_palette_cb (GtkDialog *dialog, int response_id, charpick_data *curr_data) curr_data->charlist = curr_data->chartable->data; build_table (curr_data); - if (key_writable (MATE_PANEL_APPLET (curr_data->applet), "current_list")) - mate_panel_applet_mateconf_set_string (MATE_PANEL_APPLET (curr_data->applet), - "current_list", - curr_data->charlist, NULL); + if (g_settings_is_writable (curr_data->settings, "current-list")) + g_settings_set_string (curr_data->settings, + "current-list", + curr_data->charlist); } save_chartable (curr_data); @@ -226,8 +226,8 @@ edit_palette_cb (GtkDialog *dialog, int response_id, charpick_data *curr_data) curr_data->charlist = new; build_table (curr_data); - if (key_writable (MATE_PANEL_APPLET (curr_data->applet), "current_list")) - mate_panel_applet_mateconf_set_string (MATE_PANEL_APPLET (curr_data->applet), "current_list", curr_data->charlist, NULL); + if (g_settings_is_writable (curr_data->settings, "current-list")) + g_settings_set_string (curr_data->settings, "current-list", curr_data->charlist); } g_free (charlist); @@ -315,8 +315,8 @@ delete_palette (GtkButton *button, charpick_data *curr_data) if (g_ascii_strcasecmp (curr_data->charlist, charlist) == 0) { curr_data->charlist = curr_data->chartable != NULL ? curr_data->chartable->data : ""; - if (key_writable (MATE_PANEL_APPLET (curr_data->applet), "current_list")) - mate_panel_applet_mateconf_set_string (MATE_PANEL_APPLET (curr_data->applet), "current_list", curr_data->charlist, NULL); + if (g_settings_is_writable (curr_data->settings, "current-list")) + g_settings_set_string (curr_data->settings, "current-list", curr_data->charlist); } g_free (charlist); @@ -489,7 +489,7 @@ static void default_chars_frame_create(charpick_data *curr_data) set_access_namedesc (button, _("Delete button"), _("Click to delete the selected palette")); - if ( ! key_writable (MATE_PANEL_APPLET (curr_data->applet), "chartable")) + if ( ! g_settings_is_writable (curr_data->settings, "chartable")) gtk_widget_set_sensitive (vbox3, FALSE); return; -- cgit v1.2.1