def show(self, default_command): """Show the command arguments dialog""" arguments = get_list_from_string_list(default_command) for argument in arguments: self.model_arguments.append((argument,)) self.ui.dialog_arguments.run() self.ui.dialog_arguments.hide() arguments = [] for treeiter in self.model_arguments: arguments.append(self.model_arguments[treeiter.path][0]) self.arguments = json.dumps(arguments)
def show(self, default_command): """Show the command arguments dialog""" arguments = get_list_from_string_list(default_command) for argument in arguments: self.model_arguments.append((argument, )) self.ui.dialog_arguments.run() self.ui.dialog_arguments.hide() arguments = [] for treeiter in self.model_arguments: arguments.append(self.model_arguments[treeiter.path][0]) self.arguments = json.dumps(arguments)
def add_process(self, host, destination, service, command): """Add a new process""" process = subprocess.Popen(args=get_list_from_string_list(command), shell=False) treeiter = self.model.add_data(ProcessInfo(host, destination, service, process)) # Enable process actions self.ui.actions_processes.set_sensitive(True) # Save process for further polling self.processes[self.model.get_key(treeiter)] = process self.model.add_detail(treeiter, _('Process started'), 'media-playback-start') self.start_polling()
def on_cbo_services_changed(self, widget): """Update the service arguments widgets""" treeiter = self.ui.cbo_services.get_active_iter() # Remove the previously added arguments widgets for argument in self.service_arguments_widgets: (new_label, new_entry) = self.service_arguments_widgets[argument] new_label.destroy() new_entry.destroy() self.service_arguments_widgets = {} # Collect the needed arguments command = get_list_from_string_list( self.services.get_command(treeiter)) row_number = 0 processed_arguments = [] # The argument address, already has a default widget processed_arguments.append('address') for option in command: arguments = get_string_fields(option) # Add a pair of widgets for each argument for argument in arguments: # Skip existing arguments if argument in processed_arguments: continue row_number += 1 processed_arguments.append(argument) # Add a new descriptive label for the argument new_label = Gtk.Label('%s:' % argument.title()) new_label.set_xalign(1.0) new_label.set_visible(True) self.ui.grid_service_arguments.attach(child=new_label, left=0, top=row_number, width=1, height=1) # Add a new entry for the argument value new_entry = Gtk.Entry() new_entry.set_visible(True) new_entry.set_hexpand(True) self.ui.grid_service_arguments.attach(child=new_entry, left=1, top=row_number, width=1, height=1) # Save a tuple of widgets, to remove later self.service_arguments_widgets[argument] = (new_label, new_entry)
def on_cbo_services_changed(self, widget): """Update the service arguments widgets""" treeiter = self.ui.cbo_services.get_active_iter() # Remove the previously added arguments widgets for argument in self.service_arguments_widgets: (new_label, new_entry) = self.service_arguments_widgets[argument] new_label.destroy() new_entry.destroy() self.service_arguments_widgets = {} # Collect the needed arguments command = get_list_from_string_list( self.services.get_command(treeiter)) row_number = 0 processed_arguments = [] # The argument address, already has a default widget processed_arguments.append('address') for option in command: arguments = get_string_fields(option) # Add a pair of widgets for each argument for argument in arguments: # Skip existing arguments if argument in processed_arguments: continue row_number += 1 processed_arguments.append(argument) # Add a new descriptive label for the argument new_label = Gtk.Label('%s:' % argument.title()) new_label.set_xalign(1.0) new_label.set_visible(True) self.ui.grid_service_arguments.attach(child=new_label, left=0, top=row_number, width=1, height=1) # Add a new entry for the argument value new_entry = Gtk.Entry() new_entry.set_visible(True) new_entry.set_hexpand(True) self.ui.grid_service_arguments.attach(child=new_entry, left=1, top=row_number, width=1, height=1) # Save a tuple of widgets, to remove later self.service_arguments_widgets[argument] = ( new_label, new_entry)