mirror of
https://github.com/ankitects/anki.git
synced 2025-09-20 15:02:21 -04:00
tag autocomplete for editor and cram dialogs
This commit is contained in:
parent
cafb19f2ca
commit
1ab4e1d3b7
4 changed files with 21 additions and 9 deletions
|
@ -507,7 +507,7 @@ where id in (%s)""" % ",".join([
|
|||
self.updateSearch()
|
||||
|
||||
def addTags(self):
|
||||
tags = ui.utils.getOnlyText(_("Enter tag(s) to add:"), self)
|
||||
(tags, r) = ui.utils.getTag(self, self.deck, _("Enter tag(s) to add:"))
|
||||
if tags:
|
||||
n = _("Add Tags")
|
||||
self.deck.setUndoStart(n)
|
||||
|
@ -516,7 +516,7 @@ where id in (%s)""" % ",".join([
|
|||
self.updateAfterCardChange()
|
||||
|
||||
def deleteTags(self):
|
||||
tags = ui.utils.getOnlyText(_("Enter tag(s) to delete:"), self)
|
||||
(tags, r) = ui.utils.getTag(self, self.deck, _("Enter tag(s) to delete:"))
|
||||
if tags:
|
||||
n = _("Delete Tags")
|
||||
self.deck.setUndoStart(n)
|
||||
|
|
|
@ -1056,7 +1056,8 @@ Error was:\n%s\n...\n%s""") % (fmt1, fmt2))
|
|||
ui.utils.showInfo(
|
||||
_("Already cramming. Please close this deck first."))
|
||||
return
|
||||
(s, ret) = ui.utils.getText(_("Tags to cram:"), help="CramMode")
|
||||
(s, ret) = ui.utils.getTag(self, self.deck, _("Tags to cram:"),
|
||||
help="CramMode", tags="all")
|
||||
if not ret:
|
||||
return
|
||||
s = unicode(s)
|
||||
|
|
|
@ -15,10 +15,13 @@ class TagEdit(QLineEdit):
|
|||
self.completer.setCaseSensitivity(Qt.CaseInsensitive)
|
||||
self.setCompleter(self.completer)
|
||||
|
||||
def setDeck(self, deck):
|
||||
def setDeck(self, deck, tags="user"):
|
||||
"Set the current deck, updating list of available tags."
|
||||
self.deck = deck
|
||||
tags = self.deck.allUserTags()
|
||||
if tags == "user":
|
||||
tags = self.deck.allUserTags()
|
||||
else:
|
||||
tags = self.deck.allTags()
|
||||
self.model.setStringList(
|
||||
QStringList(tags))
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ from PyQt4.QtCore import *
|
|||
|
||||
from anki.sound import playFromText, stripSounds
|
||||
from anki.latex import renderLatex, stripLatex
|
||||
from ankiqt import ui
|
||||
|
||||
import re, os, sys
|
||||
import ankiqt
|
||||
|
@ -63,14 +64,16 @@ def askUser(text, parent=None):
|
|||
|
||||
class GetTextDialog(QDialog):
|
||||
|
||||
def __init__(self, parent, question, help=None):
|
||||
def __init__(self, parent, question, help=None, edit=None):
|
||||
QDialog.__init__(self, parent)
|
||||
self.setWindowTitle("Anki")
|
||||
self.question = question
|
||||
self.help = help
|
||||
v = QVBoxLayout()
|
||||
v.addWidget(QLabel(question))
|
||||
self.l = QLineEdit()
|
||||
if not edit:
|
||||
edit = QLineEdit()
|
||||
self.l = edit
|
||||
v.addWidget(self.l)
|
||||
buts = QDialogButtonBox.Ok | QDialogButtonBox.Cancel
|
||||
if help:
|
||||
|
@ -95,10 +98,10 @@ class GetTextDialog(QDialog):
|
|||
def helpRequested(self):
|
||||
QDesktopServices.openUrl(QUrl(ankiqt.appWiki + self.help))
|
||||
|
||||
def getText(prompt, parent=None, help=None):
|
||||
def getText(prompt, parent=None, help=None, edit=None):
|
||||
if not parent:
|
||||
parent = ankiqt.mw
|
||||
d = GetTextDialog(parent, prompt, help=help)
|
||||
d = GetTextDialog(parent, prompt, help=help, edit=edit)
|
||||
ret = d.exec_()
|
||||
return (unicode(d.l.text()), ret)
|
||||
|
||||
|
@ -109,6 +112,11 @@ def getOnlyText(*args, **kwargs):
|
|||
else:
|
||||
return u""
|
||||
|
||||
def getTag(parent, deck, question, tags="user", **kwargs):
|
||||
te = ui.tagedit.TagEdit(parent)
|
||||
te.setDeck(deck, tags)
|
||||
return getText(question, parent, edit=te, **kwargs)
|
||||
|
||||
def getFile(parent, title, dir, key):
|
||||
"Ask the user for a file. Use DIR as config variable."
|
||||
dirkey = dir+"Directory"
|
||||
|
|
Loading…
Reference in a new issue