mirror of
https://github.com/ankitects/anki.git
synced 2025-09-25 01:06:35 -04:00
new active/inactive tag handling, new study options screen
- break study options into multiple tabs - inactive tags removed from menus and accessible via study options now - save various study options immediately instead of requiring review button to be pressed
This commit is contained in:
parent
d698c3d310
commit
1abb47d973
7 changed files with 726 additions and 402 deletions
|
@ -86,7 +86,6 @@ class Config(dict):
|
||||||
'showLastCardContent': False,
|
'showLastCardContent': False,
|
||||||
'showLastCardInterval': False,
|
'showLastCardInterval': False,
|
||||||
'showProgress': True,
|
'showProgress': True,
|
||||||
'showStudyOptions': False,
|
|
||||||
'showStudyScreen': True,
|
'showStudyScreen': True,
|
||||||
'showStudyStats': True,
|
'showStudyStats': True,
|
||||||
'showTimer': True,
|
'showTimer': True,
|
||||||
|
|
|
@ -9,53 +9,33 @@ from ankiqt.ui.utils import saveGeom, restoreGeom
|
||||||
|
|
||||||
class ActiveTagsChooser(QDialog):
|
class ActiveTagsChooser(QDialog):
|
||||||
|
|
||||||
def __init__(self, parent):
|
def __init__(self, parent, active, inactive):
|
||||||
QDialog.__init__(self, parent, Qt.Window)
|
QDialog.__init__(self, parent, Qt.Window)
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.deck = self.parent.deck
|
self.deck = self.parent.deck
|
||||||
|
self.active = active
|
||||||
|
self.inactive = inactive
|
||||||
self.dialog = ankiqt.forms.activetags.Ui_Dialog()
|
self.dialog = ankiqt.forms.activetags.Ui_Dialog()
|
||||||
self.dialog.setupUi(self)
|
self.dialog.setupUi(self)
|
||||||
self.selectAll = QPushButton(_("Select All"))
|
|
||||||
self.connect(self.selectAll, SIGNAL("clicked()"), self.onSelectAll)
|
|
||||||
self.dialog.buttonBox.addButton(self.selectAll,
|
|
||||||
QDialogButtonBox.ActionRole)
|
|
||||||
self.selectNone = QPushButton(_("Select None"))
|
|
||||||
self.connect(self.selectNone, SIGNAL("clicked()"), self.onSelectNone)
|
|
||||||
self.dialog.buttonBox.addButton(self.selectNone,
|
|
||||||
QDialogButtonBox.ActionRole)
|
|
||||||
self.invert = QPushButton(_("Invert"))
|
|
||||||
self.connect(self.invert, SIGNAL("clicked()"), self.onInvert)
|
|
||||||
self.dialog.buttonBox.addButton(self.invert,
|
|
||||||
QDialogButtonBox.ActionRole)
|
|
||||||
self.connect(self.dialog.buttonBox, SIGNAL("helpRequested()"),
|
self.connect(self.dialog.buttonBox, SIGNAL("helpRequested()"),
|
||||||
self.onHelp)
|
self.onHelp)
|
||||||
self.rebuildTagList()
|
self.rebuildTagList()
|
||||||
restoreGeom(self, "activeTags")
|
restoreGeom(self, "activeTags")
|
||||||
|
|
||||||
def onSelectAll(self):
|
|
||||||
self.dialog.list.selectAll()
|
|
||||||
|
|
||||||
def onSelectNone(self):
|
|
||||||
self.dialog.list.clearSelection()
|
|
||||||
|
|
||||||
def onInvert(self):
|
|
||||||
sm = self.dialog.list.selectionModel()
|
|
||||||
sel = sm.selection()
|
|
||||||
self.dialog.list.selectAll()
|
|
||||||
sm.select(sel, QItemSelectionModel.Deselect)
|
|
||||||
|
|
||||||
def rebuildTagList(self):
|
def rebuildTagList(self):
|
||||||
self.tags = self.deck.allTags()
|
usertags = self.deck.allTags()
|
||||||
self.items = []
|
self.items = []
|
||||||
self.suspended = {}
|
self.suspended = {}
|
||||||
alltags = []
|
yes = parseTags(self.deck.getVar(self.active))
|
||||||
# get list of currently suspended
|
no = parseTags(self.deck.getVar(self.inactive))
|
||||||
for t in parseTags(self.deck.suspended):
|
yesHash = {}
|
||||||
self.suspended[t] = 1
|
noHash = {}
|
||||||
if t not in self.tags:
|
for y in yes:
|
||||||
self.tags.append(t)
|
yesHash[y] = True
|
||||||
# sort and remove special 'Suspended' tag
|
for n in no:
|
||||||
self.tags.sort()
|
noHash[n] = True
|
||||||
|
groupedTags = []
|
||||||
|
usertags.sort()
|
||||||
# render models and templates
|
# render models and templates
|
||||||
for (type, sql, icon) in (
|
for (type, sql, icon) in (
|
||||||
("models", "select tags from models", "contents.png"),
|
("models", "select tags from models", "contents.png"),
|
||||||
|
@ -66,60 +46,74 @@ class ActiveTagsChooser(QDialog):
|
||||||
for tag in parseTags(tags):
|
for tag in parseTags(tags):
|
||||||
d[tag] = 1
|
d[tag] = 1
|
||||||
sortedtags = sorted(d.keys())
|
sortedtags = sorted(d.keys())
|
||||||
alltags.extend(sortedtags)
|
|
||||||
icon = QIcon(":/icons/" + icon)
|
icon = QIcon(":/icons/" + icon)
|
||||||
for t in sortedtags:
|
groupedTags.append([icon, sortedtags])
|
||||||
item = QListWidgetItem(icon, t.replace("_", " "))
|
|
||||||
self.dialog.list.addItem(item)
|
|
||||||
self.items.append(item)
|
|
||||||
idx = self.dialog.list.indexFromItem(item)
|
|
||||||
if t in self.suspended:
|
|
||||||
mode = QItemSelectionModel.Select
|
|
||||||
else:
|
|
||||||
mode = QItemSelectionModel.Deselect
|
|
||||||
self.dialog.list.selectionModel().select(idx, mode)
|
|
||||||
# remove from user tags
|
# remove from user tags
|
||||||
for tag in alltags:
|
for tag in groupedTags[0][1] + groupedTags[1][1]:
|
||||||
try:
|
try:
|
||||||
self.tags.remove(tag)
|
usertags.remove(tag)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
# user tags
|
# user tags
|
||||||
icon = QIcon(":/icons/Anki_Fact.png")
|
icon = QIcon(":/icons/Anki_Fact.png")
|
||||||
for t in self.tags:
|
groupedTags.append([icon, usertags])
|
||||||
item = QListWidgetItem(icon, t.replace("_", " "))
|
self.tags = []
|
||||||
self.dialog.list.addItem(item)
|
for (icon, tags) in groupedTags:
|
||||||
self.items.append(item)
|
for t in tags:
|
||||||
idx = self.dialog.list.indexFromItem(item)
|
self.tags.append(t)
|
||||||
if t in self.suspended:
|
item = QListWidgetItem(icon, t.replace("_", " "))
|
||||||
mode = QItemSelectionModel.Select
|
self.dialog.activeList.addItem(item)
|
||||||
else:
|
if t in yesHash:
|
||||||
mode = QItemSelectionModel.Deselect
|
mode = QItemSelectionModel.Select
|
||||||
self.dialog.list.selectionModel().select(idx, mode)
|
self.dialog.activeCheck.setChecked(True)
|
||||||
self.tags = alltags + self.tags
|
else:
|
||||||
|
mode = QItemSelectionModel.Deselect
|
||||||
|
idx = self.dialog.activeList.indexFromItem(item)
|
||||||
|
self.dialog.activeList.selectionModel().select(idx, mode)
|
||||||
|
# inactive
|
||||||
|
item = QListWidgetItem(icon, t.replace("_", " "))
|
||||||
|
self.dialog.inactiveList.addItem(item)
|
||||||
|
if t in noHash:
|
||||||
|
mode = QItemSelectionModel.Select
|
||||||
|
self.dialog.inactiveCheck.setChecked(True)
|
||||||
|
else:
|
||||||
|
mode = QItemSelectionModel.Deselect
|
||||||
|
idx = self.dialog.inactiveList.indexFromItem(item)
|
||||||
|
self.dialog.inactiveList.selectionModel().select(idx, mode)
|
||||||
|
|
||||||
def accept(self):
|
def accept(self):
|
||||||
self.hide()
|
self.hide()
|
||||||
self.deck.startProgress()
|
|
||||||
n = 0
|
n = 0
|
||||||
suspended = []
|
yes = []
|
||||||
for item in self.items:
|
no = []
|
||||||
idx = self.dialog.list.indexFromItem(item)
|
for c in range(self.dialog.activeList.count()):
|
||||||
if self.dialog.list.selectionModel().isSelected(idx):
|
# active
|
||||||
suspended.append(self.tags[n])
|
item = self.dialog.activeList.item(c)
|
||||||
n += 1
|
idx = self.dialog.activeList.indexFromItem(item)
|
||||||
self.deck.suspended = canonifyTags(joinTags(suspended))
|
if self.dialog.activeList.selectionModel().isSelected(idx):
|
||||||
self.deck.setModified()
|
yes.append(self.tags[c])
|
||||||
self.deck.updateAllPriorities(partial=True, dirty=False)
|
# 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])
|
||||||
|
|
||||||
|
if self.dialog.activeCheck.isChecked():
|
||||||
|
self.deck.setVar(self.active, joinTags(yes))
|
||||||
|
else:
|
||||||
|
self.deck.setVar(self.active, "")
|
||||||
|
if self.dialog.inactiveCheck.isChecked():
|
||||||
|
self.deck.setVar(self.inactive, joinTags(no))
|
||||||
|
else:
|
||||||
|
self.deck.setVar(self.inactive, "")
|
||||||
self.parent.reset()
|
self.parent.reset()
|
||||||
saveGeom(self, "activeTags")
|
saveGeom(self, "activeTags")
|
||||||
self.deck.finishProgress()
|
|
||||||
QDialog.accept(self)
|
QDialog.accept(self)
|
||||||
|
|
||||||
def onHelp(self):
|
def onHelp(self):
|
||||||
QDesktopServices.openUrl(QUrl(ankiqt.appWiki +
|
QDesktopServices.openUrl(QUrl(ankiqt.appWiki +
|
||||||
"ActiveTags"))
|
"ActiveTags"))
|
||||||
|
|
||||||
def show(parent):
|
def show(parent, active, inactive):
|
||||||
at = ActiveTagsChooser(parent)
|
at = ActiveTagsChooser(parent, active, inactive)
|
||||||
at.exec_()
|
at.exec_()
|
||||||
|
|
|
@ -62,7 +62,6 @@ class DeckProperties(QDialog):
|
||||||
self.dialog.delay2.setText(unicode(self.d.delay2))
|
self.dialog.delay2.setText(unicode(self.d.delay2))
|
||||||
self.dialog.collapse.setCheckState(self.d.collapseTime
|
self.dialog.collapse.setCheckState(self.d.collapseTime
|
||||||
and Qt.Checked or Qt.Unchecked)
|
and Qt.Checked or Qt.Unchecked)
|
||||||
self.dialog.failedCardMax.setText(unicode(self.d.failedCardMax))
|
|
||||||
self.dialog.perDay.setCheckState(self.d.getBool("perDay")
|
self.dialog.perDay.setCheckState(self.d.getBool("perDay")
|
||||||
and Qt.Checked or Qt.Unchecked)
|
and Qt.Checked or Qt.Unchecked)
|
||||||
# sources
|
# sources
|
||||||
|
@ -245,10 +244,6 @@ class DeckProperties(QDialog):
|
||||||
self.updateField(self.d, 'delay1', v2)
|
self.updateField(self.d, 'delay1', v2)
|
||||||
v = float(self.dialog.delay2.text())
|
v = float(self.dialog.delay2.text())
|
||||||
self.updateField(self.d, 'delay2', min(v, 1))
|
self.updateField(self.d, 'delay2', min(v, 1))
|
||||||
v = int(self.dialog.failedCardMax.text())
|
|
||||||
if v == 1 or v < 0:
|
|
||||||
v = 2
|
|
||||||
self.updateField(self.d, 'failedCardMax', v)
|
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -826,6 +826,7 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
def onClose(self):
|
def onClose(self):
|
||||||
|
# allow focusOut to save
|
||||||
if self.inMainWindow() or not self.app.activeWindow():
|
if self.inMainWindow() or not self.app.activeWindow():
|
||||||
isCram = self.isCramming()
|
isCram = self.isCramming()
|
||||||
self.saveAndClose(hideWelcome=isCram)
|
self.saveAndClose(hideWelcome=isCram)
|
||||||
|
@ -836,6 +837,8 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
||||||
|
|
||||||
def saveAndClose(self, hideWelcome=False, parent=None):
|
def saveAndClose(self, hideWelcome=False, parent=None):
|
||||||
"(Auto)save and close. Prompt if necessary. True if okay to proceed."
|
"(Auto)save and close. Prompt if necessary. True if okay to proceed."
|
||||||
|
# allow any focusOut()s to run first
|
||||||
|
self.setFocus()
|
||||||
if not parent:
|
if not parent:
|
||||||
parent = self
|
parent = self
|
||||||
self.hideWelcome = hideWelcome
|
self.hideWelcome = hideWelcome
|
||||||
|
@ -1465,6 +1468,7 @@ later by using File>Close.
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
def setupStudyScreen(self):
|
def setupStudyScreen(self):
|
||||||
|
self.mainWin.buttonStack.hide()
|
||||||
self.mainWin.newCardOrder.insertItems(
|
self.mainWin.newCardOrder.insertItems(
|
||||||
0, QStringList(newCardOrderLabels().values()))
|
0, QStringList(newCardOrderLabels().values()))
|
||||||
self.mainWin.newCardScheduling.insertItems(
|
self.mainWin.newCardScheduling.insertItems(
|
||||||
|
@ -1475,9 +1479,10 @@ later by using File>Close.
|
||||||
SIGNAL("clicked()"),
|
SIGNAL("clicked()"),
|
||||||
lambda: QDesktopServices.openUrl(QUrl(
|
lambda: QDesktopServices.openUrl(QUrl(
|
||||||
ankiqt.appWiki + "StudyOptions")))
|
ankiqt.appWiki + "StudyOptions")))
|
||||||
self.mainWin.optionsBox.setShown(False)
|
|
||||||
self.connect(self.mainWin.minuteLimit,
|
self.connect(self.mainWin.minuteLimit,
|
||||||
SIGNAL("textChanged(QString)"), self.onMinuteLimitChanged)
|
SIGNAL("textChanged(QString)"), self.onMinuteLimitChanged)
|
||||||
|
self.connect(self.mainWin.questionLimit,
|
||||||
|
SIGNAL("textChanged(QString)"), self.onQuestionLimitChanged)
|
||||||
self.connect(self.mainWin.newPerDay,
|
self.connect(self.mainWin.newPerDay,
|
||||||
SIGNAL("textChanged(QString)"), self.onNewLimitChanged)
|
SIGNAL("textChanged(QString)"), self.onNewLimitChanged)
|
||||||
self.connect(self.mainWin.startReviewingButton,
|
self.connect(self.mainWin.startReviewingButton,
|
||||||
|
@ -1485,6 +1490,37 @@ later by using File>Close.
|
||||||
self.onStartReview)
|
self.onStartReview)
|
||||||
self.connect(self.mainWin.newCardOrder,
|
self.connect(self.mainWin.newCardOrder,
|
||||||
SIGNAL("activated(int)"), self.onNewCardOrderChanged)
|
SIGNAL("activated(int)"), self.onNewCardOrderChanged)
|
||||||
|
self.connect(self.mainWin.advancedOptions,
|
||||||
|
SIGNAL("clicked()"),
|
||||||
|
self.onAdvancedOptions)
|
||||||
|
self.connect(self.mainWin.failedCardMax,
|
||||||
|
SIGNAL("editingFinished()"),
|
||||||
|
self.onFailedMaxChanged)
|
||||||
|
self.connect(self.mainWin.newCategories,
|
||||||
|
SIGNAL("clicked()"), self.onNewCategoriesClicked)
|
||||||
|
self.connect(self.mainWin.revCategories,
|
||||||
|
SIGNAL("clicked()"), self.onRevCategoriesClicked)
|
||||||
|
|
||||||
|
def onNewCategoriesClicked(self):
|
||||||
|
ui.activetags.show(self, "newActive", "newInactive")
|
||||||
|
|
||||||
|
def onRevCategoriesClicked(self):
|
||||||
|
ui.activetags.show(self, "revActive", "revInactive")
|
||||||
|
|
||||||
|
def onFailedMaxChanged(self):
|
||||||
|
try:
|
||||||
|
v = int(self.mainWin.failedCardMax.text())
|
||||||
|
if v == 1 or v < 0:
|
||||||
|
v = 2
|
||||||
|
self.deck.failedCardMax = v
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
self.mainWin.failedCardMax.setText(str(self.deck.failedCardMax))
|
||||||
|
self.deck.flushMod()
|
||||||
|
|
||||||
|
def onAdvancedOptions(self):
|
||||||
|
self.onDeckProperties()
|
||||||
|
self.deckProperties.dialog.qtabwidget.setCurrentIndex(2)
|
||||||
|
|
||||||
def onMinuteLimitChanged(self, qstr):
|
def onMinuteLimitChanged(self, qstr):
|
||||||
try:
|
try:
|
||||||
|
@ -1497,6 +1533,17 @@ later by using File>Close.
|
||||||
self.deck.flushMod()
|
self.deck.flushMod()
|
||||||
self.updateStudyStats()
|
self.updateStudyStats()
|
||||||
|
|
||||||
|
def onQuestionLimitChanged(self, qstr):
|
||||||
|
try:
|
||||||
|
val = int(self.mainWin.questionLimit.text())
|
||||||
|
if self.deck.sessionRepLimit == val:
|
||||||
|
return
|
||||||
|
self.deck.sessionRepLimit = val
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
self.deck.flushMod()
|
||||||
|
self.updateStudyStats()
|
||||||
|
|
||||||
def onNewLimitChanged(self, qstr):
|
def onNewLimitChanged(self, qstr):
|
||||||
try:
|
try:
|
||||||
val = int(self.mainWin.newPerDay.text())
|
val = int(self.mainWin.newPerDay.text())
|
||||||
|
@ -1531,15 +1578,28 @@ later by using File>Close.
|
||||||
self.deck.finishProgress()
|
self.deck.finishProgress()
|
||||||
uf(self.deck, 'newCardOrder', ncOrd)
|
uf(self.deck, 'newCardOrder', ncOrd)
|
||||||
|
|
||||||
|
def updateActives(self):
|
||||||
|
labels = [
|
||||||
|
u"Show All Due Cards",
|
||||||
|
u"Show Chosen Categories"
|
||||||
|
]
|
||||||
|
if self.deck.getVar("newActive") or self.deck.getVar("newInactive"):
|
||||||
|
new = labels[1]
|
||||||
|
else:
|
||||||
|
new = labels[0]
|
||||||
|
self.mainWin.newCategoryLabel.setText(new)
|
||||||
|
if self.deck.getVar("revActive") or self.deck.getVar("revInactive"):
|
||||||
|
rev = labels[1]
|
||||||
|
else:
|
||||||
|
rev = labels[0]
|
||||||
|
self.mainWin.revCategoryLabel.setText(rev)
|
||||||
|
|
||||||
def updateStudyStats(self):
|
def updateStudyStats(self):
|
||||||
self.deck.reset()
|
self.deck.reset()
|
||||||
|
self.updateActives()
|
||||||
wasReached = self.deck.sessionLimitReached()
|
wasReached = self.deck.sessionLimitReached()
|
||||||
sessionColour = '<font color=#0000ff>%s</font>'
|
sessionColour = '<font color=#0000ff>%s</font>'
|
||||||
cardColour = '<font color=#0000ff>%s</font>'
|
cardColour = '<font color=#0000ff>%s</font>'
|
||||||
if not wasReached:
|
|
||||||
top = _("<h1>Study Options</h1>")
|
|
||||||
else:
|
|
||||||
top = _("<h1>Well done!</h1>")
|
|
||||||
# top label
|
# top label
|
||||||
h = {}
|
h = {}
|
||||||
s = self.deck.getStats()
|
s = self.deck.getStats()
|
||||||
|
@ -1574,15 +1634,15 @@ day = :d""", d=yesterday)
|
||||||
anki.utils.fmtTimeSpan(ttoday, short=True, point=1))
|
anki.utils.fmtTimeSpan(ttoday, short=True, point=1))
|
||||||
h['timeTodayChg'] = str(anki.utils.fmtTimeSpan(
|
h['timeTodayChg'] = str(anki.utils.fmtTimeSpan(
|
||||||
tyest, short=True, point=1))
|
tyest, short=True, point=1))
|
||||||
h['cs_header'] = _("Cards/session:")
|
h['cs_header'] = "<b>" + _("Cards/session:") + "</b>"
|
||||||
h['cd_header'] = _("Cards/day:")
|
h['cd_header'] = "<b>" + _("Cards/day:") + "</b>"
|
||||||
h['td_header'] = _("Time/day:")
|
h['td_header'] = "<b>" + _("Time/day:") + "</b>"
|
||||||
h['rd_header'] = _("Reviews due:")
|
h['rd_header'] = "<b>" + _("Reviews due:") + "</b>"
|
||||||
h['ntod_header'] = _("New today:")
|
h['ntod_header'] = "<b>" + _("New today:") + "</b>"
|
||||||
h['ntot_header'] = _("New total:")
|
h['ntot_header'] = "<b>" + _("New total:") + "</b>"
|
||||||
stats1 = ("""\
|
stats1 = ("""\
|
||||||
<table>
|
<table>
|
||||||
<tr><td width=80>%(cs_header)s</td><td width=50><b>%(repsInSesChg)s</b></td>
|
<tr><td width=190>%(cs_header)s</td><td width=50><b>%(repsInSesChg)s</b></td>
|
||||||
<td><b>%(repsInSes)s</b></td></tr>
|
<td><b>%(repsInSes)s</b></td></tr>
|
||||||
<tr><td>%(cd_header)s</td><td><b>%(repsTodayChg)s</b></td>
|
<tr><td>%(cd_header)s</td><td><b>%(repsTodayChg)s</b></td>
|
||||||
<td><b>%(repsToday)s</b></td></tr>
|
<td><b>%(repsToday)s</b></td></tr>
|
||||||
|
@ -1592,7 +1652,7 @@ day = :d""", d=yesterday)
|
||||||
|
|
||||||
stats2 = ("""\
|
stats2 = ("""\
|
||||||
<table>
|
<table>
|
||||||
<tr><td width=100>%(rd_header)s</td><td align=right><b>%(ret)s</b></td></tr>
|
<tr><td width=220>%(rd_header)s</td><td align=right><b>%(ret)s</b></td></tr>
|
||||||
<tr><td>%(ntod_header)s</td><td align=right><b>%(new)s</b></td></tr>
|
<tr><td>%(ntod_header)s</td><td align=right><b>%(new)s</b></td></tr>
|
||||||
<tr><td>%(ntot_header)s</td><td align=right>%(newof)s</td></tr>
|
<tr><td>%(ntot_header)s</td><td align=right>%(newof)s</td></tr>
|
||||||
</table>""") % h
|
</table>""") % h
|
||||||
|
@ -1603,10 +1663,11 @@ day = :d""", d=yesterday)
|
||||||
self.haveYesterday = True
|
self.haveYesterday = True
|
||||||
stats1 = (
|
stats1 = (
|
||||||
"<td>%s</td><td> </td>" % stats1)
|
"<td>%s</td><td> </td>" % stats1)
|
||||||
self.mainWin.optionsLabel.setText(top + """\
|
self.mainWin.optionsLabel.setText("""\
|
||||||
<p><table><tr>
|
<p><table><tr>
|
||||||
%s
|
%s
|
||||||
<td>%s</td></tr></table>""" % (stats1, stats2))
|
</tr><tr>
|
||||||
|
<td><hr>%s<hr></td></tr></table>""" % (stats1, stats2))
|
||||||
h['tt_header'] = _("Session Statistics")
|
h['tt_header'] = _("Session Statistics")
|
||||||
h['cs_tip'] = _("The number of cards you studied in the current \
|
h['cs_tip'] = _("The number of cards you studied in the current \
|
||||||
session (blue) and previous session (black)")
|
session (blue) and previous session (black)")
|
||||||
|
@ -1632,22 +1693,12 @@ learnt today")
|
||||||
def showStudyScreen(self):
|
def showStudyScreen(self):
|
||||||
# forget last card
|
# forget last card
|
||||||
self.lastCard = None
|
self.lastCard = None
|
||||||
self.mainWin.optionsButton.setChecked(self.config['showStudyOptions'])
|
|
||||||
self.mainWin.optionsBox.setShown(self.config['showStudyOptions'])
|
|
||||||
self.switchToStudyScreen()
|
self.switchToStudyScreen()
|
||||||
self.updateStudyStats()
|
self.updateStudyStats()
|
||||||
# start reviewing button
|
|
||||||
self.mainWin.buttonStack.hide()
|
|
||||||
if self.reviewingStarted:
|
|
||||||
self.mainWin.startReviewingButton.setText(_("Continue &Reviewing"))
|
|
||||||
else:
|
|
||||||
self.mainWin.startReviewingButton.setText(_("Start &Reviewing"))
|
|
||||||
self.mainWin.startReviewingButton.setFocus()
|
self.mainWin.startReviewingButton.setFocus()
|
||||||
self.setupStudyOptions()
|
self.setupStudyOptions()
|
||||||
|
self.mainWin.studyOptionsFrame.setFixedWidth(300)
|
||||||
self.mainWin.studyOptionsFrame.show()
|
self.mainWin.studyOptionsFrame.show()
|
||||||
if self.haveYesterday:
|
|
||||||
size = self.mainWin.optionsLabel.sizeHint().width() + 50
|
|
||||||
self.mainWin.studyOptionsFrame.setFixedWidth(size)
|
|
||||||
|
|
||||||
def setupStudyOptions(self):
|
def setupStudyOptions(self):
|
||||||
self.mainWin.newPerDay.setText(str(self.deck.newCardsPerDay))
|
self.mainWin.newPerDay.setText(str(self.deck.newCardsPerDay))
|
||||||
|
@ -1666,6 +1717,7 @@ learnt today")
|
||||||
labels = failedCardOptionLabels().values()[0:-1]
|
labels = failedCardOptionLabels().values()[0:-1]
|
||||||
self.mainWin.failedCardsOption.insertItems(0, labels)
|
self.mainWin.failedCardsOption.insertItems(0, labels)
|
||||||
self.mainWin.failedCardsOption.setCurrentIndex(self.deck.getFailedCardPolicy())
|
self.mainWin.failedCardsOption.setCurrentIndex(self.deck.getFailedCardPolicy())
|
||||||
|
self.mainWin.failedCardMax.setText(unicode(self.deck.failedCardMax))
|
||||||
|
|
||||||
def onStartReview(self):
|
def onStartReview(self):
|
||||||
def uf(obj, field, value):
|
def uf(obj, field, value):
|
||||||
|
@ -1675,15 +1727,6 @@ learnt today")
|
||||||
self.mainWin.studyOptionsFrame.hide()
|
self.mainWin.studyOptionsFrame.hide()
|
||||||
# make sure the size is updated before button stack shown
|
# make sure the size is updated before button stack shown
|
||||||
self.app.processEvents()
|
self.app.processEvents()
|
||||||
self.config['showStudyOptions'] = self.mainWin.optionsButton.isChecked()
|
|
||||||
try:
|
|
||||||
uf(self.deck, 'newCardsPerDay', int(self.mainWin.newPerDay.text()))
|
|
||||||
uf(self.deck, 'sessionTimeLimit', min(float(
|
|
||||||
self.mainWin.minuteLimit.text()), 3600) * 60)
|
|
||||||
uf(self.deck, 'sessionRepLimit',
|
|
||||||
int(self.mainWin.questionLimit.text()))
|
|
||||||
except (ValueError, OverflowError):
|
|
||||||
pass
|
|
||||||
uf(self.deck, 'newCardSpacing',
|
uf(self.deck, 'newCardSpacing',
|
||||||
self.mainWin.newCardScheduling.currentIndex())
|
self.mainWin.newCardScheduling.currentIndex())
|
||||||
uf(self.deck, 'revCardOrder',
|
uf(self.deck, 'revCardOrder',
|
||||||
|
@ -1890,9 +1933,6 @@ will be lost when you close the deck."""))
|
||||||
def onDonate(self):
|
def onDonate(self):
|
||||||
QDesktopServices.openUrl(QUrl(ankiqt.appDonate))
|
QDesktopServices.openUrl(QUrl(ankiqt.appDonate))
|
||||||
|
|
||||||
def onActiveTags(self):
|
|
||||||
ui.activetags.show(self)
|
|
||||||
|
|
||||||
# Importing & exporting
|
# Importing & exporting
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
|
@ -2374,7 +2414,6 @@ Are you sure?""" % deckName),
|
||||||
"Graphs",
|
"Graphs",
|
||||||
"Dstats",
|
"Dstats",
|
||||||
"Cstats",
|
"Cstats",
|
||||||
"ActiveTags",
|
|
||||||
"StudyOptions",
|
"StudyOptions",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -2426,7 +2465,6 @@ Are you sure?""" % deckName),
|
||||||
self.connect(m.actionOpenPluginFolder, s, self.onOpenPluginFolder)
|
self.connect(m.actionOpenPluginFolder, s, self.onOpenPluginFolder)
|
||||||
self.connect(m.actionEnableAllPlugins, s, self.onEnableAllPlugins)
|
self.connect(m.actionEnableAllPlugins, s, self.onEnableAllPlugins)
|
||||||
self.connect(m.actionDisableAllPlugins, s, self.onDisableAllPlugins)
|
self.connect(m.actionDisableAllPlugins, s, self.onDisableAllPlugins)
|
||||||
self.connect(m.actionActiveTags, s, self.onActiveTags)
|
|
||||||
self.connect(m.actionReleaseNotes, s, self.onReleaseNotes)
|
self.connect(m.actionReleaseNotes, s, self.onReleaseNotes)
|
||||||
self.connect(m.actionCacheLatex, s, self.onCacheLatex)
|
self.connect(m.actionCacheLatex, s, self.onCacheLatex)
|
||||||
self.connect(m.actionUncacheLatex, s, self.onUncacheLatex)
|
self.connect(m.actionUncacheLatex, s, self.onUncacheLatex)
|
||||||
|
@ -2980,8 +3018,6 @@ Consider backing up your media directory first."""))
|
||||||
def changeLayoutSpacing(self):
|
def changeLayoutSpacing(self):
|
||||||
if sys.platform.startswith("darwin"):
|
if sys.platform.startswith("darwin"):
|
||||||
self.mainWin.studyOptionsReviewBar.setContentsMargins(0, 20, 0, 0)
|
self.mainWin.studyOptionsReviewBar.setContentsMargins(0, 20, 0, 0)
|
||||||
self.mainWin.optionsBox.layout().setSpacing(10)
|
|
||||||
self.mainWin.optionsBox.layout().setContentsMargins(4, 10, 4, 4)
|
|
||||||
|
|
||||||
# Proxy support
|
# Proxy support
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
|
@ -11,27 +11,48 @@
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Inactive Tags</string>
|
<string>Selective Study</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label">
|
|
||||||
<property name="text">
|
|
||||||
<string>Cards with any of the selected tags below will not be shown.</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QListWidget" name="list">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<property name="selectionMode">
|
<item>
|
||||||
<enum>QAbstractItemView::MultiSelection</enum>
|
<widget class="QCheckBox" name="activeCheck">
|
||||||
</property>
|
<property name="text">
|
||||||
</widget>
|
<string>Show only cards with these tags:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QListWidget" name="activeList">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="selectionMode">
|
||||||
|
<enum>QAbstractItemView::MultiSelection</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="inactiveCheck">
|
||||||
|
<property name="text">
|
||||||
|
<string>Hide cards with these tags:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QListWidget" name="inactiveList">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="selectionMode">
|
||||||
|
<enum>QAbstractItemView::MultiSelection</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
|
@ -56,8 +77,8 @@
|
||||||
<slot>accept()</slot>
|
<slot>accept()</slot>
|
||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel">
|
<hint type="sourcelabel">
|
||||||
<x>248</x>
|
<x>358</x>
|
||||||
<y>254</y>
|
<y>264</y>
|
||||||
</hint>
|
</hint>
|
||||||
<hint type="destinationlabel">
|
<hint type="destinationlabel">
|
||||||
<x>157</x>
|
<x>157</x>
|
||||||
|
@ -81,5 +102,37 @@
|
||||||
</hint>
|
</hint>
|
||||||
</hints>
|
</hints>
|
||||||
</connection>
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>activeCheck</sender>
|
||||||
|
<signal>toggled(bool)</signal>
|
||||||
|
<receiver>activeList</receiver>
|
||||||
|
<slot>setEnabled(bool)</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>133</x>
|
||||||
|
<y>18</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>133</x>
|
||||||
|
<y>85</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>inactiveCheck</sender>
|
||||||
|
<signal>toggled(bool)</signal>
|
||||||
|
<receiver>inactiveList</receiver>
|
||||||
|
<slot>setEnabled(bool)</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>146</x>
|
||||||
|
<y>213</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>68</x>
|
||||||
|
<y>276</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
</connections>
|
</connections>
|
||||||
</ui>
|
</ui>
|
||||||
|
|
|
@ -486,40 +486,14 @@
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QGridLayout" name="gridLayout_5">
|
<layout class="QGridLayout" name="gridLayout_5">
|
||||||
<item row="1" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="label_12">
|
|
||||||
<property name="text">
|
|
||||||
<string><b>Maximum failed cards</b></string>
|
|
||||||
</property>
|
|
||||||
<property name="openExternalLinks">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<spacer name="horizontalSpacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2">
|
|
||||||
<widget class="QLineEdit" name="failedCardMax"/>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
|
||||||
<widget class="QLabel" name="label_29">
|
<widget class="QLabel" name="label_29">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string><b>New day starts at</b></string>
|
<string><b>New day starts at</b></string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="2" column="1">
|
||||||
<spacer name="horizontalSpacer_3">
|
<spacer name="horizontalSpacer_3">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
|
@ -532,7 +506,7 @@
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="2">
|
<item row="2" column="2">
|
||||||
<widget class="QLineEdit" name="timeOffset"/>
|
<widget class="QLineEdit" name="timeOffset"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
|
@ -565,38 +539,38 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="label_11">
|
<widget class="QLabel" name="label_11">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string><b>Suspend leeches</b></string>
|
<string><b>Suspend leeches</b></string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="2">
|
<item row="3" column="2">
|
||||||
<widget class="QCheckBox" name="suspendLeeches">
|
<widget class="QCheckBox" name="suspendLeeches">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0">
|
<item row="4" column="0">
|
||||||
<widget class="QLabel" name="label_15">
|
<widget class="QLabel" name="label_15">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string><b>Leech failure threshold</b></string>
|
<string><b>Leech failure threshold</b></string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="2">
|
<item row="4" column="2">
|
||||||
<widget class="QSpinBox" name="leechFails"/>
|
<widget class="QSpinBox" name="leechFails"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label_23">
|
<widget class="QLabel" name="label_23">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string><b>Per-day scheduling</b></string>
|
<string><b>Per-day scheduling</b></string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="2">
|
<item row="1" column="2">
|
||||||
<widget class="QCheckBox" name="perDay">
|
<widget class="QCheckBox" name="perDay">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
|
@ -658,11 +632,10 @@
|
||||||
<tabstop>easyMin</tabstop>
|
<tabstop>easyMin</tabstop>
|
||||||
<tabstop>easyMax</tabstop>
|
<tabstop>easyMax</tabstop>
|
||||||
<tabstop>collapse</tabstop>
|
<tabstop>collapse</tabstop>
|
||||||
<tabstop>failedCardMax</tabstop>
|
<tabstop>perDay</tabstop>
|
||||||
<tabstop>timeOffset</tabstop>
|
<tabstop>timeOffset</tabstop>
|
||||||
<tabstop>suspendLeeches</tabstop>
|
<tabstop>suspendLeeches</tabstop>
|
||||||
<tabstop>leechFails</tabstop>
|
<tabstop>leechFails</tabstop>
|
||||||
<tabstop>perDay</tabstop>
|
|
||||||
<tabstop>buttonBox</tabstop>
|
<tabstop>buttonBox</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|
730
designer/main.ui
730
designer/main.ui
|
@ -6,7 +6,7 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>617</width>
|
<width>605</width>
|
||||||
<height>563</height>
|
<height>563</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
@ -774,30 +774,23 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QFrame" name="studyOptionsFrame">
|
<widget class="QFrame" name="studyOptionsFrame">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::StyledPanel</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShadow">
|
<property name="frameShadow">
|
||||||
<enum>QFrame::Raised</enum>
|
<enum>QFrame::Raised</enum>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_11">
|
<layout class="QVBoxLayout" name="verticalLayout_11">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="margin">
|
<property name="margin">
|
||||||
<number>10</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="optionsLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="textInteractionFlags">
|
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer_4">
|
<spacer name="verticalSpacer_4">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
@ -815,185 +808,503 @@
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="Line" name="line_2">
|
<widget class="QTabWidget" name="tabWidget">
|
||||||
<property name="maximumSize">
|
<property name="tabShape">
|
||||||
<size>
|
<enum>QTabWidget::Rounded</enum>
|
||||||
<width>400</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="orientation">
|
<property name="currentIndex">
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QGridLayout" name="studyOptionsLayout1">
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>2</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<property name="horizontalSpacing">
|
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="verticalSpacing">
|
<widget class="QWidget" name="tab">
|
||||||
<number>6</number>
|
<attribute name="title">
|
||||||
</property>
|
<string>New Cards</string>
|
||||||
<item row="1" column="0">
|
</attribute>
|
||||||
<widget class="QLabel" name="label_20">
|
<layout class="QVBoxLayout" name="verticalLayout_19">
|
||||||
<property name="minimumSize">
|
<property name="leftMargin">
|
||||||
<size>
|
<number>15</number>
|
||||||
<width>140</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="topMargin">
|
||||||
<string>The <b>number of minutes in a session</b>. When a session is finished, this screen will be shown again, allowing you to start another session. Choose 0 for no limit.</string>
|
<number>15</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="rightMargin">
|
||||||
<string><b>Session limit (minutes):</b></string>
|
<number>15</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="margin">
|
<property name="bottomMargin">
|
||||||
<number>4</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<item>
|
||||||
</item>
|
<layout class="QGridLayout" name="studyOptionsLayout1">
|
||||||
<item row="1" column="1">
|
<property name="leftMargin">
|
||||||
<widget class="QLineEdit" name="minuteLimit">
|
<number>2</number>
|
||||||
<property name="sizePolicy">
|
</property>
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
<property name="topMargin">
|
||||||
<horstretch>0</horstretch>
|
<number>0</number>
|
||||||
<verstretch>0</verstretch>
|
</property>
|
||||||
</sizepolicy>
|
<property name="horizontalSpacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="verticalSpacing">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_22">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>140</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The maximum number of <b>new cards shown per day</b>. The default is 20, to ensure you don't get overwhelmed with reviews after a few days.</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string><b>New Cards/Day:</b></string>
|
||||||
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<spacer name="horizontalSpacer_3">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="3">
|
||||||
|
<widget class="QLineEdit" name="newPerDay">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>50</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_12">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>10</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string><b>Display Order:</b></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="newCardOrder"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="newCardScheduling"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_14">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>10</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string><b>Selective Study:</b></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_6">
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QPushButton" name="newCategories">
|
||||||
|
<property name="text">
|
||||||
|
<string>&Change</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<spacer name="horizontalSpacer_8">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="newCategoryLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>15</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWidget" name="tab_2">
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Reviews</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>15</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
<property name="topMargin">
|
||||||
<size>
|
<number>15</number>
|
||||||
<width>50</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="rightMargin">
|
||||||
</item>
|
<number>15</number>
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="label_22">
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>140</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="bottomMargin">
|
||||||
<string>The maximum number of <b>new cards shown per day</b>. The default is 20, to ensure you don't get overwhelmed with reviews after a few days.</string>
|
<number>8</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<item>
|
||||||
<string><b>New cards per day:</b></string>
|
<layout class="QGridLayout" name="gridLayout_4">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_7">
|
||||||
|
<property name="text">
|
||||||
|
<string><b>Max Failed Cards:</b></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<spacer name="horizontalSpacer_6">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QLineEdit" name="failedCardMax">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>50</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_15">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>10</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string><b>Display Order:</b></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="revCardOrder"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="failedCardsOption"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_16">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>10</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string><b>Selective Study:</b></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_7">
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="QPushButton" name="revCategories">
|
||||||
|
<property name="text">
|
||||||
|
<string>&Change</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<spacer name="horizontalSpacer_9">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="revCategoryLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_11">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>15</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_5">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QPushButton" name="advancedOptions">
|
||||||
|
<property name="text">
|
||||||
|
<string>&Advanced</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWidget" name="tab_3">
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Timeboxing</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_20">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>15</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="margin">
|
<property name="topMargin">
|
||||||
<number>4</number>
|
<number>5</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="rightMargin">
|
||||||
</item>
|
<number>15</number>
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QLineEdit" name="newPerDay">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
<property name="bottomMargin">
|
||||||
<size>
|
<number>0</number>
|
||||||
<width>50</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<item>
|
||||||
</item>
|
<layout class="QGridLayout" name="gridLayout_3">
|
||||||
<item row="0" column="2">
|
<item row="0" column="0">
|
||||||
<spacer name="horizontalSpacer_3">
|
<spacer name="horizontalSpacer_4">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>40</width>
|
<width>40</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QLineEdit" name="questionLimit">
|
<widget class="QLabel" name="optionsLabel">
|
||||||
<property name="sizePolicy">
|
<property name="text">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
<string/>
|
||||||
<horstretch>0</horstretch>
|
</property>
|
||||||
<verstretch>0</verstretch>
|
<property name="textInteractionFlags">
|
||||||
</sizepolicy>
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
</widget>
|
||||||
<size>
|
</item>
|
||||||
<width>50</width>
|
<item row="0" column="2">
|
||||||
<height>16777215</height>
|
<spacer name="horizontalSpacer_5">
|
||||||
</size>
|
<property name="orientation">
|
||||||
</property>
|
<enum>Qt::Horizontal</enum>
|
||||||
</widget>
|
</property>
|
||||||
</item>
|
<property name="sizeHint" stdset="0">
|
||||||
<item row="2" column="0">
|
<size>
|
||||||
<widget class="QLabel" name="label">
|
<width>40</width>
|
||||||
<property name="toolTip">
|
<height>20</height>
|
||||||
<string>The <b>number of questions in a session</b>. When a session is finished, this screen will be shown again, allowing you to start another session. Choose 0 for no limit.</string>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
</spacer>
|
||||||
<string><b>Session limit (questions):</b></string>
|
</item>
|
||||||
</property>
|
</layout>
|
||||||
<property name="margin">
|
</item>
|
||||||
<number>4</number>
|
<item>
|
||||||
</property>
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
</widget>
|
<item row="0" column="0">
|
||||||
</item>
|
<widget class="QLabel" name="label_20">
|
||||||
</layout>
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>140</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The <b>number of minutes in a session</b>. When a session is finished, this screen will be shown again, allowing you to start another session. Choose 0 for no limit.</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string><b>Session limit (minutes):</b></string>
|
||||||
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="minuteLimit">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>50</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The <b>number of questions in a session</b>. When a session is finished, this screen will be shown again, allowing you to start another session. Choose 0 for no limit.</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string><b>Session limit (questions):</b></string>
|
||||||
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="questionLimit">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>50</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_13">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::MinimumExpanding</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>15</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_12">
|
<layout class="QVBoxLayout" name="verticalLayout_12">
|
||||||
<item>
|
|
||||||
<widget class="QWidget" name="optionsBox" native="true">
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
|
||||||
<property name="spacing">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>2</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QComboBox" name="newCardOrder"/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QComboBox" name="newCardScheduling"/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QComboBox" name="revCardOrder"/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QComboBox" name="failedCardsOption"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<layout class="QGridLayout" name="studyOptionsReviewBar">
|
<layout class="QGridLayout" name="studyOptionsReviewBar">
|
||||||
<property name="topMargin">
|
<property name="topMargin">
|
||||||
<number>20</number>
|
<number>10</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="horizontalSpacing">
|
<property name="horizontalSpacing">
|
||||||
<number>10</number>
|
<number>10</number>
|
||||||
|
@ -1028,28 +1339,6 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QPushButton" name="optionsButton">
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>26</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>More</string>
|
|
||||||
</property>
|
|
||||||
<property name="checkable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="checked">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="flat">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2">
|
|
||||||
<widget class="QPushButton" name="optionsHelpButton">
|
<widget class="QPushButton" name="optionsHelpButton">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
|
@ -2715,7 +3004,7 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>617</width>
|
<width>605</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
@ -2835,8 +3124,6 @@
|
||||||
<addaction name="menuStartup"/>
|
<addaction name="menuStartup"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
</widget>
|
</widget>
|
||||||
<addaction name="actionActiveTags"/>
|
|
||||||
<addaction name="separator"/>
|
|
||||||
<addaction name="actionStudyOptions"/>
|
<addaction name="actionStudyOptions"/>
|
||||||
<addaction name="actionDisplayProperties"/>
|
<addaction name="actionDisplayProperties"/>
|
||||||
<addaction name="actionDeckProperties"/>
|
<addaction name="actionDeckProperties"/>
|
||||||
|
@ -3476,51 +3763,38 @@
|
||||||
</action>
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<tabstops>
|
<tabstops>
|
||||||
<tabstop>newPerDay</tabstop>
|
<tabstop>easeButton3</tabstop>
|
||||||
<tabstop>minuteLimit</tabstop>
|
<tabstop>easeButton4</tabstop>
|
||||||
<tabstop>questionLimit</tabstop>
|
|
||||||
<tabstop>newCardOrder</tabstop>
|
|
||||||
<tabstop>newCardScheduling</tabstop>
|
|
||||||
<tabstop>revCardOrder</tabstop>
|
|
||||||
<tabstop>failedCardsOption</tabstop>
|
|
||||||
<tabstop>startReviewingButton</tabstop>
|
|
||||||
<tabstop>optionsButton</tabstop>
|
|
||||||
<tabstop>optionsHelpButton</tabstop>
|
|
||||||
<tabstop>learnMoreButton</tabstop>
|
<tabstop>learnMoreButton</tabstop>
|
||||||
<tabstop>reviewEarlyButton</tabstop>
|
<tabstop>reviewEarlyButton</tabstop>
|
||||||
<tabstop>finishButton</tabstop>
|
<tabstop>finishButton</tabstop>
|
||||||
<tabstop>downloadDeckButton</tabstop>
|
<tabstop>downloadDeckButton</tabstop>
|
||||||
<tabstop>newDeckButton</tabstop>
|
<tabstop>newDeckButton</tabstop>
|
||||||
<tabstop>importDeckButton</tabstop>
|
<tabstop>importDeckButton</tabstop>
|
||||||
|
<tabstop>newPerDay</tabstop>
|
||||||
|
<tabstop>newCardOrder</tabstop>
|
||||||
|
<tabstop>newCardScheduling</tabstop>
|
||||||
|
<tabstop>newCategories</tabstop>
|
||||||
|
<tabstop>startReviewingButton</tabstop>
|
||||||
|
<tabstop>optionsHelpButton</tabstop>
|
||||||
|
<tabstop>failedCardMax</tabstop>
|
||||||
|
<tabstop>revCardOrder</tabstop>
|
||||||
|
<tabstop>failedCardsOption</tabstop>
|
||||||
|
<tabstop>revCategories</tabstop>
|
||||||
|
<tabstop>advancedOptions</tabstop>
|
||||||
|
<tabstop>minuteLimit</tabstop>
|
||||||
|
<tabstop>questionLimit</tabstop>
|
||||||
|
<tabstop>welcomeText</tabstop>
|
||||||
|
<tabstop>saveEditorButton</tabstop>
|
||||||
<tabstop>easeButton1</tabstop>
|
<tabstop>easeButton1</tabstop>
|
||||||
<tabstop>easeButton2</tabstop>
|
<tabstop>easeButton2</tabstop>
|
||||||
<tabstop>easeButton3</tabstop>
|
|
||||||
<tabstop>easeButton4</tabstop>
|
|
||||||
<tabstop>saveEditorButton</tabstop>
|
|
||||||
<tabstop>showAnswerButton</tabstop>
|
<tabstop>showAnswerButton</tabstop>
|
||||||
<tabstop>help</tabstop>
|
<tabstop>help</tabstop>
|
||||||
<tabstop>noticeButton</tabstop>
|
<tabstop>noticeButton</tabstop>
|
||||||
<tabstop>welcomeText</tabstop>
|
<tabstop>tabWidget</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="../icons.qrc"/>
|
<include location="../icons.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections>
|
<connections/>
|
||||||
<connection>
|
|
||||||
<sender>optionsButton</sender>
|
|
||||||
<signal>toggled(bool)</signal>
|
|
||||||
<receiver>optionsBox</receiver>
|
|
||||||
<slot>setShown(bool)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>218</x>
|
|
||||||
<y>250</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>222</x>
|
|
||||||
<y>300</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
</connections>
|
|
||||||
</ui>
|
</ui>
|
||||||
|
|
Loading…
Reference in a new issue