Fixing a bug with launching from a fresh system
[quicknote] / src / simple_list.py
index b4678b7..34849da 100644 (file)
@@ -9,11 +9,14 @@ it under the terms of the GNU General Public License version 2 as
 published by the Free Software Foundation.\r
 """\r
 \r
 published by the Free Software Foundation.\r
 """\r
 \r
+import logging\r
 \r
 \r
-import pygtk\r
-pygtk.require("2.0")\r
+import pango\r
 import gtk\r
 \r
 import gtk\r
 \r
+import hildonize\r
+import gtk_toolbox\r
+\r
 \r
 try:\r
        _\r
 \r
 try:\r
        _\r
@@ -21,7 +24,10 @@ except NameError:
        _ = lambda x: x\r
 \r
 \r
        _ = lambda x: x\r
 \r
 \r
-class SimpleList(gtk.ScrolledWindow):\r
+_moduleLogger = logging.getLogger(__name__)\r
+\r
+\r
+class SimpleList(object):\r
        """\r
        Stellt eine einfache Liste mit Laufbalken dar. Das wird mit\r
        den Objekten ScrolledWindow und TreeView erreicht.\r
        """\r
        Stellt eine einfache Liste mit Laufbalken dar. Das wird mit\r
        den Objekten ScrolledWindow und TreeView erreicht.\r
@@ -34,21 +40,13 @@ class SimpleList(gtk.ScrolledWindow):
                """\r
                Initialisieren\r
                """\r
                """\r
                Initialisieren\r
                """\r
-\r
-               gtk.ScrolledWindow.__init__(self)\r
                self._selectedItem = None # (<Position>, <Key>, <Value>)\r
 \r
                self._selectedItem = None # (<Position>, <Key>, <Value>)\r
 \r
-               # Liste\r
-               self._itemlist = gtk.ListStore(str, str)\r
-\r
-               # ScrolledWindow\r
-               self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)\r
-               self.set_shadow_type(gtk.SHADOW_IN)\r
-\r
                # Treeview\r
                # Treeview\r
+               self._itemlist = gtk.ListStore(str, str)\r
                self._itemView = gtk.TreeView(self._itemlist)\r
                self._itemView.set_headers_visible(False)\r
                self._itemView = gtk.TreeView(self._itemlist)\r
                self._itemView.set_headers_visible(False)\r
-               self._itemView.get_selection().set_mode(gtk.SELECTION_BROWSE)\r
+               self._itemView.get_selection().set_mode(gtk.SELECTION_SINGLE)\r
                self._itemView.connect("cursor-changed", self._on_cursor_changed)\r
                self._itemView.connect("row-activated", self._on_row_activated)\r
                self._itemView.show()\r
                self._itemView.connect("cursor-changed", self._on_cursor_changed)\r
                self._itemView.connect("row-activated", self._on_row_activated)\r
                self._itemView.show()\r
@@ -63,6 +61,7 @@ class SimpleList(gtk.ScrolledWindow):
 \r
                # Value-Spalte hinzufügen\r
                self._valueCell = gtk.CellRendererText()\r
 \r
                # Value-Spalte hinzufügen\r
                self._valueCell = gtk.CellRendererText()\r
+               self._valueCell.set_property("ellipsize", pango.ELLIPSIZE_END)\r
                self._valueColumn = gtk.TreeViewColumn("Caption")\r
                self._valueColumn.pack_start(self._valueCell, True)\r
                self._valueColumn.add_attribute(self._valueCell, "text", self.VALUE_IDX)\r
                self._valueColumn = gtk.TreeViewColumn("Caption")\r
                self._valueColumn.pack_start(self._valueCell, True)\r
                self._valueColumn.add_attribute(self._valueCell, "text", self.VALUE_IDX)\r
@@ -73,9 +72,23 @@ class SimpleList(gtk.ScrolledWindow):
                # wie ich das möchte. Deshalb habe ich die Suche abgeschaltet.\r
                self._itemView.set_enable_search(False)\r
 \r
                # wie ich das möchte. Deshalb habe ich die Suche abgeschaltet.\r
                self._itemView.set_enable_search(False)\r
 \r
-               # Anzeigen\r
-               self.add(self._itemView)\r
-               self.show()\r
+               self._maemo5HackVBox = gtk.VBox()\r
+               self._maemo5HackVBox.pack_start(self._itemView)\r
+               self._maemo5HackViewport = gtk.Viewport()\r
+               self._maemo5HackViewport.add(self._maemo5HackVBox)\r
+\r
+               # ScrolledWindow\r
+               self._scrolledWindow = gtk.ScrolledWindow()\r
+               self._scrolledWindow.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)\r
+               self._scrolledWindow.set_shadow_type(gtk.SHADOW_IN)\r
+               self._scrolledWindow.add(self._maemo5HackViewport)\r
+\r
+               self._scrolledWindow = hildonize.hildonize_scrollwindow(self._scrolledWindow)\r
+               self._scrolledWindow.show()\r
+\r
+       @property\r
+       def widget(self):\r
+               return self._scrolledWindow\r
 \r
        def append_item(self, value, key = ""):\r
                """\r
 \r
        def append_item(self, value, key = ""):\r
                """\r
@@ -117,11 +130,13 @@ class SimpleList(gtk.ScrolledWindow):
                """\r
 \r
                self._itemView.connect("cursor-changed", function)\r
                """\r
 \r
                self._itemView.connect("cursor-changed", function)\r
+               self._itemView.connect("row-activated", function)\r
 \r
 \r
+       @gtk_toolbox.log_exception(_moduleLogger)\r
        def _on_row_activated(self, treeview, path, view_column, data = None):\r
                """\r
        def _on_row_activated(self, treeview, path, view_column, data = None):\r
                """\r
-               Setzt den Wert von self._selectedItems. Dieser Wert kann\r
-               mit der Methode "get_selection_data" abgerufen werden.\r
+               Sets the value of self._selectedItems. This value can\r
+               be retrieved using the method "get_selection_data.\r
                """\r
 \r
                iter = self._itemlist.get_iter(path)\r
                """\r
 \r
                iter = self._itemlist.get_iter(path)\r
@@ -134,10 +149,11 @@ class SimpleList(gtk.ScrolledWindow):
                        self._itemlist.get_value(iter, self.VALUE_IDX) # Value\r
                )\r
 \r
                        self._itemlist.get_value(iter, self.VALUE_IDX) # Value\r
                )\r
 \r
+       @gtk_toolbox.log_exception(_moduleLogger)\r
        def _on_cursor_changed(self, widget, data1 = None, data2 = None):\r
                """\r
        def _on_cursor_changed(self, widget, data1 = None, data2 = None):\r
                """\r
-               Setzt den Wert von self._selectedItems. Dieser Wert kann\r
-               mit der Methode "get_selection_data" abgerufen werden.\r
+               Sets the value of self._selectedItems. This value can\r
+               be retrieved using the method "get_selection_data.\r
                """\r
 \r
                selection = widget.get_selection()\r
                """\r
 \r
                selection = widget.get_selection()\r