Added some error checks for sanity
[biaweb_qt.git] / templates_dialog.py
index efd5bd7..20f2e18 100644 (file)
@@ -16,15 +16,23 @@ class TemplatesDialog (PyQt4.QtGui.QDialog, ui_templates_dialog.Ui_TemplatesDial
 
                # populate the templates
                tpls = biaweb_db.get_templates (self.current_db)
-               for tpl_name, tpl_content in tpls:
-                       self.templates.addItem (str (tpl_name))
+               # if templates populated
+               if tpls:
+                       for tpl_name, tpl_content in tpls:
+                               self.templates.addItem (str (tpl_name))
+               else:
+                       PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in retrieving templates")
 
        def onEdit (self):
                # get the currently selected list item
-               tpl_name = self.templates.currentItem ().data (0).toString ()
+               sel_item = self.templates.currentItem ()
+               # if no item is selected return
+               if sel_item is None:
+                       return
+               tpl_name = str (sel_item.data (0).toString ())
 
                # get the template content from the database
-               tpl_str = biaweb_db.get_template_text (self.current_db, str (tpl_name))
+               tpl_str = biaweb_db.get_template_text (self.current_db, tpl_name)
 
                # if template string cannot be obtained for some reason
                if tpl_str == False:
@@ -32,4 +40,13 @@ class TemplatesDialog (PyQt4.QtGui.QDialog, ui_templates_dialog.Ui_TemplatesDial
                else:
                        # open edit dialog with title "template name" and text as the template string
                        edlg = editor_dialog.EditorDialog (self, tpl_name, tpl_str)
-                       edlg.exec_ ()
+                       # if editing is confirmed
+                       if edlg.exec_ () == PyQt4.QtGui.QDialog.Accepted:
+                               upd_tpl_str = str (edlg.text.toPlainText ()).strip ()
+
+                               # update the template with the new template string
+                               ret = biaweb_db.update_template (self.current_db, tpl_name, upd_tpl_str)
+                               # if update failed
+                               if ret == False:
+                                       PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in updating template")
+