[Xfce4-commits] [apps/xfce4-screensaver] 01/04: Refactor settings handling

noreply at xfce.org noreply at xfce.org
Sun Jun 30 16:13:04 CEST 2019


This is an automated email from the git hooks/post-receive script.

b   l   u   e   s   a   b   r   e       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository apps/xfce4-screensaver.

commit c6d00bb95176e6746ea10658279e5f17eed085bb
Author: Alexander Butenko <a.butenka at gmail.com>
Date:   Wed Jun 19 08:13:25 2019 -0400

    Refactor settings handling
    
    Signed-off-by: Sean Davis <smd.seandavis at gmail.com>
---
 src/Makefile.am     |   2 +
 src/gs-manager.c    | 391 +++++-----------------------------------------------
 src/gs-manager.h    |  26 ----
 src/gs-monitor.c    |  33 +----
 src/gs-window-x11.c | 277 ++++---------------------------------
 src/gs-window.h     |  22 +--
 src/test-window.c   |  11 +-
 7 files changed, 70 insertions(+), 692 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 37f2b25..7d0b836 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -93,6 +93,8 @@ test_window_SOURCES = \
 	gs-marshal.h     \
 	gs-debug.c       \
 	gs-debug.h       \
+	gs-prefs.c       \
+	gs-prefs.h       \
 	subprocs.c       \
 	subprocs.h       \
 	$(NULL)
diff --git a/src/gs-manager.c b/src/gs-manager.c
index 766af53..21d7089 100644
--- a/src/gs-manager.c
+++ b/src/gs-manager.c
@@ -35,7 +35,7 @@
 #include "gs-grab.h"
 #include "gs-job.h"
 #include "gs-manager.h"
-#include "gs-prefs.h"        /* for GSSaverMode */
+#include "gs-prefs.h"
 #include "gs-theme-manager.h"
 #include "gs-window.h"
 #include "xfce-bg.h"
@@ -52,22 +52,10 @@ struct GSManagerPrivate {
     XfceBG         *bg;
 
     /* Policy */
+    GSPrefs         *prefs;
     glong           lock_timeout;
     glong           cycle_timeout;
-    glong           logout_timeout;
-
-    guint           saver_enabled : 1;
-    guint           lock_enabled : 1;
-    guint           lock_with_saver_enabled : 1;
-    guint           logout_enabled : 1;
-    guint           keyboard_enabled : 1;
-    guint           user_switch_enabled : 1;
-    guint           status_message_enabled : 1;
     guint           throttled : 1;
-
-    char           *logout_command;
-    char           *keyboard_command;
-
     char           *status_message;
 
     /* State */
@@ -82,8 +70,6 @@ struct GSManagerPrivate {
     guint           lock_timeout_id;
     guint           cycle_timeout_id;
 
-    GSList         *themes;
-    GSSaverMode     saver_mode;
     GSGrab         *grab;
     guint           deepsleep_idle_id;
     gboolean        deepsleep;
@@ -99,17 +85,6 @@ enum {
 
 enum {
     PROP_0,
-    PROP_LOCK_ENABLED,
-    PROP_LOCK_WITH_SAVER_ENABLED,
-    PROP_LOGOUT_ENABLED,
-    PROP_USER_SWITCH_ENABLED,
-    PROP_KEYBOARD_ENABLED,
-    PROP_LOCK_TIMEOUT,
-    PROP_CYCLE_TIMEOUT,
-    PROP_LOGOUT_TIMEOUT,
-    PROP_LOGOUT_COMMAND,
-    PROP_KEYBOARD_COMMAND,
-    PROP_STATUS_MESSAGE_ENABLED,
     PROP_STATUS_MESSAGE,
     PROP_ACTIVE,
     PROP_THROTTLED,
@@ -154,19 +129,18 @@ select_theme (GSManager *manager) {
     g_return_val_if_fail (manager != NULL, NULL);
     g_return_val_if_fail (GS_IS_MANAGER (manager), NULL);
 
-    if (!manager->priv->saver_enabled ||
-            manager->priv->saver_mode == GS_MODE_BLANK_ONLY) {
+    if (!manager->priv->prefs->saver_enabled || manager->priv->prefs->mode == GS_MODE_BLANK_ONLY) {
         return NULL;
     }
 
-    if (manager->priv->themes) {
+    if (manager->priv->prefs->themes) {
         int number = 0;
 
-        if (manager->priv->saver_mode == GS_MODE_RANDOM) {
+        if (manager->priv->prefs->mode == GS_MODE_RANDOM) {
             g_random_set_seed (time (NULL));
-            number = g_random_int_range (0, g_slist_length (manager->priv->themes));
+            number = g_random_int_range (0, g_slist_length (manager->priv->prefs->themes));
         }
-        theme = g_slist_nth_data (manager->priv->themes, number);
+        theme = g_slist_nth_data (manager->priv->prefs->themes, number);
     }
 
     return theme;
@@ -339,37 +313,6 @@ manager_stop_jobs (GSManager *manager) {
 }
 
 void
-gs_manager_set_mode (GSManager  *manager,
-                     GSSaverMode mode) {
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    manager->priv->saver_mode = mode;
-}
-
-static void
-free_themes (GSManager *manager) {
-    if (manager->priv->themes) {
-        g_slist_foreach (manager->priv->themes, (GFunc)g_free, NULL);
-        g_slist_free (manager->priv->themes);
-    }
-}
-
-void
-gs_manager_set_themes (GSManager *manager,
-                       GSList    *themes) {
-    GSList *l;
-
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    free_themes (manager);
-    manager->priv->themes = NULL;
-
-    for (l = themes; l; l = l->next) {
-        manager->priv->themes = g_slist_append (manager->priv->themes, g_strdup (l->data));
-    }
-}
-
-void
 gs_manager_set_throttled (GSManager *manager,
                           gboolean   throttled) {
     g_return_if_fail (GS_IS_MANAGER (manager));
@@ -453,85 +396,10 @@ gs_manager_set_saver_active (GSManager *manager,
     }
 }
 
-void
-gs_manager_set_saver_enabled (GSManager *manager,
-                              gboolean   saver_enabled) {
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    if (manager->priv->saver_enabled != saver_enabled) {
-        manager->priv->saver_enabled = saver_enabled;
-    }
-}
-
-void
-gs_manager_set_lock_enabled (GSManager *manager,
-                             gboolean   lock_enabled) {
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    if (manager->priv->lock_enabled != lock_enabled) {
-        manager->priv->lock_enabled = lock_enabled;
-    }
-}
-
-void
-gs_manager_set_lock_with_saver_enabled (GSManager *manager,
-                             gboolean   lock_with_saver_enabled) {
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    if (manager->priv->lock_with_saver_enabled != lock_with_saver_enabled) {
-        manager->priv->lock_with_saver_enabled = lock_with_saver_enabled;
-    }
-}
-
-void
-gs_manager_set_logout_enabled (GSManager *manager,
-                               gboolean   logout_enabled) {
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    if (manager->priv->logout_enabled != logout_enabled) {
-        GSList *l;
-
-        manager->priv->logout_enabled = logout_enabled;
-        for (l = manager->priv->windows; l; l = l->next) {
-            gs_window_set_logout_enabled (l->data, logout_enabled);
-        }
-    }
-}
-
-void
-gs_manager_set_keyboard_enabled (GSManager *manager,
-                                 gboolean   enabled) {
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    if (manager->priv->keyboard_enabled != enabled) {
-        GSList *l;
-
-        manager->priv->keyboard_enabled = enabled;
-        for (l = manager->priv->windows; l; l = l->next) {
-            gs_window_set_keyboard_enabled (l->data, enabled);
-        }
-    }
-}
-
-void
-gs_manager_set_user_switch_enabled (GSManager *manager,
-                                    gboolean   user_switch_enabled) {
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    if (manager->priv->user_switch_enabled != user_switch_enabled) {
-        GSList *l;
-
-        manager->priv->user_switch_enabled = user_switch_enabled;
-        for (l = manager->priv->windows; l; l = l->next) {
-            gs_window_set_user_switch_enabled (l->data, user_switch_enabled);
-        }
-    }
-}
-
 static gboolean
 activate_lock_timeout (GSManager *manager) {
-    if (manager->priv->lock_enabled &&
-            manager->priv->lock_with_saver_enabled)
+    if (manager->priv->prefs->lock_enabled &&
+            manager->priv->prefs->lock_with_saver_enabled)
     {
         gs_debug ("Locking screen after idling timeout");
         gs_manager_set_lock_active (manager, TRUE);
@@ -553,9 +421,9 @@ remove_lock_timer (GSManager *manager) {
 static void
 add_lock_timer (GSManager *manager,
                 glong      timeout) {
-    if (!manager->priv->lock_enabled)
+    if (!manager->priv->prefs->lock_enabled)
         return;
-    if (!manager->priv->lock_with_saver_enabled)
+    if (!manager->priv->prefs->lock_with_saver_enabled)
         return;
 
     gboolean locked;
@@ -594,75 +462,6 @@ gs_manager_set_lock_timeout (GSManager *manager,
 }
 
 void
-gs_manager_set_logout_timeout (GSManager *manager,
-                               glong      logout_timeout) {
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    if (manager->priv->logout_timeout != logout_timeout) {
-        GSList *l;
-
-        manager->priv->logout_timeout = logout_timeout;
-        for (l = manager->priv->windows; l; l = l->next) {
-            gs_window_set_logout_timeout (l->data, logout_timeout);
-        }
-    }
-}
-
-void
-gs_manager_set_logout_command (GSManager  *manager,
-                               const char *command) {
-    GSList *l;
-
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    g_free (manager->priv->logout_command);
-
-    if (command) {
-        manager->priv->logout_command = g_strdup (command);
-    } else {
-        manager->priv->logout_command = NULL;
-    }
-
-    for (l = manager->priv->windows; l; l = l->next) {
-        gs_window_set_logout_command (l->data, manager->priv->logout_command);
-    }
-}
-
-void
-gs_manager_set_keyboard_command (GSManager  *manager,
-                                 const char *command) {
-    GSList *l;
-
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    g_free (manager->priv->keyboard_command);
-
-    if (command) {
-        manager->priv->keyboard_command = g_strdup (command);
-    } else {
-        manager->priv->keyboard_command = NULL;
-    }
-
-    for (l = manager->priv->windows; l; l = l->next) {
-        gs_window_set_keyboard_command (l->data, manager->priv->keyboard_command);
-    }
-}
-
-void
-gs_manager_set_status_message_enabled (GSManager  *manager,
-                                       gboolean    status_message_enabled) {
-    GSList *l;
-
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    manager->priv->status_message_enabled = status_message_enabled;
-
-    for (l = manager->priv->windows; l; l = l->next) {
-        gs_window_set_status_message_enabled (l->data, manager->priv->status_message_enabled);
-    }
-}
-
-void
 gs_manager_set_status_message (GSManager  *manager,
                                const char *message) {
     GSList *l;
@@ -755,6 +554,11 @@ gs_manager_set_cycle_timeout (GSManager *manager,
     }
 }
 
+static void _gs_manager_update_from_prefs(GSManager* manager, GSPrefs* prefs) {
+    gs_manager_set_lock_timeout(manager, prefs->lock_timeout);
+    gs_manager_set_cycle_timeout(manager, prefs->cycle);
+}
+
 static void
 gs_manager_set_property (GObject      *object,
                          guint         prop_id,
@@ -768,41 +572,11 @@ gs_manager_set_property (GObject      *object,
         case PROP_THROTTLED:
             gs_manager_set_throttled (self, g_value_get_boolean (value));
             break;
-        case PROP_LOCK_ENABLED:
-            gs_manager_set_lock_enabled (self, g_value_get_boolean (value));
-            break;
-        case PROP_LOCK_WITH_SAVER_ENABLED:
-            gs_manager_set_lock_with_saver_enabled (self, g_value_get_boolean (value));
-            break;
-        case PROP_LOCK_TIMEOUT:
-            gs_manager_set_lock_timeout (self, g_value_get_long (value));
-            break;
-        case PROP_LOGOUT_ENABLED:
-            gs_manager_set_logout_enabled (self, g_value_get_boolean (value));
-            break;
-        case PROP_KEYBOARD_ENABLED:
-            gs_manager_set_keyboard_enabled (self, g_value_get_boolean (value));
-            break;
-        case PROP_USER_SWITCH_ENABLED:
-            gs_manager_set_user_switch_enabled (self, g_value_get_boolean (value));
-            break;
-        case PROP_LOGOUT_TIMEOUT:
-            gs_manager_set_logout_timeout (self, g_value_get_long (value));
-            break;
-        case PROP_LOGOUT_COMMAND:
-            gs_manager_set_logout_command (self, g_value_get_string (value));
-            break;
-        case PROP_KEYBOARD_COMMAND:
-            gs_manager_set_keyboard_command (self, g_value_get_string (value));
-            break;
-        case PROP_STATUS_MESSAGE_ENABLED:
-            gs_manager_set_status_message_enabled (self, g_value_get_boolean (value));
-            break;
         case PROP_STATUS_MESSAGE:
             gs_manager_set_status_message (self, g_value_get_string (value));
             break;
-        case PROP_CYCLE_TIMEOUT:
-            gs_manager_set_cycle_timeout (self, g_value_get_long (value));
+        case PROP_ACTIVE:
+            gs_manager_set_active (self, g_value_get_boolean (value));
             break;
         default:
             G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -823,42 +597,9 @@ gs_manager_get_property (GObject    *object,
         case PROP_THROTTLED:
             g_value_set_boolean (value, self->priv->throttled);
             break;
-        case PROP_LOCK_ENABLED:
-            g_value_set_boolean (value, self->priv->lock_enabled);
-            break;
-        case PROP_LOCK_WITH_SAVER_ENABLED:
-            g_value_set_boolean (value, self->priv->lock_with_saver_enabled);
-            break;
-        case PROP_LOCK_TIMEOUT:
-            g_value_set_long (value, self->priv->lock_timeout);
-            break;
-        case PROP_LOGOUT_ENABLED:
-            g_value_set_boolean (value, self->priv->logout_enabled);
-            break;
-        case PROP_KEYBOARD_ENABLED:
-            g_value_set_boolean (value, self->priv->keyboard_enabled);
-            break;
-        case PROP_USER_SWITCH_ENABLED:
-            g_value_set_boolean (value, self->priv->user_switch_enabled);
-            break;
-        case PROP_LOGOUT_TIMEOUT:
-            g_value_set_long (value, self->priv->logout_timeout);
-            break;
-        case PROP_LOGOUT_COMMAND:
-            g_value_set_string (value, self->priv->logout_command);
-            break;
-        case PROP_KEYBOARD_COMMAND:
-            g_value_set_string (value, self->priv->keyboard_command);
-            break;
-        case PROP_STATUS_MESSAGE_ENABLED:
-            g_value_set_boolean (value, self->priv->status_message_enabled);
-            break;
         case PROP_STATUS_MESSAGE:
             g_value_set_string (value, self->priv->status_message);
             break;
-        case PROP_CYCLE_TIMEOUT:
-            g_value_set_long (value, self->priv->cycle_timeout);
-            break;
         case PROP_ACTIVE:
             g_value_set_boolean (value, self->priv->active);
             break;
@@ -925,75 +666,19 @@ gs_manager_class_init (GSManagerClass *klass) {
                                                            FALSE,
                                                            G_PARAM_READABLE));
     g_object_class_install_property (object_class,
-                                     PROP_LOCK_ENABLED,
-                                     g_param_spec_boolean ("lock-enabled",
-                                                           NULL,
-                                                           NULL,
-                                                           FALSE,
-                                                           G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_LOCK_WITH_SAVER_ENABLED,
-                                     g_param_spec_boolean ("lock-with-saver-enabled",
-                                                           NULL,
-                                                           NULL,
-                                                           FALSE,
-                                                           G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_LOCK_TIMEOUT,
-                                     g_param_spec_long ("lock-timeout",
-                                                        NULL,
-                                                        NULL,
-                                                        -1,
-                                                        G_MAXLONG,
-                                                        0,
-                                                        G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_LOGOUT_ENABLED,
-                                     g_param_spec_boolean ("logout-enabled",
-                                                           NULL,
-                                                           NULL,
-                                                           FALSE,
-                                                           G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_USER_SWITCH_ENABLED,
-                                     g_param_spec_boolean ("user-switch-enabled",
-                                                           NULL,
-                                                           NULL,
-                                                           FALSE,
-                                                           G_PARAM_READWRITE));
-
-    g_object_class_install_property (object_class,
-                                     PROP_LOGOUT_TIMEOUT,
-                                     g_param_spec_long ("logout-timeout",
-                                                        NULL,
-                                                        NULL,
-                                                        -1,
-                                                        G_MAXLONG,
-                                                        0,
-                                                        G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_LOGOUT_COMMAND,
-                                     g_param_spec_string ("logout-command",
-                                                          NULL,
-                                                          NULL,
-                                                          NULL,
-                                                          G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_CYCLE_TIMEOUT,
-                                     g_param_spec_long ("cycle-timeout",
-                                                        NULL,
-                                                        NULL,
-                                                        10000,
-                                                        G_MAXLONG,
-                                                        300000,
-                                                        G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
                                      PROP_THROTTLED,
                                      g_param_spec_boolean ("throttled",
                                                            NULL,
                                                            NULL,
                                                            TRUE,
                                                            G_PARAM_READWRITE));
+    g_object_class_install_property (object_class,
+                                 PROP_STATUS_MESSAGE,
+                                 g_param_spec_string ("status-message",
+                                                      NULL,
+                                                      NULL,
+                                                      NULL,
+                                                      G_PARAM_READWRITE));
 }
 
 static void
@@ -1005,6 +690,10 @@ gs_manager_init (GSManager *manager) {
 
     manager->priv->bg = xfce_bg_new ();
 
+    manager->priv->prefs = gs_prefs_new();
+    g_signal_connect_swapped(manager->priv->prefs, "changed", G_CALLBACK(_gs_manager_update_from_prefs), manager);
+    _gs_manager_update_from_prefs (manager, manager->priv->prefs);
+
     xfce_bg_load_from_preferences (manager->priv->bg, NULL);
 
     add_deepsleep_idle(manager);
@@ -1403,6 +1092,7 @@ connect_window_signals (GSManager *manager,
                              G_CALLBACK (window_grab_broken_cb), manager, G_CONNECT_AFTER);
 }
 
+
 static void
 gs_manager_create_window_for_monitor (GSManager  *manager,
                                       GdkMonitor *monitor) {
@@ -1419,20 +1109,9 @@ gs_manager_create_window_for_monitor (GSManager  *manager,
     gs_debug ("Creating a Window [%d,%d] (%dx%d) for monitor %d",
               rect.x, rect.y, rect.width, rect.height, manager_get_monitor_index (monitor));
 
-    window = gs_window_new (monitor,
-                            manager->priv->lock_enabled,
-                            manager->priv->lock_with_saver_enabled);
-
-    gs_window_set_user_switch_enabled (window, manager->priv->user_switch_enabled);
-    gs_window_set_logout_enabled (window, manager->priv->logout_enabled);
-    gs_window_set_logout_timeout (window, manager->priv->logout_timeout);
-    gs_window_set_logout_command (window, manager->priv->logout_command);
-    gs_window_set_keyboard_enabled (window, manager->priv->keyboard_enabled);
-    gs_window_set_keyboard_command (window, manager->priv->keyboard_command);
-    gs_window_set_status_message_enabled (window, manager->priv->status_message_enabled);
+    window = gs_window_new (monitor);
     gs_window_set_status_message (window, manager->priv->status_message);
     gs_window_set_lock_active (window, manager->priv->lock_active);
-
     connect_window_signals (manager, window);
 
     manager->priv->windows = g_slist_insert (manager->priv->windows, window, manager_get_monitor_index(monitor));
@@ -1520,11 +1199,7 @@ gs_manager_finalize (GObject *object) {
     if (manager->priv->bg != NULL) {
         g_object_unref (manager->priv->bg);
     }
-
-    free_themes (manager);
-    g_free (manager->priv->logout_command);
-    g_free (manager->priv->keyboard_command);
-    g_free (manager->priv->status_message);
+    g_signal_handlers_disconnect_by_func(manager->priv->prefs, _gs_manager_update_from_prefs, manager);
 
     remove_deepsleep_idle (manager);
     remove_timers(manager);
@@ -1537,8 +1212,6 @@ gs_manager_finalize (GObject *object) {
 
     manager->priv->active = FALSE;
     manager->priv->activate_time = 0;
-    manager->priv->lock_enabled = FALSE;
-    manager->priv->lock_with_saver_enabled = FALSE;
 
     g_object_unref (manager->priv->grab);
     g_object_unref (manager->priv->theme_manager);
diff --git a/src/gs-manager.h b/src/gs-manager.h
index 0dae341..62cc112 100644
--- a/src/gs-manager.h
+++ b/src/gs-manager.h
@@ -70,40 +70,14 @@ void        gs_manager_get_saver_active        (GSManager   *manager,
                                                 gboolean    *saver_active);
 void        gs_manager_set_saver_active        (GSManager   *manager,
                                                 gboolean     saver_active);
-void        gs_manager_set_keyboard_enabled    (GSManager   *manager,
-                                                gboolean     enabled);
-void        gs_manager_set_keyboard_command    (GSManager   *manager,
-                                                const char  *command);
-void        gs_manager_set_status_message_enabled(GSManager *manager,
-                                                gboolean     status_message_enabled);
 void        gs_manager_set_status_message      (GSManager   *manager,
                                                 const char  *message);
-void        gs_manager_set_saver_enabled       (GSManager   *manager,
-                                                gboolean     saver_enabled);
-void        gs_manager_set_lock_enabled        (GSManager   *manager,
-                                                gboolean     lock_enabled);
-void        gs_manager_get_lock_with_saver_enabled        (GSManager   *manager,
-                                                gboolean    *lock_with_saver_enabled);
-void        gs_manager_set_lock_with_saver_enabled        (GSManager   *manager,
-                                                gboolean     lock_with_saver_enabled);
 void        gs_manager_set_lock_timeout        (GSManager   *manager,
                                                 glong        lock_timeout);
-void        gs_manager_set_logout_enabled      (GSManager   *manager,
-                                                gboolean     logout_enabled);
-void        gs_manager_set_user_switch_enabled (GSManager   *manager,
-                                                gboolean     user_switch_enabled);
-void        gs_manager_set_logout_timeout      (GSManager   *manager,
-                                                glong        logout_timeout);
-void        gs_manager_set_logout_command      (GSManager   *manager,
-                                                const char  *command);
 void        gs_manager_set_throttled           (GSManager   *manager,
                                                 gboolean     throttled);
 void        gs_manager_set_cycle_timeout       (GSManager   *manager,
                                                 glong        cycle_timeout);
-void        gs_manager_set_themes              (GSManager   *manager,
-                                                GSList      *themes);
-void        gs_manager_set_mode                (GSManager   *manager,
-                                                GSSaverMode  mode);
 void        gs_manager_show_message            (GSManager   *manager,
                                                 const char  *summary,
                                                 const char  *body,
diff --git a/src/gs-monitor.c b/src/gs-monitor.c
index 54414b5..835b538 100644
--- a/src/gs-monitor.c
+++ b/src/gs-monitor.c
@@ -194,35 +194,12 @@ static void listener_simulate_user_activity_cb(GSListener* listener, GSMonitor*
 }
 
 static void _gs_monitor_update_from_prefs(GSMonitor* monitor, GSPrefs* prefs) {
-    gboolean lock_enabled;
-    gboolean lock_with_saver_enabled;
-    gboolean user_switch_enabled;
-
-    lock_enabled = monitor->priv->prefs->lock_enabled;
-    lock_with_saver_enabled = monitor->priv->prefs->lock_with_saver_enabled;
-    user_switch_enabled = monitor->priv->prefs->user_switch_enabled;
-
-    gs_manager_set_lock_enabled(monitor->priv->manager, lock_enabled);
-    gs_manager_set_lock_with_saver_enabled(monitor->priv->manager, lock_with_saver_enabled);
-    gs_manager_set_lock_timeout(monitor->priv->manager, monitor->priv->prefs->lock_timeout);
-    gs_manager_set_logout_enabled(monitor->priv->manager, monitor->priv->prefs->logout_enabled);
-    gs_manager_set_user_switch_enabled(monitor->priv->manager, user_switch_enabled);
-    gs_manager_set_status_message_enabled(monitor->priv->manager, monitor->priv->prefs->status_message_enabled);
-    gs_manager_set_keyboard_enabled(monitor->priv->manager, monitor->priv->prefs->keyboard_enabled);
-    gs_manager_set_logout_timeout(monitor->priv->manager, monitor->priv->prefs->logout_timeout);
-    gs_manager_set_logout_command(monitor->priv->manager, monitor->priv->prefs->logout_command);
-    gs_manager_set_keyboard_command(monitor->priv->manager, monitor->priv->prefs->keyboard_command);
-    gs_manager_set_cycle_timeout(monitor->priv->manager, monitor->priv->prefs->cycle);
-    gs_manager_set_mode(monitor->priv->manager, monitor->priv->prefs->mode);
-    gs_manager_set_saver_enabled(monitor->priv->manager, monitor->priv->prefs->saver_enabled);
-    gs_manager_set_themes(monitor->priv->manager, monitor->priv->prefs->themes);
-
     /* enable activation when allowed */
-    gs_listener_set_activation_enabled(monitor->priv->listener, monitor->priv->prefs->idle_activation_enabled);
-    gs_listener_set_sleep_activation_enabled(monitor->priv->listener, monitor->priv->prefs->sleep_activation_enabled);
-    gs_listener_x11_set_activation_enabled(monitor->priv->listener_x11, monitor->priv->prefs->idle_activation_enabled);
-    gs_listener_x11_set_timeout(monitor->priv->listener_x11, monitor->priv->prefs->timeout);
-    gs_listener_x11_set_saver_enabled(monitor->priv->listener_x11, monitor->priv->prefs->saver_enabled);
+    gs_listener_set_activation_enabled(monitor->priv->listener, prefs->idle_activation_enabled);
+    gs_listener_set_sleep_activation_enabled(monitor->priv->listener, prefs->sleep_activation_enabled);
+    gs_listener_x11_set_activation_enabled(monitor->priv->listener_x11, prefs->idle_activation_enabled);
+    gs_listener_x11_set_timeout(monitor->priv->listener_x11, prefs->timeout);
+    gs_listener_x11_set_saver_enabled(monitor->priv->listener_x11, prefs->saver_enabled);
 }
 
 static void disconnect_listener_signals(GSMonitor* monitor) {
diff --git a/src/gs-window-x11.c b/src/gs-window-x11.c
index 3de6811..60ce0af 100644
--- a/src/gs-window-x11.c
+++ b/src/gs-window-x11.c
@@ -39,6 +39,7 @@
 
 #include "gs-debug.h"
 #include "gs-marshal.h"
+#include "gs-prefs.h"
 #include "gs-window.h"
 #include "subprocs.h"
 
@@ -48,6 +49,8 @@ static void     gs_window_finalize       (GObject       *object);
 
 static gboolean popup_dialog_idle        (GSWindow      *window);
 static void     gs_window_dialog_finish  (GSWindow      *window);
+static void     gs_window_set_obscured   (GSWindow      *window,
+                                          gboolean       obscured);
 static void     remove_command_watches   (GSWindow      *window);
 
 enum {
@@ -65,19 +68,10 @@ struct GSWindowPrivate {
     guint            obscured : 1;
     guint            dialog_up : 1;
 
-    guint            lock_enabled : 1;
-    guint            lock_with_saver_enabled : 1;
-    guint            user_switch_enabled : 1;
-    guint            logout_enabled : 1;
-    guint            keyboard_enabled : 1;
-    guint            status_message_enabled : 1;
-
-    guint64          logout_timeout;
     gboolean         lock_active;
     gboolean         saver_active;
-    char            *logout_command;
-    char            *keyboard_command;
     char            *status_message;
+    GSPrefs         *prefs;
 
     GtkWidget       *vbox;
     GtkWidget       *drawing_area;
@@ -129,15 +123,7 @@ enum {
     PROP_0,
     PROP_OBSCURED,
     PROP_DIALOG_UP,
-    PROP_LOCK_ENABLED,
-    PROP_LOCK_WITH_SAVER_ENABLED,
-    PROP_LOGOUT_ENABLED,
-    PROP_KEYBOARD_ENABLED,
-    PROP_KEYBOARD_COMMAND,
-    PROP_LOGOUT_COMMAND,
-    PROP_LOGOUT_TIMEOUT,
     PROP_MONITOR,
-    PROP_STATUS_MESSAGE
 };
 
 static guint           signals[LAST_SIGNAL] = { 0, };
@@ -1245,24 +1231,24 @@ static void
 embed_keyboard (GSWindow *window) {
     gboolean res;
 
-    if (!window->priv->keyboard_enabled
-            || window->priv->keyboard_command == NULL)
+    if (!window->priv->prefs->keyboard_enabled
+            || window->priv->prefs->keyboard_command == NULL)
         return;
 
     gs_debug ("Adding embedded keyboard widget");
 
     /* FIXME: verify command is safe */
 
-    gs_debug ("Running command: %s", window->priv->keyboard_command);
+    gs_debug ("Running command: %s", window->priv->prefs->keyboard_command);
 
     res = spawn_on_window (window,
-                           window->priv->keyboard_command,
+                           window->priv->prefs->keyboard_command,
                            &window->priv->keyboard_pid,
                            (GIOFunc)keyboard_command_watch,
                            window,
                            &window->priv->keyboard_watch_id);
     if (!res) {
-        gs_debug ("Could not start command: %s", window->priv->keyboard_command);
+        gs_debug ("Could not start command: %s", window->priv->prefs->keyboard_command);
     }
 }
 
@@ -1291,7 +1277,7 @@ create_lock_socket (GSWindow *window,
 
     gtk_socket_add_id (GTK_SOCKET (window->priv->lock_socket), id);
 
-    if (window->priv->keyboard_enabled) {
+    if (window->priv->prefs->keyboard_enabled) {
         embed_keyboard (window);
     }
 }
@@ -1482,17 +1468,17 @@ static gboolean
 is_logout_enabled (GSWindow *window) {
     double elapsed;
 
-    if (!window->priv->logout_enabled) {
+    if (!window->priv->prefs->logout_enabled) {
         return FALSE;
     }
 
-    if (!window->priv->logout_command) {
+    if (!window->priv->prefs->logout_command) {
         return FALSE;
     }
 
     elapsed = g_timer_elapsed (window->priv->timer, NULL);
 
-    if (window->priv->logout_timeout < (elapsed * 1000)) {
+    if (window->priv->prefs->logout_timeout < (elapsed * 1000)) {
         return TRUE;
     }
 
@@ -1501,12 +1487,12 @@ is_logout_enabled (GSWindow *window) {
 
 static gboolean
 is_user_switch_enabled (GSWindow *window) {
-    return window->priv->user_switch_enabled;
+    return window->priv->prefs->user_switch_enabled;
 }
 
 static gboolean
 is_status_message_enabled (GSWindow *window) {
-    return window->priv->status_message_enabled;
+    return window->priv->prefs->status_message_enabled;
 }
 
 static gint
@@ -1543,7 +1529,7 @@ popup_dialog (GSWindow *window) {
 
     if (is_logout_enabled(window)) {
         command = g_string_append (command, " --enable-logout");
-        g_string_append_printf (command, " --logout-command='%s'", window->priv->logout_command);
+        g_string_append_printf (command, " --logout-command='%s'", window->priv->prefs->logout_command);
     }
 
     if (is_status_message_enabled(window) && window->priv->status_message) {
@@ -1648,32 +1634,6 @@ gs_window_cancel_unlock_request (GSWindow  *window) {
     popdown_dialog (window);
 }
 
-void
-gs_window_set_lock_enabled (GSWindow *window,
-                            gboolean  lock_enabled) {
-    g_return_if_fail (GS_IS_WINDOW (window));
-
-    if (window->priv->lock_enabled == lock_enabled) {
-        return;
-    }
-
-    window->priv->lock_enabled = lock_enabled;
-    g_object_notify (G_OBJECT (window), "lock-enabled");
-}
-
-void
-gs_window_set_lock_with_saver_enabled (GSWindow *window,
-                            gboolean  lock_with_saver_enabled) {
-    g_return_if_fail (GS_IS_WINDOW (window));
-
-    if (window->priv->lock_with_saver_enabled == lock_with_saver_enabled) {
-        return;
-    }
-
-    window->priv->lock_with_saver_enabled = lock_with_saver_enabled;
-    g_object_notify (G_OBJECT (window), "lock-with-saver-enabled");
-}
-
 GdkDisplay *
 gs_window_get_display (GSWindow  *window) {
     g_return_val_if_fail (GS_IS_WINDOW (window), NULL);
@@ -1682,78 +1642,6 @@ gs_window_get_display (GSWindow  *window) {
 }
 
 void
-gs_window_set_keyboard_enabled (GSWindow *window,
-                                gboolean  enabled) {
-    g_return_if_fail (GS_IS_WINDOW (window));
-
-    window->priv->keyboard_enabled = enabled;
-}
-
-void
-gs_window_set_keyboard_command (GSWindow   *window,
-                                const char *command) {
-    g_return_if_fail (GS_IS_WINDOW (window));
-
-    g_free (window->priv->keyboard_command);
-
-    if (command != NULL) {
-        window->priv->keyboard_command = g_strdup (command);
-    } else {
-        window->priv->keyboard_command = NULL;
-    }
-}
-
-void
-gs_window_set_logout_enabled (GSWindow *window,
-                              gboolean  logout_enabled) {
-    g_return_if_fail (GS_IS_WINDOW (window));
-
-    window->priv->logout_enabled = logout_enabled;
-}
-
-void
-gs_window_set_user_switch_enabled (GSWindow *window,
-                                   gboolean  user_switch_enabled) {
-    g_return_if_fail (GS_IS_WINDOW (window));
-
-    window->priv->user_switch_enabled = user_switch_enabled;
-}
-
-void
-gs_window_set_status_message_enabled (GSWindow *window,
-                                      gboolean  status_message_enabled) {
-    g_return_if_fail (GS_IS_WINDOW (window));
-
-    window->priv->status_message_enabled = status_message_enabled;
-}
-
-void
-gs_window_set_logout_timeout (GSWindow *window,
-                              glong     timeout) {
-    g_return_if_fail (GS_IS_WINDOW (window));
-
-    if (timeout < 0) {
-        window->priv->logout_timeout = 0;
-    } else {
-        window->priv->logout_timeout = timeout;
-    }
-}
-
-void
-gs_window_set_logout_command (GSWindow   *window,
-                              const char *command) {
-    g_return_if_fail (GS_IS_WINDOW (window));
-
-    g_free (window->priv->logout_command);
-
-    if (command) {
-        window->priv->logout_command = g_strdup (command);
-    } else {
-        window->priv->logout_command = NULL;
-    }
-}
-
-void
 gs_window_set_status_message (GSWindow   *window,
                               const char *status_message) {
     g_return_if_fail (GS_IS_WINDOW (window));
@@ -1798,33 +1686,15 @@ gs_window_set_property (GObject      *object,
     self = GS_WINDOW (object);
 
     switch (prop_id) {
-        case PROP_LOCK_ENABLED:
-            gs_window_set_lock_enabled (self, g_value_get_boolean (value));
-            break;
-        case PROP_LOCK_WITH_SAVER_ENABLED:
-            gs_window_set_lock_with_saver_enabled (self, g_value_get_boolean (value));
-            break;
-        case PROP_KEYBOARD_ENABLED:
-            gs_window_set_keyboard_enabled (self, g_value_get_boolean (value));
-            break;
-        case PROP_KEYBOARD_COMMAND:
-            gs_window_set_keyboard_command (self, g_value_get_string (value));
-            break;
-        case PROP_LOGOUT_ENABLED:
-            gs_window_set_logout_enabled (self, g_value_get_boolean (value));
-            break;
-        case PROP_LOGOUT_COMMAND:
-            gs_window_set_logout_command (self, g_value_get_string (value));
-            break;
-        case PROP_STATUS_MESSAGE:
-            gs_window_set_status_message (self, g_value_get_string (value));
-            break;
-        case PROP_LOGOUT_TIMEOUT:
-            gs_window_set_logout_timeout (self, g_value_get_long (value));
-            break;
         case PROP_MONITOR:
             gs_window_set_monitor (self, g_value_get_pointer (value));
             break;
+       case PROP_OBSCURED:
+            gs_window_set_obscured (self, g_value_get_boolean (value));
+            break;
+        case PROP_DIALOG_UP:
+            window_set_dialog_up (self, g_value_get_boolean (value));
+            break;
         default:
             G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
             break;
@@ -1841,30 +1711,6 @@ gs_window_get_property (GObject    *object,
     self = GS_WINDOW (object);
 
     switch (prop_id) {
-        case PROP_LOCK_ENABLED:
-            g_value_set_boolean (value, self->priv->lock_enabled);
-            break;
-        case PROP_LOCK_WITH_SAVER_ENABLED:
-            g_value_set_boolean (value, self->priv->lock_with_saver_enabled);
-            break;
-        case PROP_KEYBOARD_ENABLED:
-            g_value_set_boolean (value, self->priv->keyboard_enabled);
-            break;
-        case PROP_KEYBOARD_COMMAND:
-            g_value_set_string (value, self->priv->keyboard_command);
-            break;
-        case PROP_LOGOUT_ENABLED:
-            g_value_set_boolean (value, self->priv->logout_enabled);
-            break;
-        case PROP_LOGOUT_COMMAND:
-            g_value_set_string (value, self->priv->logout_command);
-            break;
-        case PROP_STATUS_MESSAGE:
-            g_value_set_string (value, self->priv->status_message);
-            break;
-        case PROP_LOGOUT_TIMEOUT:
-            g_value_set_long (value, self->priv->logout_timeout);
-            break;
         case PROP_MONITOR:
             g_value_set_pointer (value, (gpointer) self->priv->monitor);
             break;
@@ -2097,8 +1943,8 @@ gs_window_is_dialog_up (GSWindow *window) {
 }
 
 static void
-window_set_obscured (GSWindow *window,
-                     gboolean  obscured) {
+gs_window_set_obscured (GSWindow *window,
+                        gboolean  obscured) {
     if (window->priv->obscured == obscured) {
         return;
     }
@@ -2112,12 +1958,12 @@ gs_window_real_visibility_notify_event (GtkWidget          *widget,
                                         GdkEventVisibility *event) {
     switch (event->state) {
         case GDK_VISIBILITY_FULLY_OBSCURED:
-            window_set_obscured (GS_WINDOW (widget), TRUE);
+            gs_window_set_obscured (GS_WINDOW (widget), TRUE);
             break;
         case GDK_VISIBILITY_PARTIAL:
             break;
         case GDK_VISIBILITY_UNOBSCURED:
-            window_set_obscured (GS_WINDOW (widget), FALSE);
+            gs_window_set_obscured (GS_WINDOW (widget), FALSE);
             break;
         default:
             break;
@@ -2185,65 +2031,6 @@ gs_window_class_init (GSWindowClass *klass) {
                                                            FALSE,
                                                            G_PARAM_READABLE));
     g_object_class_install_property (object_class,
-                                     PROP_LOCK_ENABLED,
-                                     g_param_spec_boolean ("lock-enabled",
-                                                           NULL,
-                                                           NULL,
-                                                           FALSE,
-                                                           G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_LOCK_WITH_SAVER_ENABLED,
-                                     g_param_spec_boolean ("lock-with-saver-enabled",
-                                                           NULL,
-                                                           NULL,
-                                                           FALSE,
-                                                           G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_LOGOUT_ENABLED,
-                                     g_param_spec_boolean ("logout-enabled",
-                                                           NULL,
-                                                           NULL,
-                                                           FALSE,
-                                                           G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_LOGOUT_TIMEOUT,
-                                     g_param_spec_long ("logout-timeout",
-                                                        NULL,
-                                                        NULL,
-                                                        -1,
-                                                        G_MAXLONG,
-                                                        0,
-                                                        G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_LOGOUT_COMMAND,
-                                     g_param_spec_string ("logout-command",
-                                                          NULL,
-                                                          NULL,
-                                                          NULL,
-                                                          G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_STATUS_MESSAGE,
-                                     g_param_spec_string ("status-message",
-                                                          NULL,
-                                                          NULL,
-                                                          NULL,
-                                                          G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_KEYBOARD_ENABLED,
-                                     g_param_spec_boolean ("keyboard-enabled",
-                                                           NULL,
-                                                           NULL,
-                                                           FALSE,
-                                                           G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_KEYBOARD_COMMAND,
-                                     g_param_spec_string ("keyboard-command",
-                                                          NULL,
-                                                          NULL,
-                                                          NULL,
-                                                          G_PARAM_READWRITE));
-
-    g_object_class_install_property (object_class,
                                      PROP_MONITOR,
                                      g_param_spec_pointer ("monitor",
                                                            "Gdk monitor",
@@ -2280,6 +2067,8 @@ gs_window_init (GSWindow *window) {
     window->priv->last_x = -1;
     window->priv->last_y = -1;
 
+    window->priv->prefs = gs_prefs_new();
+
     gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
 
     gtk_window_set_skip_taskbar_hint (GTK_WINDOW (window), TRUE);
@@ -2340,9 +2129,6 @@ gs_window_finalize (GObject *object) {
 
     g_return_if_fail (window->priv != NULL);
 
-    g_free (window->priv->logout_command);
-    g_free (window->priv->keyboard_command);
-
     if (window->priv->info_bar_timer_id > 0) {
         g_source_remove (window->priv->info_bar_timer_id);
         window->priv->info_bar_timer_id = 0;
@@ -2364,14 +2150,11 @@ gs_window_finalize (GObject *object) {
     if (window->priv->background_surface) {
         cairo_surface_destroy (window->priv->background_surface);
     }
-
     G_OBJECT_CLASS (gs_window_parent_class)->finalize (object);
 }
 
 GSWindow *
-gs_window_new (GdkMonitor *monitor,
-               gboolean    lock_enabled,
-               gboolean    lock_with_saver_enabled) {
+gs_window_new (GdkMonitor *monitor) {
     GObject    *result;
     GdkDisplay *display = gdk_monitor_get_display (monitor);
     GdkScreen  *screen = gdk_display_get_default_screen (display);
@@ -2380,8 +2163,6 @@ gs_window_new (GdkMonitor *monitor,
                            "type", GTK_WINDOW_POPUP,
                            "screen", screen,
                            "monitor", monitor,
-                           "lock-enabled", lock_enabled,
-                           "lock-with-saver-enabled", lock_with_saver_enabled,
                            "app-paintable", TRUE,
                            NULL);
 
diff --git a/src/gs-window.h b/src/gs-window.h
index e6b8e47..fb809b4 100644
--- a/src/gs-window.h
+++ b/src/gs-window.h
@@ -65,28 +65,10 @@ void        gs_window_set_monitor             (GSWindow        *window,
                                                GdkMonitor      *monitor);
 GdkMonitor *gs_window_get_monitor             (GSWindow        *window);
 
-void        gs_window_set_lock_enabled        (GSWindow        *window,
-                                               gboolean         lock_enabled);
-void        gs_window_set_lock_with_saver_enabled (GSWindow    *window,
-                                               gboolean         lock_with_saver_enabled);
-void        gs_window_set_logout_enabled      (GSWindow        *window,
-                                               gboolean         logout_enabled);
-void        gs_window_set_keyboard_enabled    (GSWindow        *window,
-                                               gboolean         enabled);
-void        gs_window_set_keyboard_command    (GSWindow        *window,
-                                               const char      *command);
-void        gs_window_set_user_switch_enabled (GSWindow        *window,
-                                               gboolean         user_switch_enabled);
-void        gs_window_set_status_message_enabled (GSWindow     *window,
-                                               gboolean         status_message_enabled);
-void        gs_window_set_logout_timeout      (GSWindow        *window,
-                                               glong            timeout);
 void        gs_window_set_lock_active         (GSWindow        *window,
                                                gboolean         active);
 void        gs_window_set_saver_active        (GSWindow        *window,
                                                gboolean         active);
-void        gs_window_set_logout_command      (GSWindow        *window,
-                                               const char      *command);
 void        gs_window_set_status_message      (GSWindow        *window,
                                                const char      *status_message);
 void        gs_window_show_message            (GSWindow        *window,
@@ -97,9 +79,7 @@ void        gs_window_show_message            (GSWindow        *window,
 void        gs_window_request_unlock          (GSWindow        *window);
 void        gs_window_cancel_unlock_request   (GSWindow        *window);
 
-GSWindow  * gs_window_new                     (GdkMonitor      *monitor,
-                                               gboolean         lock_enabled,
-                                               gboolean         lock_with_saver_enabled);
+GSWindow  * gs_window_new                     (GdkMonitor      *monitor);
 void        gs_window_show                    (GSWindow        *window);
 void        gs_window_destroy                 (GSWindow        *window);
 GdkWindow * gs_window_get_gdk_window          (GSWindow        *window);
diff --git a/src/test-window.c b/src/test-window.c
index 4f54c27..2369b6f 100644
--- a/src/test-window.c
+++ b/src/test-window.c
@@ -112,22 +112,13 @@ connect_window_signals (GSWindow *window) {
 static void
 test_window (void) {
     GSWindow   *window;
-    gboolean    lock_active;
-    gboolean    lock_with_saver_active;
-    gboolean    user_switch_enabled;
     GdkDisplay *display;
     GdkMonitor *monitor;
 
-    lock_active = TRUE;
-    lock_with_saver_active = TRUE;
-    user_switch_enabled = TRUE;
     display = gdk_display_get_default ();
     monitor = gdk_display_get_primary_monitor (display);
 
-    window = gs_window_new (monitor, lock_active, lock_with_saver_active);
-
-    gs_window_set_user_switch_enabled (window, user_switch_enabled);
-
+    window = gs_window_new (monitor);
     connect_window_signals (window);
 
     gs_window_show (window);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list