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)
+ # 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
+ 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, tpl_name)
+
+ # if template string cannot be obtained for some reason
+ if tpl_str is 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 is False:
+ PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in updating template")
+