X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Flibview.py;h=573901f691acdfe4d5a6270060187829e7ec287c;hb=7e93c0633052ae9249a63dead4583512cf74b47e;hp=54df46e07a604e601f74dbfa783ac7f04b21f510;hpb=d5640a05eec9498297b14849db53f1ffcf46dc0b;p=multilist diff --git a/src/libview.py b/src/libview.py index 54df46e..573901f 100644 --- a/src/libview.py +++ b/src/libview.py @@ -20,6 +20,7 @@ along with Multilist. If not, see . Copyright (C) 2008 Christoph Würstle """ +import sys import logging import gobject @@ -197,7 +198,13 @@ class View(gtk.VBox): logging.info("libview, init") - self.scrolled_window = None + self.treeview = None + self.scrolled_window = gtk.ScrolledWindow() + self.scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + self.pack_start(self.scrolled_window, expand = True, fill = True, padding = 0) + + self.scrolled_window = hildonize.hildonize_scrollwindow(self.scrolled_window) + self.reload_view() def loadList(self): @@ -216,6 +223,8 @@ class View(gtk.VBox): self.modelsort = gtk.TreeModelSort(self.liststorehandler.get_liststore()) self.modelsort.set_sort_column_id(2, gtk.SORT_ASCENDING) + if self.treeview is not None: + self.scrolled_window.remove(self.treeview) self.treeview = gtk.TreeView(self.modelsort) self.treeview.set_headers_visible(True) self.treeview.set_reorderable(False) @@ -226,23 +235,34 @@ class View(gtk.VBox): m = self.liststorehandler.get_unitsstore() for i in range(self.liststorehandler.get_colcount()): - if i in [1, 2]: + if i in [1, 2]: # status, title default = "1" else: default = "0" if self.db.ladeDirekt("showcol_"+str(self.liststorehandler.get_colname(i)), default) == "1": - if i in [1]: + if i in [1]: # status # HACK Hildon has theme issues with inconsistent items, so # we have a hacked together toggle to make it work on # hildon - if hildonize.IS_HILDON: + if hildonize.IS_HILDON_SUPPORTED: self.cell[i] = CellRendererTriple() else: self.cell[i] = TripleToggleCellRenderer() self.cell[i].connect('status_changed', self._on_col_toggled) self.tvcolumn[i] = gtk.TreeViewColumn("", self.cell[i]) self.tvcolumn[i].set_attributes( self.cell[i], status = i) - elif i in [3, 6]: + elif i in [3, 5]: # quantity, price + self.cell[i] = gtk.CellRendererSpin() + adjustment = gtk.Adjustment(0, -sys.float_info.max, sys.float_info.max, 1) + self.cell[i].set_property('adjustment', adjustment) + self.cell[i].set_property('digits', 2 if i == 5 else 0) + self.cell[i].set_property('editable', True) + self.cell[i].connect("edited", self._on_col_edited, i) + self.tvcolumn[i] = gtk.TreeViewColumn( + self.liststorehandler.get_colname(i), self.cell[i] + ) + self.tvcolumn[i].set_attributes( self.cell[i], text = i) + elif i in [4, 6]: # unit, priority self.cell[i] = gtk.CellRendererCombo() self.cell[i].set_property("model", m) self.cell[i].set_property('text-column', i) @@ -266,14 +286,7 @@ class View(gtk.VBox): self.tvcolumn[i].set_resizable(True) self.treeview.append_column(self.tvcolumn[i]) - if self.scrolled_window is not None: - self.scrolled_window.destroy() - - self.scrolled_window = gtk.ScrolledWindow() - self.scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - self.scrolled_window.add(self.treeview) - self.pack_start(self.scrolled_window, expand = True, fill = True, padding = 0) self.loadList() self.show_all()