Use common dconf functions from libmate-desktop
parent
6767fa71d3
commit
693c6c76c7
14
configure.ac
14
configure.ac
|
@ -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)"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
|
||||||
}
|
|
|
@ -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__ */
|
|
Loading…
Reference in New Issue