123
authoruser <user@debian.(none)>
Sun, 7 Feb 2010 19:25:21 +0000 (21:25 +0200)
committeruser <user@debian.(none)>
Sun, 7 Feb 2010 19:25:21 +0000 (21:25 +0200)
list.py

diff --git a/list.py b/list.py
index ce065d6..cad5e29 100755 (executable)
--- a/list.py
+++ b/list.py
@@ -41,21 +41,25 @@ class List:
     
         self.window.set_border_width(10)
 
-        vbox = gtk.VBox(False, 8)
+        vbox = gtk.VBox(False, 4)
+
+        self.hbox = gtk.HBox(False, 2)
+        
 
         sw = gtk.ScrolledWindow()
         sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
         sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
 
-        vbox.pack_start(sw, True, True, 0)
+        vbox.pack_start(self.hbox, True, True, 0)
+        vbox.pack_end(sw, True, True, 0)
         
         self.dbo = db.DbSqlite()
         #data = self.dbo.get_allrecords('cn')
         data = self.dbo.get_list(0)
 
-        store = gtk.ListStore(int, str)
+        store = gtk.ListStore(int, str, int)
         for d in data:
-            store.append([d, data[d]])
+            store.append([d, data[d], 0])
         
         self.tree = gtk.TreeView(store)
         self.tree.set_rules_hint(True)
@@ -73,6 +77,13 @@ class List:
         column.set_sort_column_id(0)
         self.tree.append_column(column)
 
+        t1 = gtk.CellRendererText()
+        column = gtk.TreeViewColumn("Type", t1, text=2)
+        column.set_sort_column_id(0)
+        column.set_visible(False)
+        self.tree.append_column(column)
+
+
         sw.add(self.tree)
 
         #st = gtk.ListStore(int, str)
@@ -90,18 +101,60 @@ class List:
 
     def select_item(self, widget, path, column):
         
-        store = gtk.ListStore(int, str)
+        store = gtk.ListStore(int, str, int)
         parent = widget.get_model()[path][0]
+        type = widget.get_model()[path][2]
+        if type == 1:
+            self.show_record(parent)
+            return
+        print parent
+        #create button for back
+        but = gtk.Button(widget.get_model()[path][1])
+        #add callback function
+        #but.connect("clicked", self.button_back, parent)
+
+        self.hbox.add(but)
+        but.show()
         data = self.dbo.get_list(parent)
         for d in data:
-            store.append([d, data[d]])
+            store.append([d, data[d], 0])
         #add people
         data = self.dbo.get_allrecords('cn', parent)
         for d in data:
-            store.append([d, data[d]])
+            store.append([d, data[d], 1])
         self.tree.set_model(store)    
-        print "set model"
 
+    def show_record(self, id):
+        self.dialog = gtk.Dialog("Item descrition", 
+                                self.window, 
+                                gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
+                                (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
+        
+        rec = self.dbo.get_record(id)
+        #print rec
+        text = ""
+        tb = gtk.TextBuffer()
+
+        for r in rec:
+            #print "%s -> %s" % (r, rec[r])
+            text += "%s:  %s\n" % (r, rec[r])
+        
+        tb.insert_at_cursor(text)
+
+        sw = gtk.ScrolledWindow()
+        sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
+        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+        
+        tv = gtk.TextView(tb)
+        sw.add(tv)
+        
+        self.dialog.vbox.pack_start(sw)
+        self.dialog.set_size_request(600, 360)
+        tv.show()
+        sw.show()
+        response = self.dialog.run()
+        self.dialog.destroy()
+        print "response= %s" % response
 
     def select_item1(self, widget, path, column):