Pulling in changes from skeleton
[multilist] / src / libbottombar.py
index 5542fa5..9ea4623 100644 (file)
@@ -21,11 +21,12 @@ Copyright (C) 2008 Christoph Würstle
 """
 
 
-import gobject
 import logging
 
 import gtk
 
+import gtk_toolbox
+
 try:
        _
 except NameError:
@@ -35,130 +36,114 @@ except NameError:
 _moduleLogger = logging.getLogger(__name__)
 
 
-class Bottombar(gtk.HBox):
+class Bottombar(gtk.VBox):
 
        __gsignals__ = {
-               'changed' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,(gobject.TYPE_STRING,gobject.TYPE_STRING)),
-               #'changedCategory': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,(gobject.TYPE_STRING,gobject.TYPE_STRING))
        }
 
-       def new_item(self,widget=None,data1=None,data2=None):
-               dialog = gtk.Dialog(_("New item name:"),None,gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
-               dialog.set_position(gtk.WIN_POS_CENTER)
-               entryKlasse=gtk.Entry()
-               entryKlasse.set_text("")
+       def __init__(self, db, view, isHildon):
+               gtk.VBox.__init__(self, homogeneous = False, spacing = 3)
+
+               self.db = db
+               self.isHildon = isHildon
+               self.view = view
+
+               _moduleLogger.info("libBottomBar, init")
 
+               buttonHBox = gtk.HBox()
+               self.pack_start(buttonHBox, expand = False, fill = True, padding = 3)
+
+               button = gtk.Button(stock = gtk.STOCK_ADD)
+               button.connect("clicked", self.new_item, None)
+               buttonHBox.pack_start(button, expand = True, fill = True, padding = 3)
+
+               button = gtk.Button(stock = gtk.STOCK_DELETE)
+               button.connect("clicked", self.del_item, None)
+               buttonHBox.pack_start(button, expand = True, fill = True, padding = 3)
+
+       def set_orientation(self, orientation):
+               if orientation == gtk.ORIENTATION_HORIZONTAL:
+                       pass
+               elif orientation == gtk.ORIENTATION_VERTICAL:
+                       pass
+               else:
+                       raise NotImplementedError(orientation)
+
+       @gtk_toolbox.log_exception(_moduleLogger)
+       def new_item(self, widget = None, data1 = None, data2 = None):
+               window = gtk_toolbox.find_parent_window(self)
+               dialog = gtk.Dialog(
+                       _("New item name:"),
+                       window,
+                       gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
+                       (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)
+               )
+
+               entryKlasse = gtk.Entry()
+               entryKlasse.set_text("")
                dialog.vbox.pack_start(entryKlasse, True, True, 0)
 
                dialog.vbox.show_all()
-               #dialog.set_size_request(400,300)
-
                if dialog.run() == gtk.RESPONSE_ACCEPT:
-                       #_moduleLogger.info("new category name "+entryKlasse.get_text())
-                       #self.view.liststorehandler.rename_category(entryKlasse.get_text())
                        self.view.liststorehandler.add_row(entryKlasse.get_text())
                dialog.destroy()
 
-       def del_item(self,widget=None,data1=None,data2=None):
+       @gtk_toolbox.log_exception(_moduleLogger)
+       def del_item(self, widget = None, data1 = None, data2 = None):
+               window = gtk_toolbox.find_parent_window(self)
                path, col = self.view.treeview.get_cursor()
-               if path!=None:
-                       mbox=gtk.MessageDialog(None,gtk.DIALOG_MODAL,gtk.MESSAGE_QUESTION,gtk.BUTTONS_YES_NO,_("Delete current item?"))
-                       response=mbox.run()
-                       mbox.hide()
-                       mbox.destroy()
-                       if response==gtk.RESPONSE_YES:
-                               self.view.del_active_row()
-               else:
-                       mbox=gtk.MessageDialog(None,gtk.DIALOG_MODAL,gtk.MESSAGE_ERROR,gtk.BUTTONS_OK,_("No item selected!"))
-                       response=mbox.run()
+               if path is None:
+                       mbox = gtk.MessageDialog(window, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, _("No item selected!"))
+                       response = mbox.run()
                        mbox.hide()
                        mbox.destroy()
+                       return
 
-       def checkout_items(self,widget=None,data1=None,data2=None):
-               #self.view.del_active_row()
-               mbox=gtk.MessageDialog(None,gtk.DIALOG_MODAL,gtk.MESSAGE_QUESTION,gtk.BUTTONS_YES_NO,(_("Really checkout all items?")))
-               response=mbox.run()
+               mbox = gtk.MessageDialog(window, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, _("Delete current item?"))
+               response = mbox.run()
                mbox.hide()
                mbox.destroy()
-               if response==gtk.RESPONSE_YES:
-                       self.view.liststorehandler.checkout_rows()
-                       #n=len(self.view.liststorehandler.get_liststore())
-                       #for i in range(n):
-                       #       self.view.liststorehandler.checkout_rows()
-                       #       #print i
-
-       def search_list(self,widget=None,data1=None,data2=None):
-               self.view.liststorehandler.get_liststore(widget.get_text())
-
-       def rename_category(self,widget=None,data1=None,data2=None):
-               dialog = gtk.Dialog(_("New category name:"),None,gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
-
-               dialog.set_position(gtk.WIN_POS_CENTER)
-               entryKlasse=gtk.Entry()
+               if response == gtk.RESPONSE_YES:
+                       self.view.del_active_row()
+
+       def rename_category(self, widget = None, data1 = None, data2 = None):
+               window = gtk_toolbox.find_parent_window(self)
+               dialog = gtk.Dialog(
+                       _("New category name:"),
+                       window,
+                       gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
+                       (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)
+               )
+
+               entryKlasse = gtk.Entry()
                entryKlasse.set_text(self.view.liststorehandler.selection.get_category())
-
                dialog.vbox.pack_start(entryKlasse, True, True, 0)
 
                dialog.vbox.show_all()
-               #dialog.set_size_request(400,300)
-
                if dialog.run() == gtk.RESPONSE_ACCEPT:
                        _moduleLogger.info("new category name "+entryKlasse.get_text())
                        self.view.liststorehandler.rename_category(entryKlasse.get_text())
                else:
-                       #print "Cancel",res
                        pass
                dialog.destroy()
 
-       def rename_list(self,widget=None,data1=None,data2=None):
-               dialog = gtk.Dialog(_("New list name:"),None,gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
+       def rename_list(self, widget = None, data1 = None, data2 = None):
+               window = gtk_toolbox.find_parent_window(self)
+               dialog = gtk.Dialog(
+                       _("New list name:"),
+                       window,
+                       gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
+                       (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)
+               )
 
-               dialog.set_position(gtk.WIN_POS_CENTER)
-               entryKlasse=gtk.Entry()
+               entryKlasse = gtk.Entry()
                entryKlasse.set_text(self.view.liststorehandler.selection.get_list())
-
                dialog.vbox.pack_start(entryKlasse, True, True, 0)
 
                dialog.vbox.show_all()
-               #dialog.set_size_request(400,300)
-
                if dialog.run() == gtk.RESPONSE_ACCEPT:
                        _moduleLogger.info("new list name "+entryKlasse.get_text())
                        self.view.liststorehandler.rename_list(entryKlasse.get_text())
                else:
-                       #print "Cancel",res
                        pass
                dialog.destroy()
-
-       def __init__(self,db,view,isHildon):
-               gtk.HBox.__init__(self,homogeneous=False, spacing=3)
-
-               self.db=db
-               self.isHildon=isHildon
-               self.view=view
-
-               _moduleLogger.info("libBottomBar, init")
-
-               button=gtk.Button(_("New item"))
-               button.connect("clicked",self.new_item)
-               self.pack_start(button, expand=False, fill=True, padding=0)
-
-               label=gtk.Label("  ")
-               self.pack_start(label, expand=True, fill=True, padding=0)
-
-               label=gtk.Label(_("Search:"))
-               self.pack_start(label, expand=False, fill=True, padding=0)
-               searchEntry=gtk.Entry()
-               searchEntry.connect("changed",self.search_list)
-               self.pack_start(searchEntry, expand=True, fill=True, padding=0)
-
-               label=gtk.Label("  ")
-               self.pack_start(label, expand=True, fill=True, padding=0)
-
-               button=gtk.Button(_("Checkout all items"))
-               button.connect("clicked",self.checkout_items)
-               self.pack_start(button, expand=False, fill=True, padding=0)
-
-               button=gtk.Button(_("Del item"))
-               button.connect("clicked",self.del_item)
-               self.pack_start(button, expand=False, fill=True, padding=0)