From 9c67a69b65b31ad2b422847196f1e8a1838542d1 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sun, 23 Nov 2008 08:34:57 +0900 Subject: [PATCH] html editor --- ankiqt/ui/facteditor.py | 30 +++++++++++++++++ designer/edithtml.ui | 70 ++++++++++++++++++++++++++++++++++++++++ icons.qrc | 1 + icons/text-xml.png | Bin 0 -> 1553 bytes 4 files changed, 101 insertions(+) create mode 100644 designer/edithtml.ui create mode 100644 icons/text-xml.png 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 0000000000000000000000000000000000000000..2f3bdb731d141f6e2aff5978c458f22d9c6683cc GIT binary patch literal 1553 zcmbu5F<7%D(b+%h!&NpiU*7$&`LQJ6cHtYTouI#T7n1&9gg7;N{v*h zAPRVLXo?6T1h7Voqyz~eAwYoTCgBJ1o|fZ((nDv?*Dn-XLt6)?mK(S-|raO z)Y24!AheIS=NV9KbSKIPq-Q0b3W`yJyAKA1LXAwFngq)=ao)iRV49>m4bs`!bTG6? z^g5RqaP4wp@`ZRTl$@Mwe@7QDtIRO9(Qo@%P1et*oqo`~N>Q8Vw%u zZ-U0c!lI#}fk-6&H=CQAo0^)$V)5eQVr^|*OH0d#)>bl^{Hcx7)<$Uus2x-)wFCI9 z*V)-g)9C`}dfj>q27}%Wg24oOm_2$dRu8L})lOqEm@J^Tx0k7l-aegvfUP$$FhHb$ z7#P$W(t$e|FnbV&;o;%oks){l7#$sjhe3=1)iIQH5(q4(u zYeYG3L}Sw;z5vWb;1#F765nnVS5iPLmPjO7brO7|tI}xIOIodVS-T8?japyT;RyDYUE&$P0LZ}5$as~>YLw|(^aiUf zwma>1?cMKm*xA{|^@k%z|E9t)mn#r1FE1sn_XT^s!pHMR%rC>ZKe|p}uA6r-B{x1G z&NEJ5N2(sSrJ3cvDQPeVP~m`Rd0{&x)}I=bV;x8W14)z2KyG$fk7-C6WK5u;3ak?+*d)k|He`7AlAo=q zxzEN-R;GU*&H-`@2`jT}NwwU3rtAHf@oVP!jG+NL&Pnb1m=H5}7%I$-KfcMv;Lg@& z^CHLN-cUsQTEewb8((w7ul5(jkux$InghdUE**KEMUQ^t(_>|LX>e6RZq8fUf*Y|q zH?M|d+kKvGdzPnWIh0oyT4oM}7sdtLzwT~aO;Z1q1DR~yoAY3p6I&FV!VZqT8g(os7=>~!mvXj@cf8y8GBWRXrY6KS zVx8MO7jrDFen~x)-Or8Mk?=lf!Ua9|E!6+&g!QzQg2H*gy$MAy{i?SAR%~0?xfl~~ zYf$y4M>p9l&iZc3I`XeXOmdJ_jW22SjlD=Mj$jdO9Jl_|rUcxV5{_Av+n4!1O?usq z9SGHm=(xKi`~#YB)7ATA)JWd8Lpi$_TC3C*--iz3zPZ@?(JT0Fbf538BKwnc{%W+# z_4>E5p$p_Sk@&K(tck##kDfhzMk;2;I^DS)*#wcs=axx^sX;Dy(!K|bLX0o~UU1K( z;3i`dj4BqA`Rp>uDFk^K+d C