summaryrefslogtreecommitdiff
path: root/portato/gui/windows/preference.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--portato/gui/windows/preference.py76
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()