gnome-session r4866 - in branches/dbus_based: . doc/dbus gnome-session



Author: mccann
Date: Mon Jul 28 15:59:40 2008
New Revision: 4866
URL: http://svn.gnome.org/viewvc/gnome-session?rev=4866&view=rev

Log:
2008-07-28  William Jon McCann  <jmccann redhat com>

	* doc/dbus/Makefile.am:
	* gnome-session/gsm-manager.c (on_store_client_added),
	(on_store_client_removed), (gsm_manager_set_client_store),
	(gsm_manager_class_init), (on_store_inhibitor_added),
	(on_store_inhibitor_removed), (gsm_manager_init):
	* gnome-session/gsm-manager.h:
	* gnome-session/gsm-manager.xml:
	Add signals for client and inhibitor add/remove.



Modified:
   branches/dbus_based/ChangeLog
   branches/dbus_based/doc/dbus/Makefile.am
   branches/dbus_based/gnome-session/gsm-manager.c
   branches/dbus_based/gnome-session/gsm-manager.h
   branches/dbus_based/gnome-session/gsm-manager.xml

Modified: branches/dbus_based/doc/dbus/Makefile.am
==============================================================================
--- branches/dbus_based/doc/dbus/Makefile.am	(original)
+++ branches/dbus_based/doc/dbus/Makefile.am	Mon Jul 28 15:59:40 2008
@@ -21,13 +21,13 @@
 all : org.gnome.SessionManager.ref.xml org.gnome.SessionManager.Client.ref.xml org.gnome.SessionManager.DBusClient.ref.xml org.gnome.SessionManager.Inhibitor.ref.xml
 
 org.gnome.SessionManager.ref.xml : $(top_srcdir)/gnome-session/gsm-manager.xml spec-to-docbook.xsl
-	$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 >> $@
+	$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
 org.gnome.SessionManager.Client.ref.xml : $(top_srcdir)/gnome-session/gsm-client.xml spec-to-docbook.xsl
-	$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 >> $@
+	$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
 org.gnome.SessionManager.DBusClient.ref.xml : $(top_srcdir)/gnome-session/gsm-dbus-client.xml spec-to-docbook.xsl
-	$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 >> $@
+	$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
 org.gnome.SessionManager.Inhibitor.ref.xml : $(top_srcdir)/gnome-session/gsm-inhibitor.xml spec-to-docbook.xsl
-	$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 >> $@
+	$(XSLTPROC) $(top_srcdir)/doc/dbus/spec-to-docbook.xsl $< | tail -n +2 > $@
 
 EXTRA_DIST =				\
 	spec-to-docbook.xsl		\

Modified: branches/dbus_based/gnome-session/gsm-manager.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-manager.c	(original)
+++ branches/dbus_based/gnome-session/gsm-manager.c	Mon Jul 28 15:59:40 2008
@@ -109,6 +109,10 @@
 
 enum {
         PHASE_CHANGED,
+        CLIENT_ADDED,
+        CLIENT_REMOVED,
+        INHIBITOR_ADDED,
+        INHIBITOR_REMOVED,
         SESSION_RUNNING,
         SESSION_OVER,
         LAST_SIGNAL
@@ -1449,10 +1453,21 @@
                           G_CALLBACK (on_client_end_session_response),
                           manager);
 
+        g_signal_emit (manager, signals [CLIENT_ADDED], 0, id);
         /* FIXME: disconnect signal handler */
 }
 
 static void
+on_store_client_removed (GsmStore   *store,
+                         const char *id,
+                         GsmManager *manager)
+{
+        g_debug ("GsmManager: Client removed: %s", id);
+
+        g_signal_emit (manager, signals [CLIENT_REMOVED], 0, id);
+}
+
+static void
 gsm_manager_set_client_store (GsmManager *manager,
                               GsmStore   *store)
 {
@@ -1466,6 +1481,9 @@
                 g_signal_handlers_disconnect_by_func (manager->priv->clients,
                                                       on_store_client_added,
                                                       manager);
+                g_signal_handlers_disconnect_by_func (manager->priv->clients,
+                                                      on_store_client_removed,
+                                                      manager);
 
                 g_object_unref (manager->priv->clients);
         }
@@ -1480,6 +1498,10 @@
                                   "added",
                                   G_CALLBACK (on_store_client_added),
                                   manager);
+                g_signal_connect (manager->priv->clients,
+                                  "removed",
+                                  G_CALLBACK (on_store_client_removed),
+                                  manager);
         }
 }
 
@@ -1858,6 +1880,46 @@
                               g_cclosure_marshal_VOID__VOID,
                               G_TYPE_NONE,
                               0);
+        signals [CLIENT_ADDED] =
+                g_signal_new ("client-added",
+                              G_TYPE_FROM_CLASS (object_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (GsmManagerClass, client_added),
+                              NULL,
+                              NULL,
+                              g_cclosure_marshal_VOID__BOXED,
+                              G_TYPE_NONE,
+                              1, DBUS_TYPE_G_OBJECT_PATH);
+        signals [CLIENT_REMOVED] =
+                g_signal_new ("client-removed",
+                              G_TYPE_FROM_CLASS (object_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (GsmManagerClass, client_removed),
+                              NULL,
+                              NULL,
+                              g_cclosure_marshal_VOID__BOXED,
+                              G_TYPE_NONE,
+                              1, DBUS_TYPE_G_OBJECT_PATH);
+        signals [INHIBITOR_ADDED] =
+                g_signal_new ("inhibitor-added",
+                              G_TYPE_FROM_CLASS (object_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (GsmManagerClass, inhibitor_added),
+                              NULL,
+                              NULL,
+                              g_cclosure_marshal_VOID__BOXED,
+                              G_TYPE_NONE,
+                              1, DBUS_TYPE_G_OBJECT_PATH);
+        signals [INHIBITOR_REMOVED] =
+                g_signal_new ("inhibitor-removed",
+                              G_TYPE_FROM_CLASS (object_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (GsmManagerClass, inhibitor_removed),
+                              NULL,
+                              NULL,
+                              g_cclosure_marshal_VOID__BOXED,
+                              G_TYPE_NONE,
+                              1, DBUS_TYPE_G_OBJECT_PATH);
 
         g_object_class_install_property (object_class,
                                          PROP_FAILSAFE,
@@ -1881,6 +1943,24 @@
 }
 
 static void
+on_store_inhibitor_added (GsmStore   *store,
+                          const char *id,
+                          GsmManager *manager)
+{
+        g_debug ("GsmManager: Inhibitor added: %s", id);
+        g_signal_emit (manager, signals [INHIBITOR_ADDED], 0, id);
+}
+
+static void
+on_store_inhibitor_removed (GsmStore   *store,
+                            const char *id,
+                            GsmManager *manager)
+{
+        g_debug ("GsmManager: Inhibitor removed: %s", id);
+        g_signal_emit (manager, signals [INHIBITOR_REMOVED], 0, id);
+}
+
+static void
 gsm_manager_init (GsmManager *manager)
 {
 
@@ -1892,6 +1972,14 @@
                                                            g_object_unref);
 
         manager->priv->inhibitors = gsm_store_new ();
+        g_signal_connect (manager->priv->inhibitors,
+                          "added",
+                          G_CALLBACK (on_store_inhibitor_added),
+                          manager);
+        g_signal_connect (manager->priv->inhibitors,
+                          "removed",
+                          G_CALLBACK (on_store_inhibitor_removed),
+                          manager);
 }
 
 static void

Modified: branches/dbus_based/gnome-session/gsm-manager.h
==============================================================================
--- branches/dbus_based/gnome-session/gsm-manager.h	(original)
+++ branches/dbus_based/gnome-session/gsm-manager.h	Mon Jul 28 15:59:40 2008
@@ -59,6 +59,10 @@
                                                const char      *id);
         void          (* client_removed)      (GsmManager      *manager,
                                                const char      *id);
+        void          (* inhibitor_added)     (GsmManager      *manager,
+                                               const char      *id);
+        void          (* inhibitor_removed)   (GsmManager      *manager,
+                                               const char      *id);
 } GsmManagerClass;
 
 typedef enum {

Modified: branches/dbus_based/gnome-session/gsm-manager.xml
==============================================================================
--- branches/dbus_based/gnome-session/gsm-manager.xml	(original)
+++ branches/dbus_based/gnome-session/gsm-manager.xml	Mon Jul 28 15:59:40 2008
@@ -214,6 +214,60 @@
 
     <!-- Signals -->
 
+    <signal name="ClientAdded">
+      <arg name="id" type="o">
+        <doc:doc>
+          <doc:summary>The object path for the added client</doc:summary>
+        </doc:doc>
+      </arg>
+      <doc:doc>
+        <doc:description>
+          <doc:para>Emitted when a client has been added to the session manager.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </signal>
+    <signal name="ClientRemoved">
+      <arg name="id" type="o">
+        <doc:doc>
+          <doc:summary>The object path for the removed client</doc:summary>
+        </doc:doc>
+      </arg>
+      <doc:doc>
+        <doc:description>
+          <doc:para>Emitted when a client has been removed from the session manager.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </signal>
+
+    <signal name="InhibitorAdded">
+      <arg name="id" type="o">
+        <doc:doc>
+          <doc:summary>The object path for the added inhibitor</doc:summary>
+        </doc:doc>
+      </arg>
+      <doc:doc>
+        <doc:description>
+          <doc:para>Emitted when an inhibitor has been added to the session manager.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </signal>
+    <signal name="InhibitorRemoved">
+      <arg name="id" type="o">
+        <doc:doc>
+          <doc:summary>The object path for the removed inhibitor</doc:summary>
+        </doc:doc>
+      </arg>
+      <doc:doc>
+        <doc:description>
+          <doc:para>Emitted when an inhibitor has been removed from the session manager.
+          </doc:para>
+        </doc:description>
+      </doc:doc>
+    </signal>
+
     <signal name="SessionRunning">
       <doc:doc>
         <doc:description>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]