Sidebar translations+order

This commit is contained in:
Martijn Voncken 2008-10-11 04:49:47 +00:00
parent 6b6eb9381b
commit 20cfb836ff
2 changed files with 51 additions and 18 deletions

View File

@ -86,8 +86,8 @@ class FilterManager(component.Component):
return torrent_ids return torrent_ids
#special purpose: state=Active. #special purpose: state=Active.
if "state" in filter_dict and "Traffic" in filter_dict["state"]: if "state" in filter_dict and "Active" in filter_dict["state"]:
filter_dict["state"].remove("Traffic") filter_dict["state"].remove("Active")
if not filter_dict["state"]: if not filter_dict["state"]:
del filter_dict["state"] del filter_dict["state"]
torrent_ids = self.filter_state_active(torrent_ids) torrent_ids = self.filter_state_active(torrent_ids)
@ -147,7 +147,7 @@ class FilterManager(component.Component):
"Checking":0, "Checking":0,
"Queued":0, "Queued":0,
"Error":0, "Error":0,
"Traffic":len(self.filter_state_active(self.torrents.get_torrent_list())) "Active":len(self.filter_state_active(self.torrents.get_torrent_list()))
} }
def register_filter(self, id, filter_func, filter_value = None): def register_filter(self, id, filter_func, filter_value = None):

View File

@ -50,6 +50,21 @@ STATE_PIX = {
"Error":"alert" "Error":"alert"
} }
TRANSLATE = {
"state":"State",
"tracker_host":"Tracker",
"label":"Label"
}
FILTER_COLUMN = 5
def _t(text):
if text in TRANSLATE:
text = TRANSLATE[text]
return _(text)
#sidebar-treeview #sidebar-treeview
class FilterTreeView(component.Component): class FilterTreeView(component.Component):
def __init__(self): def __init__(self):
@ -77,8 +92,8 @@ class FilterTreeView(component.Component):
self.default_menu_items = self.menu.get_children() self.default_menu_items = self.menu.get_children()
# Create the liststore # Create the liststore
#cat,value,count , pixmap , visible #cat, value, label, count, pixmap, visible
self.treestore = gtk.TreeStore(str, str, int, gtk.gdk.Pixbuf, bool) self.treestore = gtk.TreeStore(str, str,str, int, gtk.gdk.Pixbuf, bool)
#add Cat nodes: #add Cat nodes:
self.cat_nodes = {} self.cat_nodes = {}
@ -89,7 +104,7 @@ class FilterTreeView(component.Component):
render = gtk.CellRendererPixbuf() render = gtk.CellRendererPixbuf()
self.renderpix = render self.renderpix = render
column.pack_start(render, expand=False) column.pack_start(render, expand=False)
column.add_attribute(render, 'pixbuf', 3) column.add_attribute(render, 'pixbuf', 4)
render = gtk.CellRendererText() render = gtk.CellRendererText()
column.pack_start(render, expand=False) column.pack_start(render, expand=False)
column.set_cell_data_func(render, self.render_cell_data,None) column.set_cell_data_func(render, self.render_cell_data,None)
@ -108,16 +123,26 @@ class FilterTreeView(component.Component):
self.hpaned.set_position(170) self.hpaned.set_position(170)
self.label_view.connect("button-press-event", self.on_button_press_event) self.label_view.connect("button-press-event", self.on_button_press_event)
#initial order of state filter:
self.cat_nodes["state"] = self.treestore.append(None, ["cat", "state", _("State"), 0, None, False])
self.update_row("state", "All" , 0)
self.update_row("state", "Downloading" , 0)
self.update_row("state", "Seeding" , 0)
self.update_row("state", "Active" , 0)
self.update_row("state", "Paused" , 0)
self.update_row("state", "Queued" , 0)
def create_model_filter(self): def create_model_filter(self):
self.model_filter = self.treestore.filter_new() self.model_filter = self.treestore.filter_new()
self.model_filter.set_visible_column(4) self.model_filter.set_visible_column(FILTER_COLUMN)
self.label_view.set_model(self.model_filter) self.label_view.set_model(self.model_filter)
def cb_update_filter_tree(self, filter_items): def cb_update_filter_tree(self, filter_items):
#create missing cat_nodes #create missing cat_nodes
for cat in filter_items: for cat in filter_items:
if not cat in self.cat_nodes: if not cat in self.cat_nodes:
self.cat_nodes[cat] = self.treestore.append(None, ["cat", _(cat), 0, None, False]) self.cat_nodes[cat] = self.treestore.append(None, ["cat", cat, _t(cat), 0, None, False])
#update rows #update rows
visible_filters = [] visible_filters = []
@ -129,14 +154,14 @@ class FilterTreeView(component.Component):
# hide root-categories not returned by core-part of the plugin. # hide root-categories not returned by core-part of the plugin.
for cat in self.cat_nodes: for cat in self.cat_nodes:
if cat in filter_items: if cat in filter_items:
self.treestore.set_value(self.cat_nodes[cat], 4, True) self.treestore.set_value(self.cat_nodes[cat], FILTER_COLUMN, True)
else: else:
self.treestore.set_value(self.cat_nodes[cat], 4, False) self.treestore.set_value(self.cat_nodes[cat], FILTER_COLUMN, False)
# hide items not returned by core-plugin. # hide items not returned by core-plugin.
for f in self.filters: for f in self.filters:
if not f in visible_filters: if not f in visible_filters:
self.treestore.set_value(self.filters[f], 4, False) self.treestore.set_value(self.filters[f], FILTER_COLUMN, False)
# obsolete? # obsolete?
self.label_view.expand_all() self.label_view.expand_all()
@ -144,18 +169,26 @@ class FilterTreeView(component.Component):
def update_row(self, cat, value , count): def update_row(self, cat, value , count):
if (cat, value) in self.filters: if (cat, value) in self.filters:
row = self.filters[(cat, value)] row = self.filters[(cat, value)]
self.treestore.set_value(row, 2, count) self.treestore.set_value(row, 3, count)
else: else:
pix = self.get_pixmap(cat, value) pix = self.get_pixmap(cat, value)
row = self.treestore.append(self.cat_nodes[cat],[cat, value, count , pix, True]) label = value
if cat == "state":
label = _(value)
row = self.treestore.append(self.cat_nodes[cat],[cat, value, label, count , pix, True])
self.filters[(cat, value)] = row self.filters[(cat, value)] = row
self.treestore.set_value(row, 4, True) self.treestore.set_value(row, FILTER_COLUMN, True)
def render_cell_data(self, column, cell, model, row, data): def render_cell_data(self, column, cell, model, row, data):
"cell renderer" "cell renderer"
cat = model.get_value(row, 0) cat = model.get_value(row, 0)
value = model.get_value(row, 1) value = model.get_value(row, 1)
count = model.get_value(row, 2) label = model.get_value(row, 2)
count = model.get_value(row, 3)
if (label == "") and cat == "label":
label = _("no label")
if cat == "state": if cat == "state":
self.renderpix.set_property("visible", True) self.renderpix.set_property("visible", True)
@ -164,10 +197,10 @@ class FilterTreeView(component.Component):
cell.set_property('editable', False) cell.set_property('editable', False)
if cat == "cat": if cat == "cat":
txt = value txt = label
col = gtk.gdk.color_parse('#EEEEEE') col = gtk.gdk.color_parse('#EEEEEE')
else: else:
txt = "%s (%s)" % (value, count) txt = "%s (%s)" % (label, count)
col = gtk.gdk.color_parse('white') col = gtk.gdk.color_parse('white')
cell.set_property('text', txt) cell.set_property('text', txt)
@ -234,7 +267,7 @@ class FilterTreeView(component.Component):
row = self.model_filter.get_iter(path[0]) row = self.model_filter.get_iter(path[0])
self.cat = self.model_filter.get_value(row, 0) self.cat = self.model_filter.get_value(row, 0)
self.value = self.model_filter.get_value(row, 1) self.value = self.model_filter.get_value(row, 1)
self.count = self.model_filter.get_value(row, 2) self.count = self.model_filter.get_value(row, 3)
#Show the pop-up menu #Show the pop-up menu
self.set_menu_sensitivity() self.set_menu_sensitivity()