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 *
|
||||
import aqt.editor
|
||||
from aqt.utils import saveGeom, restoreGeom
|
||||
from anki.hooks import addHook, removeHook
|
||||
|
||||
class EditCurrent(QDialog):
|
||||
|
||||
|
@ -26,12 +27,14 @@ class EditCurrent(QDialog):
|
|||
self.editor = aqt.editor.Editor(self.mw, self.form.fieldsArea)
|
||||
self.editor.setFact(self.mw.reviewer.card.fact())
|
||||
restoreGeom(self, "editcurrent")
|
||||
addHook("closeEditCurrent", self.onSave)
|
||||
self.mw.requireReset(modal=True)
|
||||
self.open()
|
||||
# reset focus after open
|
||||
self.editor.web.setFocus()
|
||||
|
||||
def onSave(self):
|
||||
removeHook("closeEditCurrent", self.onSave)
|
||||
self.editor.saveNow()
|
||||
self.editor.setFact(None)
|
||||
r = self.mw.reviewer
|
||||
|
|
|
@ -466,14 +466,16 @@ class Editor(object):
|
|||
tb.setSpacing(12)
|
||||
tb.setMargin(6)
|
||||
# group
|
||||
if self.addMode:
|
||||
l = QLabel(_("Group"))
|
||||
else:
|
||||
l = QLabel(_("Fact Group"))
|
||||
l = QLabel(_("Group"))
|
||||
tb.addWidget(l, 0, 0)
|
||||
self.group = aqt.tagedit.TagEdit(self.widget, type=1)
|
||||
self.group.connect(self.group, SIGNAL("lostFocus"),
|
||||
self.saveTagsAndGroup)
|
||||
if not self.addMode:
|
||||
self.group = QPushButton()
|
||||
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)
|
||||
# tags
|
||||
l = QLabel(_("Tags"))
|
||||
|
@ -488,7 +490,8 @@ class Editor(object):
|
|||
def updateTagsAndGroup(self):
|
||||
if self.tags.deck != 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())
|
||||
if getattr(self.fact, 'gid', None):
|
||||
gid = self.fact.gid
|
||||
|
@ -499,10 +502,10 @@ class Editor(object):
|
|||
def saveTagsAndGroup(self):
|
||||
if not self.fact:
|
||||
return
|
||||
self.fact.gid = self.mw.deck.groupId(unicode(self.group.text()))
|
||||
self.fact.tags = parseTags(unicode(self.tags.text()))
|
||||
if self.addMode:
|
||||
# save group and tags to model
|
||||
self.fact.gid = self.mw.deck.groupId(unicode(self.group.text()))
|
||||
m = self.fact.model()
|
||||
m.conf['gid'] = self.fact.gid
|
||||
m.conf['tags'] = self.fact.tags
|
||||
|
@ -510,6 +513,14 @@ class Editor(object):
|
|||
self.fact.flush()
|
||||
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
|
||||
######################################################################
|
||||
|
||||
|
|
Loading…
Reference in a new issue