[Xfce4-commits] [apps/xfce4-screensaver] 02/04: more of configuration processing refactoring

noreply at xfce.org noreply at xfce.org
Sun Jun 30 16:13:05 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 6a70b11b7800d19ac71e67f6d08887f6e598a788
Author: Alexander Butenko <a.butenka at gmail.com>
Date:   Fri Jun 28 10:33:37 2019 -0400

    more of configuration processing refactoring
    
    Signed-off-by: Sean Davis <smd.seandavis at gmail.com>
---
 src/gs-listener-dbus.c | 57 ++++--------------------------------------
 src/gs-listener-x11.c  | 40 ++++++++++++------------------
 src/gs-listener-x11.h  |  7 +-----
 src/gs-manager.c       | 67 +++-----------------------------------------------
 src/gs-manager.h       |  4 ---
 src/gs-monitor.c       | 21 ----------------
 6 files changed, 26 insertions(+), 170 deletions(-)

diff --git a/src/gs-listener-dbus.c b/src/gs-listener-dbus.c
index 7149c8b..f0c7871 100644
--- a/src/gs-listener-dbus.c
+++ b/src/gs-listener-dbus.c
@@ -45,6 +45,7 @@
 #include "gs-listener-dbus.h"
 #include "gs-marshal.h"
 #include "gs-debug.h"
+#include "gs-prefs.h"
 
 static void              gs_listener_class_init         (GSListenerClass *klass);
 static void              gs_listener_init               (GSListener      *listener);
@@ -83,10 +84,9 @@ struct GSListenerPrivate {
     DBusConnection *connection;
     DBusConnection *system_connection;
 
+    GSPrefs        *prefs;
     guint           session_idle : 1;
     guint           active : 1;
-    guint           activation_enabled : 1;
-    guint           sleep_activation_enabled : 1;
     guint           throttled : 1;
     GHashTable     *inhibitors;
     GHashTable     *throttlers;
@@ -126,8 +126,6 @@ enum {
     PROP_0,
     PROP_ACTIVE,
     PROP_SESSION_IDLE,
-    PROP_ACTIVATION_ENABLED,
-    PROP_SLEEP_ACTIVATION_ENABLED,
 };
 
 enum {
@@ -310,7 +308,7 @@ listener_check_activation (GSListener *listener) {
 
     gs_debug ("Checking for activation");
 
-    if (!listener->priv->activation_enabled) {
+    if (!listener->priv->prefs->idle_activation_enabled) {
         return TRUE;
     }
 
@@ -466,26 +464,6 @@ gs_listener_set_session_idle (GSListener *listener,
     return res;
 }
 
-void
-gs_listener_set_activation_enabled (GSListener *listener,
-                                    gboolean    enabled) {
-    g_return_if_fail (GS_IS_LISTENER (listener));
-
-    if (listener->priv->activation_enabled != enabled) {
-        listener->priv->activation_enabled = enabled;
-    }
-}
-
-void
-gs_listener_set_sleep_activation_enabled (GSListener *listener,
-                                          gboolean    enabled) {
-    g_return_if_fail (GS_IS_LISTENER (listener));
-
-    if (listener->priv->sleep_activation_enabled != enabled) {
-        listener->priv->sleep_activation_enabled = enabled;
-    }
-}
-
 static dbus_bool_t
 listener_property_set_bool (GSListener  *listener,
                             guint        prop_id,
@@ -1462,7 +1440,7 @@ listener_dbus_handle_system_message (DBusConnection *connection,
             dbus_error_init (&error);
             dbus_message_get_args (message, &error, DBUS_TYPE_BOOLEAN, &active, DBUS_TYPE_INVALID);
             if (active) {
-                if (listener->priv->sleep_activation_enabled) {
+                if (listener->priv->prefs->sleep_activation_enabled) {
                     gs_debug ("Logind requested session lock");
                     g_signal_emit (listener, signals[LOCK], 0);
                 } else {
@@ -1776,12 +1754,6 @@ gs_listener_set_property (GObject      *object,
         case PROP_SESSION_IDLE:
             gs_listener_set_session_idle (self, g_value_get_boolean (value));
             break;
-        case PROP_ACTIVATION_ENABLED:
-            gs_listener_set_activation_enabled (self, g_value_get_boolean (value));
-            break;
-        case PROP_SLEEP_ACTIVATION_ENABLED:
-            gs_listener_set_sleep_activation_enabled (self, g_value_get_boolean (value));
-            break;
         default:
             G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
             break;
@@ -1804,12 +1776,6 @@ gs_listener_get_property (GObject    *object,
         case PROP_SESSION_IDLE:
             g_value_set_boolean (value, self->priv->session_idle);
             break;
-        case PROP_ACTIVATION_ENABLED:
-            g_value_set_boolean (value, self->priv->activation_enabled);
-            break;
-        case PROP_SLEEP_ACTIVATION_ENABLED:
-            g_value_set_boolean (value, self->priv->sleep_activation_enabled);
-            break;
         default:
             G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
             break;
@@ -1907,20 +1873,6 @@ gs_listener_class_init (GSListenerClass *klass) {
                                                            NULL,
                                                            FALSE,
                                                            G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_ACTIVATION_ENABLED,
-                                     g_param_spec_boolean ("activation-enabled",
-                                                           NULL,
-                                                           NULL,
-                                                           TRUE,
-                                                           G_PARAM_READWRITE));
-    g_object_class_install_property (object_class,
-                                     PROP_SLEEP_ACTIVATION_ENABLED,
-                                     g_param_spec_boolean ("sleep-activation-enabled",
-                                                           NULL,
-                                                           NULL,
-                                                           TRUE,
-                                                           G_PARAM_READWRITE));
 }
 
 static gboolean
@@ -2183,6 +2135,7 @@ gs_listener_init (GSListener *listener) {
     /* check if logind is running */
     listener->priv->have_logind = (access("/run/systemd/seats/", F_OK) >= 0);
 #endif
+    listener->priv->prefs = gs_prefs_new();
 
     gs_listener_dbus_init (listener);
 
diff --git a/src/gs-listener-x11.c b/src/gs-listener-x11.c
index 0cb7faa..0223989 100644
--- a/src/gs-listener-x11.c
+++ b/src/gs-listener-x11.c
@@ -37,6 +37,7 @@
 #include "gs-listener-x11.h"
 #include "gs-marshal.h"
 #include "gs-debug.h"
+#include "gs-prefs.h"
 
 static void         gs_listener_x11_class_init      (GSListenerX11Class *klass);
 static void         gs_listener_x11_init            (GSListenerX11      *listener);
@@ -49,8 +50,7 @@ struct GSListenerX11Private {
     int scrnsaver_event_base;
     gint     lock_timeout;
     guint    lock_timer_id;
-    gboolean idle_activation_enabled;
-    gboolean saver_enabled;
+    GSPrefs *prefs;
 };
 
 enum {
@@ -111,18 +111,18 @@ lock_timer (GSListenerX11 *listener) {
     guint idle_time;
     gint  state;
 
-    if (!listener->priv->saver_enabled)
+    if (!listener->priv->prefs->saver_enabled)
         return TRUE;
 
     get_x11_idle_info (&idle_time, &state);
     gs_debug("Lock Timeout: %is, Idle: %is, Idle Activation: %s, Screensaver: %s, Lock State: %s",
              listener->priv->lock_timeout,
              idle_time,
-             listener->priv->idle_activation_enabled ? "Enabled" : "Disabled",
+             listener->priv->prefs->idle_activation_enabled ? "Enabled" : "Disabled",
              state == ScreenSaverDisabled ? "Disabled" : "Enabled",
              state == ScreenSaverOn ? "Locked" : "Unlocked");
 
-    if (listener->priv->idle_activation_enabled &&
+    if (listener->priv->prefs->idle_activation_enabled &&
             idle_time >= listener->priv->lock_timeout &&
             state != ScreenSaverDisabled) {
         if (state == ScreenSaverOn)
@@ -185,7 +185,7 @@ xroot_filter (GdkXEvent *xevent,
 
     listener = GS_LISTENER_X11 (data);
 
-    if (!listener->priv->idle_activation_enabled)
+    if (!listener->priv->prefs->idle_activation_enabled)
         return GDK_FILTER_CONTINUE;
 
     ev = xevent;
@@ -249,38 +249,29 @@ gs_listener_x11_acquire (GSListenerX11 *listener) {
 }
 
 void
-gs_listener_x11_set_timeout (GSListenerX11 *listener,
-                             gint           timeout) {
+gs_listener_x11_set_timeout (GSListenerX11 *listener) {
     Display *display = gdk_x11_display_get_xdisplay(gdk_display_get_default());
-    gint     lock_timeout = timeout * 60;
+    gint     lock_timeout = listener->priv->prefs->timeout * 60;
 
     /* set X server timeouts and disable screen blanking */
     XSetScreenSaver(display, lock_timeout, lock_timeout, 0, 0);
 
     if (listener->priv->lock_timeout != lock_timeout) {
-        listener->priv->lock_timeout = timeout * 60;
-        reset_lock_timer(listener, listener->priv->lock_timeout);
-        gs_debug("Lock timeout updated to %i minutes", timeout);
+        listener->priv->lock_timeout = lock_timeout;
+        reset_lock_timer(listener, lock_timeout);
+        gs_debug("Lock timeout updated to %i seconds", lock_timeout);
     }
 }
 
-void
-gs_listener_x11_set_saver_enabled (GSListenerX11 *listener,
-                                   gboolean       enabled) {
-    listener->priv->saver_enabled = enabled;
-}
-
-void
-gs_listener_x11_set_activation_enabled (GSListenerX11 *listener,
-                                        gboolean       enabled) {
-    listener->priv->idle_activation_enabled = enabled;
-}
-
 static void
 gs_listener_x11_init (GSListenerX11 *listener) {
     listener->priv = gs_listener_x11_get_instance_private (listener);
 
     listener->priv->lock_timeout = 0;
+
+    listener->priv->prefs = gs_prefs_new();
+    gs_listener_x11_set_timeout (listener);
+    g_signal_connect_swapped(listener->priv->prefs, "changed", G_CALLBACK(gs_listener_x11_set_timeout), listener);
 }
 
 static void
@@ -295,6 +286,7 @@ gs_listener_x11_finalize (GObject *object) {
     g_return_if_fail (listener->priv != NULL);
 
     gdk_window_remove_filter (NULL, (GdkFilterFunc)xroot_filter, NULL);
+    g_signal_handlers_disconnect_by_func(listener->priv->prefs, gs_listener_x11_set_timeout, listener);
 
     G_OBJECT_CLASS (gs_listener_x11_parent_class)->finalize (object);
 }
diff --git a/src/gs-listener-x11.h b/src/gs-listener-x11.h
index f4e1076..bb0db15 100644
--- a/src/gs-listener-x11.h
+++ b/src/gs-listener-x11.h
@@ -53,12 +53,7 @@ GType                     gs_listener_x11_get_type                  (void);
 GSListenerX11            *gs_listener_x11_new                       (void);
 gboolean                  gs_listener_x11_acquire                   (GSListenerX11 *listener);
 void
-                          gs_listener_x11_set_timeout               (GSListenerX11 *listener,
-                                                                     gint           timeout);
-void                      gs_listener_x11_set_saver_enabled         (GSListenerX11 *listener,
-                                                                     gboolean       enabled);
-void                      gs_listener_x11_set_activation_enabled    (GSListenerX11 *listener,
-                                                                     gboolean       enabled);
+                          gs_listener_x11_set_timeout               (GSListenerX11 *listener);
 G_END_DECLS
 
 #endif /* SRC_GS_LISTENER_X11_H_ */
diff --git a/src/gs-manager.c b/src/gs-manager.c
index 21d7089..743fea7 100644
--- a/src/gs-manager.c
+++ b/src/gs-manager.c
@@ -53,8 +53,6 @@ struct GSManagerPrivate {
 
     /* Policy */
     GSPrefs         *prefs;
-    glong           lock_timeout;
-    glong           cycle_timeout;
     guint           throttled : 1;
     char           *status_message;
 
@@ -438,30 +436,6 @@ add_lock_timer (GSManager *manager,
 }
 
 void
-gs_manager_set_lock_timeout (GSManager *manager,
-                             glong      lock_timeout) {
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    if (manager->priv->lock_timeout != lock_timeout) {
-        manager->priv->lock_timeout = lock_timeout;
-
-        if (manager->priv->active
-                && !manager->priv->lock_active
-                && (lock_timeout >= 0)) {
-            glong elapsed = (time (NULL) - manager->priv->activate_time) * 1000;
-
-            remove_lock_timer (manager);
-
-            if (elapsed >= lock_timeout) {
-                activate_lock_timeout (manager);
-            } else {
-                add_lock_timer (manager, lock_timeout - elapsed);
-            }
-        }
-    }
-}
-
-void
 gs_manager_set_status_message (GSManager  *manager,
                                const char *message) {
     GSList *l;
@@ -529,36 +503,6 @@ add_cycle_timer (GSManager *manager,
                                                      manager);
 }
 
-void
-gs_manager_set_cycle_timeout (GSManager *manager,
-                              glong      cycle_timeout) {
-    g_return_if_fail (GS_IS_MANAGER (manager));
-
-    if (manager->priv->cycle_timeout != cycle_timeout) {
-        manager->priv->cycle_timeout = cycle_timeout;
-
-        if (manager->priv->active && (cycle_timeout >= 0)) {
-            glong timeout;
-            glong elapsed = (time (NULL) - manager->priv->activate_time) * 1000;
-
-            remove_cycle_timer (manager);
-
-            if (elapsed >= cycle_timeout) {
-                timeout = 0;
-            } else {
-                timeout = cycle_timeout - elapsed;
-            }
-
-            add_cycle_timer (manager, timeout);
-        }
-    }
-}
-
-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,
@@ -691,8 +635,6 @@ 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);
 
@@ -908,14 +850,14 @@ manager_show_window (GSManager *manager,
 
     manager->priv->activate_time = time (NULL);
 
-    if (manager->priv->lock_timeout >= 0) {
+    if (manager->priv->prefs->lock_timeout >= 0) {
         remove_lock_timer (manager);
-        add_lock_timer (manager, manager->priv->lock_timeout);
+        add_lock_timer (manager, manager->priv->prefs->lock_timeout);
     }
 
-    if (manager->priv->cycle_timeout >= 10000) {
+    if (manager->priv->prefs->cycle >= 10000) {
         remove_cycle_timer (manager);
-        add_cycle_timer (manager, manager->priv->cycle_timeout);
+        add_cycle_timer (manager, manager->priv->prefs->cycle);
     }
 
     /* FIXME: only emit signal once */
@@ -1199,7 +1141,6 @@ gs_manager_finalize (GObject *object) {
     if (manager->priv->bg != NULL) {
         g_object_unref (manager->priv->bg);
     }
-    g_signal_handlers_disconnect_by_func(manager->priv->prefs, _gs_manager_update_from_prefs, manager);
 
     remove_deepsleep_idle (manager);
     remove_timers(manager);
diff --git a/src/gs-manager.h b/src/gs-manager.h
index 62cc112..b06e17a 100644
--- a/src/gs-manager.h
+++ b/src/gs-manager.h
@@ -72,12 +72,8 @@ void        gs_manager_set_saver_active        (GSManager   *manager,
                                                 gboolean     saver_active);
 void        gs_manager_set_status_message      (GSManager   *manager,
                                                 const char  *message);
-void        gs_manager_set_lock_timeout        (GSManager   *manager,
-                                                glong        lock_timeout);
 void        gs_manager_set_throttled           (GSManager   *manager,
                                                 gboolean     throttled);
-void        gs_manager_set_cycle_timeout       (GSManager   *manager,
-                                                glong        cycle_timeout);
 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 835b538..0f3d8c5 100644
--- a/src/gs-monitor.c
+++ b/src/gs-monitor.c
@@ -193,15 +193,6 @@ static void listener_simulate_user_activity_cb(GSListener* listener, GSMonitor*
     gs_monitor_simulate_user_activity(monitor);
 }
 
-static void _gs_monitor_update_from_prefs(GSMonitor* monitor, GSPrefs* prefs) {
-    /* enable activation when allowed */
-    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) {
     g_signal_handlers_disconnect_by_func(monitor->priv->listener, listener_lock_cb, monitor);
     g_signal_handlers_disconnect_by_func(monitor->priv->listener, listener_quit_cb, monitor);
@@ -247,19 +238,10 @@ static void connect_manager_signals(GSMonitor* monitor) {
     g_signal_connect(monitor->priv->manager, "deactivated", G_CALLBACK(manager_deactivated_cb), monitor);
 }
 
-static void disconnect_prefs_signals(GSMonitor* monitor) {
-    g_signal_handlers_disconnect_by_func(monitor->priv->prefs, _gs_monitor_update_from_prefs, monitor);
-}
-
-static void connect_prefs_signals(GSMonitor* monitor) {
-    g_signal_connect_swapped(monitor->priv->prefs, "changed", G_CALLBACK(_gs_monitor_update_from_prefs), monitor);
-}
-
 static void gs_monitor_init(GSMonitor* monitor) {
     monitor->priv = gs_monitor_get_instance_private (monitor);
 
     monitor->priv->prefs = gs_prefs_new();
-    connect_prefs_signals(monitor);
 
     monitor->priv->listener = gs_listener_new();
     monitor->priv->listener_x11 = gs_listener_x11_new();
@@ -269,8 +251,6 @@ static void gs_monitor_init(GSMonitor* monitor) {
 
     monitor->priv->manager = gs_manager_new();
     connect_manager_signals(monitor);
-
-    _gs_monitor_update_from_prefs(monitor, monitor->priv->prefs);
 }
 
 static void gs_monitor_finalize(GObject* object) {
@@ -285,7 +265,6 @@ static void gs_monitor_finalize(GObject* object) {
 
     disconnect_listener_signals(monitor);
     disconnect_manager_signals(monitor);
-    disconnect_prefs_signals(monitor);
 
     g_object_unref(monitor->priv->grab);
     g_object_unref(monitor->priv->listener);

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


More information about the Xfce4-commits mailing list