← Back to team overview

cairo-dock-team team mailing list archive

[Merge] lp:~sqp/cairo-dock-core/main-add-remote-control-option into lp:cairo-dock-core

 

SQP has proposed merging lp:~sqp/cairo-dock-core/main-add-remote-control-option into lp:cairo-dock-core.

Requested reviews:
  Cairo-Dock Team (cairo-dock-team)

For more details, see:
https://code.launchpad.net/~sqp/cairo-dock-core/main-add-remote-control-option/+merge/101247

Add command option -R = --remote-control : Send DBus commands to your running cairo-dock program

more details on the forum page : http://glx-dock.org/bg_topic.php?t=5956#mess_72757
-- 
https://code.launchpad.net/~sqp/cairo-dock-core/main-add-remote-control-option/+merge/101247
Your team Cairo-Dock Team is requested to review the proposed merge of lp:~sqp/cairo-dock-core/main-add-remote-control-option into lp:cairo-dock-core.
=== modified file 'src/cairo-dock.c'
--- src/cairo-dock.c	2012-04-07 00:48:14 +0000
+++ src/cairo-dock.c	2012-04-09 15:11:20 +0000
@@ -315,7 +315,7 @@
 	
 	//\___________________ get app's options.
 	gboolean bSafeMode = FALSE, bMaintenance = FALSE, bNoSticky = FALSE, bNormalHint = FALSE, bCappuccino = FALSE, bPrintVersion = FALSE, bTesting = FALSE, bForceIndirectRendering = FALSE, bForceOpenGL = FALSE, bToggleIndirectRendering = FALSE, bKeepAbove = FALSE, bForceColors = FALSE, bAskBackend = FALSE;
-	gchar *cEnvironment = NULL, *cUserDefinedDataDir = NULL, *cVerbosity = 0, *cUserDefinedModuleDir = NULL, *cExcludeModule = NULL, *cThemeServerAdress = NULL;
+	gchar *cEnvironment = NULL, *cUserDefinedDataDir = NULL, *cVerbosity = 0, *cUserDefinedModuleDir = NULL, *cExcludeModule = NULL, *cThemeServerAdress = NULL, *cRemoteControl = NULL;
 	int iDelay = 0;
 	GOptionEntry pOptionsTable[] =
 	{
@@ -365,6 +365,9 @@
 		{"locked", 'k', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE,
 			&g_bLocked,
 			_("Lock the dock so that any modification is impossible for users."), NULL},
+		{"remote-control", 'R', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_STRING,
+			&cRemoteControl,
+			_("Send DBus commands to your running cairo-dock program. (ex: -R Quit)"), NULL},
 		// below options are probably useless for most of people.
 		{"keep-above", 'a', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE,
 			&bKeepAbove,
@@ -404,6 +407,30 @@
 		return 0;
 	}
 	
+	if (cRemoteControl != NULL)
+	{
+		const gchar *cDBusCommand = "dbus-send --session --dest=org.cairodock.CairoDock /org/cairodock/CairoDock org.cairodock.CairoDock.";
+		gchar *cCommand = g_strdup_printf ("%s%s", cDBusCommand, cRemoteControl);
+		gchar *cResult = cairo_dock_launch_command_sync (cCommand);
+		if (cResult != NULL)
+		{
+			g_print ("%s : %s\n", cCommand, cResult);
+			g_free (cResult);
+		}
+		else
+			g_print ("%s\n", cCommand);
+		g_free (cCommand);
+		g_free (cRemoteControl);
+		return 0;
+	}
+	
+	if (bCappuccino)
+	{
+		const gchar *cCappuccino = _("Cairo-Dock makes anything, including coffee !");
+		g_print ("%s\n", cCappuccino);
+		return 0;
+	}
+
 	if (g_bLocked)
 		cd_warning ("Cairo-Dock will be locked.\n");
 	
@@ -432,13 +459,6 @@
 		g_free (cEnvironment);
 	}
 	
-	if (bCappuccino)
-	{
-		const gchar *cCappuccino = _("Cairo-Dock makes anything, including coffee !");
-		g_print ("%s\n", cCappuccino);
-		return 0;
-	}
-	
 	//\___________________ get global config.
 	gboolean bFirstLaunch = FALSE;
 	gchar *cRootDataDirPath;