mirror of
https://github.com/ankitects/anki.git
synced 2025-09-21 23:42:23 -04:00
when editing a fact, use a group button instead of an input box
This commit is contained in:
parent
e26a735a49
commit
0c38354dae
2 changed files with 23 additions and 9 deletions
|
@ -6,6 +6,7 @@ from PyQt4.QtGui import *
|
||||||
from PyQt4.QtCore import *
|
from PyQt4.QtCore import *
|
||||||
import aqt.editor
|
import aqt.editor
|
||||||
from aqt.utils import saveGeom, restoreGeom
|
from aqt.utils import saveGeom, restoreGeom
|
||||||
|
from anki.hooks import addHook, removeHook
|
||||||
|
|
||||||
class EditCurrent(QDialog):
|
class EditCurrent(QDialog):
|
||||||
|
|
||||||
|
@ -26,12 +27,14 @@ class EditCurrent(QDialog):
|
||||||
self.editor = aqt.editor.Editor(self.mw, self.form.fieldsArea)
|
self.editor = aqt.editor.Editor(self.mw, self.form.fieldsArea)
|
||||||
self.editor.setFact(self.mw.reviewer.card.fact())
|
self.editor.setFact(self.mw.reviewer.card.fact())
|
||||||
restoreGeom(self, "editcurrent")
|
restoreGeom(self, "editcurrent")
|
||||||
|
addHook("closeEditCurrent", self.onSave)
|
||||||
self.mw.requireReset(modal=True)
|
self.mw.requireReset(modal=True)
|
||||||
self.open()
|
self.open()
|
||||||
# reset focus after open
|
# reset focus after open
|
||||||
self.editor.web.setFocus()
|
self.editor.web.setFocus()
|
||||||
|
|
||||||
def onSave(self):
|
def onSave(self):
|
||||||
|
removeHook("closeEditCurrent", self.onSave)
|
||||||
self.editor.saveNow()
|
self.editor.saveNow()
|
||||||
self.editor.setFact(None)
|
self.editor.setFact(None)
|
||||||
r = self.mw.reviewer
|
r = self.mw.reviewer
|
||||||
|
|
|
@ -466,14 +466,16 @@ class Editor(object):
|
||||||
tb.setSpacing(12)
|
tb.setSpacing(12)
|
||||||
tb.setMargin(6)
|
tb.setMargin(6)
|
||||||
# group
|
# group
|
||||||
if self.addMode:
|
l = QLabel(_("Group"))
|
||||||
l = QLabel(_("Group"))
|
|
||||||
else:
|
|
||||||
l = QLabel(_("Fact Group"))
|
|
||||||
tb.addWidget(l, 0, 0)
|
tb.addWidget(l, 0, 0)
|
||||||
self.group = aqt.tagedit.TagEdit(self.widget, type=1)
|
if not self.addMode:
|
||||||
self.group.connect(self.group, SIGNAL("lostFocus"),
|
self.group = QPushButton()
|
||||||
self.saveTagsAndGroup)
|
self.group.connect(self.group, SIGNAL("clicked()"),
|
||||||
|
self.changeGroup)
|
||||||
|
else:
|
||||||
|
self.group = aqt.tagedit.TagEdit(self.widget, type=1)
|
||||||
|
self.group.connect(self.group, SIGNAL("lostFocus"),
|
||||||
|
self.saveTagsAndGroup)
|
||||||
tb.addWidget(self.group, 0, 1)
|
tb.addWidget(self.group, 0, 1)
|
||||||
# tags
|
# tags
|
||||||
l = QLabel(_("Tags"))
|
l = QLabel(_("Tags"))
|
||||||
|
@ -488,7 +490,8 @@ class Editor(object):
|
||||||
def updateTagsAndGroup(self):
|
def updateTagsAndGroup(self):
|
||||||
if self.tags.deck != self.mw.deck:
|
if self.tags.deck != self.mw.deck:
|
||||||
self.tags.setDeck(self.mw.deck)
|
self.tags.setDeck(self.mw.deck)
|
||||||
self.group.setDeck(self.mw.deck)
|
if self.addMode:
|
||||||
|
self.group.setDeck(self.mw.deck)
|
||||||
self.tags.setText(self.fact.stringTags().strip())
|
self.tags.setText(self.fact.stringTags().strip())
|
||||||
if getattr(self.fact, 'gid', None):
|
if getattr(self.fact, 'gid', None):
|
||||||
gid = self.fact.gid
|
gid = self.fact.gid
|
||||||
|
@ -499,10 +502,10 @@ class Editor(object):
|
||||||
def saveTagsAndGroup(self):
|
def saveTagsAndGroup(self):
|
||||||
if not self.fact:
|
if not self.fact:
|
||||||
return
|
return
|
||||||
self.fact.gid = self.mw.deck.groupId(unicode(self.group.text()))
|
|
||||||
self.fact.tags = parseTags(unicode(self.tags.text()))
|
self.fact.tags = parseTags(unicode(self.tags.text()))
|
||||||
if self.addMode:
|
if self.addMode:
|
||||||
# save group and tags to model
|
# save group and tags to model
|
||||||
|
self.fact.gid = self.mw.deck.groupId(unicode(self.group.text()))
|
||||||
m = self.fact.model()
|
m = self.fact.model()
|
||||||
m.conf['gid'] = self.fact.gid
|
m.conf['gid'] = self.fact.gid
|
||||||
m.conf['tags'] = self.fact.tags
|
m.conf['tags'] = self.fact.tags
|
||||||
|
@ -510,6 +513,14 @@ class Editor(object):
|
||||||
self.fact.flush()
|
self.fact.flush()
|
||||||
runHook("tagsAndGroupUpdated", self.fact)
|
runHook("tagsAndGroupUpdated", self.fact)
|
||||||
|
|
||||||
|
def changeGroup(self):
|
||||||
|
id = self.fact.id
|
||||||
|
runHook("closeEditCurrent")
|
||||||
|
browser = aqt.dialogs.open("Browser", self.mw)
|
||||||
|
browser.form.searchEdit.setText("fid:%d" % id)
|
||||||
|
browser.onSearch()
|
||||||
|
browser.setGroup()
|
||||||
|
|
||||||
# Format buttons
|
# Format buttons
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue