# BiaWeb Website content manager (c) 2010 V.Harishankar # Article dialog class import PyQt4 import ui_article_dialog import highlighter class ArticleDialog (PyQt4.QtGui.QDialog, ui_article_dialog.Ui_ArticleDialog): def __init__ (self, parent): PyQt4.QtGui.QDialog.__init__ (self, parent) self.setupUi (self) # set window to be able to be maximized or minimized self.setWindowFlags (PyQt4.QtCore.Qt.Window) # set the code highlighter to the document self.hltext = highlighter.SimpleHtmlHighlighter (self.content.document ()) # when rejected, confirm first def reject (self): ans = PyQt4.QtGui.QMessageBox.question (self, "Confirm", "Are you sure you wish to cancel all changes?", PyQt4.QtGui.QMessageBox.Yes, PyQt4.QtGui.QMessageBox.No) if ans == PyQt4.QtGui.QMessageBox.Yes: PyQt4.QtGui.QDialog.reject (self) # when accepted check the data def accept (self): title = str (self.article_title.text ()).strip () content = str (self.content.toPlainText ()).strip () stub = str (self.stub.text ()).strip () if title <> "" and content <> "" and stub <> "": PyQt4.QtGui.QDialog.accept (self) else: PyQt4.QtGui.QMessageBox.critical (self, "Missing fields", "Some required fields are missing") # populate categories in combo box def populate_categories (self, category_list, selected_cat = None): for catid, catname, catdesc, stub in category_list: self.category.addItem (catname, int (catid)) # set the index to the selected category item if selected_cat is not None: self.category.setCurrentIndex (self.category.findData (selected_cat)) # when bold is clicked def onBold (self): textcur = self.content.textCursor () sel = textcur.selectedText () boldsel = "" + sel + "" textcur.insertText (boldsel) # when block quote is clicked def onBQuote (self): textcur = self.content.textCursor () sel = textcur.selectedText () quotesel = "
\n" + sel + "\n" textcur.insertText (quotesel) # when bullet is clicked def onBullet (self): # insert bulleted list self.insert_list_items () # when code is clicked def onCode (self): textcur = self.content.textCursor () sel = textcur.selectedText () codesel = "
" + str (sel) + "
"
textcur.insertText (codesel)
# when horiz rule is clicked
def onHRule (self):
textcur = self.content.textCursor ()
hrule = "\n' + sel + "
" textcur.insertText (paracentersel) # when justify is clicked def onJustify (self): textcur = self.content.textCursor () sel = textcur.selectedText () parajustsel = '' + sel + "
" textcur.insertText (parajustsel) # when left is clicked def onLeft (self): textcur = self.content.textCursor () sel = textcur.selectedText () paraleftsel = '' + sel + "
" textcur.insertText (paraleftsel) # when right is clicked def onRight (self): textcur = self.content.textCursor () sel = textcur.selectedText () pararightsel = '' + sel + "
" textcur.insertText (pararightsel) # when pre is clicked def onPre (self): textcur = self.content.textCursor () sel = textcur.selectedText () presel = "" + sel + "" textcur.insertText (presel) # when para is clicked def onPara (self): textcur = self.content.textCursor () sel = textcur.selectedText () parasel = "
" + sel + "
" textcur.insertText (parasel) # when table is clicked def onTable (self): # get the number of rows rows, ok = PyQt4.QtGui.QInputDialog.getInt (self, "Table", "Number of table rows") if not ok: return # get the number of columns cols, ok = PyQt4.QtGui.QInputDialog.getInt (self, "Table", "Number of table columns") if not ok: return # should there be a header row? headerflag = PyQt4.QtGui.QMessageBox.question (self, "Header", "Do you want additional header row?", PyQt4.QtGui.QMessageBox.Yes, PyQt4.QtGui.QMessageBox.No, PyQt4.QtGui.QMessageBox.Cancel) if headerflag == PyQt4.QtGui.QMessageBox.Cancel: return # build the table tag tablelist = ["\n\n") tablelist.append (" |
---|
\n") tablelist.append (" |