Exemple #1
0
    def load_tree(self, list_store, scripts_list_file):
        loc = locale.getlocale (locale.LC_ALL)
        lzs_loc = ""
        if (loc[0] == None):
            lzs_loc = "enUS"
        else:
            lzs_loc = loc[0].replace ("_", "")

        scripts_list = ScriptsList(scripts_list_file)
        scripts_list.update()
        script_set = ScriptSet.from_scriptslist(scripts_list)
        for category in script_set.categories():
            category.lang = lzs_loc
            tool_page = ToolPage()
            tool_page.title = category.name
            tool_page.img = category._icon_name

            for script in category.items():
                tool = Tool (script, script.selected)
                tool_page.tools.append(tool)

            tool_page.get_widget()
            list_store.append( (tool_page.img, tool_page.title, tool_page) )
            self.all_tools.append(tool_page)
class Editor:
    def __init__ (self):
        # Model
        self.scripts_liststore = gtk.ListStore \
            (gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_PYOBJECT)

        self.scripts_list = ScriptsList (get_root()+"/conf/scripts.list")
        self.scripts_list.update ()

        for entry in self.scripts_list.items():
            if not entry.has_key ("selected"):
                entry['selected'] = False
            self.scripts_liststore.append((entry['selected'], entry['name'], entry))

        # View
        self.window = gtk.Window ()
        self.window.set_title ("scripts.list editor")
        self.window.set_size_request (400, 400)

        self.scroll = gtk.ScrolledWindow ()
        self.scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)

        self.treeview = gtk.TreeView ()
        self.vbox = gtk.VBox (False, 10)

        self.ok_button = gtk.Button ("OK")
        self.ok_button.connect ("clicked", self.on_press_ok, None)

        self.scroll.add (self.treeview)
        self.vbox.pack_start (self.scroll, True, True, 0)
        self.vbox.pack_start (self.ok_button, False, False, 0)
        self.window.add (self.vbox)

        # first column
        render = gtk.CellRendererToggle ()
        render.set_property ('activatable', True)
        render.set_property ('width', 20)
        render.connect ('toggled', self.on_toggled, self.scripts_liststore)
        col = gtk.TreeViewColumn ()
        col.pack_start (render)
        col.set_attributes (render, active=0)
        self.treeview.append_column (col)

        # second column
        col = gtk.TreeViewColumn ("items")
        render=gtk.CellRendererText ()
        col.pack_start (render)
        col.set_attributes (render, markup=1)
        self.treeview.append_column (col)

        self.treeview.set_model (self.scripts_liststore)

        self.treeview.show ()
        self.scroll.show ()
        self.window.show_all ()

        # Controller
        self.window.connect ("destroy", gtk.main_quit)

    def on_toggled (self, render, path, list):
        it = list.get_iter_from_string(path)
        used, entry = list.get (it, 0, 2)
        entry['selected'] = not used
        list.set (it, 0, not used)

    def on_press_ok (self, button, data):
        self.scripts_list.save ()
        gtk.main_quit ()