Completed the template editing functionality
[biaweb_qt.git] / templates_dialog.py
index 7d8fbf0..64cc70c 100644 (file)
@@ -3,10 +3,42 @@
 
 import PyQt4
 import ui_templates_dialog
-import highlighter
+import editor_dialog
+import biaweb_db
 
 class TemplatesDialog (PyQt4.QtGui.QDialog, ui_templates_dialog.Ui_TemplatesDialog):
-       def __init__ (self, master):
+       def __init__ (self, master, currentdb):
                PyQt4.QtGui.QDialog.__init__ (self, master)
                self.setupUi (self)
-               self.setWindowFlags (PyQt4.QtCore.Qt.Window)
+
+               # set the current database
+               self.current_db = currentdb
+
+               # populate the templates
+               tpls = biaweb_db.get_templates (self.current_db)
+               for tpl_name, tpl_content in tpls:
+                       self.templates.addItem (str (tpl_name))
+
+       def onEdit (self):
+               # get the currently selected list item
+               tpl_name = str (self.templates.currentItem ().data (0).toString ())
+
+               # get the template content from the database
+               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:
+                       PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in retrieving template")
+               else:
+                       # open edit dialog with title "template name" and text as the template string
+                       edlg = editor_dialog.EditorDialog (self, tpl_name, tpl_str)
+                       # 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")
+