def miMessage(text, parent=False): title = "Migaku" if parent is False: parent = aqt.mw.app.activeWindow() or aqt.mw icon = QIcon(join(addon_path, 'icons', 'migaku.png')) mb = QMessageBox(parent) mb.setWindowIcon(icon) mb.setWindowTitle(title) cb = QCheckBox("Don't show me the notice about this video again.") wv = AnkiWebView() wv._page._bridge.onCmd = attemptOpenLink wv.setFixedSize(680, 450) wv.page().setHtml(text) wide = QWidget() wide.setFixedSize(18, 18) mb.layout().addWidget(wv, 0, 1) mb.layout().addWidget(wide, 0, 2) mb.layout().setColumnStretch(0, 3) mb.layout().addWidget(cb, 1, 1) b = mb.addButton(QMessageBox.Ok) b.setFixedSize(100, 30) b.setDefault(True) mb.exec_() wv.deleteLater() if cb.isChecked(): return True else: return False
def setup_preview(self) -> None: pform = self.pform self.preview_web = AnkiWebView(title="card layout") pform.verticalLayout.addWidget(self.preview_web) pform.verticalLayout.setStretch(1, 99) pform.preview_front.isChecked() qconnect(pform.preview_front.clicked, self.on_preview_toggled) qconnect(pform.preview_back.clicked, self.on_preview_toggled) pform.preview_settings.setText( f"{tr.card_templates_preview_settings()} {downArrow()}") qconnect(pform.preview_settings.clicked, self.on_preview_settings) self.preview_web.stdHtml( self.mw.reviewer.revHtml(), css=["css/reviewer.css"], js=[ "js/mathjax.js", "js/vendor/mathjax/tex-chtml.js", "js/reviewer.js", ], context=self, ) self.preview_web.set_bridge_command(self._on_bridge_cmd, self) if self._isCloze(): nums = list(self.note.cloze_numbers_in_fields()) if self.ord + 1 not in nums: # current card is empty nums.append(self.ord + 1) self.cloze_numbers = sorted(nums) self.setup_cloze_number_box() else: self.cloze_numbers = [] self.pform.cloze_number_combo.setHidden(True)
def _create_gui(self): self.setWindowTitle(_("Preview")) qconnect(self.finished, self._on_finished) self.silentlyClose = True self.vbox = QVBoxLayout() self.vbox.setContentsMargins(0, 0, 0, 0) self._web = AnkiWebView(title="previewer") self.vbox.addWidget(self._web) self.bottombar = QHBoxLayout() self.bbox = QDialogButtonBox() self._replay = self.bbox.addButton( _("Replay Audio"), QDialogButtonBox.ActionRole ) self._replay.setAutoDefault(False) self._replay.setShortcut(QKeySequence("R")) self._replay.setToolTip(_("Shortcut key: %s" % "R")) qconnect(self._replay.clicked, self._on_replay_audio) self.both_sides_button = QCheckBox(_("Show Both Sides")) self.both_sides_button.setShortcut(QKeySequence("B")) self.both_sides_button.setToolTip(_("Shortcut key: %s" % "B")) self.bbox.addButton(self.both_sides_button, QDialogButtonBox.ActionRole) self._show_both_sides = self.check_preview_both_config() self.both_sides_button.setChecked(self._show_both_sides) qconnect(self.both_sides_button.toggled, self._on_show_both_sides) self.bottombar.addWidget(self.bbox) self.vbox.addLayout(self.bottombar) self.setLayout(self.vbox) restoreGeom(self, "preview")
def _create_gui(self) -> None: self.setWindowTitle(tr.actions_preview()) self.close_shortcut = QShortcut(QKeySequence("Ctrl+Shift+P"), self) qconnect(self.close_shortcut.activated, self.close) qconnect(self.finished, self._on_finished) self.silentlyClose = True self.vbox = QVBoxLayout() self.vbox.setContentsMargins(0, 0, 0, 0) self._web = AnkiWebView(title="previewer") self.vbox.addWidget(self._web) self.bbox = QDialogButtonBox() self._replay = self.bbox.addButton(tr.actions_replay_audio(), QDialogButtonBox.ActionRole) self._replay.setAutoDefault(False) self._replay.setShortcut(QKeySequence("R")) self._replay.setToolTip(tr.actions_shortcut_key(val="R")) qconnect(self._replay.clicked, self._on_replay_audio) both_sides_button = QCheckBox(tr.qt_misc_back_side_only()) both_sides_button.setShortcut(QKeySequence("B")) both_sides_button.setToolTip(tr.actions_shortcut_key(val="B")) self.bbox.addButton(both_sides_button, QDialogButtonBox.ActionRole) self._show_both_sides = self.mw.col.get_config_bool( Config.Bool.PREVIEW_BOTH_SIDES) both_sides_button.setChecked(self._show_both_sides) qconnect(both_sides_button.toggled, self._on_show_both_sides) self.vbox.addWidget(self.bbox) self.setLayout(self.vbox) restoreGeom(self, "preview")
def _create_gui(self): self.setWindowTitle(tr(TR.ACTIONS_PREVIEW)) qconnect(self.finished, self._on_finished) self.silentlyClose = True self.vbox = QVBoxLayout() self.vbox.setContentsMargins(0, 0, 0, 0) self._web = AnkiWebView(title="previewer") self.vbox.addWidget(self._web) self.bbox = QDialogButtonBox() self._replay = self.bbox.addButton( tr(TR.ACTIONS_REPLAY_AUDIO), QDialogButtonBox.ActionRole ) self._replay.setAutoDefault(False) self._replay.setShortcut(QKeySequence("R")) self._replay.setToolTip(tr(TR.ACTIONS_SHORTCUT_KEY, val="R")) qconnect(self._replay.clicked, self._on_replay_audio) both_sides_button = QCheckBox(tr(TR.QT_MISC_BACK_SIDE_ONLY)) both_sides_button.setShortcut(QKeySequence("B")) both_sides_button.setToolTip(tr(TR.ACTIONS_SHORTCUT_KEY, val="B")) self.bbox.addButton(both_sides_button, QDialogButtonBox.ActionRole) self._show_both_sides = self.mw.col.conf.get("previewBothSides", False) both_sides_button.setChecked(self._show_both_sides) qconnect(both_sides_button.toggled, self._on_show_both_sides) self.vbox.addWidget(self.bbox) self.setLayout(self.vbox) restoreGeom(self, "preview")
def setupUi(self, About): About.setObjectName("About") About.resize(410, 664) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(About.sizePolicy().hasHeightForWidth()) About.setSizePolicy(sizePolicy) self.vboxlayout = QtWidgets.QVBoxLayout(About) self.vboxlayout.setContentsMargins(0, 0, 0, 0) self.vboxlayout.setObjectName("vboxlayout") self.label = AnkiWebView(About) self.label.setProperty("url", QtCore.QUrl("about:blank")) self.label.setObjectName("label") self.vboxlayout.addWidget(self.label) self.buttonBox = QtWidgets.QDialogButtonBox(About) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Ok) self.buttonBox.setObjectName("buttonBox") self.vboxlayout.addWidget(self.buttonBox) self.retranslateUi(About) self.buttonBox.accepted.connect(About.accept) self.buttonBox.rejected.connect(About.reject) QtCore.QMetaObject.connectSlotsByName(About)
def setupWebviews(self): pform = self.pform pform.frontWeb = AnkiWebView() pform.frontPrevBox.addWidget(pform.frontWeb) pform.backWeb = AnkiWebView() pform.backPrevBox.addWidget(pform.backWeb) jsinc = [ "jquery.js", "browsersel.js", "mathjax/conf.js", "mathjax/MathJax.js", "reviewer.js" ] pform.frontWeb.stdHtml(self.mw.reviewer.revHtml(), css=["reviewer.css"], js=jsinc) pform.backWeb.stdHtml(self.mw.reviewer.revHtml(), css=["reviewer.css"], js=jsinc)
def addTab(self, t): w = QWidget() l = QHBoxLayout() l.setContentsMargins(0,0,0,0) l.setSpacing(3) left = QWidget() # template area tform = aqt.forms.template.Ui_Form() tform.setupUi(left) tform.label1.setText(" →") tform.label2.setText(" →") tform.labelc1.setText(" ↗") tform.labelc2.setText(" ↘") if self.style().objectName() == "gtk+": # gtk+ requires margins in inner layout tform.tlayout1.setContentsMargins(0, 11, 0, 0) tform.tlayout2.setContentsMargins(0, 11, 0, 0) tform.tlayout3.setContentsMargins(0, 11, 0, 0) if len(self.cards) > 1: tform.groupBox_3.setTitle(_( "Styling (shared between cards)")) tform.front.textChanged.connect(self.saveCard) tform.css.textChanged.connect(self.saveCard) tform.back.textChanged.connect(self.saveCard) l.addWidget(left, 5) # preview area right = QWidget() pform = aqt.forms.preview.Ui_Form() pform.setupUi(right) if self.style().objectName() == "gtk+": # gtk+ requires margins in inner layout pform.frontPrevBox.setContentsMargins(0, 11, 0, 0) pform.backPrevBox.setContentsMargins(0, 11, 0, 0) # for cloze notes, show that it's one of n cards if self.model['type'] == MODEL_CLOZE: cnt = len(self.mm.availOrds( self.model, joinFields(self.note.fields))) for g in pform.groupBox, pform.groupBox_2: g.setTitle(g.title() + _(" (1 of %d)") % max(cnt, 1)) pform.frontWeb = AnkiWebView() pform.frontPrevBox.addWidget(pform.frontWeb) pform.backWeb = AnkiWebView() pform.backPrevBox.addWidget(pform.backWeb) l.addWidget(right, 5) w.setLayout(l) self.forms.append({'tform': tform, 'pform': pform}) self.tabs.addTab(w, t['name'])
def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(607, 556) self.verticalLayout = QtWidgets.QVBoxLayout(Dialog) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setSpacing(0) self.verticalLayout.setObjectName("verticalLayout") self.web = AnkiWebView(Dialog) self.web.setProperty("url", QtCore.QUrl("about:blank")) self.web.setObjectName("web") self.verticalLayout.addWidget(self.web) self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setContentsMargins(6, 6, 6, 6) self.horizontalLayout_3.setSpacing(8) self.horizontalLayout_3.setObjectName("horizontalLayout_3") spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem) self.groupBox_2 = QtWidgets.QGroupBox(Dialog) self.groupBox_2.setTitle("") self.groupBox_2.setObjectName("groupBox_2") self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_2) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.groups = QtWidgets.QRadioButton(self.groupBox_2) self.groups.setChecked(True) self.groups.setObjectName("groups") self.horizontalLayout_2.addWidget(self.groups) self.all = QtWidgets.QRadioButton(self.groupBox_2) self.all.setObjectName("all") self.horizontalLayout_2.addWidget(self.all) self.horizontalLayout_3.addWidget(self.groupBox_2) self.groupBox = QtWidgets.QGroupBox(Dialog) self.groupBox.setTitle("") self.groupBox.setObjectName("groupBox") self.horizontalLayout = QtWidgets.QHBoxLayout(self.groupBox) self.horizontalLayout.setObjectName("horizontalLayout") self.month = QtWidgets.QRadioButton(self.groupBox) self.month.setChecked(True) self.month.setObjectName("month") self.horizontalLayout.addWidget(self.month) self.year = QtWidgets.QRadioButton(self.groupBox) self.year.setObjectName("year") self.horizontalLayout.addWidget(self.year) self.life = QtWidgets.QRadioButton(self.groupBox) self.life.setObjectName("life") self.horizontalLayout.addWidget(self.life) self.horizontalLayout_3.addWidget(self.groupBox) self.buttonBox = QtWidgets.QDialogButtonBox(Dialog) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Close) self.buttonBox.setObjectName("buttonBox") self.horizontalLayout_3.addWidget(self.buttonBox) self.verticalLayout.addLayout(self.horizontalLayout_3) self.retranslateUi(Dialog) self.buttonBox.accepted.connect(Dialog.accept) self.buttonBox.rejected.connect(Dialog.reject) QtCore.QMetaObject.connectSlotsByName(Dialog)
def show(self): if not self.shown: self.web = AnkiWebView(self.mw) self.web.setMaximumWidth(400) self.shown = self.mw.addDockable(_("Card Info"), self.web) self.shown.connect(self.shown, SIGNAL("visibilityChanged(bool)"), self._visChange) self._update()
def getUserGuideTab(self): guide = AnkiWebView() guide._page.profile().setHttpUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36') guide._page._bridge.onCmd = attemptOpenLink html, url = self.getHTML() guide._page.setHtml(html, url) guide.setObjectName("tab_4") return guide
def ui(self): self.web = AnkiWebView() layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.web) layout.addLayout(self.ui_buttons()) return layout
def startReport(self): self.report = QDialog(mw) self.report.setWindowTitle('List of Words - Report') self.report.layout = QVBoxLayout(self.report) self.webView = AnkiWebView() self.report.layout.addWidget(self.webView) self.printButton = self.saveButton = QPushButton("Save List") self.printButton.pressed.connect(self.printWordList)
def showCards(self): global chapters for chap in chapters: self.cards[chap] = AnkiWebView() self.cards[chap].setLinkHandler(self.linkHandler) base = getBase(mw.col) self.cards[chap].stdHtml(self._cardHTML % chap, head=base) self.nextTodo(chap) self.ui.form.chapters.addItem(self.cards[chap], chap) self.cards[chap].show()
def setupWebviews(self): pform = self.pform pform.frontWeb = AnkiWebView(title="card layout front") pform.frontPrevBox.addWidget(pform.frontWeb) pform.backWeb = AnkiWebView(title="card layout back") pform.backPrevBox.addWidget(pform.backWeb) jsinc = [ "jquery.js", "browsersel.js", "mathjax/conf.js", "mathjax/MathJax.js", "reviewer.js", ] pform.frontWeb.stdHtml( self.mw.reviewer.revHtml(), css=["reviewer.css"], js=jsinc, context=self, ) pform.backWeb.stdHtml( self.mw.reviewer.revHtml(), css=["reviewer.css"], js=jsinc, context=self, ) pform.frontWeb.set_bridge_command(self._on_bridge_cmd, self) pform.backWeb.set_bridge_command(self._on_bridge_cmd, self)
def displaygrid(self, units, timeNow): autoModTime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") currentTimeTemp = autoModTime.replace(":", "") currentTime = currentTimeTemp.replace(" ", "-") self.generate(units, timeNow, autoModTime) self.win = QDialog(mw) self.wv = AnkiWebView() self.wv.setHtml(self.html) self.wv.show() #self.savepng(currentTime) return 0
def setupWebviews(self): pform = self.pform pform.frontWeb = AnkiWebView() pform.frontPrevBox.addWidget(pform.frontWeb) pform.backWeb = AnkiWebView() pform.backPrevBox.addWidget(pform.backWeb) jsinc = [ "jquery.js", "browsersel.js", "mathjax/conf.js", "mathjax/MathJax.js", "reviewer.js", ] pform.frontWeb.stdHtml( self.mw.reviewer.revHtml(), css=["reviewer.css"], js=jsinc ) pform.backWeb.stdHtml( self.mw.reviewer.revHtml(), css=["reviewer.css"], js=jsinc ) # specify a context for add-ons pform.frontWeb.set_bridge_command(lambda msg: None, "card_layout") pform.backWeb.set_bridge_command(lambda msg: None, "card_layout")
def setupUi(self, NewAbout): NewAbout.setObjectName("Dialog") NewAbout.resize(609, 490) self.pushButton = QtWidgets.QPushButton(NewAbout) self.pushButton.setGeometry(QtCore.QRect(530, 460, 75, 23)) self.pushButton.setObjectName("pushButton") # self.label = QtWidgets.QLabel(Dialog) # self.label.setGeometry(QtCore.QRect(20, 20, 54, 12)) self.label = AnkiWebView(NewAbout) self.label.setProperty("url", QtCore.QUrl("about:blank")) self.label.setObjectName("label") self.retranslateUi(NewAbout) self.pushButton.clicked.connect(NewAbout.accept) QtCore.QMetaObject.connectSlotsByName(NewAbout)
def onhanziStats(): mw.progress.start(immediate=True) rep = genhanziStats() d = QDialog(mw) l = QVBoxLayout() w = AnkiWebView() l.addWidget(w) css = "font{word-wrap:break-word;} div{display:none;}" w.stdHtml(rep, css) d.setLayout(l) d.resize(500, 400) restoreGeom(d, "hanzistats") mw.progress.finish() d.exec_() saveGeom(d, "hanzistats")
def __init__(self): self.mw = mw self.models = self.mw.col.models.all() self.window = QDialog(mw) self.window.setWindowTitle('List of Words - Choose') self.window.layout = QVBoxLayout(self.window) self.webView = AnkiWebView() self.window.layout.addWidget(self.webView) report = self.getHeisingStats() self.webView.stdHtml(report) self.window.show() self.window.exec_()
def onRevlog(self): data = self._revlogData() d = QDialog(self) l = QVBoxLayout() l.setMargin(0) w = AnkiWebView() l.addWidget(w) w.stdHtml(data) bb = QDialogButtonBox(QDialogButtonBox.Close) l.addWidget(bb) bb.connect(bb, SIGNAL("rejected()"), d, SLOT("reject()")) d.setLayout(l) d.setWindowModality(Qt.WindowModal) d.resize(500, 400) restoreGeom(d, "revlog") d.exec_() saveGeom(d, "revlog")
def onKanjiStats(): mw.progress.start(immediate=True) rep = genKanjiStats() d = QDialog(mw) l = QVBoxLayout() l.setContentsMargins(0,0,0,0) w = AnkiWebView() l.addWidget(w) w.stdHtml(rep) bb = QDialogButtonBox(QDialogButtonBox.Close) l.addWidget(bb) bb.rejected.connect(d.reject) d.setLayout(l) d.resize(500, 400) restoreGeom(d, "kanjistats") mw.progress.finish() d.show() saveGeom(d, "kanjistats")
def onKanjiStats(): mw.progress.start(immediate=True) rep = genKanjiStats() d = QDialog(mw) l = QVBoxLayout() l.setMargin(0) w = AnkiWebView() l.addWidget(w) w.stdHtml(rep) bb = QDialogButtonBox(QDialogButtonBox.Close) l.addWidget(bb) bb.connect(bb, SIGNAL("rejected()"), d, SLOT("reject()")) d.setLayout(l) d.resize(500, 400) restoreGeom(d, "kanjistats") mw.progress.finish() d.exec_() saveGeom(d, "kanjistats")
def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(531, 345) self.verticalLayout_2 = QtWidgets.QVBoxLayout(Dialog) self.verticalLayout_2.setObjectName("verticalLayout_2") self.gridLayout = QtWidgets.QGridLayout() self.gridLayout.setObjectName("gridLayout") self.fields = QtWidgets.QComboBox(Dialog) self.fields.setObjectName("fields") self.gridLayout.addWidget(self.fields, 1, 2, 1, 2) self.label_2 = QtWidgets.QLabel(Dialog) self.label_2.setObjectName("label_2") self.gridLayout.addWidget(self.label_2, 2, 1, 1, 1) self.label = QtWidgets.QLabel(Dialog) self.label.setObjectName("label") self.gridLayout.addWidget(self.label, 1, 1, 1, 1) self.search = QtWidgets.QLineEdit(Dialog) self.search.setObjectName("search") self.gridLayout.addWidget(self.search, 2, 2, 1, 2) self.verticalLayout_2.addLayout(self.gridLayout) self.frame = QtWidgets.QFrame(Dialog) self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) self.frame.setFrameShadow(QtWidgets.QFrame.Raised) self.frame.setObjectName("frame") self.verticalLayout = QtWidgets.QVBoxLayout(self.frame) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.webView = AnkiWebView(self.frame) self.webView.setProperty("url", QtCore.QUrl("about:blank")) self.webView.setObjectName("webView") self.verticalLayout.addWidget(self.webView) self.verticalLayout_2.addWidget(self.frame) self.buttonBox = QtWidgets.QDialogButtonBox(Dialog) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Close) self.buttonBox.setObjectName("buttonBox") self.verticalLayout_2.addWidget(self.buttonBox) self.retranslateUi(Dialog) self.buttonBox.accepted.connect(Dialog.accept) self.buttonBox.rejected.connect(Dialog.reject) QtCore.QMetaObject.connectSlotsByName(Dialog) Dialog.setTabOrder(self.fields, self.webView) Dialog.setTabOrder(self.webView, self.buttonBox)
def setupUI(self): mainLayout = QVBoxLayout() self.setLayout(mainLayout) self.web = AnkiWebView(parent=self, title="Annotate Image") url = QUrl.fromLocalFile(method_draw_path) self.web._page = myPage(self.web._onBridgeCmd) self.web.setPage(self.web._page) self.web.setUrl(url) self.web.set_bridge_command(self.on_bridge_cmd, self) mainLayout.addWidget(self.web, stretch=1) btnLayout = QHBoxLayout() btnLayout.addStretch(1) replaceAll = QCheckBox("Replace All") self.replaceAll = replaceAll ch = get_config("replace_all", hidden=True, notexist=False) replaceAll.setCheckState(checked(ch)) replaceAll.stateChanged.connect(self.check_changed) btnLayout.addWidget(replaceAll) okButton = QPushButton("Save") okButton.clicked.connect(self.save) btnLayout.addWidget(okButton) cancelButton = QPushButton("Discard") cancelButton.clicked.connect(self.discard) btnLayout.addWidget(cancelButton) resetButton = QPushButton("Reset") resetButton.clicked.connect(self.reset) btnLayout.addWidget(resetButton) mainLayout.addLayout(btnLayout) self.setWindowTitle("Annotate Image") self.setMinimumWidth(100) self.setMinimumHeight(100) self.setGeometry(0, 0, 640, 640) geom = load_geom("anno_dial") if geom: self.restoreGeometry(geom) if not self.close_queued: # When image isn't selected js side self.show()
def deckStatsInit20(self, mw): """Custom stats window that uses AnkiWebView instead of QWebView""" # self is aqt.stats.DeckWindow import aqt from aqt.webview import AnkiWebView from aqt.utils import restoreGeom, maybeHideClose, addCloseShortcut ######################################################### QDialog.__init__(self, mw, Qt.Window) self.mw = mw self.name = "deckStats" self.period = 0 self.form = aqt.forms.stats.Ui_Dialog() self.oldPos = None self.wholeCollection = False self.setMinimumWidth(700) f = self.form f.setupUi(self) ######################################################### # remove old webview created in form: # (TODO: find a less hacky solution) f.verticalLayout.removeWidget(f.web) f.web.deleteLater() f.web = AnkiWebView() # need to use AnkiWebView for linkhandler to work f.web.setLinkHandler(self._linkHandler) self.form.verticalLayout.insertWidget(0, f.web) addHook('reset', self.refresh) ######################################################### restoreGeom(self, self.name) b = f.buttonBox.addButton(_("Save Image"), QDialogButtonBox.ActionRole) b.clicked.connect(self.browser) b.setAutoDefault(False) c = self.connect s = SIGNAL("clicked()") c(f.groups, s, lambda: self.changeScope("deck")) f.groups.setShortcut("g") c(f.all, s, lambda: self.changeScope("collection")) c(f.month, s, lambda: self.changePeriod(0)) c(f.year, s, lambda: self.changePeriod(1)) c(f.life, s, lambda: self.changePeriod(2)) c(f.web, SIGNAL("loadFinished(bool)"), self.loadFin) maybeHideClose(self.form.buttonBox) addCloseShortcut(self) self.refresh() self.show() # show instead of exec in order for browser to open properly
def __init__(self, parent: QWidget, mw: aqt.AnkiQt, card: Card) -> None: super().__init__(parent) disable_help_button(self) cs = CardStats(mw.col, card) info = cs.report(include_revlog=True) l = QVBoxLayout() l.setContentsMargins(0, 0, 0, 0) w = AnkiWebView(title="browser card info") l.addWidget(w) w.stdHtml(info + "<p>", context=self) bb = QDialogButtonBox(QDialogButtonBox.Close) l.addWidget(bb) qconnect(bb.rejected, self.reject) self.setLayout(l) self.setWindowModality(Qt.WindowModal) self.resize(500, 400) restoreGeom(self, "revlog") self.show()
def _setup_ui(self, card_id: CardId | None) -> None: self.mw.garbage_collect_on_dialog_finish(self) disable_help_button(self) restoreGeom(self, self.GEOMETRY_KEY) addCloseShortcut(self) setWindowIcon(self) self.web = AnkiWebView(title=self.TITLE) self.web.setVisible(False) self.web.load_ts_page("card-info") layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.web) buttons = QDialogButtonBox(QDialogButtonBox.StandardButton.Close) buttons.setContentsMargins(10, 0, 10, 10) layout.addWidget(buttons) qconnect(buttons.rejected, self.reject) self.setLayout(layout) self.update_card(card_id)
def onhanziStats(): mw.progress.start(immediate=True) rep = genhanziStats() d = QDialog(mw) l = QVBoxLayout() l.setMargin(0) w = AnkiWebView() l.addWidget(w) css = "font{word-wrap:break-word;} div{display:none;}" w.stdHtml(rep, css) bb = QDialogButtonBox(QDialogButtonBox.Close) l.addWidget(bb) bb.connect(bb, SIGNAL("rejected()"), d, SLOT("reject()")) d.setLayout(l) d.resize(500, 400) restoreGeom(d, "hanzistats") mw.progress.finish() d.exec_() saveGeom(d, "hanzistats")
def _setup_ui(self, notetype_id: NotetypeId) -> None: self.setWindowModality(Qt.WindowModality.ApplicationModal) self.mw.garbage_collect_on_dialog_finish(self) self.setMinimumSize(400, 300) disable_help_button(self) restoreGeom(self, self.TITLE) addCloseShortcut(self) self.web = AnkiWebView(title=self.TITLE) self.web.setVisible(False) self.web.load_ts_page("change-notetype") layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.web) self.setLayout(layout) self.web.eval(f"""anki.changeNotetypePage( document.getElementById('main'), {notetype_id}, {notetype_id});""") self.setWindowTitle(tr.browsing_change_notetype())