aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Russell <crussell@canonical.com>2009-09-22 17:31:31 -0500
committerCody Russell <crussell@canonical.com>2009-09-22 17:31:31 -0500
commitde28377d3ad3797516826f287f554dfefb7fdb47 (patch)
tree388dde3d19f7ee5d2594912877aa2b0f1e2cb2ed
parent0e5b24c9c86750f4ce10f9a53846da049caeb179 (diff)
downloadayatana-indicator-session-de28377d3ad3797516826f287f554dfefb7fdb47.tar.gz
ayatana-indicator-session-de28377d3ad3797516826f287f554dfefb7fdb47.tar.bz2
ayatana-indicator-session-de28377d3ad3797516826f287f554dfefb7fdb47.zip
some refactoring
-rw-r--r--src/users-service-dbus.c89
-rw-r--r--src/users-service.c4
2 files changed, 59 insertions, 34 deletions
diff --git a/src/users-service-dbus.c b/src/users-service-dbus.c
index 8685105..acc3f7d 100644
--- a/src/users-service-dbus.c
+++ b/src/users-service-dbus.c
@@ -53,6 +53,9 @@ static gboolean _users_service_server_get_users_info (UsersServiceDbus *servi
const GArray *uids,
GPtrArray **user_info,
GError **error);
+static void create_session_proxy (UsersServiceDbus *self);
+static void create_system_proxy (UsersServiceDbus *self);
+static void create_gdm_proxy (UsersServiceDbus *self);
static void users_loaded (DBusGProxy *proxy,
gpointer user_data);
static void user_added (DBusGProxy *proxy,
@@ -154,26 +157,57 @@ users_service_dbus_init (UsersServiceDbus *self)
/* Get the buses */
priv->session_bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
- if (error != NULL) {
- g_error ("Unable to get session bus: %s", error->message);
- g_error_free (error);
+ if (error != NULL)
+ {
+ g_error ("Unable to get session bus: %s", error->message);
+ g_error_free (error);
- return;
- }
+ return;
+ }
priv->system_bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
- if (error != NULL) {
- g_error("Unable to get system bus: %s", error->message);
- g_error_free(error);
+ if (error != NULL)
+ {
+ g_error("Unable to get system bus: %s", error->message);
+ g_error_free(error);
- return;
- }
+ return;
+ }
dbus_g_connection_register_g_object (priv->session_bus,
INDICATOR_USERS_SERVICE_DBUS_OBJECT,
G_OBJECT (self));
- /* Set up the DBUS service proxies */
+ dbus_g_object_register_marshaller (_users_service_marshal_VOID__INT64,
+ G_TYPE_NONE,
+ G_TYPE_INT64,
+ G_TYPE_INVALID);
+
+ create_session_proxy (self);
+ create_system_proxy (self);
+ create_gdm_proxy (self);
+
+ users_loaded (priv->gdm_proxy, self);
+}
+
+static void
+users_service_dbus_dispose (GObject *object)
+{
+ G_OBJECT_CLASS (users_service_dbus_parent_class)->dispose (object);
+}
+
+static void
+users_service_dbus_finalize (GObject *object)
+{
+ G_OBJECT_CLASS (users_service_dbus_parent_class)->finalize (object);
+}
+
+static void
+create_session_proxy (UsersServiceDbus *self)
+{
+ UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self);
+ GError *error = NULL;
+
priv->dbus_proxy_session = dbus_g_proxy_new_for_name_owner (priv->session_bus,
DBUS_SERVICE_DBUS,
DBUS_PATH_DBUS,
@@ -186,6 +220,13 @@ users_service_dbus_init (UsersServiceDbus *self)
return;
}
+}
+
+static void
+create_system_proxy (UsersServiceDbus *self)
+{
+ UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self);
+ GError *error = NULL;
priv->dbus_proxy_system = dbus_g_proxy_new_for_name_owner (priv->system_bus,
DBUS_SERVICE_DBUS,
@@ -199,6 +240,13 @@ users_service_dbus_init (UsersServiceDbus *self)
return;
}
+}
+
+static void
+create_gdm_proxy (UsersServiceDbus *self)
+{
+ UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self);
+ GError *error = NULL;
priv->gdm_proxy = dbus_g_proxy_new_for_name_owner (priv->system_bus,
"org.gnome.DisplayManager",
@@ -212,11 +260,6 @@ users_service_dbus_init (UsersServiceDbus *self)
g_error_free (error);
}
- dbus_g_object_register_marshaller (_users_service_marshal_VOID__INT64,
- G_TYPE_NONE,
- G_TYPE_INT64,
- G_TYPE_INVALID);
-
dbus_g_proxy_add_signal (priv->gdm_proxy,
"UsersLoaded",
G_TYPE_INVALID);
@@ -259,20 +302,6 @@ users_service_dbus_init (UsersServiceDbus *self)
G_CALLBACK (user_updated),
self,
NULL);
-
- users_loaded (priv->gdm_proxy, self);
-}
-
-static void
-users_service_dbus_dispose (GObject *object)
-{
- G_OBJECT_CLASS (users_service_dbus_parent_class)->dispose (object);
-}
-
-static void
-users_service_dbus_finalize (GObject *object)
-{
- G_OBJECT_CLASS (users_service_dbus_parent_class)->finalize (object);
}
static void
diff --git a/src/users-service.c b/src/users-service.c
index 4e36a56..7c8ab01 100644
--- a/src/users-service.c
+++ b/src/users-service.c
@@ -158,10 +158,6 @@ rebuild_items (DbusmenuMenuitem *root,
}
}
- mi = dbusmenu_menuitem_new ();
- dbusmenu_menuitem_property_set (mi, DBUSMENU_MENUITEM_PROP_LABEL, "END");
- dbusmenu_menuitem_child_append (root,mi);
-
if (check_new_session ()) {
mi = dbusmenu_menuitem_new ();
dbusmenu_menuitem_property_set (mi, DBUSMENU_MENUITEM_PROP_LABEL, _("New Session..."));