コード例 #1
0
ファイル: dyndeckconf.py プロジェクト: intact/anki
 def __init__(self, mw, first=False, search="", deck=None):
     QDialog.__init__(self, mw)
     self.mw = mw
     self.deck = deck or self.mw.col.decks.current()
     self.search = search
     self.form = aqt.forms.dyndconf.Ui_Dialog()
     self.form.setupUi(self)
     if first:
         label = _("Build")
     else:
         label = _("Rebuild")
     self.ok = self.form.buttonBox.addButton(
         label, QDialogButtonBox.AcceptRole)
     self.mw.checkpoint(_("Options"))
     self.setWindowModality(Qt.WindowModal)
     self.form.buttonBox.helpRequested.connect(lambda: openHelp("filtered"))
     self.setWindowTitle(_("Options for %s") % self.deck['name'])
     restoreGeom(self, "dyndeckconf")
     self.setupOrder()
     self.loadConf()
     if search:
         self.form.search.setText(search)
     self.form.search.selectAll()
     self.show()
     self.exec_()
     saveGeom(self, "dyndeckconf")
コード例 #2
0
ファイル: clayout.py プロジェクト: ChYi/ankiqt
    def reject(self):
        self.model.flush()
        saveGeom(self, "CardLayout")
        saveSplitter(self.form.splitter, "clayout")
        self.mw.reset()
        return QDialog.reject(self)

        self.fact.model.setModified()

        modified = False
        self.mw.startProgress()
        self.deck.updateProgress(_("Applying changes..."))
        reset=True
        if len(self.fieldOrdinalUpdatedIds) > 0:
            self.deck.rebuildFieldOrdinals(self.model.id, self.fieldOrdinalUpdatedIds)
            modified = True
        if self.needFieldRebuild:
            modified = True
        if modified:
            self.fact.model.setModified()
            self.deck.flushMod()
            if self.factedit and self.factedit.onChange:
                self.factedit.onChange("all")
                reset=False
        if reset:
            self.mw.reset()
        self.deck.finishProgress()
        QDialog.reject(self)
コード例 #3
0
ファイル: sound.py プロジェクト: ChYi/ankiqt
def getAudio(parent, string="", encode=True):
    "Record and return filename"
    # record first
    r = Recorder()
    mb = QMessageBox(parent)
    restoreGeom(mb, "audioRecorder")
    mb.setWindowTitle("Anki")
    mb.setIconPixmap(QPixmap(":/icons/media-record.png"))
    but = QPushButton(_("  Stop"))
    but.setIcon(QIcon(":/icons/media-playback-stop.png"))
    #but.setIconSize(QSize(32, 32))
    mb.addButton(but, QMessageBox.RejectRole)
    t = time.time()
    r.start()
    QApplication.instance().processEvents()
    while not mb.clickedButton():
        txt =_("Recording...<br>Time: %0.1f")
        mb.setText(txt % (time.time() - t))
        mb.show()
        QApplication.instance().processEvents()
    # ensure at least a second captured
    saveGeom(mb, "audioRecorder")
    while time.time() - t < 1:
        time.sleep(0.1)
    r.stop()
    # process
    r.postprocess(encode)
    return r.file()
コード例 #4
0
def getField(browser, fields):
    """Invoke field selection dialog and return field"""
    d = QDialog(browser)
    l = QVBoxLayout(d)
    d.label = QLabel(
        "Please select the field you would like to convert to tags", d)
    d.fieldSel = QComboBox(d)
    d.fieldSel.addItems(fields)
    d.buttonBox = QDialogButtonBox(d)
    d.buttonBox.setOrientation(Qt.Horizontal)
    d.buttonBox.setStandardButtons(
        QDialogButtonBox.Cancel|QDialogButtonBox.Ok)
    d.buttonBox.accepted.connect(d.accept)
    d.buttonBox.rejected.connect(d.reject)
    l.addWidget(d.label)
    l.addWidget(d.fieldSel)
    l.addWidget(d.buttonBox)
    d.setWindowModality(Qt.WindowModal)
    d.setWindowTitle("Field to Tags")
    restoreGeom(d, "fieldtotags")
    r = d.exec_()
    saveGeom(d, "fieldtotags")
    if not r:
        return None

    idx = d.fieldSel.currentIndex()
    field = fields[idx]

    return field
コード例 #5
0
ファイル: main.py プロジェクト: terrisage/Anki
 def onDelete():
     saveGeom(diag, "emptyCards")
     QDialog.accept(diag)
     self.checkpoint(_("Delete Empty"))
     self.col.remCards(cids)
     tooltip(ngettext("%d card deleted.", "%d cards deleted.", len(cids)) % len(cids))
     self.reset()
コード例 #6
0
ファイル: deckconf.py プロジェクト: AgarwalPragy/anki
 def __init__(self, mw, deck):
     QDialog.__init__(self, mw)
     self.mw = mw
     self.deck = deck
     self.childDids = [
         d[1] for d in self.mw.col.decks.children(self.deck['id'])]
     self._origNewOrder = None
     self.form = aqt.forms.dconf.Ui_Dialog()
     self.form.setupUi(self)
     self.mw.checkpoint(_("Options"))
     self.setupCombos()
     self.setupConfs()
     self.setWindowModality(Qt.WindowModal)
     self.connect(self.form.buttonBox,
                  SIGNAL("helpRequested()"),
                  lambda: openHelp("deckoptions"))
     self.connect(self.form.confOpts, SIGNAL("clicked()"), self.confOpts)
     self.form.confOpts.setText(downArrow())
     self.connect(self.form.buttonBox.button(QDialogButtonBox.RestoreDefaults),
                  SIGNAL("clicked()"),
                  self.onRestore)
     self.setWindowTitle(_("Options for %s") % self.deck['name'])
     # qt doesn't size properly with altered fonts otherwise
     restoreGeom(self, "deckconf", adjustSize=True)
     self.show()
     self.exec_()
     saveGeom(self, "deckconf")
コード例 #7
0
ファイル: Colorful toolbar.py プロジェクト: albertly/TTS
def showLastSentence(html):
	m = QMainWindow(mw)
	d = QDialog(m)
	m = QHBoxLayout()
	l = QVBoxLayout()
	r = QVBoxLayout()
	w = QLabel()
	w.setTextInteractionFlags(Qt.TextSelectableByMouse | Qt.TextSelectableByKeyboard)
	l.addWidget(w)
	ss = QPushButton(u'Say')
	bb = QDialogButtonBox(QDialogButtonBox.Close)
	bb.addButton(ss, QDialogButtonBox.ActionRole)
	bb.setOrientation(Qt.Vertical)
#	r.addWidget(ss)
	r.addWidget(bb)
	
	ss.connect(ss, SIGNAL("clicked()"), actionReadSentence)
	
	bb.connect(bb, SIGNAL("rejected()"), d, SLOT("reject()"))
	m.addLayout(l)
	m.addLayout(r)
	d.setLayout(m)
	d.setWindowModality(Qt.WindowModal)
	d.resize(649, 145) 
	restoreGeom(d, "LastSentence")
	html = "<html><body><h3>" + html + "</h3></body></html>"
	w.setText(html)
	d.exec_()
	saveGeom(d, "LastSentence")
コード例 #8
0
ファイル: clayout.py プロジェクト: kieranclancy/ankiqt
 def reject(self):
     if self.addMode:
         self.mw.col.db.execute("delete from notes where id = ?", self.note.id)
     self.mm.save(self.model, templates=True)
     self.mw.reset()
     saveGeom(self, "CardLayout")
     return QDialog.reject(self)
コード例 #9
0
ファイル: sound.py プロジェクト: bbugyi200/anki
def getAudio(parent, encode=True):
    "Record and return filename"
    # record first
    r = Recorder()
    mb = QMessageBox(parent)
    restoreGeom(mb, "audioRecorder")
    mb.setWindowTitle("Anki")
    mb.setIconPixmap(QPixmap(":/icons/media-record.png"))
    but = QPushButton(_("Save"))
    mb.addButton(but, QMessageBox.AcceptRole)
    but = QPushButton(_("Cancel"))
    mb.addButton(but, QMessageBox.RejectRole)
    mb.setEscapeButton(but)
    t = time.time()
    r.start()
    time.sleep(r.startupDelay)
    QApplication.instance().processEvents()
    while not mb.clickedButton():
        txt =_("Recording...<br>Time: %0.1f")
        mb.setText(txt % (time.time() - t))
        mb.show()
        QApplication.instance().processEvents()
    if mb.clickedButton() == mb.escapeButton():
        r.stop()
        return
    saveGeom(mb, "audioRecorder")
    # ensure at least a second captured
    while time.time() - t < 1:
        time.sleep(0.1)
    r.stop()
    # process
    r.postprocess(encode)
    return r.file()
コード例 #10
0
 def onSave(self):
     remHook("reset", self.onReset)
     self.editor.saveNow()
     self.browser.externalNid = None
     self.browser.form.splitter.widget(1).setVisible(True)
     self.browser.editor.setNote(self.browser.card.note(reload=True))
     saveGeom(self, "browsereditcurrent")
     aqt.dialogs.close("BrowserEditCurrent")
コード例 #11
0
ファイル: editcurrent.py プロジェクト: kchien/ankiqt
 def onSave(self):
     remHook("reset", self.onReset)
     self.editor.saveNow()
     self.editor.setNote(None)
     r = self.mw.reviewer
     r.card.load()
     self.mw.moveToState("review")
     saveGeom(self, "editcurrent")
     self.close()
コード例 #12
0
ファイル: studydeck.py プロジェクト: BigDataNerd/anki
 def accept(self):
     saveGeom(self, self.geomKey)
     remHook('reset', self.onReset)
     row = self.form.list.currentRow()
     if row < 0:
         showInfo(_("Please select something."))
         return
     self.name = self.names[self.form.list.currentRow()]
     QDialog.accept(self)
コード例 #13
0
ファイル: clayout.py プロジェクト: nichtleiter/ankiqt
 def reject(self):
     clearAudioQueue()
     if self.addMode:
         # remove the filler fields we added
         for name in self.emptyFields:
             self.note[name] = ""
         self.mw.col.db.execute("delete from notes where id = ?", self.note.id)
     self.mm.save(self.model, templates=True)
     self.mw.reset()
     saveGeom(self, "CardLayout")
     return QDialog.reject(self)
コード例 #14
0
ファイル: addons.py プロジェクト: subfusc/anki
 def __init__(self, mw):
     QDialog.__init__(self, mw)
     self.mw = mw
     self.form = aqt.forms.getaddons.Ui_Dialog()
     self.form.setupUi(self)
     b = self.form.buttonBox.addButton(
         _("Browse"), QDialogButtonBox.ActionRole)
     self.connect(b, SIGNAL("clicked()"), self.onBrowse)
     restoreGeom(self, "getaddons", adjustSize=True)
     self.exec_()
     saveGeom(self, "getaddons")
コード例 #15
0
ファイル: addcards.py プロジェクト: bbugyi200/anki
 def _reject(self):
     remHook('reset', self.onReset)
     remHook('currentModelChanged', self.onModelChange)
     clearAudioQueue()
     self.removeTempNote(self.editor.note)
     self.editor.cleanup()
     self.modelChooser.cleanup()
     self.deckChooser.cleanup()
     self.mw.maybeReset()
     saveGeom(self, "add")
     aqt.dialogs.markClosed("AddCards")
     QDialog.reject(self)
コード例 #16
0
ファイル: editcurrent.py プロジェクト: ChYi/ankiqt
 def onSave(self):
     removeHook("closeEditCurrent", self.onSave)
     self.editor.saveNow()
     self.editor.setFact(None)
     r = self.mw.reviewer
     r.card.load()
     r.keep = True
     # we don't need to reset the deck, but there may be new groups
     self.mw.deck.sched._resetConf()
     self.mw.moveToState("review")
     saveGeom(self, "editcurrent")
     self.close()
コード例 #17
0
ファイル: models.py プロジェクト: intact/anki
 def onAdvanced(self):
     d = QDialog(self)
     frm = aqt.forms.modelopts.Ui_Dialog()
     frm.setupUi(d)
     frm.latexHeader.setText(self.model['latexPre'])
     frm.latexFooter.setText(self.model['latexPost'])
     d.setWindowTitle(_("Options for %s") % self.model['name'])
     frm.buttonBox.helpRequested.connect(lambda: openHelp("latex"))
     restoreGeom(d, "modelopts")
     d.exec_()
     saveGeom(d, "modelopts")
     self.model['latexPre'] = unicode(frm.latexHeader.toPlainText())
     self.model['latexPost'] = unicode(frm.latexFooter.toPlainText())
コード例 #18
0
ファイル: editcurrent.py プロジェクト: Stvad/anki
 def _onSave(self):
     remHook("reset", self.onReset)
     r = self.mw.reviewer
     try:
         r.card.load()
     except:
         # card was removed by clayout
         pass
     else:
         self.mw.reviewer.cardQueue.append(self.mw.reviewer.card)
     self.mw.moveToState("review")
     saveGeom(self, "editcurrent")
     aqt.dialogs.close("EditCurrent")
コード例 #19
0
ファイル: addcards.py プロジェクト: kchien/ankiqt
 def reject(self):
     if not self.canClose():
         return
     remHook('reset', self.onReset)
     remHook('currentModelChanged', self.onReset)
     clearAudioQueue()
     self.removeTempNote(self.editor.note)
     self.editor.setNote(None)
     self.modelChooser.cleanup()
     self.mw.maybeReset()
     saveGeom(self, "add")
     aqt.dialogs.close("AddCards")
     QDialog.reject(self)
コード例 #20
0
ファイル: addons.py プロジェクト: Glutanimate/anki
 def __init__(self, dlg):
     QDialog.__init__(self, dlg)
     self.addonsDlg = dlg
     self.mgr = dlg.mgr
     self.mw = self.mgr.mw
     self.form = aqt.forms.getaddons.Ui_Dialog()
     self.form.setupUi(self)
     b = self.form.buttonBox.addButton(
         _("Browse Add-ons"), QDialogButtonBox.ActionRole)
     b.clicked.connect(self.onBrowse)
     restoreGeom(self, "getaddons", adjustSize=True)
     self.exec_()
     saveGeom(self, "getaddons")
コード例 #21
0
ファイル: editcurrent.py プロジェクト: ospalh/ankiqt
 def onSave(self):
     remHook("reset", self.onReset)
     self.editor.saveNow()
     self.editor.setNote(None)
     r = self.mw.reviewer
     try:
         r.card.load()
     except TypeError:
         # card was removed by clayout
         pass
     else:
         self.mw.reviewer.cardQueue.append(self.mw.reviewer.card)
     self.mw.moveToState("review")
     saveGeom(self, "editcurrent")
コード例 #22
0
ファイル: browser.py プロジェクト: lahorichargha/ankiqt
 def closeEvent(self, evt):
     saveSplitter(self.form.splitter_2, "editor2")
     saveSplitter(self.form.splitter, "editor3")
     self.editor.saveNow()
     self.editor.setNote(None)
     saveGeom(self, "editor")
     saveState(self, "editor")
     saveHeader(self.form.tableView.horizontalHeader(), "editor")
     self.col.conf['activeCols'] = self.model.activeCols
     self.hide()
     aqt.dialogs.close("Browser")
     self.teardownHooks()
     self.mw.maybeReset()
     evt.accept()
コード例 #23
0
ファイル: __init__.py プロジェクト: trevorld/Hanzi_Stats
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")
コード例 #24
0
ファイル: editcurrent.py プロジェクト: Glutanimate/anki
 def _saveAndClose(self):
     remHook("reset", self.onReset)
     r = self.mw.reviewer
     try:
         r.card.load()
     except:
         # card was removed by clayout
         pass
     else:
         self.mw.reviewer.cardQueue.append(self.mw.reviewer.card)
     self.editor.cleanup()
     self.mw.moveToState("review")
     saveGeom(self, "editcurrent")
     aqt.dialogs.markClosed("EditCurrent")
     QDialog.reject(self)
コード例 #25
0
ファイル: main.py プロジェクト: Glutanimate/anki
    def onCheckMediaDB(self):
        self.progress.start(immediate=True)
        (nohave, unused, warnings) = self.col.media.check()
        self.progress.finish()
        # generate report
        report = ""
        if warnings:
            report += "\n".join(warnings) + "\n"
        if unused:
            if report:
                report += "\n\n\n"
            report += _(
                "In media folder but not used by any cards:")
            report += "\n" + "\n".join(unused)
        if nohave:
            if report:
                report += "\n\n\n"
            report += _(
                "Used on cards but missing from media folder:")
            report += "\n" + "\n".join(nohave)
        if not report:
            tooltip(_("No unused or missing files found."))
            return
        # show report and offer to delete
        diag = QDialog(self)
        diag.setWindowTitle("Anki")
        layout = QVBoxLayout(diag)
        diag.setLayout(layout)
        text = QTextEdit()
        text.setReadOnly(True)
        text.setPlainText(report)
        layout.addWidget(text)
        box = QDialogButtonBox(QDialogButtonBox.Close)
        layout.addWidget(box)
        if unused:
            b = QPushButton(_("Delete Unused Files"))
            b.setAutoDefault(False)
            box.addButton(b, QDialogButtonBox.ActionRole)
            b.clicked.connect(
                lambda c, u=unused, d=diag: self.deleteUnused(u, d))

        box.rejected.connect(diag.reject)
        diag.setMinimumHeight(400)
        diag.setMinimumWidth(500)
        restoreGeom(diag, "checkmediadb")
        diag.exec_()
        saveGeom(diag, "checkmediadb")
コード例 #26
0
ファイル: browser.py プロジェクト: lahorichargha/ankiqt
 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")
コード例 #27
0
ファイル: models.py プロジェクト: jdennis/anki
 def onAdvanced(self):
     d = QDialog(self)
     frm = aqt.forms.modelopts.Ui_Dialog()
     frm.setupUi(d)
     frm.latexsvg.setChecked(self.model.get("latexsvg", False))
     frm.latexHeader.setText(self.model['latexPre'])
     frm.latexFooter.setText(self.model['latexPost'])
     frm.newStyleWhitespace.setChecked(self.model.get("prewrap", False))
     d.setWindowTitle(_("Options for %s") % self.model['name'])
     frm.buttonBox.helpRequested.connect(lambda: openHelp("latex"))
     restoreGeom(d, "modelopts")
     d.exec_()
     saveGeom(d, "modelopts")
     self.model['latexsvg'] = frm.latexsvg.isChecked()
     self.model['latexPre'] = str(frm.latexHeader.toPlainText())
     self.model['latexPost'] = str(frm.latexFooter.toPlainText())
     self.model['prewrap'] = frm.newStyleWhitespace.isChecked()
コード例 #28
0
ファイル: stats.py プロジェクト: igorfarias/ankiplugins
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")
コード例 #29
0
def myReject(self):
    if not self.canClose():
        return
    remHook('reset', self.onReset)
    clearAudioQueue()
    self.removeTempNote(self.editor.note)
    self.editor.setNote(None)
    self.modelChooser.cleanup()
    self.deckChooser.cleanup()
    self.mw.maybeReset()
    # save geometry of current dialog
    if self.dialogName == "AddCards":
        saveGeom(self, "add")
    else:
        saveGeom(self, "add2")
    # close dialog
    dialogs.close(self.dialogName)
    QDialog.reject(self)
コード例 #30
0
ファイル: Hanzi_Stats.py プロジェクト: trevorld/Hanzi_Stats
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")
コード例 #31
0
 def accept(self):
     self.hide()
     n = 0
     # gather yes/no tags
     yes = []
     no = []
     for c in range(self.dialog.activeList.count()):
         # active
         if self.dialog.activeCheck.isChecked():
             item = self.dialog.activeList.item(c)
             idx = self.dialog.activeList.indexFromItem(item)
             if self.dialog.activeList.selectionModel().isSelected(idx):
                 yes.append(self.tags[c])
         # inactive
         item = self.dialog.inactiveList.item(c)
         idx = self.dialog.inactiveList.indexFromItem(item)
         if self.dialog.inactiveList.selectionModel().isSelected(idx):
             no.append(self.tags[c])
     # save in the deck for future invocations
     self.deck["activeTags"] = yes
     self.deck["inactiveTags"] = no
     self.mw.col.decks.save(self.deck)
     # build query string
     self.tags = ""
     if yes:
         arr = []
         for req in yes:
             arr.append('tag:"%s"' % req)
         self.tags += "(" + " or ".join(arr) + ")"
     if no:
         arr = []
         for req in no:
             arr.append('-tag:"%s"' % req)
         self.tags += " " + " ".join(arr)
     saveGeom(self, "tagLimit")
     QDialog.accept(self)
コード例 #32
0
ファイル: editor.py プロジェクト: worker-ldir/anki
 def _onHtmlEdit(self, field):
     d = QDialog(self.widget, Qt.Window)
     form = aqt.forms.edithtml.Ui_Dialog()
     form.setupUi(d)
     restoreGeom(d, "htmlEditor")
     qconnect(form.buttonBox.helpRequested, lambda: openHelp("editor"))
     form.textEdit.setPlainText(self.note.fields[field])
     d.show()
     form.textEdit.moveCursor(QTextCursor.End)
     d.exec_()
     html = form.textEdit.toPlainText()
     if html.find(">") > -1:
         # filter html through beautifulsoup so we can strip out things like a
         # leading </div>
         html_escaped = self.mw.col.media.escapeImages(html)
         with warnings.catch_warnings():
             warnings.simplefilter("ignore", UserWarning)
             html_escaped = str(BeautifulSoup(html_escaped, "html.parser"))
             html = self.mw.col.media.escapeImages(html_escaped, unescape=True)
     self.note.fields[field] = html
     if not self.addMode:
         self.note.flush()
     self.loadNote(focusTo=field)
     saveGeom(d, "htmlEditor")
コード例 #33
0
ファイル: deckconf.py プロジェクト: lovac42/CCBC
 def __init__(self, mw, deck, parent=None):
     QDialog.__init__(self, parent or mw)
     self.mw = mw
     self.deck = deck
     self.childDids = [
         d[1] for d in self.mw.col.decks.children(self.deck['id'])
     ]
     self._origNewOrder = None
     self.form = aqt.forms.dconf.Ui_Dialog()
     self.form.setupUi(self)
     self.mw.checkpoint(_("Options"))
     self.setupCombos()
     self.setupConfs()
     self.setWindowModality(Qt.WindowModal)
     self.form.confOpts.clicked.connect(self.confOpts)
     self.form.confOpts.setText(downArrow())
     self.form.buttonBox.button(
         QDialogButtonBox.RestoreDefaults).clicked.connect(self.onRestore)
     self.setWindowTitle(_("Options for %s") % self.deck['name'])
     # qt doesn't size properly with altered fonts otherwise
     restoreGeom(self, "deckconf", adjustSize=True)
     self.show()
     self.exec_()
     saveGeom(self, "deckconf")
コード例 #34
0
 def onReject(self):
     saveGeom(self, geom_name)
コード例 #35
0
 def reject(self):
     saveGeom(self, self.name)
     QDialog.reject(self)
コード例 #36
0
 def success(out: OpChangesWithId) -> None:
     gui_hooks.filtered_deck_dialog_did_add_or_update_deck(
         self, self.deck, out.id)
     saveGeom(self, self.GEOMETRY_KEY)
     aqt.dialogs.markClosed(self.DIALOG_KEY)
     QDialog.accept(self)
コード例 #37
0
ファイル: sound.py プロジェクト: shaunren/anki
 def _save_diag(self) -> None:
     saveGeom(self, "audioRecorder2")
コード例 #38
0
 def onAccept(self):
     saveGeom(self, geom_name)
     self.callback(self.exportData())
コード例 #39
0
ファイル: browser.py プロジェクト: lahorichargha/ankiqt
 def cleanup(self):
     remHook("reset", self.onReset)
     remHook("currentModelChanged", self.onReset)
     self.modelChooser.cleanup()
     saveGeom(self, "changeModel")
コード例 #40
0
ファイル: dialogs.py プロジェクト: Mauville/Dotfiles
 def closeEvent(self, event):
     if mw.pm.profile is not None:
         self.deckChooser.cleanup()
         saveGeom(self, "imgoccedit")
     self.visible = False
     event.accept()
コード例 #41
0
 def onClose(self):
     saveGeom(self, "addonconf")
     saveSplitter(self.form.splitter, "addonconf")
コード例 #42
0
ファイル: studydeck.py プロジェクト: thelonewolfie/anki
 def reject(self):
     saveGeom(self, self.geomKey)
     remHook('reset', self.onReset)
     QDialog.reject(self)
コード例 #43
0
ファイル: editcurrent.py プロジェクト: sonofhypnos/anki
 def cleanup_and_close(self) -> None:
     gui_hooks.operation_did_execute.remove(self.on_operation_did_execute)
     self.editor.cleanup()
     saveGeom(self, "editcurrent")
     aqt.dialogs.markClosed("EditCurrent")
     QDialog.reject(self)
コード例 #44
0
def _showinfo_of_card(self, card):
    #self is reviewer
    if card:
        dialog = CardStatShowDialog(self, card)
        dialog.exec_()
        saveGeom(dialog, "CardStatShowDialog")
コード例 #45
0
ファイル: models.py プロジェクト: kaczmarj/anki
 def reject(self) -> None:
     saveGeom(self, "models")
     QDialog.reject(self)
コード例 #46
0
 def reject(self) -> None:
     self.web = None
     saveGeom(self, self.TITLE)
     QDialog.reject(self)
コード例 #47
0
ファイル: models.py プロジェクト: thelonewolfie/anki
 def reject(self):
     self.saveModel()
     self.mw.reset()
     saveGeom(self, "models")
     QDialog.reject(self)
コード例 #48
0
 def cleanup(self):
     remHook("reset", self.onReset)
     self.browser.organizer = None
     saveGeom(self, "organizer")
     saveHeader(self.hh, "organizer")
コード例 #49
0
 def reject(self):
     saveGeom(self, "SHFork_fuzzy")
     QDialog.reject(self)
コード例 #50
0
 def onReject(self):
     ok = askUser("Close and lose current input?")
     if ok:
         saveGeom(self, "805891399_winsize")
         self.web = None
         self.reject()
コード例 #51
0
 def reject(self):
     saveGeom(self, "addons21")
     return QDialog.reject(self)
コード例 #52
0
ファイル: stats.py プロジェクト: zzp0/anki
 def reject(self):
     saveGeom(self, self.name)
     aqt.dialogs.markClosed("DeckStats")
     QDialog.reject(self)
コード例 #53
0
ファイル: keep_empty_note.py プロジェクト: lovac42/CCBC
def onDelete(mw, diag, cids):
    p(f"Calling new onDelete with cids {cids}")

    cids = set(mw.col.emptyCids())  #change here to make a set
    saveGeom(diag, "emptyCards")
    QDialog.accept(diag)
    mw.checkpoint(_("Delete Empty"))

    # Beginning of changes
    nidToCidsToDelete = dict()
    for cid in cids:
        card = mw.col.getCard(cid)
        note = card.note()
        nid = note.id
        if nid not in nidToCidsToDelete:
            p(f"note {nid} not yet in nidToCidsToDelete. Thus adding it")
            nidToCidsToDelete[nid] = set()
        else:
            p(f"note {nid} already in nidToCidsToDelete.")
        nidToCidsToDelete[nid].add(cid)
        p(f"Adding card {cid} to note {nid}.")

    emptyNids = set()
    cardsOfEmptyNotes = set()
    for nid, cidsToDeleteOfNote in nidToCidsToDelete.items():
        note = mw.col.getNote(nid)
        cidsOfNids = set([card.id for card in note.cards()])
        p(f"In note {nid}, the cards are {cidsOfNids}, and the cards to delete are {cidsToDeleteOfNote}"
          )
        if cidsOfNids == cidsToDeleteOfNote:
            p(f"Both sets are equal")
            emptyNids.add(note.id)
            cids -= cidsOfNids
        else:
            p(f"Both sets are different")

    mw.col.remCards(cids, notes=False)
    nidsWithTag = set(mw.col.findNotes("tag:NoteWithNoCard"))
    p(f"emptyNids is {emptyNids}, nidsWithTag is {nidsWithTag}")

    for nid in emptyNids - nidsWithTag:
        note = mw.col.getNote(nid)
        note.addTag("NoteWithNoCard")
        p(f"Adding tag to note {note.id}")
        note.flush()

    for nid in nidsWithTag - emptyNids:
        note = mw.col.getNote(nid)
        # TODO: If there's only 1 note, this method is never triggered.
        # So the tag stays.
        note.delTag("NoteWithNoCard")
        p(f"Removing tag from note {note.id}")
        note.flush()

    if emptyNids:
        showWarning(
            f"""{len(emptyNids)} note(s) should have been deleted because they had no more cards. They now have the tag "NoteWithNoCard". Please go check them. Then either edit them to save their content, or delete them from the browser."""
        )
        browser = dialogs.open("Browser", mw, False)
        browser.form.searchEdit.lineEdit().setText("tag:NoteWithNoCard")
        browser.onSearchActivated()

    # end of changes
    tooltip(
        ngettext("%d card deleted.", "%d cards deleted.", len(cids)) %
        len(cids))
    mw.reset()
コード例 #54
0
ファイル: studydeck.py プロジェクト: v-limc/anki
 def reject(self) -> None:
     saveGeom(self, self.geomKey)
     gui_hooks.state_did_reset.remove(self.onReset)
     QDialog.reject(self)
コード例 #55
0
 def reject(self):
     self.form.web = None
     saveGeom(self, self.name)
     aqt.dialogs.markClosed("NewDeckStats")
     QDialog.reject(self)
コード例 #56
0
 def _onClose(self):
     saveGeom(self, "simulatorDialog")
     self._tearDownHooks()
コード例 #57
0
ファイル: browser.py プロジェクト: lahorichargha/ankiqt
 def onFin(code):
     saveGeom(win, "findDupes")
コード例 #58
0
ファイル: emptycards.py プロジェクト: yycmmc/anki
 def on_finished(code: Any) -> None:
     saveGeom(self, "emptycards")
コード例 #59
0
 def _on_finished(self, ok):
     saveGeom(self, "preview")
     self.mw.progress.timer(100, self._on_close, False)
コード例 #60
0
 def reject(self) -> None:
     if self._on_close:
         self._on_close()
     self.web = None
     saveGeom(self, self.GEOMETRY_KEY)
     return QDialog.reject(self)