#!/usr/bin/python
+# -*- coding: utf-8 -*-
import pygtk
pygtk.require('2.0')
import gtk
self.window.set_border_width(10)
- vbox = gtk.VBox(False, 4)
+ vbox = gtk.VBox(False, 0)
- self.hbox = gtk.HBox(False, 2)
+ self.hbox = gtk.HBox(False, 0)
+ self.buttons = {}
+ self.buttons[0] = gtk.Button(u"Всего")
+ self.max_buttons = 1
+ self.buttons[0].connect("clicked", self.button_back, 0, 0)
+ self.hbox.add(self.buttons[0])
+ self.buttons[0].show()
+
sw = gtk.ScrolledWindow()
sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- vbox.pack_start(self.hbox, True, True, 0)
+ vbox.pack_start(self.hbox, False, 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, int)
- for d in data:
- store.append([d, data[d], 0])
+ self.tree = gtk.TreeView()
+ self.show_list(0)
+ #store = gtk.ListStore(int, str, int)
+ #for d in data:
+ # store.append([d, data[d], 0])
- self.tree = gtk.TreeView(store)
self.tree.set_rules_hint(True)
self.tree.connect("row-activated", self.select_item)
def select_item(self, widget, path, column):
- store = gtk.ListStore(int, str, int)
parent = widget.get_model()[path][0]
type = widget.get_model()[path][2]
if type == 1:
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)
+ if self.buttons.has_key(self.max_buttons) == 0:
+ self.buttons[self.max_buttons] = gtk.Button()
+ self.hbox.add(self.buttons[self.max_buttons])
+ self.buttons[self.max_buttons].set_label(widget.get_model()[path][1])
+ self.buttons[self.max_buttons].connect("clicked", self.button_back, parent, self.max_buttons)
+
+ self.buttons[self.max_buttons].show()
+ self.hbox.add(self.buttons[self.max_buttons])
+ self.max_buttons = self.max_buttons + 1
+# self.buttons[self.max_buttons] = gtk.Button()
+ self.show_list(parent)
- self.hbox.add(but)
- but.show()
+ def show_list(self, parent):
+
+ store = gtk.ListStore(int, str, int)
data = self.dbo.get_list(parent)
for d in data:
store.append([d, data[d], 0])
data = self.dbo.get_allrecords('cn', parent)
for d in data:
store.append([d, data[d], 1])
- self.tree.set_model(store)
-
- def button_back(self, widget, data=None):
- print "button back data= %i " % data
+ self.tree.set_model(store)
+
+ def button_back(self, widget, id=None, number=None):
+
+ """return back"""
+ self.show_list(id)
+
+ # delete not use buttons
+ while self.max_buttons - 1 > number:
+ self.buttons[self.max_buttons-1].set_label(" ")
+ self.hbox.remove(self.buttons[self.max_buttons-1])
+ self.max_buttons = self.max_buttons - 1
+
+ print "button back data= %i " % number
def show_record(self, id):
self.dialog = gtk.Dialog("Item descrition",