From 610a747c7953646b71409c6c9e0a3eed4447ef8a Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Fri, 5 Jun 2009 21:26:23 +0200
Subject: [PATCH] really execute ad hoc command when clicking on Execute
 command in disco window

---
 src/adhoc_commands.py | 12 ++++++++----
 src/disco.py          |  5 +++--
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/adhoc_commands.py b/src/adhoc_commands.py
index e0399a746d..85b946b141 100644
--- a/src/adhoc_commands.py
+++ b/src/adhoc_commands.py
@@ -44,7 +44,7 @@ class CommandWindow:
 
 	TODO: gtk 2.10 has a special wizard-widget, consider using it...'''
 
-	def __init__(self, account, jid):
+	def __init__(self, account, jid, commandnode=None):
 		'''Create new window.'''
 
 		# an account object
@@ -55,7 +55,7 @@ class CommandWindow:
 		self.commandlist=None	# a list of (commandname, commanddescription)
 
 		# command's data
-		self.commandnode = None
+		self.commandnode = commandnode
 		self.sessionid = None
 		self.dataform = None
 		self.allow_stage3_close = False
@@ -78,8 +78,12 @@ class CommandWindow:
 		self.data_form_widget.show()
 		self.sending_form_stage_vbox.pack_start(self.data_form_widget)
 
-		# setting initial stage
-		self.stage1()
+		if self.commandnode:
+			# Execute command
+			self.stage3()
+		else:
+			# setting initial stage
+			self.stage1()
 
 		# displaying the window
 		self.xml.signal_autoconnect(self)
diff --git a/src/disco.py b/src/disco.py
index 90aab600b9..65a91d0346 100644
--- a/src/disco.py
+++ b/src/disco.py
@@ -1258,14 +1258,15 @@ class ToplevelAgentBrowser(AgentBrowser):
 			self._renderer.set_property('cell-background', bgcolor)
 		self.window.services_treeview.queue_draw()
 
-	def on_execute_button_clicked(self, widget = None):
+	def on_execute_button_clicked(self, widget=None):
 		'''When we want to execute a command:
 		open adhoc command window'''
 		model, iter_ = self.window.services_treeview.get_selection().get_selected()
 		if not iter_:
 			return
 		service = model[iter_][0].decode('utf-8')
-		adhoc_commands.CommandWindow(self.account, service)
+		node = model[iter_][1].decode('utf-8')
+		adhoc_commands.CommandWindow(self.account, service, commandnode=node)
 
 	def on_register_button_clicked(self, widget = None):
 		'''When we want to register an agent:
-- 
GitLab