summaryrefslogtreecommitdiff
path: root/mate-panel/panel-menu-items.c
diff options
context:
space:
mode:
authorStefano Karapetsas <[email protected]>2012-10-11 00:01:30 +0200
committerStefano Karapetsas <[email protected]>2012-10-11 00:01:30 +0200
commit876f39364e2106c8cb96fa4a9067359e5a350583 (patch)
tree2936001f23a62397065495e3fd065cb260eff4d7 /mate-panel/panel-menu-items.c
parent66916b20f16f9f0aad4c527519b70ac3a72bbec7 (diff)
downloadmate-panel-876f39364e2106c8cb96fa4a9067359e5a350583.tar.bz2
mate-panel-876f39364e2106c8cb96fa4a9067359e5a350583.tar.xz
migrate mate-panel to gsettings
Diffstat (limited to 'mate-panel/panel-menu-items.c')
-rw-r--r--mate-panel/panel-menu-items.c84
1 files changed, 42 insertions, 42 deletions
diff --git a/mate-panel/panel-menu-items.c b/mate-panel/panel-menu-items.c
index bd234de9..46c9a6a3 100644
--- a/mate-panel/panel-menu-items.c
+++ b/mate-panel/panel-menu-items.c
@@ -54,13 +54,9 @@
#include "panel-recent.h"
#include "panel-stock-icons.h"
#include "panel-util.h"
+#include "panel-schemas.h"
#define BOOKMARKS_FILENAME ".gtk-bookmarks"
-#define DESKTOP_IS_HOME_DIR_DIR "/apps/caja/preferences"
-#define DESKTOP_IS_HOME_DIR_KEY "/apps/caja/preferences/desktop_is_home_dir"
-#define NAMES_DIR "/apps/caja/desktop"
-#define HOME_NAME_KEY "/apps/caja/desktop/home_icon_name"
-#define COMPUTER_NAME_KEY "/apps/caja/desktop/computer_icon_name"
#define MAX_ITEMS_OR_SUBMENU 8
#define MAX_BOOKMARK_ITEMS 100
@@ -76,6 +72,9 @@ struct _PanelPlaceMenuItemPrivate {
GtkWidget *menu;
PanelWidget *panel;
+ GSettings *caja_desktop_settings;
+ GSettings *caja_prefs_settings;
+
GtkRecentManager *recent_manager;
GFileMonitor *bookmarks_monitor;
@@ -1027,7 +1026,7 @@ panel_place_menu_item_create_menu (PanelPlaceMenuItem *place_item)
{
GtkWidget *places_menu;
GtkWidget *item;
- char *mateconf_name;
+ char *gsettings_name;
char *name;
char *uri;
GFile *file;
@@ -1048,9 +1047,8 @@ panel_place_menu_item_create_menu (PanelPlaceMenuItem *place_item)
g_free (name);
g_free (uri);
- if (!mateconf_client_get_bool (panel_mateconf_get_client (),
- DESKTOP_IS_HOME_DIR_KEY,
- NULL)) {
+ if (!g_settings_get_boolean (place_item->priv->caja_prefs_settings,
+ CAJA_PREFS_DESKTOP_IS_HOME_DIR_KEY)) {
file = g_file_new_for_path (g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP));
uri = g_file_get_uri (file);
g_object_unref (file);
@@ -1072,15 +1070,14 @@ panel_place_menu_item_create_menu (PanelPlaceMenuItem *place_item)
panel_place_menu_item_append_gtk_bookmarks (places_menu);
add_menu_separator (places_menu);
- mateconf_name = mateconf_client_get_string (panel_mateconf_get_client (),
- COMPUTER_NAME_KEY,
- NULL);
+ gsettings_name = g_settings_get_string (place_item->priv->caja_desktop_settings,
+ CAJA_DESKTOP_COMPUTER_ICON_NAME_KEY);
panel_menu_items_append_from_desktop (places_menu,
"caja-computer.desktop",
- mateconf_name,
+ gsettings_name,
TRUE);
- if (mateconf_name)
- g_free (mateconf_name);
+ if (gsettings_name)
+ g_free (gsettings_name);
panel_place_menu_item_append_local_gio (place_item, places_menu);
add_menu_separator (places_menu);
@@ -1130,9 +1127,8 @@ panel_place_menu_item_recreate_menu (GtkWidget *widget)
}
static void
-panel_place_menu_item_key_changed (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
+panel_place_menu_item_key_changed (GSettings *settings,
+ gchar *key,
GtkWidget *place_item)
{
panel_place_menu_item_recreate_menu (place_item);
@@ -1195,7 +1191,12 @@ panel_desktop_menu_item_append_menu (GtkWidget *menu,
if (add_separator)
add_menu_separator (menu);
+ /* FIXME replace this with MATE documentation system, when it will be ready
+ * see: http://forums.mate-desktop.org/viewtopic.php?f=17&t=805
+
panel_menu_items_append_from_desktop (menu, "yelp.desktop", NULL, FALSE);
+ */
+
panel_menu_items_append_from_desktop (menu, "mate-about.desktop", NULL, FALSE);
if (parent->priv->append_lock_logout)
@@ -1238,12 +1239,14 @@ panel_place_menu_item_finalize (GObject *object)
{
PanelPlaceMenuItem *menuitem = (PanelPlaceMenuItem *) object;
- mateconf_client_remove_dir (panel_mateconf_get_client (),
- DESKTOP_IS_HOME_DIR_DIR,
- NULL);
- mateconf_client_remove_dir (panel_mateconf_get_client (),
- NAMES_DIR,
- NULL);
+ if (menuitem->priv->caja_desktop_settings) {
+ g_object_unref (menuitem->priv->caja_desktop_settings);
+ menuitem->priv->caja_desktop_settings = NULL;
+ }
+ if (menuitem->priv->caja_prefs_settings) {
+ g_object_unref (menuitem->priv->caja_prefs_settings);
+ menuitem->priv->caja_prefs_settings = NULL;
+ }
if (menuitem->priv->bookmarks_monitor != NULL) {
g_file_monitor_cancel (menuitem->priv->bookmarks_monitor);
@@ -1323,24 +1326,21 @@ panel_place_menu_item_init (PanelPlaceMenuItem *menuitem)
menuitem->priv = PANEL_PLACE_MENU_ITEM_GET_PRIVATE (menuitem);
- mateconf_client_add_dir (panel_mateconf_get_client (),
- DESKTOP_IS_HOME_DIR_DIR,
- MATECONF_CLIENT_PRELOAD_NONE,
- NULL);
- mateconf_client_add_dir (panel_mateconf_get_client (),
- NAMES_DIR,
- MATECONF_CLIENT_PRELOAD_NONE,
- NULL);
-
- panel_mateconf_notify_add_while_alive (HOME_NAME_KEY,
- (MateConfClientNotifyFunc) panel_place_menu_item_key_changed,
- G_OBJECT (menuitem));
- panel_mateconf_notify_add_while_alive (DESKTOP_IS_HOME_DIR_KEY,
- (MateConfClientNotifyFunc) panel_place_menu_item_key_changed,
- G_OBJECT (menuitem));
- panel_mateconf_notify_add_while_alive (COMPUTER_NAME_KEY,
- (MateConfClientNotifyFunc) panel_place_menu_item_key_changed,
- G_OBJECT (menuitem));
+ menuitem->priv->caja_desktop_settings = g_settings_new (CAJA_DESKTOP_SCHEMA);
+ menuitem->priv->caja_prefs_settings = g_settings_new (CAJA_PREFS_SCHEMA);
+
+ g_signal_connect (menuitem->priv->caja_desktop_settings,
+ "changed::" CAJA_DESKTOP_HOME_ICON_NAME_KEY,
+ G_CALLBACK (panel_place_menu_item_key_changed),
+ G_OBJECT (menuitem));
+ g_signal_connect (menuitem->priv->caja_desktop_settings,
+ "changed::" CAJA_DESKTOP_COMPUTER_ICON_NAME_KEY,
+ G_CALLBACK (panel_place_menu_item_key_changed),
+ G_OBJECT (menuitem));
+ g_signal_connect (menuitem->priv->caja_prefs_settings,
+ "changed::" CAJA_PREFS_DESKTOP_IS_HOME_DIR_KEY,
+ G_CALLBACK (panel_place_menu_item_key_changed),
+ G_OBJECT (menuitem));
menuitem->priv->recent_manager = gtk_recent_manager_get_default ();