Added logging of exceptions
authorEd Page <eopage@byu.net>
Fri, 19 Mar 2010 12:09:37 +0000 (07:09 -0500)
committerEd Page <eopage@byu.net>
Fri, 19 Mar 2010 12:09:37 +0000 (07:09 -0500)
src/libbottombar.py
src/libliststorehandler.py
src/libselection.py
src/libsync.py
src/libview.py
src/multilist_gtk.py
src/sqldialog.py

index fc9a856..46bdcbd 100644 (file)
@@ -26,6 +26,8 @@ import logging
 
 import gtk
 
+import gtk_toolbox
+
 try:
        _
 except NameError:
@@ -42,6 +44,40 @@ class Bottombar(gtk.HBox):
                #'changedCategory': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING, gobject.TYPE_STRING))
        }
 
+       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)
+
+       @gtk_toolbox.log_exception(_moduleLogger)
        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)
@@ -59,6 +95,7 @@ class Bottombar(gtk.HBox):
                        self.view.liststorehandler.add_row(entryKlasse.get_text())
                dialog.destroy()
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def del_item(self, widget = None, data1 = None, data2 = None):
                path, col = self.view.treeview.get_cursor()
                if path is not None:
@@ -74,6 +111,7 @@ class Bottombar(gtk.HBox):
                        mbox.hide()
                        mbox.destroy()
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        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?")))
@@ -87,9 +125,11 @@ class Bottombar(gtk.HBox):
                        #       self.view.liststorehandler.checkout_rows()
                        #       #print i
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def search_list(self, widget = None, data1 = None, data2 = None):
                self.view.liststorehandler.get_liststore(widget.get_text())
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        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))
 
@@ -110,6 +150,7 @@ class Bottombar(gtk.HBox):
                        pass
                dialog.destroy()
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        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))
 
@@ -129,36 +170,3 @@ class Bottombar(gtk.HBox):
                        #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)
index 02ed37a..eee2b31 100644 (file)
@@ -20,9 +20,11 @@ along with Multilist.  If not, see <http://www.gnu.org/licenses/>.
 Copyright (C) 2008 Christoph Würstle
 """
 
-import gtk
 import logging
 
+import gtk
+
+import gtk_toolbox
 
 try:
        _
@@ -35,6 +37,33 @@ _moduleLogger = logging.getLogger(__name__)
 
 class Liststorehandler(object):
 
+       def __init__(self, db, selection):
+               self.db = db
+               self.liststore = None
+               self.unitsstore = None
+               self.selection = selection
+               self.collist = ("uid", "status", "title", "quantitiy", "unit", "price", "priority", "date", "private", "stores", "note", "custom1", "custom2")
+
+               #sql = "DROP TABLE items"
+               #self.db.speichereSQL(sql)
+
+               sql = "CREATE TABLE items (uid TEXT, list TEXT, category TEXT, status TEXT, title TEXT, quantitiy TEXT, unit TEXT, price TEXT, priority TEXT, date TEXT, pcdate TEXT, private TEXT, stores TEXT, note TEXT, custom1 TEXT, custom2 TEXT)"
+               self.db.speichereSQL(sql)
+
+               self.selection.load()
+               self.selection.connect("changed", self.update_list)
+               #self.selection.connect("changedCategory", self.update_category)
+
+               """
+               sql = "INSERT INTO items (uid, list, category, title) VALUES (?, ?, ?, ?)"
+               import uuid
+               self.db.speichereSQL(sql, (str(uuid.uuid4()), "default", "default", "atitel1"))
+               self.db.speichereSQL(sql, (str(uuid.uuid4()), "default", "default", "btitel2"))
+               self.db.speichereSQL(sql, (str(uuid.uuid4()), "default", "default", "ctitel3"))
+               
+               print "inserted"
+               """
+
        def get_unitsstore(self):
                if (self.unitsstore == None):
                        self.unitsstore = gtk.ListStore(str, str, str, str, str,  str, str, str, str, str, str, str, str)
@@ -171,35 +200,10 @@ class Liststorehandler(object):
                self.selection.load()
                self.selection.set_list(new_name)
 
+       #@gtk_toolbox.log_exception(_moduleLogger)
        #def update_category(self, widget = None, data = None, data2 = None, data3 = None):
        #       self.get_liststore()
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def update_list(self, widget = None, data = None, data2 = None, data3 = None):
                self.get_liststore()
-
-       def __init__(self, db, selection):
-               self.db = db
-               self.liststore = None
-               self.unitsstore = None
-               self.selection = selection
-               self.collist = ("uid", "status", "title", "quantitiy", "unit", "price", "priority", "date", "private", "stores", "note", "custom1", "custom2")
-
-               #sql = "DROP TABLE items"
-               #self.db.speichereSQL(sql)
-
-               sql = "CREATE TABLE items (uid TEXT, list TEXT, category TEXT, status TEXT, title TEXT, quantitiy TEXT, unit TEXT, price TEXT, priority TEXT, date TEXT, pcdate TEXT, private TEXT, stores TEXT, note TEXT, custom1 TEXT, custom2 TEXT)"
-               self.db.speichereSQL(sql)
-
-               self.selection.load()
-               self.selection.connect("changed", self.update_list)
-               #self.selection.connect("changedCategory", self.update_category)
-
-               """
-               sql = "INSERT INTO items (uid, list, category, title) VALUES (?, ?, ?, ?)"
-               import uuid
-               self.db.speichereSQL(sql, (str(uuid.uuid4()), "default", "default", "atitel1"))
-               self.db.speichereSQL(sql, (str(uuid.uuid4()), "default", "default", "btitel2"))
-               self.db.speichereSQL(sql, (str(uuid.uuid4()), "default", "default", "ctitel3"))
-               
-               print "inserted"
-               """
index 08e147a..7b6f48e 100644 (file)
@@ -21,11 +21,13 @@ Copyright (C) 2008 Christoph Würstle
 """
 
 
-import gobject
 import logging
 
+import gobject
 import gtk
 
+import gtk_toolbox
+
 try:
        _
 except NameError:
@@ -42,6 +44,40 @@ class Selection(gtk.HBox):
                #'changedCategory': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING, gobject.TYPE_STRING))
        }
 
+       def __init__(self, db, isHildon):
+               gtk.HBox.__init__(self, homogeneous = False, spacing = 3)
+
+               self.db = db
+               self.isHildon = isHildon
+
+               _moduleLogger.info("libSelection, init")
+
+               label = gtk.Label(_("List:"))
+               self.pack_start(label, expand = False, fill = True, padding = 0)
+
+               self.comboList = gtk.combo_box_entry_new_text()
+               self.comboList.set_size_request(180, -1)
+               self.pack_start(self.comboList, expand = False, fill = True, padding = 0)
+
+               label = gtk.Label(_("  Category:"))
+               self.pack_start(label, expand = False, fill = True, padding = 0)
+
+               self.comboCategory = gtk.combo_box_entry_new_text()
+               self.comboCategory.set_size_request(180, -1)
+               self.pack_start(self.comboCategory, expand = False, fill = True, padding = 0)
+
+               self.comboList.connect("changed", self.comboList_changed, None)
+               self.comboCategory.connect("changed", self.comboCategory_changed, None)
+
+               label = gtk.Label(_("  View:"))
+               self.pack_start(label, expand = False, fill = True, padding = 0)
+
+               self.radio_all = gtk.RadioButton(group = None, label = _("All"), use_underline = True)
+               self.pack_start(self.radio_all, expand = False, fill = True, padding = 0)
+               self.radio_active = gtk.RadioButton(group = self.radio_all, label = _("Active"), use_underline = True)
+               self.pack_start(self.radio_active, expand = False, fill = True, padding = 0)
+               self.radio_all.connect("toggled", self.radioActive_changed, None)
+
        def load(self):
                model = self.comboList.get_model()
                model.clear()
@@ -61,6 +97,7 @@ class Selection(gtk.HBox):
                else:
                        self.comboList.set_active(0)
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def comboList_changed(self, widget = None, data = None):
                #self.comboCategory.set_model(None)
                #print "reload categories"
@@ -85,6 +122,7 @@ class Selection(gtk.HBox):
                self.emit("changed", "list", "")
                self.db.speichereDirekt("comboListText", self.comboList.get_child().get_text())
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def comboCategory_changed(self, widget = None, data = None):
                #_moduleLogger.info("Klasse geaendert zu ")
                #self.hauptRegister.set_current_page(0)
@@ -92,6 +130,7 @@ class Selection(gtk.HBox):
                if self.comboCategory.get_active()>-1:
                        self.db.speichereDirekt("comboCategoryText"+self.comboList.get_child().get_text(), self.comboCategory.get_child().get_text())
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def radioActive_changed(self, widget, data = None):
                self.emit("changed", "radio", "")
 
@@ -150,37 +189,3 @@ class Selection(gtk.HBox):
                        return "-1"
                else:
                        return "0"
-
-       def __init__(self, db, isHildon):
-               gtk.HBox.__init__(self, homogeneous = False, spacing = 3)
-
-               self.db = db
-               self.isHildon = isHildon
-
-               _moduleLogger.info("libSelection, init")
-
-               label = gtk.Label(_("List:"))
-               self.pack_start(label, expand = False, fill = True, padding = 0)
-
-               self.comboList = gtk.combo_box_entry_new_text()
-               self.comboList.set_size_request(180, -1)
-               self.pack_start(self.comboList, expand = False, fill = True, padding = 0)
-
-               label = gtk.Label(_("  Category:"))
-               self.pack_start(label, expand = False, fill = True, padding = 0)
-
-               self.comboCategory = gtk.combo_box_entry_new_text()
-               self.comboCategory.set_size_request(180, -1)
-               self.pack_start(self.comboCategory, expand = False, fill = True, padding = 0)
-
-               self.comboList.connect("changed", self.comboList_changed, None)
-               self.comboCategory.connect("changed", self.comboCategory_changed, None)
-
-               label = gtk.Label(_("  View:"))
-               self.pack_start(label, expand = False, fill = True, padding = 0)
-
-               self.radio_all = gtk.RadioButton(group = None, label = _("All"), use_underline = True)
-               self.pack_start(self.radio_all, expand = False, fill = True, padding = 0)
-               self.radio_active = gtk.RadioButton(group = self.radio_all, label = _("Active"), use_underline = True)
-               self.pack_start(self.radio_active, expand = False, fill = True, padding = 0)
-               self.radio_all.connect("toggled", self.radioActive_changed, None)
index 4e1df23..7851b13 100755 (executable)
@@ -29,6 +29,8 @@ import logging
 import gobject
 import gtk
 
+import gtk_toolbox
+
 
 try:
        _
@@ -301,6 +303,7 @@ class Sync(gtk.VBox):
        def getRemoteSyncUUID(self):
                return self.sync_uuid
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def startServer(self, widget, data = None):
                #Starte RPCServer
                self.db.speichereDirekt("syncServerIP", self.comboIP.get_child().get_text())
@@ -361,6 +364,7 @@ class Sync(gtk.VBox):
                self.changeSyncStatus(False, _("no sync process (at the moment)"))
                return (self.sync_uuid, pcdatum)
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def syncButton(self, widget, data = None):
                _moduleLogger.info("Syncing")
                #sql = "DELETE FROM logtable WHERE sql LIKE externeStundenplanung"
index eb88e8f..53a51fc 100644 (file)
@@ -20,11 +20,14 @@ along with Multilist.  If not, see <http://www.gnu.org/licenses/>.
 Copyright (C) 2008 Christoph Würstle
 """
 
+import logging
+
 import gtk
 import gobject
-import logging
 import pango
 
+import gtk_toolbox
+
 
 try:
        _
@@ -307,6 +310,7 @@ class CellRendererCombo2(gtk.GenericCellRenderer):
 
                return x_offset, y_offset, width, height
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def on_clicked(self,  widget, data):
                print widget, data
 
@@ -481,7 +485,6 @@ class View(gtk.VBox):
                        else:
                                default = "1"
                        if self.db.ladeDirekt("showcol_"+str(self.liststorehandler.get_colname(i)), default) == "1":
-
                                if (i == 1):
                                        self.cell[i] = CellRendererTriple()
                                        self.tvcolumn[i] =      gtk.TreeViewColumn(self.liststorehandler.get_colname(i), self.cell[i])
index 89079c5..7c93879 100755 (executable)
@@ -38,6 +38,7 @@ except ImportError:
 
 import constants
 import hildonize
+import gtk_toolbox
 
 import libspeichern
 import sqldialog
@@ -195,6 +196,7 @@ class Multilist(hildonize.get_app_class()):
                self.prepare_sync_dialog()
                self.ladeAlles()
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def on_key_press(self, widget, event, *args):
                RETURN_TYPES = (gtk.keysyms.Return, gtk.keysyms.ISO_Enter, gtk.keysyms.KP_Enter)
                isCtrl = bool(event.get_state() & gtk.gdk.CONTROL_MASK)
@@ -223,6 +225,7 @@ class Multilist(hildonize.get_app_class()):
                                self._clipboard.set_text(str(log))
                        return True
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def on_window_state_change(self, widget, event, *args):
                if event.new_window_state & gtk.gdk.WINDOW_STATE_FULLSCREEN:
                        self.window_in_fullscreen = True
@@ -238,6 +241,7 @@ class Multilist(hildonize.get_app_class()):
        def beforeSync(self, data = None, data2 = None):
                logging.info("Lade alles")
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def sync_finished(self, data = None, data2 = None):
                self.selection.comboList_changed()
                self.selection.comboCategory_changed()
@@ -252,14 +256,15 @@ class Multilist(hildonize.get_app_class()):
                self.sync_dialog.vbox.pack_start(sync, True, True, 0)
                self.sync_dialog.set_size_request(500, 350)
                self.sync_dialog.vbox.show_all()
-               sync.connect("syncFinished", self.sync_finished)
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def sync_notes(self, widget = None, data = None):
                if self.sync_dialog == None:
                        self.prepare_sync_dialog()
                self.sync_dialog.run()
                self.sync_dialog.hide()
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def show_columns_dialog(self, widget = None, data = None):
                col_dialog = gtk.Dialog(_("Choose columns"), self.window, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
 
@@ -286,6 +291,7 @@ class Multilist(hildonize.get_app_class()):
 
                col_dialog.destroy()
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def destroy(self, widget = None, data = None):
                try:
                        self.speichereAlles()
@@ -297,6 +303,7 @@ class Multilist(hildonize.get_app_class()):
                finally:
                        gtk.main_quit()
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def delete_event(self, widget, event, data = None):
                #print "delete event occurred"
                return False
@@ -304,6 +311,7 @@ class Multilist(hildonize.get_app_class()):
        def dlg_delete(self, widget, event, data = None):
                return False
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def show_about(self, widget = None, data = None):
                dialog = gtk.AboutDialog()
                dialog.set_position(gtk.WIN_POS_CENTER)
@@ -320,6 +328,7 @@ class Multilist(hildonize.get_app_class()):
        def on_info1_activate(self, menuitem):
                self.show_about(menuitem)
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def view_sql_history(self, widget = None, data = None, data2 = None):
                sqldiag = sqldialog.SqlDialog(self.db)
                res = sqldiag.run()
@@ -351,10 +360,12 @@ class Multilist(hildonize.get_app_class()):
                finally:
                        sqldiag.destroy()
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def optimizeSQL(self, widget = None, data = None, data2 = None):
                #optimiere sql
                self.db.speichereSQL("VACUUM", log = False)
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def select_db_dialog(self, widget = None, data = None, data2 = None):
                if (isHildon == False):
                        dlg = gtk.FileChooserDialog(parent = self.window, action = gtk.FILE_CHOOSER_ACTION_SAVE)
index 6e53925..0a16f95 100755 (executable)
@@ -23,9 +23,12 @@ Copyright (C) 2008 Christoph Würstle
 from __future__ import with_statement
 
 import time
-import gtk
 import logging
 
+import gtk
+
+import gtk_toolbox
+
 
 try:
        _