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":