mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 14:32:22 -04:00
remember splitter state, possible fix for focus error
This commit is contained in:
parent
dda48886dd
commit
e6d77ebb6d
4 changed files with 29 additions and 3 deletions
|
@ -9,7 +9,7 @@ import anki
|
|||
from anki.facts import Fact
|
||||
from anki.errors import *
|
||||
from anki.utils import stripHTML
|
||||
from ankiqt.ui.utils import saveGeom, restoreGeom
|
||||
from ankiqt.ui.utils import saveGeom, restoreGeom, saveSplitter, restoreSplitter
|
||||
from ankiqt import ui
|
||||
|
||||
class AddCards(QDialog):
|
||||
|
@ -27,6 +27,7 @@ class AddCards(QDialog):
|
|||
self.modelChanged(self.parent.deck.currentModel)
|
||||
self.addedItems = 0
|
||||
restoreGeom(self, "add")
|
||||
restoreSplitter(self.dialog.splitter, "add")
|
||||
self.show()
|
||||
ui.dialogs.open("AddCards", self)
|
||||
|
||||
|
@ -138,6 +139,7 @@ question or answer on all cards. Can't proceed."""), parent=self)
|
|||
self.parent.deck.rebuildCSS()
|
||||
self.parent.moveToState("auto")
|
||||
saveGeom(self, "add")
|
||||
saveSplitter(self.dialog.splitter, "add")
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
|
|
@ -12,7 +12,7 @@ from anki.cards import cardsTable, Card
|
|||
from anki.facts import factsTable, fieldsTable, Fact
|
||||
from anki.utils import fmtTimeSpan, parseTags, findTag, addTags, deleteTags, \
|
||||
stripHTML, ids2str
|
||||
from ankiqt.ui.utils import saveGeom, restoreGeom
|
||||
from ankiqt.ui.utils import saveGeom, restoreGeom, saveSplitter, restoreSplitter
|
||||
from anki.errors import *
|
||||
from anki.db import *
|
||||
from anki.stats import CardStats
|
||||
|
@ -211,6 +211,7 @@ class EditDeck(QMainWindow):
|
|||
self.drawTags()
|
||||
self.updateFilterLabel()
|
||||
restoreGeom(self, "editor")
|
||||
restoreSplitter(self.dialog.splitter, "editor")
|
||||
self.show()
|
||||
self.updateSearch()
|
||||
|
||||
|
@ -391,12 +392,14 @@ class EditDeck(QMainWindow):
|
|||
|
||||
def onClose(self):
|
||||
self.editor.saveFieldsNow()
|
||||
self.editor.setFact(None)
|
||||
if not self.factValid:
|
||||
ui.utils.showInfo(_(
|
||||
"Some fields are missing or not unique."),
|
||||
parent=self, help="AddItems#AddError")
|
||||
return
|
||||
saveGeom(self, "editor")
|
||||
saveSplitter(self.dialog.splitter, "editor")
|
||||
self.hide()
|
||||
if self.origModTime != self.deck.modified:
|
||||
self.parent.reset()
|
||||
|
@ -547,6 +550,8 @@ where id in (%s)""" % ",".join([
|
|||
self.updateSearch()
|
||||
|
||||
def selectFacts(self):
|
||||
self.editor.setFact(None)
|
||||
return
|
||||
sm = self.dialog.tableView.selectionModel()
|
||||
cardIds = dict([(x, 1) for x in self.selectedFactsAsCards()])
|
||||
for i, card in enumerate(self.model.cards):
|
||||
|
|
|
@ -40,9 +40,14 @@ class FactEditor(object):
|
|||
self.changeTimer.stop()
|
||||
self.changeTimer = None
|
||||
if self.needToRedraw():
|
||||
if self.fact:
|
||||
self.drawFields(noFocus, check)
|
||||
else:
|
||||
self.widget.hide()
|
||||
return
|
||||
else:
|
||||
self.loadFields(check)
|
||||
self.widget.show()
|
||||
if not noFocus:
|
||||
# update focus to first field
|
||||
self.fields[self.fact.fields[0].name][1].setFocus()
|
||||
|
@ -256,6 +261,8 @@ class FactEditor(object):
|
|||
self.fieldsScroll.setWidget(self.fieldsFrame)
|
||||
|
||||
def needToRedraw(self):
|
||||
if self.fact is None:
|
||||
return True
|
||||
if len(self.fact.fields) != len(self.fields):
|
||||
return True
|
||||
for field in self.fact.fields:
|
||||
|
@ -311,6 +318,9 @@ class FactEditor(object):
|
|||
self.deck.setUndoEnd(n)
|
||||
|
||||
def onFocusLost(self, widget):
|
||||
if self.fact is None:
|
||||
# editor closed
|
||||
return
|
||||
self.saveFields()
|
||||
field = self.widgets[widget]
|
||||
self.fact.onKeyPress(field, field.value)
|
||||
|
|
|
@ -149,6 +149,15 @@ def restoreGeom(widget, key):
|
|||
if ankiqt.mw.config.get(key):
|
||||
widget.restoreGeometry(ankiqt.mw.config[key])
|
||||
|
||||
def saveSplitter(widget, key):
|
||||
key += "Splitter"
|
||||
ankiqt.mw.config[key] = widget.saveState()
|
||||
|
||||
def restoreSplitter(widget, key):
|
||||
key += "Splitter"
|
||||
if ankiqt.mw.config.get(key):
|
||||
widget.restoreState(ankiqt.mw.config[key])
|
||||
|
||||
def mungeQA(deck, txt):
|
||||
txt = renderLatex(deck, txt)
|
||||
txt = stripSounds(txt)
|
||||
|
|
Loading…
Reference in a new issue