checkupdate: Migrate to GSettings

This commit is contained in:
Stefano Karapetsas 2013-01-24 21:05:32 +01:00
parent 4bcb3b6f8b
commit 698c1a83b5
4 changed files with 32 additions and 54 deletions

View File

@ -24,26 +24,17 @@ plugin_in_files = checkupdate.pluma-plugin.desktop.in
plugin_DATA = $(plugin_in_files:.pluma-plugin.desktop.in=.pluma-plugin)
schemasdir = $(MATECONF_SCHEMA_FILE_DIR)
schemas_in_files = pluma-check-update.schemas.in
schemas_DATA = $(schemas_in_files:.schemas.in=.schemas)
@INTLTOOL_SCHEMAS_RULE@
@INTLTOOL_XML_NOMERGE_RULE@
gsettings_SCHEMAS = org.mate.pluma.plugins.checkupdate.gschema.xml
@GSETTINGS_RULES@
if MATECONF_SCHEMAS_INSTALL
install-data-local:
if test -z "$(DESTDIR)" ; then \
for p in $(schemas_DATA) ; do \
MATECONF_CONFIG_SOURCE=$(MATECONF_SCHEMA_CONFIG_SOURCE) $(MATECONFTOOL) --makefile-install-rule $(top_builddir)/plugins/checkupdate/$$p ; \
done \
fi
else
install-data-local:
endif
%.gschema.xml.in: %.gschema.xml.in.in Makefile
$(AM_V_GEN) $(SED) -e 's^\@GETTEXT_PACKAGE\@^$(GETTEXT_PACKAGE)^g' < $< > $@
EXTRA_DIST = $(plugin_in_files) $(schemas_in_files)
EXTRA_DIST = $(plugin_in_files) $(gsettings_SCHEMAS_in_in)
CLEANFILES = $(plugin_DATA) $(schemas_DATA)
CLEANFILES = $(plugin_DATA) $(gsettings_SCHEMAS_in) $(gsettings_SCHEMAS)
DISTCLEANFILES = $(plugin_DATA) $(schemas_DATA)
DISTCLEANFILES = $(plugin_DATA) $(gsettings_SCHEMAS_in) $(gsettings_SCHEMAS)
-include $(top_srcdir)/git.mk

View File

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<schemalist gettext-domain="@GETTEXT_PACKAGE@">
<schema id="org.mate.pluma.plugins.checkupdate" path="/org/mate/pluma/plugins/checkupdate/">
<key name="ignore-version" type="s">
<default>''</default>
<_summary>Version to ignore until the next version is released</_summary>
</key>
</schema>
</schemalist>

View File

@ -29,24 +29,24 @@
#include <gtk/gtk.h>
#include <stdlib.h>
#include <mateconf/mateconf-client.h>
#include <gio/gio.h>
#if !GTK_CHECK_VERSION(2, 17, 1)
#include <pluma/pluma-message-area.h>
#endif
#define MATECONF_KEY_BASE "/apps/pluma/plugins/checkupdate"
#define MATECONF_KEY_IGNORE_VERSION MATECONF_KEY_BASE "/ignore_version"
#define SETTINGS_SCHEMA "org.mate.pluma.plugins.checkupdate"
#define SETTINGS_IGNORE_VERSION "ignore-version"
#define WINDOW_DATA_KEY "PlumaCheckUpdatePluginWindowData"
#define VERSION_PLACE "<a href=\"[0-9]\\.[0-9]+/\">"
#ifdef G_OS_WIN32
#define PLUMA_URL "http://ftp.acc.umu.se/pub/mate/binaries/win32/pluma/"
#define PLUMA_URL "http://pub.mate-desktop.org/sources/mate-text-editor/"
#define FILE_REGEX "pluma\\-setup\\-[0-9]+\\.[0-9]+\\.[0-9]+(\\-[0-9]+)?\\.exe"
#else
#define PLUMA_URL "http://ftp.acc.umu.se/pub/mate/binaries/mac/pluma/"
#define PLUMA_URL "http://pub.mate-desktop.org/sources/mate-text-editor/"
#define FILE_REGEX "pluma\\-[0-9]+\\.[0-9]+\\.[0-9]+(\\-[0-9]+)?\\.dmg"
#endif
@ -65,7 +65,7 @@ struct _PlumaCheckUpdatePluginPrivate
{
SoupSession *session;
MateConfClient *mateconf_client;
GSettings *settings;
};
typedef struct
@ -101,12 +101,7 @@ pluma_check_update_plugin_init (PlumaCheckUpdatePlugin *plugin)
plugin->priv->session = soup_session_async_new ();
plugin->priv->mateconf_client = mateconf_client_get_default ();
mateconf_client_add_dir (plugin->priv->mateconf_client,
MATECONF_KEY_BASE,
MATECONF_CLIENT_PRELOAD_ONELEVEL,
NULL);
plugin->priv->settings = g_settings_new (SETTINGS_SCHEMA);
}
static void
@ -120,13 +115,11 @@ pluma_check_update_plugin_dispose (GObject *object)
plugin->priv->session = NULL;
}
if (plugin->priv->mateconf_client != NULL)
if (plugin->priv->settings != NULL)
{
mateconf_client_suggest_sync (plugin->priv->mateconf_client, NULL);
g_object_unref (G_OBJECT (plugin->priv->settings));
g_object_unref (G_OBJECT (plugin->priv->mateconf_client));
plugin->priv->mateconf_client = NULL;
plugin->priv->settings = NULL;
}
pluma_debug_message (DEBUG_PLUGINS,
@ -266,10 +259,9 @@ on_response_cb (GtkWidget *infobar,
data = g_object_get_data (G_OBJECT (window), WINDOW_DATA_KEY);
mateconf_client_set_string (data->plugin->priv->mateconf_client,
MATECONF_KEY_IGNORE_VERSION,
data->version,
NULL);
g_settings_set_string (data->plugin->priv->settings,
SETTINGS_IGNORE_VERSION,
data->version);
}
g_object_set_data (G_OBJECT (window),
@ -467,9 +459,8 @@ parse_file_version (const gchar *file)
static gchar *
get_ignore_version (PlumaCheckUpdatePlugin *plugin)
{
return mateconf_client_get_string (plugin->priv->mateconf_client,
MATECONF_KEY_IGNORE_VERSION,
NULL);
return g_settings_get_string (plugin->priv->settings,
SETTINGS_IGNORE_VERSION);
}
static void

View File

@ -1,13 +0,0 @@
<mateconfschemafile>
<schemalist>
<schema>
<key>/schemas/apps/pluma/plugins/checkupdate/ignore_version</key>
<applyto>/apps/pluma/plugins/checkupdate/ignore_version</applyto>
<owner>pluma</owner>
<type>string</type>
<locale name="C">
<short>Version to ignore until the next version is released</short>
</locale>
</schema>
</schemalist>
</mateconfschemafile>