Article editing fully implemented
[biaweb_qt.git] / ui_article_dialog.py
index 4c17e77..6267265 100644 (file)
@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'article_dialog.ui'
 #
-# Created: Fri Nov 26 21:22:47 2010
+# Created: Mon Nov 29 11:37:34 2010
 #      by: PyQt4 UI code generator 4.7.4
 #
 # WARNING! All changes made in this file will be lost!
@@ -12,66 +12,280 @@ from PyQt4 import QtCore, QtGui
 class Ui_ArticleDialog(object):
     def setupUi(self, ArticleDialog):
         ArticleDialog.setObjectName("ArticleDialog")
-        ArticleDialog.resize(660, 506)
+        ArticleDialog.resize(654, 548)
+        ArticleDialog.setAutoFillBackground(False)
+        ArticleDialog.setSizeGripEnabled(True)
+        ArticleDialog.setModal(True)
         self.gridLayout = QtGui.QGridLayout(ArticleDialog)
         self.gridLayout.setObjectName("gridLayout")
         self.label = QtGui.QLabel(ArticleDialog)
+        font = QtGui.QFont()
+        font.setWeight(75)
+        font.setBold(True)
+        self.label.setFont(font)
         self.label.setObjectName("label")
-        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+        self.gridLayout.addWidget(self.label, 0, 0, 1, 3)
         self.article_title = QtGui.QLineEdit(ArticleDialog)
         self.article_title.setObjectName("article_title")
-        self.gridLayout.addWidget(self.article_title, 0, 1, 1, 4)
+        self.gridLayout.addWidget(self.article_title, 0, 3, 1, 19)
         self.label_2 = QtGui.QLabel(ArticleDialog)
+        font = QtGui.QFont()
+        font.setWeight(50)
+        font.setBold(False)
+        self.label_2.setFont(font)
         self.label_2.setObjectName("label_2")
-        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 3)
         self.keywords = QtGui.QLineEdit(ArticleDialog)
         self.keywords.setObjectName("keywords")
-        self.gridLayout.addWidget(self.keywords, 1, 1, 1, 4)
+        self.gridLayout.addWidget(self.keywords, 1, 3, 1, 19)
         self.label_3 = QtGui.QLabel(ArticleDialog)
+        font = QtGui.QFont()
+        font.setWeight(50)
+        font.setBold(False)
+        self.label_3.setFont(font)
         self.label_3.setObjectName("label_3")
-        self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
+        self.gridLayout.addWidget(self.label_3, 2, 0, 1, 3)
         self.summary = QtGui.QPlainTextEdit(ArticleDialog)
         self.summary.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
+        self.summary.setTabChangesFocus(True)
         self.summary.setObjectName("summary")
-        self.gridLayout.addWidget(self.summary, 2, 1, 1, 4)
+        self.gridLayout.addWidget(self.summary, 2, 3, 1, 19)
         self.label_5 = QtGui.QLabel(ArticleDialog)
+        font = QtGui.QFont()
+        font.setWeight(75)
+        font.setBold(True)
+        self.label_5.setFont(font)
         self.label_5.setObjectName("label_5")
-        self.gridLayout.addWidget(self.label_5, 3, 0, 1, 2)
-        self.content = QtGui.QPlainTextEdit(ArticleDialog)
-        self.content.setMinimumSize(QtCore.QSize(0, 210))
-        self.content.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
-        self.content.setObjectName("content")
-        self.gridLayout.addWidget(self.content, 4, 0, 1, 5)
+        self.gridLayout.addWidget(self.label_5, 3, 0, 1, 4)
+        self.bold = QtGui.QToolButton(ArticleDialog)
+        font = QtGui.QFont()
+        font.setWeight(75)
+        font.setBold(True)
+        self.bold.setFont(font)
+        self.bold.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.bold.setText("")
+        icon = QtGui.QIcon()
+        icon.addPixmap(QtGui.QPixmap(":/bia/resources/bold.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.bold.setIcon(icon)
+        self.bold.setAutoRaise(False)
+        self.bold.setObjectName("bold")
+        self.gridLayout.addWidget(self.bold, 4, 0, 1, 1)
+        self.italic = QtGui.QToolButton(ArticleDialog)
+        font = QtGui.QFont()
+        font.setItalic(True)
+        self.italic.setFont(font)
+        self.italic.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.italic.setText("")
+        icon1 = QtGui.QIcon()
+        icon1.addPixmap(QtGui.QPixmap(":/bia/resources/italic.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.italic.setIcon(icon1)
+        self.italic.setAutoRaise(False)
+        self.italic.setObjectName("italic")
+        self.gridLayout.addWidget(self.italic, 4, 1, 1, 1)
+        self.preformat = QtGui.QToolButton(ArticleDialog)
+        self.preformat.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.preformat.setText("")
+        icon2 = QtGui.QIcon()
+        icon2.addPixmap(QtGui.QPixmap(":/bia/resources/pre.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.preformat.setIcon(icon2)
+        self.preformat.setAutoRaise(False)
+        self.preformat.setObjectName("preformat")
+        self.gridLayout.addWidget(self.preformat, 4, 2, 1, 1)
+        self.pararight = QtGui.QToolButton(ArticleDialog)
+        self.pararight.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.pararight.setText("")
+        icon3 = QtGui.QIcon()
+        icon3.addPixmap(QtGui.QPixmap(":/bia/resources/right.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.pararight.setIcon(icon3)
+        self.pararight.setAutoRaise(False)
+        self.pararight.setObjectName("pararight")
+        self.gridLayout.addWidget(self.pararight, 4, 8, 1, 1)
+        self.parajustify = QtGui.QToolButton(ArticleDialog)
+        self.parajustify.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.parajustify.setText("")
+        icon4 = QtGui.QIcon()
+        icon4.addPixmap(QtGui.QPixmap(":/bia/resources/justify.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.parajustify.setIcon(icon4)
+        self.parajustify.setAutoRaise(False)
+        self.parajustify.setObjectName("parajustify")
+        self.gridLayout.addWidget(self.parajustify, 4, 9, 1, 1)
+        self.bullets = QtGui.QToolButton(ArticleDialog)
+        self.bullets.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.bullets.setText("")
+        icon5 = QtGui.QIcon()
+        icon5.addPixmap(QtGui.QPixmap(":/bia/resources/bullets.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.bullets.setIcon(icon5)
+        self.bullets.setAutoRaise(False)
+        self.bullets.setObjectName("bullets")
+        self.gridLayout.addWidget(self.bullets, 4, 13, 1, 1)
+        self.numbered = QtGui.QToolButton(ArticleDialog)
+        self.numbered.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.numbered.setText("")
+        icon6 = QtGui.QIcon()
+        icon6.addPixmap(QtGui.QPixmap(":/bia/resources/numbers.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.numbered.setIcon(icon6)
+        self.numbered.setAutoRaise(False)
+        self.numbered.setObjectName("numbered")
+        self.gridLayout.addWidget(self.numbered, 4, 14, 1, 1)
+        self.codeblock = QtGui.QToolButton(ArticleDialog)
+        self.codeblock.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.codeblock.setText("")
+        icon7 = QtGui.QIcon()
+        icon7.addPixmap(QtGui.QPixmap(":/bia/resources/code.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.codeblock.setIcon(icon7)
+        self.codeblock.setAutoRaise(False)
+        self.codeblock.setObjectName("codeblock")
+        self.gridLayout.addWidget(self.codeblock, 4, 16, 1, 1)
+        self.table = QtGui.QToolButton(ArticleDialog)
+        self.table.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.table.setText("")
+        icon8 = QtGui.QIcon()
+        icon8.addPixmap(QtGui.QPixmap(":/bia/resources/table.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.table.setIcon(icon8)
+        self.table.setAutoRaise(False)
+        self.table.setObjectName("table")
+        self.gridLayout.addWidget(self.table, 4, 17, 1, 1)
+        self.hrule = QtGui.QToolButton(ArticleDialog)
+        self.hrule.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.hrule.setText("")
+        icon9 = QtGui.QIcon()
+        icon9.addPixmap(QtGui.QPixmap(":/bia/resources/hr.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.hrule.setIcon(icon9)
+        self.hrule.setAutoRaise(False)
+        self.hrule.setObjectName("hrule")
+        self.gridLayout.addWidget(self.hrule, 4, 19, 1, 1)
+        self.paragraph = QtGui.QToolButton(ArticleDialog)
+        self.paragraph.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.paragraph.setText("")
+        icon10 = QtGui.QIcon()
+        icon10.addPixmap(QtGui.QPixmap(":/bia/resources/par.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.paragraph.setIcon(icon10)
+        self.paragraph.setAutoRaise(False)
+        self.paragraph.setObjectName("paragraph")
+        self.gridLayout.addWidget(self.paragraph, 4, 20, 1, 1)
+        self.linebreak = QtGui.QToolButton(ArticleDialog)
+        self.linebreak.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.linebreak.setText("")
+        icon11 = QtGui.QIcon()
+        icon11.addPixmap(QtGui.QPixmap(":/bia/resources/br.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.linebreak.setIcon(icon11)
+        self.linebreak.setAutoRaise(False)
+        self.linebreak.setObjectName("linebreak")
+        self.gridLayout.addWidget(self.linebreak, 4, 21, 1, 1)
         self.label_4 = QtGui.QLabel(ArticleDialog)
         self.label_4.setObjectName("label_4")
-        self.gridLayout.addWidget(self.label_4, 5, 0, 1, 1)
+        self.gridLayout.addWidget(self.label_4, 6, 0, 1, 2)
         self.category = QtGui.QComboBox(ArticleDialog)
         self.category.setObjectName("category")
-        self.gridLayout.addWidget(self.category, 5, 1, 1, 2)
+        self.gridLayout.addWidget(self.category, 6, 2, 1, 11)
         self.label_6 = QtGui.QLabel(ArticleDialog)
         self.label_6.setObjectName("label_6")
-        self.gridLayout.addWidget(self.label_6, 5, 3, 1, 1)
+        self.gridLayout.addWidget(self.label_6, 6, 13, 1, 2)
         self.rating = QtGui.QSpinBox(ArticleDialog)
-        self.rating.setMinimum(1)
+        self.rating.setMinimum(-1)
         self.rating.setMaximum(10)
         self.rating.setObjectName("rating")
-        self.gridLayout.addWidget(self.rating, 5, 4, 1, 1)
+        self.gridLayout.addWidget(self.rating, 6, 16, 1, 6)
         self.label_7 = QtGui.QLabel(ArticleDialog)
+        font = QtGui.QFont()
+        font.setWeight(75)
+        font.setBold(True)
+        self.label_7.setFont(font)
         self.label_7.setObjectName("label_7")
-        self.gridLayout.addWidget(self.label_7, 6, 0, 1, 2)
+        self.gridLayout.addWidget(self.label_7, 7, 0, 1, 11)
         self.stub = QtGui.QLineEdit(ArticleDialog)
         self.stub.setObjectName("stub")
-        self.gridLayout.addWidget(self.stub, 6, 2, 1, 3)
+        self.gridLayout.addWidget(self.stub, 7, 12, 1, 10)
         self.buttonBox = QtGui.QDialogButtonBox(ArticleDialog)
         self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
         self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
         self.buttonBox.setObjectName("buttonBox")
-        self.gridLayout.addWidget(self.buttonBox, 7, 0, 1, 5)
+        self.gridLayout.addWidget(self.buttonBox, 8, 0, 1, 22)
+        self.image = QtGui.QToolButton(ArticleDialog)
+        font = QtGui.QFont()
+        font.setUnderline(True)
+        self.image.setFont(font)
+        self.image.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.image.setText("")
+        icon12 = QtGui.QIcon()
+        icon12.addPixmap(QtGui.QPixmap(":/bia/resources/img.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.image.setIcon(icon12)
+        self.image.setAutoRaise(False)
+        self.image.setObjectName("image")
+        self.gridLayout.addWidget(self.image, 4, 3, 1, 1)
+        self.link = QtGui.QToolButton(ArticleDialog)
+        self.link.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.link.setText("")
+        icon13 = QtGui.QIcon()
+        icon13.addPixmap(QtGui.QPixmap(":/bia/resources/link.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.link.setIcon(icon13)
+        self.link.setObjectName("link")
+        self.gridLayout.addWidget(self.link, 4, 4, 1, 1)
+        self.paracenter = QtGui.QToolButton(ArticleDialog)
+        self.paracenter.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.paracenter.setText("")
+        icon14 = QtGui.QIcon()
+        icon14.addPixmap(QtGui.QPixmap(":/bia/resources/center.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.paracenter.setIcon(icon14)
+        self.paracenter.setAutoRaise(False)
+        self.paracenter.setObjectName("paracenter")
+        self.gridLayout.addWidget(self.paracenter, 4, 7, 1, 1)
+        self.paraleft = QtGui.QToolButton(ArticleDialog)
+        self.paraleft.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.paraleft.setText("")
+        icon15 = QtGui.QIcon()
+        icon15.addPixmap(QtGui.QPixmap(":/bia/resources/left.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.paraleft.setIcon(icon15)
+        self.paraleft.setAutoRaise(False)
+        self.paraleft.setObjectName("paraleft")
+        self.gridLayout.addWidget(self.paraleft, 4, 6, 1, 1)
+        self.blockquote = QtGui.QToolButton(ArticleDialog)
+        self.blockquote.setFocusPolicy(QtCore.Qt.NoFocus)
+        self.blockquote.setText("")
+        icon16 = QtGui.QIcon()
+        icon16.addPixmap(QtGui.QPixmap(":/bia/resources/bquote.gif"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.blockquote.setIcon(icon16)
+        self.blockquote.setAutoRaise(False)
+        self.blockquote.setObjectName("blockquote")
+        self.gridLayout.addWidget(self.blockquote, 4, 15, 1, 1)
+        self.content = QtGui.QPlainTextEdit(ArticleDialog)
+        self.content.setMinimumSize(QtCore.QSize(0, 210))
+        font = QtGui.QFont()
+        font.setFamily("Monospace")
+        self.content.setFont(font)
+        self.content.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
+        self.content.setTabChangesFocus(True)
+        self.content.setObjectName("content")
+        self.gridLayout.addWidget(self.content, 5, 0, 1, 22)
 
         self.retranslateUi(ArticleDialog)
         QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), ArticleDialog.accept)
         QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), ArticleDialog.reject)
+        QtCore.QObject.connect(self.bold, QtCore.SIGNAL("clicked()"), ArticleDialog.onBold)
+        QtCore.QObject.connect(self.italic, QtCore.SIGNAL("clicked()"), ArticleDialog.onItalic)
+        QtCore.QObject.connect(self.preformat, QtCore.SIGNAL("clicked()"), ArticleDialog.onPre)
+        QtCore.QObject.connect(self.image, QtCore.SIGNAL("clicked()"), ArticleDialog.onImage)
+        QtCore.QObject.connect(self.link, QtCore.SIGNAL("clicked()"), ArticleDialog.onLink)
+        QtCore.QObject.connect(self.paraleft, QtCore.SIGNAL("clicked()"), ArticleDialog.onLeft)
+        QtCore.QObject.connect(self.paracenter, QtCore.SIGNAL("clicked()"), ArticleDialog.onCenter)
+        QtCore.QObject.connect(self.pararight, QtCore.SIGNAL("clicked()"), ArticleDialog.onRight)
+        QtCore.QObject.connect(self.parajustify, QtCore.SIGNAL("clicked()"), ArticleDialog.onJustify)
+        QtCore.QObject.connect(self.bullets, QtCore.SIGNAL("clicked()"), ArticleDialog.onBullet)
+        QtCore.QObject.connect(self.numbered, QtCore.SIGNAL("clicked()"), ArticleDialog.onNumber)
+        QtCore.QObject.connect(self.blockquote, QtCore.SIGNAL("clicked()"), ArticleDialog.onBQuote)
+        QtCore.QObject.connect(self.codeblock, QtCore.SIGNAL("clicked()"), ArticleDialog.onCode)
+        QtCore.QObject.connect(self.table, QtCore.SIGNAL("clicked()"), ArticleDialog.onTable)
+        QtCore.QObject.connect(self.hrule, QtCore.SIGNAL("clicked()"), ArticleDialog.onHRule)
+        QtCore.QObject.connect(self.paragraph, QtCore.SIGNAL("clicked()"), ArticleDialog.onPara)
+        QtCore.QObject.connect(self.linebreak, QtCore.SIGNAL("clicked()"), ArticleDialog.onBreak)
         QtCore.QMetaObject.connectSlotsByName(ArticleDialog)
+        ArticleDialog.setTabOrder(self.article_title, self.keywords)
+        ArticleDialog.setTabOrder(self.keywords, self.summary)
+        ArticleDialog.setTabOrder(self.summary, self.content)
+        ArticleDialog.setTabOrder(self.content, self.category)
+        ArticleDialog.setTabOrder(self.category, self.rating)
+        ArticleDialog.setTabOrder(self.rating, self.stub)
+        ArticleDialog.setTabOrder(self.stub, self.buttonBox)
 
     def retranslateUi(self, ArticleDialog):
         ArticleDialog.setWindowTitle(QtGui.QApplication.translate("ArticleDialog", "Article", None, QtGui.QApplication.UnicodeUTF8))
@@ -79,7 +293,127 @@ class Ui_ArticleDialog(object):
         self.label_2.setText(QtGui.QApplication.translate("ArticleDialog", "Keywords", None, QtGui.QApplication.UnicodeUTF8))
         self.label_3.setText(QtGui.QApplication.translate("ArticleDialog", "Summary", None, QtGui.QApplication.UnicodeUTF8))
         self.label_5.setText(QtGui.QApplication.translate("ArticleDialog", "Article content", None, QtGui.QApplication.UnicodeUTF8))
+        self.bold.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:600; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Bold</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:400; font-style:italic;\">Shortcut: Ctrl+B</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.bold.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+B", None, QtGui.QApplication.UnicodeUTF8))
+        self.italic.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:italic;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Italic</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Shortcut: Ctrl+I</p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.italic.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+I", None, QtGui.QApplication.UnicodeUTF8))
+        self.preformat.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Preformatted text</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+F</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.preformat.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+F", None, QtGui.QApplication.UnicodeUTF8))
+        self.pararight.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Right align para</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+R</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.pararight.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+R", None, QtGui.QApplication.UnicodeUTF8))
+        self.parajustify.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Justify para</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+J</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.parajustify.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+J", None, QtGui.QApplication.UnicodeUTF8))
+        self.bullets.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Bulleted list</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+. </span>(Ctrl+dot)</p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.bullets.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+.", None, QtGui.QApplication.UnicodeUTF8))
+        self.numbered.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Numbered list</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+1 </span>(Ctrl+One)</p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.numbered.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+1", None, QtGui.QApplication.UnicodeUTF8))
+        self.codeblock.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Code block</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+= </span>(Ctrl+Equals)</p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.codeblock.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+=", None, QtGui.QApplication.UnicodeUTF8))
+        self.table.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Table</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+T</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.table.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+T", None, QtGui.QApplication.UnicodeUTF8))
+        self.hrule.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Horizontal rule</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+H</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.hrule.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+H", None, QtGui.QApplication.UnicodeUTF8))
+        self.paragraph.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Paragraph</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+P</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.paragraph.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+P", None, QtGui.QApplication.UnicodeUTF8))
+        self.linebreak.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Line break</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+Enter</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.linebreak.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+Return", None, QtGui.QApplication.UnicodeUTF8))
         self.label_4.setText(QtGui.QApplication.translate("ArticleDialog", "Category", None, QtGui.QApplication.UnicodeUTF8))
         self.label_6.setText(QtGui.QApplication.translate("ArticleDialog", "Rating", None, QtGui.QApplication.UnicodeUTF8))
         self.label_7.setText(QtGui.QApplication.translate("ArticleDialog", "Stub (file name without HTML extension)", None, QtGui.QApplication.UnicodeUTF8))
+        self.image.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Insert image</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+Shift+I</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.image.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+Shift+I", None, QtGui.QApplication.UnicodeUTF8))
+        self.link.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Insert link</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+Shift+L</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.link.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+Shift+L", None, QtGui.QApplication.UnicodeUTF8))
+        self.paracenter.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Center para</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+O</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.paracenter.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+O", None, QtGui.QApplication.UnicodeUTF8))
+        self.paraleft.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Left align para</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+L</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.paraleft.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+L", None, QtGui.QApplication.UnicodeUTF8))
+        self.blockquote.setToolTip(QtGui.QApplication.translate("ArticleDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+"p, li { white-space: pre-wrap; }\n"
+"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Blockquote</p>\n"
+"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">Shortcut: Ctrl+Q</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
+        self.blockquote.setShortcut(QtGui.QApplication.translate("ArticleDialog", "Ctrl+Q", None, QtGui.QApplication.UnicodeUTF8))
 
+import biaweb_rc_rc