예제 #1
0
 def on_new_cmd_mi_activate(self, *args):
     sd.do_add_command_dialog(self.sheriff, self.cmds_ts, self.window)
예제 #2
0
    def __init__(self, _sheriff, _script_manager, cmds_ts):
        super(SheriffCommandTreeView, self).__init__(cmds_ts)
        self.cmds_ts = cmds_ts
        self.sheriff = _sheriff
        self.script_manager = _script_manager

        cmds_tr = gtk.CellRendererText ()
        cmds_tr.set_property ("ellipsize", pango.ELLIPSIZE_END)
        plain_tr = gtk.CellRendererText ()
        status_tr = gtk.CellRendererText ()

        cols_to_make = [ \
            ("Id",       cmds_tr,   cm.COL_CMDS_TV_COMMAND_ID,  None),
            ("Command",  cmds_tr,   cm.COL_CMDS_TV_EXEC,  None),
            ("Deputy",   plain_tr,  cm.COL_CMDS_TV_DEPUTY, None),
            ("Status",   status_tr, cm.COL_CMDS_TV_STATUS_ACTUAL, self._status_cell_data_func),
            ("CPU %",    plain_tr,  cm.COL_CMDS_TV_CPU_USAGE, None),
            ("Mem (kB)", plain_tr,  cm.COL_CMDS_TV_MEM_RSS, None),
            ]

        self.columns = []
        for command_id, renderer, col_id, cell_data_func in cols_to_make:
            col = gtk.TreeViewColumn(command_id, renderer, text=col_id)
            col.set_sort_column_id(col_id)
            col.set_data("col-id", col_id)
            if cell_data_func:
                col.set_cell_data_func(renderer, cell_data_func)
            self.columns.append(col)

        # set an initial width for the id column
        self.columns[0].set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
        self.columns[0].set_fixed_width(150)

        for col in self.columns:
            col.set_resizable (True)
            self.append_column (col)

        cmds_sel = self.get_selection ()
        cmds_sel.set_mode (gtk.SELECTION_MULTIPLE)

        self.add_events (gtk.gdk.KEY_PRESS_MASK | \
                gtk.gdk.BUTTON_PRESS | gtk.gdk._2BUTTON_PRESS)
        self.connect ("key-press-event",
                self._on_cmds_tv_key_press_event)
        self.connect ("button-press-event",
                self._on_cmds_tv_button_press_event)
        self.connect ("row-activated",
                self._on_cmds_tv_row_activated)

        # commands treeview context menu
        self.cmd_ctxt_menu = gtk.Menu ()

        self.start_cmd_ctxt_mi = gtk.MenuItem ("_Start")
        self.cmd_ctxt_menu.append (self.start_cmd_ctxt_mi)
        self.start_cmd_ctxt_mi.connect ("activate",
                self._start_selected_commands)

        self.stop_cmd_ctxt_mi = gtk.MenuItem ("_Stop")
        self.cmd_ctxt_menu.append (self.stop_cmd_ctxt_mi)
        self.stop_cmd_ctxt_mi.connect ("activate", self._stop_selected_commands)

        self.restart_cmd_ctxt_mi = gtk.MenuItem ("R_estart")
        self.cmd_ctxt_menu.append (self.restart_cmd_ctxt_mi)
        self.restart_cmd_ctxt_mi.connect ("activate",
                self._restart_selected_commands)

        self.remove_cmd_ctxt_mi = gtk.MenuItem ("_Remove")
        self.cmd_ctxt_menu.append (self.remove_cmd_ctxt_mi)
        self.remove_cmd_ctxt_mi.connect ("activate",
                self._remove_selected_commands)

        self.cmd_ctxt_menu.append (gtk.SeparatorMenuItem ())

        self.edit_cmd_ctxt_mi = gtk.MenuItem ("_Edit")
        self.cmd_ctxt_menu.append (self.edit_cmd_ctxt_mi)
        self.edit_cmd_ctxt_mi.connect ("activate",
                self._edit_selected_command)

        self.new_cmd_ctxt_mi = gtk.MenuItem ("_New Command")
        self.cmd_ctxt_menu.append (self.new_cmd_ctxt_mi)
        self.new_cmd_ctxt_mi.connect ("activate",
                lambda *s: sd.do_add_command_dialog(self.sheriff, self.cmds_ts, self.get_toplevel()))

        self.cmd_ctxt_menu.show_all ()
예제 #3
0
 def on_new_cmd_mi_activate(self, *args):
     sd.do_add_command_dialog(self.sheriff, self.cmds_ts, self.window)