diff options
Diffstat (limited to '')
-rw-r--r-- | portato/gui/windows/preference.py | 76 |
1 files changed, 63 insertions, 13 deletions
diff --git a/portato/gui/windows/preference.py b/portato/gui/windows/preference.py index df18e88..5b88b22 100644 --- a/portato/gui/windows/preference.py +++ b/portato/gui/windows/preference.py @@ -20,6 +20,7 @@ from .basic import AbstractDialog from ..dialogs import io_ex_dialog from ..utils import get_color from ...helper import debug +from ... import db class PreferenceWindow (AbstractDialog): """Window displaying some preferences.""" @@ -60,7 +61,7 @@ class PreferenceWindow (AbstractDialog): 4 : gtk.POS_RIGHT } - def __init__ (self, parent, cfg, console_fn, linkbtn_fn, tabpos_fn, catmodel_fn): + def __init__ (self, parent, cfg, console_fn, linkbtn_fn, tabpos_fn, catmodel_fn, labelcolor_fn): """Constructor. @param parent: parent window @@ -74,7 +75,9 @@ class PreferenceWindow (AbstractDialog): @param tabpos_fn: function to call to set the tabposition of the notebooks @type tabpos_fn: function(gtk.ComboBox,int) @param catmodel_fn: function to call to set the model of the cat list (collapsed/not collapsed) - @type catmodel_fn: function()""" + @type catmodel_fn: function() + @param labelcolor_fn: function to call to set the color of the label + @type labelcolor_fn: function(gtk.gdk.Color)""" AbstractDialog.__init__(self, parent) @@ -101,6 +104,7 @@ class PreferenceWindow (AbstractDialog): self.linkbtn_fn = linkbtn_fn self.tabpos_fn = tabpos_fn self.catmodel_fn = catmodel_fn + self.labelcolor_fn = labelcolor_fn # set the bg-color of the hint hintEB = self.tree.get_widget("hintEB") @@ -109,20 +113,16 @@ class PreferenceWindow (AbstractDialog): # the checkboxes for box, val in self.checkboxes.iteritems(): if isinstance(val, tuple): - self.tree.get_widget(box).\ - set_active(self.cfg.get_boolean(val[0], section = val[1])) + self.tree.get_widget(box).set_active(self.cfg.get_boolean(val[0], section = val[1])) else: - self.tree.get_widget(box).\ - set_active(self.cfg.get_boolean(val)) + self.tree.get_widget(box).set_active(self.cfg.get_boolean(val)) # the edits for edit, val in self.edits.iteritems(): if isinstance(val,tuple): - self.tree.get_widget(edit).\ - set_text(self.cfg.get(val[0], section = val[1])) + self.tree.get_widget(edit).set_text(self.cfg.get(val[0], section = val[1])) else: - self.tree.get_widget(edit).\ - set_text(self.cfg.get(val)) + self.tree.get_widget(edit).set_text(self.cfg.get(val)) # the set list self.setList = self.tree.get_widget("setList") @@ -138,19 +138,54 @@ class PreferenceWindow (AbstractDialog): self.titleLengthSpinBtn = self.tree.get_widget("titleLengthSpinBtn") self.titleLengthSpinBtn.set_value(int(self.cfg.get("titlelength", section = "GUI"))) + # the color buttons + self.pkgTableColorBtn = self.tree.get_widget("pkgTableColorBtn") + self.pkgTableColorBtn.set_color(get_color(self.cfg, "packagetable")) + + self.prefColorBtn = self.tree.get_widget("prefColorBtn") + self.prefColorBtn.set_color(get_color(self.cfg, "prefhint")) + # the comboboxes self.systemTabCombo = self.tree.get_widget("systemTabCombo") self.pkgTabCombo = self.tree.get_widget("packageTabCombo") for c in (self.systemTabCombo, self.pkgTabCombo): - m = c.get_model() - m.clear() + model = gtk.ListStore(str) for i in (_("Top"), _("Bottom"), _("Left"), _("Right")): - m.append((i,)) + model.append((i,)) + + c.set_model(model) + + cell = gtk.CellRendererText() + c.pack_start(cell) + c.set_attributes(cell, text = 0) self.systemTabCombo.set_active(int(self.cfg.get("systemTabPos", section = "GUI"))-1) self.pkgTabCombo.set_active(int(self.cfg.get("packageTabPos", section = "GUI"))-1) + # the database combo + dbtype = self.cfg.get("type", section = "DATABASE") + self.databaseCombo = self.tree.get_widget("databaseCombo") + model = gtk.ListStore(str, str, str) + + ctr = 0 + active = 0 + for k, (name, desc) in db.types.iteritems(): + if k == dbtype: + active = ctr + + model.append([name, desc, k]) + ctr += 1 + + self.databaseCombo.set_model(model) + self.databaseCombo.set_active(active) + + cell = gtk.CellRendererText() + self.databaseCombo.pack_start(cell) + self.databaseCombo.set_attributes(cell, text = 0) + + self.cb_db_combo_changed() + self.window.show_all() def _save(self): @@ -189,6 +224,14 @@ class PreferenceWindow (AbstractDialog): self.catmodel_fn() + # colors + c = self.pkgTableColorBtn.get_color() + self.cfg.set("packagetable", str(c)[1:], section = "COLORS") + self.labelcolor_fn(c) + + c = self.prefColorBtn.get_color() + self.cfg.set("prefhint", str(c)[1:], section = "COLORS") + def fill_setlist (self): store = gtk.ListStore(bool, str, str, str) @@ -212,6 +255,13 @@ class PreferenceWindow (AbstractDialog): self.setList.set_model(store) + def cb_db_combo_changed (self, *args): + model = self.databaseCombo.get_model() + active = self.databaseCombo.get_active() + + descr = self.tree.get_widget("dbDescriptionLabel") + descr.set_markup("<i>%s</i>" % model[active][1]) + def cb_ok_clicked(self, button): """Saves, writes to config-file and closes the window.""" self._save() |