[Goodies-commits] r6966 - in xfce4-power-manager/trunk: . src

Ali Abdallah aliov at xfce.org
Sat Mar 21 00:02:38 CET 2009


Author: aliov
Date: 2009-03-20 23:02:37 +0000 (Fri, 20 Mar 2009)
New Revision: 6966

Modified:
   xfce4-power-manager/trunk/ChangeLog
   xfce4-power-manager/trunk/src/org.xfce.Power.Manager.xml
   xfce4-power-manager/trunk/src/xfpm-main.c
   xfce4-power-manager/trunk/src/xfpm-manager.c
Log:
Added command line option to restart the power manager

Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog	2009-03-20 18:43:08 UTC (rev 6965)
+++ xfce4-power-manager/trunk/ChangeLog	2009-03-20 23:02:37 UTC (rev 6966)
@@ -1,4 +1,7 @@
 
+2009-03-21  0:02 Ali aliov at xfce.org 
+	 * : Added command line option to restart the power manager
+
 2009-03-20 17:16 Ali aliov at xfce.org 
 	 * : -m
 

Modified: xfce4-power-manager/trunk/src/org.xfce.Power.Manager.xml
===================================================================
--- xfce4-power-manager/trunk/src/org.xfce.Power.Manager.xml	2009-03-20 18:43:08 UTC (rev 6965)
+++ xfce4-power-manager/trunk/src/org.xfce.Power.Manager.xml	2009-03-20 23:02:37 UTC (rev 6966)
@@ -10,6 +10,9 @@
     <method name="Quit">
     </method>
     
+    <method name="Restart">
+    </method>
+    
     <method name="GetConfig">
 	<arg direction="out" name="system_laptop" type="b"/>
 	<arg direction="out" name="user_privilege" type="b"/>

Modified: xfce4-power-manager/trunk/src/xfpm-main.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-main.c	2009-03-20 18:43:08 UTC (rev 6965)
+++ xfce4-power-manager/trunk/src/xfpm-main.c	2009-03-20 23:02:37 UTC (rev 6966)
@@ -54,26 +54,30 @@
 
 int main(int argc, char **argv)
 {
+    DBusGConnection *bus;
+    GError *error = NULL;
+    DBusGProxy *proxy;
+     
+    gboolean run        = FALSE;
+    gboolean quit       = FALSE;
+    gboolean config     = FALSE;
+    gboolean version    = FALSE;
+    gboolean no_daemon  = FALSE;
+    gboolean reload     = FALSE;
+    
     xfce_textdomain (GETTEXT_PACKAGE, LOCALEDIR, "UTF-8");
 
-    gboolean run     = FALSE;
-    gboolean quit    = FALSE;
-    gboolean config  = FALSE;
-    gboolean version = FALSE;
-    gboolean no_daemon  = FALSE;
-
     GOptionEntry option_entries[] = 
     {
 	{ "run",'r', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &run, NULL, NULL },
 	{ "no-daemon",'\0' , G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &no_daemon, N_("Do not daemonize"), NULL },
+	{ "restart", '\0', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &reload, N_("Restart the running instance of xfce power manager"), NULL},
 	{ "customize", 'c', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &config, N_("Show the configuration dialog"), NULL },
 	{ "quit", 'q', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &quit, N_("Quit any running xfce power manager"), NULL },
 	{ "version", 'V', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &version, N_("Version information"), NULL },
 	{ NULL, },
     };
 
-    GError *error = NULL;
-    
     if(!gtk_init_with_args(&argc, &argv, "", option_entries, PACKAGE, &error)) 
     {
         if(G_LIKELY(error)) 
@@ -111,7 +115,6 @@
 	g_critical ("Could not daemonize");
     }
         
-    DBusGConnection *bus;
     bus = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
     
     if ( error )
@@ -141,11 +144,10 @@
         }
 	else
 	{
-	    GError *error = NULL;
-	    DBusGProxy *proxy = dbus_g_proxy_new_for_name(bus, 
-							  "org.xfce.PowerManager",
-							  "/org/xfce/PowerManager",
-							  "org.xfce.Power.Manager");
+	    proxy = dbus_g_proxy_new_for_name(bus, 
+			                      "org.xfce.PowerManager",
+					      "/org/xfce/PowerManager",
+					      "org.xfce.Power.Manager");
 	    if ( !proxy ) 
 	    {
 		g_critical ("Failed to get proxy");
@@ -166,16 +168,49 @@
     
     if ( config )
     {
-	if (!xfpm_dbus_name_has_owner(dbus_g_connection_get_connection(bus), 
-				      "org.xfce.PowerManager"))
+	g_spawn_command_line_async ("xfce4-power-manager-settings", &error);
+	
+	if ( error )
 	{
-	    g_print (_("Xfce power manager is not running"));
-	    g_print ("\n");
-	    /* FIXME: dialog to run */
+	    g_critical ("Failed to execute xfce4-power-manager-settings: %s", error->message);
+	    g_error_free (error);
+	    return EXIT_FAILURE;
 	}
 	return EXIT_SUCCESS;
     }
     
+    if ( reload )
+    {
+	if (!xfpm_dbus_name_has_owner(dbus_g_connection_get_connection (bus),
+				      "org.xfce.PowerManager") )
+	{
+	    xfpm_info (_("Xfce Power Manager"),
+		       _("Xfce power manager is not running to releod it"));
+		       
+	    
+	    return EXIT_FAILURE;
+	}
+	proxy = dbus_g_proxy_new_for_name(bus, 
+			                      "org.xfce.PowerManager",
+					      "/org/xfce/PowerManager",
+					      "org.xfce.Power.Manager");
+	if ( !proxy ) 
+	{
+	    g_critical ("Failed to get proxy");
+	    dbus_g_connection_unref(bus);
+	    return EXIT_FAILURE;
+	}
+	    
+	if ( !xfpm_manager_dbus_client_restart (proxy, NULL) )
+	{
+	    g_critical ("Unable to send reload message");
+	    g_object_unref (proxy);
+	    dbus_g_connection_unref (bus);
+	    return EXIT_SUCCESS;
+	}
+	return EXIT_SUCCESS;
+    }
+    
     if (xfpm_dbus_name_has_owner (dbus_g_connection_get_connection(bus), "org.freedesktop.PowerManagement") )
     {
 	

Modified: xfce4-power-manager/trunk/src/xfpm-manager.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-manager.c	2009-03-20 18:43:08 UTC (rev 6965)
+++ xfce4-power-manager/trunk/src/xfpm-manager.c	2009-03-20 23:02:37 UTC (rev 6966)
@@ -173,7 +173,10 @@
  */
 static gboolean xfpm_manager_dbus_quit       (XfpmManager *manager,
 					      GError **error);
-					    
+					      
+static gboolean xfpm_manager_dbus_restart     (XfpmManager *manager,
+					       GError **error);
+					      
 static gboolean xfpm_manager_dbus_get_config (XfpmManager *manager,
 					      gboolean *OUT_system_laptop,
 					      gboolean *OUT_user_privilege,
@@ -216,6 +219,16 @@
     return TRUE;
 }
 
+static gboolean xfpm_manager_dbus_restart     (XfpmManager *manager,
+					       GError **error)
+{
+    TRACE("Restart message received");
+    g_object_unref (manager->priv->engine);
+    manager->priv->engine = xfpm_engine_new ();
+    
+    return TRUE;
+}
+
 static gboolean xfpm_manager_dbus_get_config (XfpmManager *manager,
 					      gboolean *OUT_system_laptop,
 					      gboolean *OUT_user_privilege,




More information about the Goodies-commits mailing list