diff --git a/deluge/plugins/label/label/gtkui/__init__.py b/deluge/plugins/label/label/gtkui/__init__.py index 47ea8c8e8..9f6c23e8c 100644 --- a/deluge/plugins/label/label/gtkui/__init__.py +++ b/deluge/plugins/label/label/gtkui/__init__.py @@ -68,8 +68,10 @@ class GtkUI(ui.UI): try: component.get("TorrentView").remove_column(_("Label")) log.debug(1.1) + component.get("TorrentView").create_model_filter() #todo:improve. except Exception, e: log.debug(e) #fix this! + log.debug(1.2) self.sidebar.unload() log.debug(2) diff --git a/deluge/plugins/label/label/gtkui/label_config.py b/deluge/plugins/label/label/gtkui/label_config.py index 1a4215518..7b4d3b10e 100644 --- a/deluge/plugins/label/label/gtkui/label_config.py +++ b/deluge/plugins/label/label/gtkui/label_config.py @@ -168,9 +168,10 @@ class LabelConfig(object): aclient.force_call(block=True) #sync.. if label: it = self.label_store.iter_nth_child(None,self.labels.index(label)) - else: + elif self.labels: it = self.label_store.iter_nth_child(None,0) - self.label_view.get_selection().select_iter(it) + if self.labels: + self.label_view.get_selection().select_iter(it) def build_label_view(self): "gtk should have a simple listbox widget..." @@ -189,10 +190,13 @@ class LabelConfig(object): self.label_view.get_selection().connect("changed", self.on_label_changed) def on_label_changed(self, selection): - (model, row) = self.label_view.get_selection().get_selected() - self.label = model.get_value(row, 0) - self.glade.get_widget("txt_label").set_markup("%s" % self.label) - aclient.label_get_options(self.cb_label_options, self.label) + try: + (model, row) = self.label_view.get_selection().get_selected() + self.label = model.get_value(row, 0) + self.glade.get_widget("txt_label").set_markup("%s" % self.label) + aclient.label_get_options(self.cb_label_options, self.label) + except: + log.debug("none selected") diff --git a/deluge/plugins/label/label/gtkui/sidebar.py b/deluge/plugins/label/label/gtkui/sidebar.py index fbef3ebfb..cde501090 100644 --- a/deluge/plugins/label/label/gtkui/sidebar.py +++ b/deluge/plugins/label/label/gtkui/sidebar.py @@ -84,6 +84,7 @@ class LabelSideBar(component.Component): column = gtk.TreeViewColumn(_("Filters")) column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) render = gtk.CellRendererPixbuf() + self.renderpix = render column.pack_start(render, expand=False) column.add_attribute(render, 'pixbuf', 3) render = gtk.CellRendererText() @@ -91,7 +92,7 @@ class LabelSideBar(component.Component): column.set_cell_data_func(render, self.render_cell_data,None) self.label_view.append_column(column) - self.label_view.set_show_expanders(False) + self.label_view.set_show_expanders(True) self.label_view.set_model(self.treestore) @@ -134,7 +135,7 @@ class LabelSideBar(component.Component): if not f in visible_filters: self.treestore.set_value(self.filters[f], 4, False) - self.label_view.expand_all() + #self.label_view.expand_all() def update_row(self, cat, value , count): if (cat, value) in self.filters: @@ -153,6 +154,12 @@ class LabelSideBar(component.Component): cat = model.get_value(row, 0) value = model.get_value(row, 1) count = model.get_value(row, 2) + + if cat == "state": + self.renderpix.set_property("visible", True) + else: + self.renderpix.set_property("visible", False) + if cat == "cat": txt = value col = gtk.gdk.color_parse('gray') @@ -161,6 +168,7 @@ class LabelSideBar(component.Component): col = gtk.gdk.color_parse('white') cell.set_property('text', txt) cell.set_property("cell-background-gdk",col) + self.renderpix.set_property("cell-background-gdk",col) def get_pixmap(self, cat, value): if cat == "state":