Use common dconf functions from libmate-desktop

master-1.22
Stefano Karapetsas 2014-04-23 19:29:22 +02:00
parent 6767fa71d3
commit 693c6c76c7
5 changed files with 4 additions and 176 deletions

View File

@ -40,12 +40,11 @@ MATE_COMPILE_WARNINGS([maximum])
AM_GLIB_GNU_GETTEXT AM_GLIB_GNU_GETTEXT
DCONF_NEW_REQUIRED=0.13.4
DCONF_OLD_REQUIRED=0.10.0
GLIB_REQUIRED=2.25.0 GLIB_REQUIRED=2.25.0
GIO_REQUIRED=2.25.12 GIO_REQUIRED=2.25.12
GTK_REQUIRED=2.14.0 GTK_REQUIRED=2.14.0
VTE_REQUIRED=0.27.1 VTE_REQUIRED=0.27.1
MATE_DESKTOP_REQUIRED=1.9.0
AC_MSG_CHECKING([which gtk+ version to compile against]) AC_MSG_CHECKING([which gtk+ version to compile against])
AC_ARG_WITH([gtk], AC_ARG_WITH([gtk],
@ -81,6 +80,7 @@ PKG_CHECK_MODULES([TERM],
gthread-2.0 gthread-2.0
gio-2.0 >= $GIO_REQUIRED gio-2.0 >= $GIO_REQUIRED
gtk+-$GTK_API_VERSION >= $GTK_REQUIRED gtk+-$GTK_API_VERSION >= $GTK_REQUIRED
mate-desktop-2.0 >= $MATE_DESKTOP_REQUIRED
$PLATFORM_DEPS]) $PLATFORM_DEPS])
# ******** # ********
@ -120,16 +120,6 @@ AM_CONDITIONAL([WITH_SMCLIENT_QUARTZ],[test "$with_smclient" = "quartz"])
GLIB_GSETTINGS GLIB_GSETTINGS
PKG_CHECK_MODULES([DCONF], [dconf >= $DCONF_NEW_REQUIRED],
[AC_DEFINE([HAVE_DCONF_NEW], [1], [Use DCONF >= 0.13])],
[PKG_CHECK_MODULES([DCONF], [dconf >= $DCONF_OLD_REQUIRED],
[AC_DEFINE([HAVE_DCONF_OLD], [1], [Use DCONF 0.12])
])
])
AC_SUBST(DCONF_CFLAGS)
AC_SUBST(DCONF_LIBS)
GLIB_GENMARSHAL="$($PKG_CONFIG --variable=glib_genmarshal glib-2.0)" GLIB_GENMARSHAL="$($PKG_CONFIG --variable=glib_genmarshal glib-2.0)"
AC_SUBST([GLIB_GENMARSHAL]) AC_SUBST([GLIB_GENMARSHAL])
GLIB_MKENUMS="$($PKG_CONFIG --variable=glib_mkenums glib-2.0)" GLIB_MKENUMS="$($PKG_CONFIG --variable=glib_mkenums glib-2.0)"

View File

@ -23,8 +23,6 @@ mate_terminal_SOURCES= \
terminal-accels.h \ terminal-accels.h \
terminal-app.c \ terminal-app.c \
terminal-app.h \ terminal-app.h \
terminal-dconf.c \
terminal-dconf.h \
terminal-debug.c \ terminal-debug.c \
terminal-debug.h \ terminal-debug.h \
terminal-encoding.c \ terminal-encoding.c \
@ -80,20 +78,17 @@ mate_terminal_CPPFLAGS = \
-DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES \ -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES \
-DGTK_DISABLE_SINGLE_INCLUDES \ -DGTK_DISABLE_SINGLE_INCLUDES \
$(DISABLE_DEPRECATED) \ $(DISABLE_DEPRECATED) \
$(DCONF_CFLAGS) \
$(AM_CPPFLAGS) $(AM_CPPFLAGS)
mate_terminal_CFLAGS = \ mate_terminal_CFLAGS = \
$(TERM_CFLAGS) \ $(TERM_CFLAGS) \
$(WARN_CFLAGS) \ $(WARN_CFLAGS) \
$(DCONF_CFLAGS) \
$(AM_CFLAGS) $(AM_CFLAGS)
mate_terminal_LDFLAGS = -lICE mate_terminal_LDFLAGS = -lICE
mate_terminal_LDADD = \ mate_terminal_LDADD = \
skey/libskey.la \ skey/libskey.la \
$(DCONF_LIBS) \
$(TERM_LIBS) $(TERM_LIBS)
if WITH_SMCLIENT if WITH_SMCLIENT

View File

@ -37,7 +37,7 @@
#include "profile-editor.h" #include "profile-editor.h"
#include "terminal-encoding.h" #include "terminal-encoding.h"
#include "terminal-gsettings.h" #include "terminal-gsettings.h"
#include "terminal-dconf.h" #include <libmate-desktop/mate-dconf.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <time.h> #include <time.h>
@ -331,7 +331,7 @@ terminal_app_delete_profile (TerminalApp *app,
terminal_gsettings_remove_all_from_strv (app->settings_global, PROFILE_LIST_KEY, profile_name); terminal_gsettings_remove_all_from_strv (app->settings_global, PROFILE_LIST_KEY, profile_name);
/* And remove the profile directory */ /* And remove the profile directory */
if (!terminal_dconf_recursive_reset (profile_dir, &error)) if (!mate_dconf_recursive_reset (profile_dir, &error))
{ {
g_warning ("Failed to recursively unset %s: %s\n", profile_dir, error->message); g_warning ("Failed to recursively unset %s: %s\n", profile_dir, error->message);
g_error_free (error); g_error_free (error);

View File

@ -1,113 +0,0 @@
/*
* terminal-dconf.c: helper API for dconf
*
* Copyright (C) 2011 Novell, Inc.
*
* 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., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* Authors:
* Vincent Untz <vuntz@gnome.org>
* Stefano Karapetsas <stefano@karapetsas.com>
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <string.h>
#include <dconf.h>
#include "terminal-dconf.h"
static DConfClient *
terminal_dconf_client_get (void)
{
#ifdef HAVE_DCONF_NEW
return dconf_client_new ();
#else
return dconf_client_new (NULL, NULL, NULL, NULL);
#endif
}
gboolean
terminal_dconf_write_sync (const gchar *key,
GVariant *value,
GError **error)
{
gboolean ret;
DConfClient *client = terminal_dconf_client_get ();
#ifdef HAVE_DCONF_NEW
ret = dconf_client_write_sync (client, key, value, NULL, NULL, error);
#else
ret = dconf_client_write (client, key, value, NULL, NULL, error);
#endif
g_object_unref (client);
return ret;
}
gboolean
terminal_dconf_recursive_reset (const gchar *dir,
GError **error)
{
gboolean ret;
DConfClient *client = terminal_dconf_client_get ();
#ifdef HAVE_DCONF_NEW
ret = dconf_client_write_sync (client, dir, NULL, NULL, NULL, error);
#else
ret = dconf_client_write (client, dir, NULL, NULL, NULL, error);
#endif
g_object_unref (client);
return ret;
}
gchar **
terminal_dconf_list_subdirs (const gchar *dir,
gboolean remove_trailing_slash)
{
GArray *array;
gchar **children;
int len;
int i;
DConfClient *client = terminal_dconf_client_get ();
array = g_array_new (TRUE, TRUE, sizeof (gchar *));
children = dconf_client_list (client, dir, &len);
g_object_unref (client);
for (i = 0; children[i] != NULL; i++) {
if (dconf_is_rel_dir (children[i], NULL)) {
char *val = g_strdup (children[i]);
if (remove_trailing_slash)
val[strlen (val) - 1] = '\0';
array = g_array_append_val (array, val);
}
}
g_strfreev (children);
return (gchar **) g_array_free (array, FALSE);
}

View File

@ -1,44 +0,0 @@
/*
* terminal-dconf.h: helper API for dconf
*
* Copyright (C) 2011 Novell, Inc.
*
* 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., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* Authors:
* Vincent Untz <vuntz@gnome.org>
*/
#ifndef __TERMINAL_DCONF_H__
#define __TERMINAL_DCONF_H__
#include <glib.h>
G_BEGIN_DECLS
gboolean terminal_dconf_write_sync (const gchar *key,
GVariant *value,
GError **error);
gboolean terminal_dconf_recursive_reset (const gchar *dir,
GError **error);
gchar **terminal_dconf_list_subdirs (const gchar *dir,
gboolean remove_trailing_slash);
G_END_DECLS
#endif /* __TERMINAL_DCONF_H__ */