summaryrefslogtreecommitdiff
path: root/src/eom-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eom-window.c')
-rw-r--r--src/eom-window.c584
1 files changed, 199 insertions, 385 deletions
diff --git a/src/eom-window.c b/src/eom-window.c
index 7114899..db49a7b 100644
--- a/src/eom-window.c
+++ b/src/eom-window.c
@@ -65,7 +65,6 @@
#include <gio/gio.h>
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
-#include <mateconf/mateconf-client.h>
#if HAVE_LCMS
#include <X11/Xlib.h>
@@ -116,32 +115,16 @@ enum {
static gint signals[SIGNAL_LAST];
-/* MateConfNotifications */
-enum {
- EOM_WINDOW_NOTIFY_INTERPOLATE,
- EOM_WINDOW_NOTIFY_EXTRAPOLATE,
- EOM_WINDOW_NOTIFY_SCROLLWHEEL_ZOOM,
- EOM_WINDOW_NOTIFY_ZOOM_MULTIPLIER,
- EOM_WINDOW_NOTIFY_BACKGROUND_COLOR,
- EOM_WINDOW_NOTIFY_USE_BG_COLOR,
- EOM_WINDOW_NOTIFY_TRANSPARENCY,
- EOM_WINDOW_NOTIFY_TRANS_COLOR,
- EOM_WINDOW_NOTIFY_SCROLL_BUTTONS,
- EOM_WINDOW_NOTIFY_COLLECTION_POS,
- EOM_WINDOW_NOTIFY_COLLECTION_RESIZABLE,
- EOM_WINDOW_NOTIFY_CAN_SAVE,
- EOM_WINDOW_NOTIFY_PROPSDIALOG_NETBOOK_MODE,
- EOM_WINDOW_NOTIFY_LENGTH
-};
-
struct _EomWindowPrivate {
- MateConfClient *client;
- guint client_notifications[EOM_WINDOW_NOTIFY_LENGTH];
+ GSettings *view_settings;
+ GSettings *ui_settings;
+ GSettings *fullscreen_settings;
+ GSettings *lockdown_settings;
EomListStore *store;
EomImage *image;
- EomWindowMode mode;
- EomWindowStatus status;
+ EomWindowMode mode;
+ EomWindowStatus status;
GtkUIManager *ui_mgr;
GtkWidget *box;
@@ -152,16 +135,16 @@ struct _EomWindowPrivate {
GtkWidget *thumbview;
GtkWidget *statusbar;
GtkWidget *nav;
- GtkWidget *message_area;
- GtkWidget *toolbar;
- GObject *properties_dlg;
+ GtkWidget *message_area;
+ GtkWidget *toolbar;
+ GObject *properties_dlg;
GtkActionGroup *actions_window;
GtkActionGroup *actions_image;
GtkActionGroup *actions_collection;
GtkActionGroup *actions_recent;
- GtkWidget *fullscreen_popup;
+ GtkWidget *fullscreen_popup;
GSource *fullscreen_timeout_source;
gboolean slideshow_loop;
@@ -234,10 +217,7 @@ eom_window_error_quark (void)
}
static void
-eom_window_interp_in_type_changed_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
+eom_window_interp_in_type_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
{
EomWindowPrivate *priv;
gboolean interpolate_in = TRUE;
@@ -250,19 +230,14 @@ eom_window_interp_in_type_changed_cb (MateConfClient *client,
g_return_if_fail (EOM_IS_SCROLL_VIEW (priv->view));
- if (entry->value != NULL && entry->value->type == MATECONF_VALUE_BOOL) {
- interpolate_in = mateconf_value_get_bool (entry->value);
- }
+ interpolate_in = g_settings_get_boolean (settings, key);
eom_scroll_view_set_antialiasing_in (EOM_SCROLL_VIEW (priv->view),
interpolate_in);
}
static void
-eom_window_interp_out_type_changed_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
+eom_window_interp_out_type_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
{
EomWindowPrivate *priv;
gboolean interpolate_out = TRUE;
@@ -275,19 +250,14 @@ eom_window_interp_out_type_changed_cb (MateConfClient *client,
g_return_if_fail (EOM_IS_SCROLL_VIEW (priv->view));
- if (entry->value != NULL && entry->value->type == MATECONF_VALUE_BOOL) {
- interpolate_out = mateconf_value_get_bool (entry->value);
- }
+ interpolate_out = g_settings_get_boolean (settings, key);
eom_scroll_view_set_antialiasing_out (EOM_SCROLL_VIEW (priv->view),
interpolate_out);
}
static void
-eom_window_scroll_wheel_zoom_changed_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
+eom_window_scroll_wheel_zoom_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
{
EomWindowPrivate *priv;
gboolean scroll_wheel_zoom = FALSE;
@@ -300,19 +270,14 @@ eom_window_scroll_wheel_zoom_changed_cb (MateConfClient *client,
g_return_if_fail (EOM_IS_SCROLL_VIEW (priv->view));
- if (entry->value != NULL && entry->value->type == MATECONF_VALUE_BOOL) {
- scroll_wheel_zoom = mateconf_value_get_bool (entry->value);
- }
+ scroll_wheel_zoom = g_settings_get_boolean (settings, key);
eom_scroll_view_set_scroll_wheel_zoom (EOM_SCROLL_VIEW (priv->view),
scroll_wheel_zoom);
}
static void
-eom_window_zoom_multiplier_changed_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
+eom_window_zoom_multiplier_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
{
EomWindowPrivate *priv;
gdouble multiplier = 0.05;
@@ -325,22 +290,17 @@ eom_window_zoom_multiplier_changed_cb (MateConfClient *client,
g_return_if_fail (EOM_IS_SCROLL_VIEW (priv->view));
- if (entry->value != NULL && entry->value->type == MATECONF_VALUE_FLOAT) {
- multiplier = mateconf_value_get_float (entry->value);
- }
+ multiplier = g_settings_get_double (settings, key);
eom_scroll_view_set_zoom_multiplier (EOM_SCROLL_VIEW (priv->view),
multiplier);
}
static void
-eom_window_transparency_changed_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
+eom_window_transparency_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
{
EomWindowPrivate *priv;
- const char *value = NULL;
+ char *value = NULL;
g_return_if_fail (EOM_IS_WINDOW (user_data));
@@ -350,9 +310,7 @@ eom_window_transparency_changed_cb (MateConfClient *client,
g_return_if_fail (EOM_IS_SCROLL_VIEW (priv->view));
- if (entry->value != NULL && entry->value->type == MATECONF_VALUE_STRING) {
- value = mateconf_value_get_string (entry->value);
- }
+ value = g_settings_get_string (settings, key);
if (value == NULL) {
return;
@@ -360,8 +318,7 @@ eom_window_transparency_changed_cb (MateConfClient *client,
GdkColor color;
char *color_str;
- color_str = mateconf_client_get_string (priv->client,
- EOM_CONF_VIEW_TRANS_COLOR, NULL);
+ color_str = g_settings_get_string (priv->view_settings, EOM_CONF_VIEW_TRANS_COLOR);
if (gdk_color_parse (color_str, &color)) {
eom_scroll_view_set_transparency (EOM_SCROLL_VIEW (priv->view),
EOM_TRANSP_COLOR, &color);
@@ -374,17 +331,15 @@ eom_window_transparency_changed_cb (MateConfClient *client,
eom_scroll_view_set_transparency (EOM_SCROLL_VIEW (priv->view),
EOM_TRANSP_BACKGROUND, NULL);
}
+ g_free (value);
}
static void
-eom_window_bg_color_changed_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
+eom_window_bg_color_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
{
EomWindowPrivate *priv;
GdkColor color;
- const char *color_str;
+ char *color_str;
g_return_if_fail (EOM_IS_WINDOW (user_data));
@@ -394,20 +349,16 @@ eom_window_bg_color_changed_cb (MateConfClient *client,
g_return_if_fail (EOM_IS_SCROLL_VIEW (priv->view));
- if (entry->value != NULL && entry->value->type == MATECONF_VALUE_STRING) {
- color_str = mateconf_value_get_string (entry->value);
+ color_str = g_settings_get_string (settings, key);
- if (gdk_color_parse (color_str, &color)) {
- eom_scroll_view_set_background_color (EOM_SCROLL_VIEW (priv->view), &color);
- }
+ if (gdk_color_parse (color_str, &color)) {
+ eom_scroll_view_set_background_color (EOM_SCROLL_VIEW (priv->view), &color);
}
+ g_free (color_str);
}
static void
-eom_window_use_bg_color_changed_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
+eom_window_use_bg_color_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
{
EomWindowPrivate *priv;
gboolean use_bg_color = TRUE;
@@ -420,9 +371,7 @@ eom_window_use_bg_color_changed_cb (MateConfClient *client,
g_return_if_fail (EOM_IS_SCROLL_VIEW (priv->view));
- if (entry->value != NULL && entry->value->type == MATECONF_VALUE_BOOL) {
- use_bg_color = mateconf_value_get_bool (entry->value);
- }
+ use_bg_color = g_settings_get_boolean (settings, key);
eom_scroll_view_set_use_bg_color (EOM_SCROLL_VIEW (priv->view),
use_bg_color);
@@ -430,14 +379,11 @@ eom_window_use_bg_color_changed_cb (MateConfClient *client,
static void
-eom_window_trans_color_changed_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
+eom_window_trans_color_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
{
EomWindowPrivate *priv;
GdkColor color;
- const char *color_str;
+ char *color_str;
char *value;
g_return_if_fail (EOM_IS_WINDOW (user_data));
@@ -448,31 +394,25 @@ eom_window_trans_color_changed_cb (MateConfClient *client,
g_return_if_fail (EOM_IS_SCROLL_VIEW (priv->view));
- value = mateconf_client_get_string (priv->client,
- EOM_CONF_VIEW_TRANSPARENCY,
- NULL);
+ value = g_settings_get_string (priv->view_settings, EOM_CONF_VIEW_TRANSPARENCY);
if (!value || g_ascii_strcasecmp (value, "COLOR") != 0) {
g_free (value);
return;
}
- if (entry->value != NULL && entry->value->type == MATECONF_VALUE_STRING) {
- color_str = mateconf_value_get_string (entry->value);
+ color_str = g_settings_get_string (settings, key);
- if (gdk_color_parse (color_str, &color)) {
- eom_scroll_view_set_transparency (EOM_SCROLL_VIEW (priv->view),
- EOM_TRANSP_COLOR, &color);
- }
+ if (gdk_color_parse (color_str, &color)) {
+ eom_scroll_view_set_transparency (EOM_SCROLL_VIEW (priv->view),
+ EOM_TRANSP_COLOR, &color);
}
g_free (value);
+ g_free (color_str);
}
static void
-eom_window_scroll_buttons_changed_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
+eom_window_scroll_buttons_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
{
EomWindowPrivate *priv;
gboolean show_buttons = TRUE;
@@ -485,22 +425,16 @@ eom_window_scroll_buttons_changed_cb (MateConfClient *client,
g_return_if_fail (EOM_IS_SCROLL_VIEW (priv->view));
- if (entry->value != NULL && entry->value->type == MATECONF_VALUE_BOOL) {
- show_buttons = mateconf_value_get_bool (entry->value);
- }
+ show_buttons = g_settings_get_boolean (settings, key);
eom_thumb_nav_set_show_buttons (EOM_THUMB_NAV (priv->nav),
show_buttons);
}
static void
-eom_window_collection_mode_changed_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
+eom_window_collection_mode_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
{
EomWindowPrivate *priv;
- MateConfEntry *mode_entry;
GtkWidget *hpaned;
EomThumbNavMode mode = EOM_THUMB_NAV_MODE_ONE_ROW;
gint position = 0;
@@ -512,29 +446,8 @@ eom_window_collection_mode_changed_cb (MateConfClient *client,
priv = EOM_WINDOW (user_data)->priv;
- mode_entry = mateconf_client_get_entry (priv->client,
- EOM_CONF_UI_IMAGE_COLLECTION_POSITION,
- NULL, TRUE, NULL);
-
- if (G_LIKELY (mode_entry != NULL)) {
- if (mode_entry->value != NULL &&
- mode_entry->value->type == MATECONF_VALUE_INT) {
- position = mateconf_value_get_int (mode_entry->value);
- }
- mateconf_entry_unref (mode_entry);
- }
-
- mode_entry = mateconf_client_get_entry (priv->client,
- EOM_CONF_UI_IMAGE_COLLECTION_RESIZABLE,
- NULL, TRUE, NULL);
-
- if (G_LIKELY (mode_entry != NULL)) {
- if (mode_entry->value != NULL &&
- mode_entry->value->type == MATECONF_VALUE_BOOL) {
- resizable = mateconf_value_get_bool (mode_entry->value);
- }
- mateconf_entry_unref (mode_entry);
- }
+ position = g_settings_get_int (priv->ui_settings, EOM_CONF_UI_IMAGE_COLLECTION_POSITION);
+ resizable = g_settings_get_boolean (priv->ui_settings, EOM_CONF_UI_IMAGE_COLLECTION_RESIZABLE);
if (priv->collection_position == position &&
priv->collection_resizable == resizable)
@@ -624,10 +537,7 @@ eom_window_collection_mode_changed_cb (MateConfClient *client,
}
static void
-eom_window_can_save_changed_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
+eom_window_can_save_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
{
EomWindowPrivate *priv;
EomWindow *window;
@@ -641,9 +551,7 @@ eom_window_can_save_changed_cb (MateConfClient *client,
window = EOM_WINDOW (user_data);
priv = EOM_WINDOW (user_data)->priv;
- if (entry->value != NULL && entry->value->type == MATECONF_VALUE_BOOL) {
- save_disabled = mateconf_value_get_bool (entry->value);
- }
+ save_disabled = g_settings_get_boolean (settings, key);
priv->save_disabled = save_disabled;
@@ -668,10 +576,7 @@ eom_window_can_save_changed_cb (MateConfClient *client,
}
static void
-eom_window_pd_nbmode_changed_cb (MateConfClient *client,
- guint cnxn_id,
- MateConfEntry *entry,
- gpointer user_data)
+eom_window_pd_nbmode_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
{
EomWindow *window = EOM_WINDOW (user_data);
@@ -679,7 +584,7 @@ eom_window_pd_nbmode_changed_cb (MateConfClient *client,
gboolean netbook_mode;
EomPropertiesDialog *dlg;
- netbook_mode = mateconf_value_get_bool (entry->value);
+ netbook_mode = g_settings_get_boolean (settings, key);
dlg = EOM_PROPERTIES_DIALOG (window->priv->properties_dlg);
eom_properties_dialog_set_netbook_mode (dlg, netbook_mode);
@@ -821,7 +726,11 @@ update_status_bar (EomWindow *window)
if ((width > 0) && (height > 0)) {
char *size_string;
- size_string = g_format_size_for_display (bytes);
+ #if GLIB_CHECK_VERSION(2, 30, 0)
+ size_string = g_format_size (bytes);
+ #else
+ size_string = g_format_size_for_display (bytes);
+ #endif
/* Translators: This is the string displayed in the statusbar
* The tokens are from left to right:
@@ -942,17 +851,12 @@ update_action_groups_state (EomWindow *window)
}
} else {
if (priv->flags & EOM_STARTUP_DISABLE_COLLECTION) {
- mateconf_client_set_bool (priv->client,
- EOM_CONF_UI_IMAGE_COLLECTION,
- FALSE,
- NULL);
+ g_settings_set_boolean (priv->ui_settings, EOM_CONF_UI_IMAGE_COLLECTION, FALSE);
show_image_collection = FALSE;
} else {
show_image_collection =
- mateconf_client_get_bool (priv->client,
- EOM_CONF_UI_IMAGE_COLLECTION,
- NULL);
+ g_settings_get_boolean (priv->ui_settings, EOM_CONF_UI_IMAGE_COLLECTION);
}
show_image_collection = show_image_collection &&
@@ -987,17 +891,15 @@ update_action_groups_state (EomWindow *window)
gtk_widget_grab_focus (priv->view);
}
- print_disabled = mateconf_client_get_bool (priv->client,
- EOM_CONF_DESKTOP_CAN_PRINT,
- NULL);
+ print_disabled = g_settings_get_boolean (priv->lockdown_settings,
+ EOM_CONF_LOCKDOWN_CAN_PRINT);
if (print_disabled) {
gtk_action_set_sensitive (action_print, FALSE);
}
- page_setup_disabled = mateconf_client_get_bool (priv->client,
- EOM_CONF_DESKTOP_CAN_SETUP_PAGE,
- NULL);
+ page_setup_disabled = g_settings_get_boolean (priv->lockdown_settings,
+ EOM_CONF_LOCKDOWN_CAN_SETUP_PAGE);
if (eom_sidebar_is_empty (EOM_SIDEBAR (priv->sidebar))) {
gtk_action_set_sensitive (action_sidebar, FALSE);
@@ -2226,7 +2128,6 @@ update_ui_visibility (EomWindow *window)
GtkAction *action;
GtkWidget *menubar;
- GError *error = NULL;
gboolean fullscreen_mode, visible;
@@ -2242,32 +2143,24 @@ update_ui_visibility (EomWindow *window)
menubar = gtk_ui_manager_get_widget (priv->ui_mgr, "/MainMenu");
g_assert (GTK_IS_WIDGET (menubar));
- visible = mateconf_client_get_bool (priv->client, EOM_CONF_UI_TOOLBAR, &error);
+ visible = g_settings_get_boolean (priv->ui_settings, EOM_CONF_UI_TOOLBAR);
visible = visible && !fullscreen_mode;
- if (error) {
- g_error_free (error);
- error = NULL;
- visible = !fullscreen_mode;
- }
+
action = gtk_ui_manager_get_action (priv->ui_mgr, "/MainMenu/View/ToolbarToggle");
g_assert (action != NULL);
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), visible);
g_object_set (G_OBJECT (priv->toolbar), "visible", visible, NULL);
- visible = mateconf_client_get_bool (priv->client, EOM_CONF_UI_STATUSBAR, &error);
+ visible = g_settings_get_boolean (priv->ui_settings, EOM_CONF_UI_STATUSBAR);
visible = visible && !fullscreen_mode;
- if (error) {
- g_error_free (error);
- error = NULL;
- visible = !fullscreen_mode;
- }
+
action = gtk_ui_manager_get_action (priv->ui_mgr, "/MainMenu/View/StatusbarToggle");
g_assert (action != NULL);
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), visible);
g_object_set (G_OBJECT (priv->statusbar), "visible", visible, NULL);
if (priv->status != EOM_WINDOW_STATUS_INIT) {
- visible = mateconf_client_get_bool (priv->client, EOM_CONF_UI_IMAGE_COLLECTION, NULL);
+ visible = g_settings_get_boolean (priv->ui_settings, EOM_CONF_UI_IMAGE_COLLECTION);
visible = visible && priv->mode != EOM_WINDOW_MODE_SLIDESHOW;
action = gtk_ui_manager_get_action (priv->ui_mgr, "/MainMenu/View/ImageCollectionToggle");
g_assert (action != NULL);
@@ -2279,7 +2172,7 @@ update_ui_visibility (EomWindow *window)
}
}
- visible = mateconf_client_get_bool (priv->client, EOM_CONF_UI_SIDEBAR, NULL);
+ visible = g_settings_get_boolean (priv->ui_settings, EOM_CONF_UI_SIDEBAR);
visible = visible && !fullscreen_mode;
action = gtk_ui_manager_get_action (priv->ui_mgr, "/MainMenu/View/SidebarToggle");
g_assert (action != NULL);
@@ -2350,21 +2243,18 @@ eom_window_run_fullscreen (EomWindow *window, gboolean slideshow)
if (slideshow) {
priv->slideshow_loop =
- mateconf_client_get_bool (priv->client,
- EOM_CONF_FULLSCREEN_LOOP,
- NULL);
+ g_settings_get_boolean (priv->fullscreen_settings,
+ EOM_CONF_FULLSCREEN_LOOP);
priv->slideshow_switch_timeout =
- mateconf_client_get_int (priv->client,
- EOM_CONF_FULLSCREEN_SECONDS,
- NULL);
+ g_settings_get_int (priv->fullscreen_settings,
+ EOM_CONF_FULLSCREEN_SECONDS);
slideshow_set_timeout (window);
}
- upscale = mateconf_client_get_bool (priv->client,
- EOM_CONF_FULLSCREEN_UPSCALE,
- NULL);
+ upscale = g_settings_get_boolean (priv->fullscreen_settings,
+ EOM_CONF_FULLSCREEN_UPSCALE);
eom_scroll_view_set_zoom_upscale (EOM_SCROLL_VIEW (priv->view),
upscale);
@@ -2546,9 +2436,8 @@ eom_window_cmd_file_open (GtkAction *action, gpointer user_data)
const gchar *pics_dir;
gboolean use_fallback;
- use_fallback = mateconf_client_get_bool (priv->client,
- EOM_CONF_UI_FILECHOOSER_XDG_FALLBACK,
- NULL);
+ use_fallback = g_settings_get_boolean (priv->fullscreen_settings,
+ EOM_CONF_UI_FILECHOOSER_XDG_FALLBACK);
pics_dir = g_get_user_special_dir (G_USER_DIRECTORY_PICTURES);
if (use_fallback && pics_dir) {
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dlg),
@@ -2691,8 +2580,7 @@ eom_window_cmd_preferences (GtkAction *action, gpointer user_data)
window = EOM_WINDOW (user_data);
- pref_dlg = eom_preferences_dialog_get_instance (GTK_WINDOW (window),
- window->priv->client);
+ pref_dlg = eom_preferences_dialog_get_instance (GTK_WINDOW (window));
eom_dialog_show (EOM_DIALOG (pref_dlg));
}
@@ -2903,13 +2791,13 @@ eom_window_cmd_show_hide_bar (GtkAction *action, gpointer user_data)
g_object_set (G_OBJECT (priv->toolbar), "visible", visible, NULL);
if (priv->mode == EOM_WINDOW_MODE_NORMAL)
- mateconf_client_set_bool (priv->client, EOM_CONF_UI_TOOLBAR, visible, NULL);
+ g_settings_set_boolean (priv->ui_settings, EOM_CONF_UI_TOOLBAR, visible);
} else if (g_ascii_strcasecmp (gtk_action_get_name (action), "ViewStatusbar") == 0) {
g_object_set (G_OBJECT (priv->statusbar), "visible", visible, NULL);
if (priv->mode == EOM_WINDOW_MODE_NORMAL)
- mateconf_client_set_bool (priv->client, EOM_CONF_UI_STATUSBAR, visible, NULL);
+ g_settings_set_boolean (priv->ui_settings, EOM_CONF_UI_STATUSBAR, visible);
} else if (g_ascii_strcasecmp (gtk_action_get_name (action), "ViewImageCollection") == 0) {
if (visible) {
@@ -2946,7 +2834,7 @@ eom_window_cmd_show_hide_bar (GtkAction *action, gpointer user_data)
#endif
gtk_widget_grab_focus (priv->view);
}
- mateconf_client_set_bool (priv->client, EOM_CONF_UI_IMAGE_COLLECTION, visible, NULL);
+ g_settings_set_boolean (priv->ui_settings, EOM_CONF_UI_IMAGE_COLLECTION, visible);
} else if (g_ascii_strcasecmp (gtk_action_get_name (action), "ViewSidebar") == 0) {
if (visible) {
@@ -2954,7 +2842,7 @@ eom_window_cmd_show_hide_bar (GtkAction *action, gpointer user_data)
} else {
gtk_widget_hide (priv->sidebar);
}
- mateconf_client_set_bool (priv->client, EOM_CONF_UI_SIDEBAR, visible, NULL);
+ g_settings_set_boolean (priv->ui_settings, EOM_CONF_UI_SIDEBAR, visible);
}
}
@@ -2986,12 +2874,13 @@ eom_window_set_wallpaper (EomWindow *window, const gchar *filename, const gchar
gchar *markup;
gchar *text;
gchar *basename;
+ GSettings *wallpaper_settings;
-
- mateconf_client_set_string (priv->client,
- EOM_CONF_DESKTOP_WALLPAPER,
- filename,
- NULL);
+ wallpaper_settings = g_settings_new (EOM_CONF_BACKGROUND_SCHEMA);
+ g_settings_set_string (wallpaper_settings,
+ EOM_CONF_BACKGROUND_FILE,
+ filename);
+ g_object_unref (wallpaper_settings);
/* I18N: When setting mnemonics for these strings, watch out to not
clash with mnemonics from eom's menubar */
@@ -3313,9 +3202,8 @@ eom_window_cmd_properties (GtkAction *action, gpointer user_data)
eom_properties_dialog_update (EOM_PROPERTIES_DIALOG (priv->properties_dlg),
priv->image);
netbook_mode =
- mateconf_client_get_bool (priv->client,
- EOM_CONF_UI_PROPSDIALOG_NETBOOK_MODE,
- NULL);
+ g_settings_get_boolean (priv->ui_settings,
+ EOM_CONF_UI_PROPSDIALOG_NETBOOK_MODE);
eom_properties_dialog_set_netbook_mode (EOM_PROPERTIES_DIALOG (priv->properties_dlg),
netbook_mode);
}
@@ -3473,11 +3361,9 @@ show_move_to_trash_confirm_dialog (EomWindow *window, GList *images, gboolean ca
gboolean neverask = FALSE;
GtkWidget* dontask_cbutton = NULL;
- /* Check if the user never wants to be bugged. Ignore the error as
- * it returns FALSE for safety anyway */
- neverask = mateconf_client_get_bool (window->priv->client,
- EOM_CONF_UI_DISABLE_TRASH_CONFIRMATION,
- NULL);
+ /* Check if the user never wants to be bugged. */
+ neverask = g_settings_get_boolean (window->priv->ui_settings,
+ EOM_CONF_UI_DISABLE_TRASH_CONFIRMATION);
/* Assume agreement, if the user doesn't want to be
* asked and the trash is available */
@@ -4323,10 +4209,9 @@ eom_window_sidebar_visibility_changed (GtkWidget *widget, EomWindow *window)
visible = gtk_widget_get_visible (window->priv->sidebar);
- mateconf_client_set_bool (window->priv->client,
+ g_settings_set_boolean (window->priv->ui_settings,
EOM_CONF_UI_SIDEBAR,
- visible,
- NULL);
+ visible);
action = gtk_action_group_get_action (window->priv->actions_window,
"ViewSidebar");
@@ -4401,8 +4286,6 @@ eom_window_construct_ui (EomWindow *window)
GtkWidget *hpaned;
GtkWidget *menuitem;
- MateConfEntry *entry;
-
g_return_if_fail (EOM_IS_WINDOW (window));
priv = window->priv;
@@ -4619,9 +4502,8 @@ eom_window_construct_ui (EomWindow *window)
priv->nav = eom_thumb_nav_new (priv->thumbview,
EOM_THUMB_NAV_MODE_ONE_ROW,
- mateconf_client_get_bool (priv->client,
- EOM_CONF_UI_SCROLL_BUTTONS,
- NULL));
+ g_settings_get_boolean (priv->ui_settings,
+ EOM_CONF_UI_SCROLL_BUTTONS));
thumb_popup = gtk_ui_manager_get_widget (priv->ui_mgr, "/ThumbnailPopup");
eom_thumb_view_set_thumbnail_popup (EOM_THUMB_VIEW (priv->thumbview),
@@ -4631,96 +4513,36 @@ eom_window_construct_ui (EomWindow *window)
gtk_box_pack_end (GTK_BOX (priv->cbox), priv->layout, TRUE, TRUE, 0);
-
- entry = mateconf_client_get_entry (priv->client,
+ eom_window_interp_in_type_changed_cb (priv->view_settings,
EOM_CONF_VIEW_EXTRAPOLATE,
- NULL, TRUE, NULL);
- if (entry != NULL) {
- eom_window_interp_in_type_changed_cb (priv->client, 0, entry, window);
- mateconf_entry_unref (entry);
- entry = NULL;
- }
-
- entry = mateconf_client_get_entry (priv->client,
+ window);
+ eom_window_interp_out_type_changed_cb (priv->view_settings,
EOM_CONF_VIEW_INTERPOLATE,
- NULL, TRUE, NULL);
- if (entry != NULL) {
- eom_window_interp_out_type_changed_cb (priv->client, 0, entry, window);
- mateconf_entry_unref (entry);
- entry = NULL;
- }
-
- entry = mateconf_client_get_entry (priv->client,
+ window);
+ eom_window_scroll_wheel_zoom_changed_cb (priv->view_settings,
EOM_CONF_VIEW_SCROLL_WHEEL_ZOOM,
- NULL, TRUE, NULL);
- if (entry != NULL) {
- eom_window_scroll_wheel_zoom_changed_cb (priv->client, 0, entry, window);
- mateconf_entry_unref (entry);
- entry = NULL;
- }
-
- entry = mateconf_client_get_entry (priv->client,
+ window);
+ eom_window_zoom_multiplier_changed_cb (priv->view_settings,
EOM_CONF_VIEW_ZOOM_MULTIPLIER,
- NULL, TRUE, NULL);
- if (entry != NULL) {
- eom_window_zoom_multiplier_changed_cb (priv->client, 0, entry, window);
- mateconf_entry_unref (entry);
- entry = NULL;
- }
-
- entry = mateconf_client_get_entry (priv->client,
+ window);
+ eom_window_bg_color_changed_cb (priv->view_settings,
EOM_CONF_VIEW_BACKGROUND_COLOR,
- NULL, TRUE, NULL);
- if (entry != NULL) {
- eom_window_bg_color_changed_cb (priv->client, 0, entry, window);
- mateconf_entry_unref (entry);
- entry = NULL;
- }
-
- entry = mateconf_client_get_entry (priv->client,
+ window);
+ eom_window_use_bg_color_changed_cb (priv->view_settings,
EOM_CONF_VIEW_USE_BG_COLOR,
- NULL, TRUE, NULL);
- if (entry != NULL) {
- eom_window_use_bg_color_changed_cb (priv->client, 0, entry, window);
- mateconf_entry_unref (entry);
- entry = NULL;
- }
-
- entry = mateconf_client_get_entry (priv->client,
+ window);
+ eom_window_transparency_changed_cb (priv->view_settings,
EOM_CONF_VIEW_TRANSPARENCY,
- NULL, TRUE, NULL);
- if (entry != NULL) {
- eom_window_transparency_changed_cb (priv->client, 0, entry, window);
- mateconf_entry_unref (entry);
- entry = NULL;
- }
-
- entry = mateconf_client_get_entry (priv->client,
+ window);
+ eom_window_trans_color_changed_cb (priv->view_settings,
EOM_CONF_VIEW_TRANS_COLOR,
- NULL, TRUE, NULL);
- if (entry != NULL) {
- eom_window_trans_color_changed_cb (priv->client, 0, entry, window);
- mateconf_entry_unref (entry);
- entry = NULL;
- }
-
- entry = mateconf_client_get_entry (priv->client,
+ window);
+ eom_window_collection_mode_changed_cb (priv->ui_settings,
EOM_CONF_UI_IMAGE_COLLECTION_POSITION,
- NULL, TRUE, NULL);
- if (entry != NULL) {
- eom_window_collection_mode_changed_cb (priv->client, 0, entry, window);
- mateconf_entry_unref (entry);
- entry = NULL;
- }
-
- entry = mateconf_client_get_entry (priv->client,
- EOM_CONF_DESKTOP_CAN_SAVE,
- NULL, TRUE, NULL);
- if (entry != NULL) {
- eom_window_can_save_changed_cb (priv->client, 0, entry, window);
- mateconf_entry_unref (entry);
- entry = NULL;
- }
+ window);
+ eom_window_can_save_changed_cb (priv->lockdown_settings,
+ EOM_CONF_LOCKDOWN_CAN_SAVE,
+ window);
if ((priv->flags & EOM_STARTUP_FULLSCREEN) ||
(priv->flags & EOM_STARTUP_SLIDE_SHOW)) {
@@ -4749,88 +4571,75 @@ eom_window_init (EomWindow *window)
priv = window->priv = EOM_WINDOW_GET_PRIVATE (window);
- priv->client = mateconf_client_get_default ();
-
- mateconf_client_add_dir (window->priv->client, EOM_CONF_DIR,
- MATECONF_CLIENT_PRELOAD_RECURSIVE, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_EXTRAPOLATE] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_VIEW_EXTRAPOLATE,
- eom_window_interp_in_type_changed_cb,
- window, NULL, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_INTERPOLATE] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_VIEW_INTERPOLATE,
- eom_window_interp_out_type_changed_cb,
- window, NULL, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_SCROLLWHEEL_ZOOM] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_VIEW_SCROLL_WHEEL_ZOOM,
- eom_window_scroll_wheel_zoom_changed_cb,
- window, NULL, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_ZOOM_MULTIPLIER] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_VIEW_ZOOM_MULTIPLIER,
- eom_window_zoom_multiplier_changed_cb,
- window, NULL, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_BACKGROUND_COLOR] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_VIEW_BACKGROUND_COLOR,
- eom_window_bg_color_changed_cb,
- window, NULL, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_USE_BG_COLOR] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_VIEW_USE_BG_COLOR,
- eom_window_use_bg_color_changed_cb,
- window, NULL, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_TRANSPARENCY] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_VIEW_TRANSPARENCY,
- eom_window_transparency_changed_cb,
- window, NULL, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_TRANS_COLOR] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_VIEW_TRANS_COLOR,
- eom_window_trans_color_changed_cb,
- window, NULL, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_SCROLL_BUTTONS] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_UI_SCROLL_BUTTONS,
- eom_window_scroll_buttons_changed_cb,
- window, NULL, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_COLLECTION_POS] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_UI_IMAGE_COLLECTION_POSITION,
- eom_window_collection_mode_changed_cb,
- window, NULL, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_COLLECTION_RESIZABLE] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_UI_IMAGE_COLLECTION_RESIZABLE,
- eom_window_collection_mode_changed_cb,
- window, NULL, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_CAN_SAVE] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_DESKTOP_CAN_SAVE,
- eom_window_can_save_changed_cb,
- window, NULL, NULL);
-
- priv->client_notifications[EOM_WINDOW_NOTIFY_PROPSDIALOG_NETBOOK_MODE] =
- mateconf_client_notify_add (window->priv->client,
- EOM_CONF_UI_PROPSDIALOG_NETBOOK_MODE,
- eom_window_pd_nbmode_changed_cb,
- window, NULL, NULL);
+ priv->view_settings = g_settings_new (EOM_CONF_VIEW_SCHEMA);
+ priv->ui_settings = g_settings_new (EOM_CONF_UI_SCHEMA);
+ priv->fullscreen_settings = g_settings_new (EOM_CONF_FULLSCREEN_SCHEMA);
+ priv->lockdown_settings = g_settings_new (EOM_CONF_LOCKDOWN_SCHEMA);
+
+ g_signal_connect (priv->view_settings,
+ "changed::" EOM_CONF_VIEW_EXTRAPOLATE,
+ G_CALLBACK (eom_window_interp_in_type_changed_cb),
+ window);
+
+ g_signal_connect (priv->view_settings,
+ "changed::" EOM_CONF_VIEW_INTERPOLATE,
+ G_CALLBACK (eom_window_interp_out_type_changed_cb),
+ window);
+
+ g_signal_connect (priv->view_settings,
+ "changed::" EOM_CONF_VIEW_SCROLL_WHEEL_ZOOM,
+ G_CALLBACK (eom_window_scroll_wheel_zoom_changed_cb),
+ window);
+
+ g_signal_connect (priv->view_settings,
+ "changed::" EOM_CONF_VIEW_ZOOM_MULTIPLIER,
+ G_CALLBACK (eom_window_zoom_multiplier_changed_cb),
+ window);
+
+ g_signal_connect (priv->view_settings,
+ "changed::" EOM_CONF_VIEW_BACKGROUND_COLOR,
+ G_CALLBACK (eom_window_bg_color_changed_cb),
+ window);
+
+ g_signal_connect (priv->view_settings,
+ "changed::" EOM_CONF_VIEW_USE_BG_COLOR,
+ G_CALLBACK (eom_window_use_bg_color_changed_cb),
+ window);
+
+ g_signal_connect (priv->view_settings,
+ "changed::" EOM_CONF_VIEW_TRANSPARENCY,
+ G_CALLBACK (eom_window_transparency_changed_cb),
+ window);
+
+ g_signal_connect (priv->view_settings,
+ "changed::" EOM_CONF_VIEW_TRANS_COLOR,
+ G_CALLBACK (eom_window_trans_color_changed_cb),
+ window);
+
+ g_signal_connect (priv->ui_settings,
+ "changed::" EOM_CONF_UI_SCROLL_BUTTONS,
+ G_CALLBACK (eom_window_scroll_buttons_changed_cb),
+ window);
+
+ g_signal_connect (priv->ui_settings,
+ "changed::" EOM_CONF_UI_IMAGE_COLLECTION_POSITION,
+ G_CALLBACK (eom_window_collection_mode_changed_cb),
+ window);
+
+ g_signal_connect (priv->ui_settings,
+ "changed::" EOM_CONF_UI_IMAGE_COLLECTION_RESIZABLE,
+ G_CALLBACK (eom_window_collection_mode_changed_cb),
+ window);
+
+ g_signal_connect (priv->ui_settings,
+ "changed::" EOM_CONF_UI_PROPSDIALOG_NETBOOK_MODE,
+ G_CALLBACK (eom_window_pd_nbmode_changed_cb),
+ window);
+
+ g_signal_connect (priv->lockdown_settings,
+ "changed::" EOM_CONF_LOCKDOWN_CAN_SAVE,
+ G_CALLBACK (eom_window_can_save_changed_cb),
+ window);
window->priv->store = NULL;
window->priv->image = NULL;
@@ -4950,16 +4759,21 @@ eom_window_dispose (GObject *object)
eom_window_clear_transform_job (window);
- if (priv->client) {
- int i;
-
- for (i = 0; i < EOM_WINDOW_NOTIFY_LENGTH; ++i) {
- mateconf_client_notify_remove (priv->client,
- priv->client_notifications[i]);
- }
- mateconf_client_remove_dir (priv->client, EOM_CONF_DIR, NULL);
- g_object_unref (priv->client);
- priv->client = NULL;
+ if (priv->view_settings) {
+ g_object_unref (priv->view_settings);
+ priv->view_settings = NULL;
+ }
+ if (priv->ui_settings) {
+ g_object_unref (priv->ui_settings);
+ priv->ui_settings = NULL;
+ }
+ if (priv->fullscreen_settings) {
+ g_object_unref (priv->fullscreen_settings);
+ priv->fullscreen_settings = NULL;
+ }
+ if (priv->lockdown_settings) {
+ g_object_unref (priv->lockdown_settings);
+ priv->lockdown_settings = NULL;
}
if (priv->file_list != NULL) {
@@ -5495,7 +5309,7 @@ eom_job_model_cb (EomJobModel *job, gpointer data)
n_images = eom_list_store_length (EOM_LIST_STORE (priv->store));
#ifdef HAVE_EXIF
- if (mateconf_client_get_bool (priv->client, EOM_CONF_VIEW_AUTOROTATE, NULL)) {
+ if (g_settings_get_boolean (priv->view_settings, EOM_CONF_VIEW_AUTOROTATE)) {
for (i = 0; i < n_images; i++) {
image = eom_list_store_get_image_by_pos (priv->store, i);
eom_image_autorotate (image);