Ignore:
Timestamp:
Feb 16, 2018, 12:54:54 PM (19 months ago)
Author:
Juanma
Message:

refactorized

File:
1 edited

Legend:

Unmodified
Added
Removed
  • taskscheduler/trunk/fuentes/scheduler-gui.install/usr/share/taskscheduler/bin/taskScheduler.py

    r6824 r6831  
    250250                self.manage_box=builder.get_object("manage_box")
    251251                custom_grid=builder.get_object("custom_grid")
    252                 custom_grid.set_margin_left(12)
    253                 custom_grid.set_margin_top(12)
     252                custom_grid.set_margin_left(WIDGET_MARGIN*2)
     253                custom_grid.set_margin_top(WIDGET_MARGIN*2)
    254254                txt_taskname=Gtk.Entry()
    255255                txt_taskname.set_tooltip_text(_("A descriptive name for the command"))
     
    257257                lbl_name=Gtk.Label(_("Task name"))
    258258                lbl_name.set_halign(Gtk.Align.END)
     259                btn_add_cmd=Gtk.Button.new_from_stock(Gtk.STOCK_ADD)
    259260                custom_grid.attach(lbl_name,0,0,1,1)
    260261                custom_grid.attach(txt_taskname,1,0,1,1)
    261262                cmb_cmds=Gtk.ComboBoxText()
    262                 cmds=self.scheduler.get_commands()
    263                 i18n_cmd={}
    264                 for cmd in cmds.keys():
    265                         i18n_cmd[_(cmd)]=cmd
    266                         cmb_cmds.append_text(_(cmd))
    267 
     263                i18n_cmd=self.load_cmb_cmds(cmb_cmds)
    268264                lbl_cmd=Gtk.Label(_("Command"))
    269265                lbl_cmd.set_halign(Gtk.Align.END)
    270266                custom_grid.attach(lbl_cmd,0,1,1,1)
    271267                custom_grid.attach(cmb_cmds,1,1,1,1)
     268                custom_grid.attach(btn_add_cmd,2,1,1,1)
    272269                chk_parm_is_file=Gtk.CheckButton(_("Needs a file"))
    273270                chk_parm_is_file.set_tooltip_text(_("Mark if the command will launch a file"))
     
    280277                lbl_arg=Gtk.Label(_("Arguments"))
    281278                lbl_arg.set_halign(Gtk.Align.END)
    282                 custom_grid.attach(lbl_arg,2,1,1,1)
    283                 custom_grid.attach(txt_params,3,1,1,1)
    284                 custom_grid.attach(chk_parm_is_file,2,0,1,1)
    285                 custom_grid.attach(btn_file,3,0,1,1)
     279                custom_grid.attach(lbl_arg,3,1,1,1)
     280                custom_grid.attach(txt_params,4,1,1,1)
     281                custom_grid.attach(chk_parm_is_file,3,0,1,1)
     282                custom_grid.attach(btn_file,4,0,1,1)
    286283                btn_file.set_sensitive(False)
    287284                self.btn_apply_manage=builder.get_object("btn_apply_manage")
     
    291288                self.btn_cancel_manage=builder.get_object("btn_cancel_manage")
    292289                self.btn_cancel_manage.connect("clicked",self._cancel_manage_clicked)
     290                btn_add_cmd.connect("clicked",self._add_cmd_clicked,cmb_cmds)
    293291        #def _load_manage_tasks
     292
     293        def load_cmb_cmds(self,cmb_cmds):
     294                cmb_cmds.remove_all()
     295                cmds=self.scheduler.get_commands()
     296                i18n_cmd={}
     297                for cmd in cmds.keys():
     298                        i18n_cmd[_(cmd)]=cmd
     299                        cmb_cmds.append_text(_(cmd))
     300                return(i18n_cmd)
     301
     302        def _add_cmd_clicked(self,*args):
     303                cmb_cmds=args[-1]
     304                def show_file_dialog(*args):
     305                        file_response=dlg_file.run()
     306                        if file_response == Gtk.ResponseType.OK:
     307                                txt_file.set_text(dlg_file.get_filename())
     308#                       dlg_file.destroy()
     309                dialog=Gtk.Dialog()
     310                dialog.add_buttons(Gtk.STOCK_APPLY,42,"Close",Gtk.ResponseType.CLOSE)
     311                box=dialog.get_content_area()
     312                hbox=Gtk.Grid()
     313                hbox.set_column_spacing(WIDGET_MARGIN)
     314                hbox.set_row_spacing(WIDGET_MARGIN)
     315                lbl_name=Gtk.Label(_("Action name"))
     316                txt_name=Gtk.Entry()
     317                txt_name.set_tooltip_text("Enter the name for the action")
     318                lbl_file=Gtk.Label(_("Command"))
     319                txt_file=Gtk.Entry()
     320                txt_file.set_tooltip_text("Enter the command or choose one from the file selector")
     321                dlg_file=Gtk.FileChooserDialog(_("Choose a command"),dialog,Gtk.FileChooserAction.OPEN,(Gtk.STOCK_CANCEL,Gtk.ResponseType.CANCEL,Gtk.STOCK_OPEN,Gtk.ResponseType.OK))
     322                btn_file=Gtk.Button.new_from_stock(Gtk.STOCK_FILE)
     323                btn_file.connect("clicked",show_file_dialog)
     324                hbox.attach(lbl_name,0,0,1,1)
     325                hbox.attach(txt_name,1,0,1,1)
     326                hbox.attach(lbl_file,0,1,1,1)
     327                hbox.attach(txt_file,1,1,1,1)
     328                hbox.attach(btn_file,2,1,1,1)
     329                hbox.attach(Gtk.Separator(),0,2,2,1)
     330                box.add(hbox)
     331                box.show_all()
     332                response=dialog.run()
     333                if response==Gtk.ResponseType.CLOSE:
     334                        dialog.destroy()
     335                if response==42:
     336                        self._add_custom_cmd(txt_name.get_text(),txt_file.get_text())
     337                        self.load_cmb_cmds(cmb_cmds)
     338        #def _add_cmd_clicked
     339
     340        def _add_custom_cmd(self,name,cmd):
     341                self.scheduler.add_command(name,cmd)
    294342       
    295343        def _enable_filechooser(self,widget,filechooser):
     
    300348        #def _enable_filechooser
    301349
    302         def _add_custom_task(self,widget,w_name,w_cmd,w_parms,w_chk,w_file,i18n_cmd):
     350        def _add_custom_task(self,widget,w_name,w_cmd,w_parms,w_chk,w_file,i18n_cmd=None):
    303351                name=w_name.get_text()
    304352                cmd=w_cmd.get_active_text()
    305                 cmd_desc=i18n_cmd[cmd]
     353                if i18n_cmd:
     354                        cmd_desc=i18n_cmd[cmd]
     355                else:
     356                        cmd_desc=cmd
    306357                parms=w_parms.get_text()
    307358                cmd=self.scheduler.get_command_cmd(cmd_desc)
Note: See TracChangeset for help on using the changeset viewer.