diff --git a/ankiqt/ui/facteditor.py b/ankiqt/ui/facteditor.py index 84d23846a..8c79570e6 100644 --- a/ankiqt/ui/facteditor.py +++ b/ankiqt/ui/facteditor.py @@ -188,6 +188,17 @@ class FactEditor(object): self.latexMathEnv.setEnabled(False) self.iconsBox.addWidget(self.latexMathEnv) self.latexMathEnv.setStyle(self.plastiqueStyle) + # html + self.htmlEdit = QPushButton(self.widget) + self.htmlEdit.connect(self.htmlEdit, SIGNAL("clicked()"), + self.onHtmlEdit) + self.htmlEdit.setToolTip(_("HTML Editor (F9)")) + self.htmlEdit.setShortcut(_("F9")) + self.htmlEdit.setIcon(QIcon(":/icons/text-xml.png")) + self.htmlEdit.setFocusPolicy(Qt.NoFocus) + self.htmlEdit.setEnabled(False) + self.iconsBox.addWidget(self.htmlEdit) + self.htmlEdit.setStyle(self.plastiqueStyle) self.fieldsFrame = None self.widget.setLayout(self.fieldsBox) @@ -384,6 +395,7 @@ class FactEditor(object): self.latexEqn.setEnabled(val) self.latexMathEnv.setEnabled(val) self.preview.setEnabled(val) + self.htmlEdit.setEnabled(val) def disableButtons(self): self.enableButtons(False) @@ -458,6 +470,24 @@ class FactEditor(object): def onPreview(self): PreviewDialog(self.parent, self.deck, self.fact).exec_() + def onHtmlEdit(self): + def helpRequested(): + QDesktopServices.openUrl(QUrl(ankiqt.appWiki + + "HtmlEditor")) + w = self.focusedEdit() + if w: + self.saveFields() + d = QDialog(self.parent) + form = ankiqt.forms.edithtml.Ui_Dialog() + form.setupUi(d) + d.connect(form.buttonBox, SIGNAL("helpRequested()"), + helpRequested) + form.textEdit.setPlainText(self.widgets[w].value) + form.textEdit.moveCursor(QTextCursor.End) + d.exec_() + self.widgets[w].value = unicode(form.textEdit.toPlainText()) + self.loadFields() + def fieldsAreBlank(self): for (field, widget) in self.fields.values(): value = tidyHTML(unicode(widget.toHtml())) diff --git a/designer/edithtml.ui b/designer/edithtml.ui new file mode 100644 index 000000000..5586ec2f9 --- /dev/null +++ b/designer/edithtml.ui @@ -0,0 +1,70 @@ + + Dialog + + + + 0 + 0 + 400 + 300 + + + + HTML Editor + + + + + + false + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close|QDialogButtonBox::Help + + + + + + + + + buttonBox + accepted() + Dialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + Dialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/icons.qrc b/icons.qrc index 01d6940eb..45add1611 100644 --- a/icons.qrc +++ b/icons.qrc @@ -1,5 +1,6 @@ + icons/text-xml.png icons/document-preview.png icons/media-record.png icons/edit-rename.png diff --git a/icons/text-xml.png b/icons/text-xml.png new file mode 100644 index 000000000..2f3bdb731 Binary files /dev/null and b/icons/text-xml.png differ