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)
Example #3
0
 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()
Example #4
0
 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)