simplify preferences, more tweaks to study page

This commit is contained in:
Damien Elmes 2009-01-10 16:53:47 +09:00
parent 3268dce5b1
commit 089f22c171
7 changed files with 435 additions and 704 deletions

View file

@ -57,7 +57,6 @@ class Config(dict):
'saveAfterAddingNum': 3,
'saveOnClose': True,
'mainWindowGeom': None,
'easeButtonHeight': 'standard',
'suppressUpdate': False,
'suppressEstimates': False,
'showLastCardInterval': False,
@ -84,30 +83,6 @@ class Config(dict):
# guess interface and target languages
(lang, enc) = locale.getdefaultlocale()
self['interfaceLang'] = lang
self.initFonts()
def initFonts(self):
defaultColours = {
'lastCard': "#0077FF",
'background': "#FFFFFF",
'interface': "#000000",
}
defaultSizes = {
'interface': 12,
'lastCard': 14,
'edit': 12,
'other': 24,
}
# fonts
for n in ("interface", "lastCard", "edit"):
if not self.get(n + "FontFamily", None):
self[n + "FontFamily"] = "Arial"
self[n + "FontSize"] = defaultSizes.get(n, defaultSizes['other'])
# colours
for n in ("interface", "lastCard", "background"):
color = n + "Colour"
if not color in self:
self[color] = defaultColours[n]
def getDbPath(self):
return os.path.join(self.configPath, self.configDbName)

View file

@ -51,8 +51,8 @@ class HelpArea(object):
else:
font = "arial"
# qt seems to ignore font-size on elements like h1
style = ("<style>#content { font-family: %s; " +
"font-size: 12px; }</style>\n") % font
style = "" #("<style>#content { font-family: %s; " +
#"font-size: 12px; }</style>\n") % font
self.widget.setHtml(style + '<div id="content">' +
self.buffer + '</div>')

View file

@ -415,13 +415,10 @@ new:
##########################################################################
def setupButtons(self):
if self.config['easeButtonHeight'] == "tall":
self.easeButtonHeight = 50
if sys.platform.startswith("darwin"):
self.easeButtonHeight = 35
else:
if sys.platform.startswith("darwin"):
self.easeButtonHeight = 35
else:
self.easeButtonHeight = 25
self.easeButtonHeight = 25
# ask
self.mainWin.showAnswerButton.setFixedHeight(self.easeButtonHeight)
self.connect(self.mainWin.showAnswerButton, SIGNAL("clicked()"),
@ -489,20 +486,10 @@ new:
if self.config['suppressEstimates']:
l.setText("")
elif i == 1:
l.setText(self.withInterfaceFont(_("Soon")))
l.setText(_("Soon"))
else:
l.setText(self.withInterfaceFont("<b>" +
self.deck.nextIntervalStr(self.currentCard, i) + "</b>"))
def withInterfaceFont(self, text):
family = self.config["interfaceFontFamily"]
size = self.config["interfaceFontSize"]
colour = self.config["interfaceColour"]
css = ('.interface {font-family: "%s"; font-size: %spx; color: %s}\n' %
(family, size, colour))
css = "<style>\n" + css + "</style>\n"
text = css + '<span class="interface">' + text + "</span>"
return text
l.setText("<b>" + self.deck.nextIntervalStr(
self.currentCard, i) + "</b>")
# Deck loading & saving: backend
##########################################################################
@ -967,6 +954,8 @@ To upgrade an old deck, download Anki 0.9.8.7."""))
self.mainWin.optionsBox.setShown(False)
self.connect(self.mainWin.minuteLimit,
SIGNAL("textChanged(QString)"), self.onMinuteLimitChanged)
self.connect(self.mainWin.newPerDay,
SIGNAL("textChanged(QString)"), self.onNewLimitChanged)
def onMinuteLimitChanged(self, qstr):
try:
@ -976,6 +965,15 @@ To upgrade an old deck, download Anki 0.9.8.7."""))
pass
self.updateStudyStats()
def onNewLimitChanged(self, qstr):
try:
self.deck.newCardsPerDay = int(self.mainWin.newPerDay.text())
except ValueError:
pass
self.deck.checkDue()
self.statusView.redraw()
self.updateStudyStats()
def updateStudyStats(self):
initial = self.deck.sessionStartTime == 0
if initial:
@ -988,7 +986,7 @@ To upgrade an old deck, download Anki 0.9.8.7."""))
# top label
h = {}
s = self.deck.getStats()
h['ret'] = '<font color=#0077ff>%s</font>' % (s['rev']+s['failed'])
h['ret'] = '<font color=#0000ff>%s</font>' % (s['rev']+s['failed'])
h['new'] = '<font color=#0000ff>%s</font>' % s['new']
h['newof'] = '%s' % self.deck.newCount
dtoday = s['dTotal']
@ -1000,8 +998,8 @@ day = :d""", d=yesterday)
(dyest, tyest) = res
else:
dyest = 0; tyest = 0
h['repsToday'] = '<font color=#007700>%s</font>' % dtoday
h['repsTodayChg'] = '<font color=#0000cc>%s</font>' % dyest
h['repsToday'] = '<font color=#0000cc>%s</font>' % dtoday
h['repsTodayChg'] = '<font color=#00aa00>%s</font>' % dyest
limit = self.deck.sessionTimeLimit
start = self.deck.sessionStartTime or time.time() - limit
start2 = self.deck.lastSessionStart or start - limit
@ -1012,30 +1010,31 @@ day = :d""", d=yesterday)
"select count(*) from reviewHistory where "
"time >= :t and time < :t2",
t=start2, t2=start)
h['repsInSes'] = '<font color=#007700>%s</font>' % last10
h['repsInSesChg'] = '<font color=#0000cc>%s</font>' % last20
h['repsInSes'] = '<font color=#0000cc>%s</font>' % last10
h['repsInSesChg'] = '<font color=#00aa00>%s</font>' % last20
ttoday = s['dReviewTime']
h['timeToday'] = '<font color=#007700>%s</font>' % (
h['timeToday'] = '<font color=#0000cc>%s</font>' % (
anki.utils.fmtTimeSpan(ttoday, short=True, point=1))
h['timeTodayChg'] = '<font color=#0000cc>%s</font>' % (
h['timeTodayChg'] = '<font color=#00aa00>%s</font>' % (
anki.utils.fmtTimeSpan(tyest, short=True, point=1))
self.mainWin.optionsLabel.setText(top + _("""\
<p>
<table width=300>
<tr><td>
<table width=150>
<tr><td>Session:&nbsp;&nbsp;</td><td><b>%(repsInSes)s</b></td>
<tr><td>Session reps:&nbsp;&nbsp;</td><td><b>%(repsInSes)s</b></td>
<td>%(repsInSesChg)s</td></tr>
<tr><td>Day:</td><td><b>%(repsToday)s</b></td>
<tr><td>Day reps:</td><td><b>%(repsToday)s</b></td>
<td>%(repsTodayChg)s</td></tr>
<tr><td>Time:</td><td><b>%(timeToday)s</b></td>
<td>%(timeTodayChg)s</td></tr>
</table></td>
<td><table>
<tr><td>Review: </td><td align=right><b>%(ret)s</b></td></tr>
<tr><td>New today:</td><td align=right><b>%(new)s</b></td></tr>
<tr><td>New total:</td><td align=right><b>%(newof)s</b></td></tr>
</table></td></tr></table>""") % h)
</table>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td>
<table width=150>
<tr><td>Reviews today:</td><td align=right><b>%(ret)s</b></td></tr>
<tr><td>New today:</td><td align=right><b>%(new)s</b></td><td>&nbsp;(of %(newof)s)</td></tr>
</table>
</td></tr></table>""") % h)
def showStudyScreen(self):

View file

@ -39,8 +39,6 @@ class Preferences(QDialog):
]
self.connect(self.dialog.buttonBox, SIGNAL("helpRequested()"), self.helpRequested)
self.setupLang()
self.setupFont()
self.setupColour()
self.setupSync()
self.setupSave()
self.setupAdvanced()
@ -75,66 +73,6 @@ class Preferences(QDialog):
self.parent.setLang()
self.dialog.retranslateUi(self)
fonts = (
"interface",
)
def loadCurrentFonts(self):
for font in self.fonts:
# family init
getattr(self.dialog, font + "Family").setCurrentFont(QFont(
self.config[font + "FontFamily"]))
# size init
getattr(self.dialog, font + "Size").setValue(
self.config[font + "FontSize"])
def setupFont(self):
self.loadCurrentFonts()
for font in self.fonts:
# family change
family = font + "Family"
chngFunc = lambda qfont, type=font: self.familyChanged(qfont, type)
self.connect(getattr(self.dialog, family),
SIGNAL("currentFontChanged(QFont)"),
chngFunc)
# size change
size = font + "Size"
chngFunc = lambda size, type=font: self.sizeChanged(size, type)
self.connect(getattr(self.dialog, size),
SIGNAL("valueChanged(int)"),
chngFunc)
def familyChanged(self, qfont, type):
self.config[type + "FontFamily"] = unicode(qfont.family())
getattr(self.dialog, type + "Family").setFocus()
def sizeChanged(self, size, type):
self.config[type + "FontSize"] = size
getattr(self.dialog, type + "Size").setFocus()
def setupColour(self):
self.plastiqueStyle = None
if (sys.platform.startswith("darwin") or
sys.platform.startswith("win32")):
# mac widgets don't show colours
self.plastiqueStyle = QStyleFactory.create("plastique")
for c in ("interface", "background"):
colour = c + "Colour"
button = getattr(self.dialog, colour)
if self.plastiqueStyle:
button.setStyle(self.plastiqueStyle)
button.setPalette(QPalette(QColor(
self.config[colour])))
self.connect(button, SIGNAL("clicked()"),
lambda b=button, t=c, : self.colourClicked(b, t))
def colourClicked(self, button, type):
new = QColorDialog.getColor(button.palette().window().color(), self)
if new.isValid():
self.config[type + "Colour"] = str(new.name())
button.setPalette(QPalette(new))
def setupSync(self):
self.dialog.syncOnOpen.setChecked(self.config['syncOnLoad'])
self.dialog.syncOnClose.setChecked(self.config['syncOnClose'])
@ -163,46 +101,27 @@ class Preferences(QDialog):
def setupAdvanced(self):
self.dialog.showToolbar.setChecked(self.config['showToolbar'])
self.dialog.tallButtons.setChecked(
self.config['easeButtonHeight'] != 'standard')
self.dialog.showEstimates.setChecked(not self.config['suppressEstimates'])
self.dialog.showStudyOptions.setChecked(self.config['showStudyScreen'])
self.dialog.showLastCardInterval.setChecked(self.config['showLastCardInterval'])
self.dialog.showLastCardContent.setChecked(self.config['showLastCardContent'])
self.dialog.showTray.setChecked(self.config['showTrayIcon'])
self.dialog.showTimer.setChecked(self.config['showTimer'])
self.dialog.simpleToolbar.setChecked(self.config['simpleToolbar'])
self.dialog.scrollToAnswer.setChecked(self.config['scrollToAnswer'])
self.dialog.showDivider.setChecked(self.config['qaDivider'])
self.dialog.splitQA.setChecked(self.config['splitQA'])
self.dialog.addZeroSpace.setChecked(self.config['addZeroSpace'])
self.dialog.alternativeTheme.setChecked(self.config['alternativeTheme'])
self.dialog.toolbarIconSize.setText(str(self.config['iconSize']))
def updateAdvanced(self):
self.config['showToolbar'] = self.dialog.showToolbar.isChecked()
if self.dialog.tallButtons.isChecked():
self.config['easeButtonHeight'] = 'tall'
else:
self.config['easeButtonHeight'] = 'standard'
self.config['showLastCardInterval'] = self.dialog.showLastCardInterval.isChecked()
self.config['showLastCardContent'] = self.dialog.showLastCardContent.isChecked()
self.config['showTrayIcon'] = self.dialog.showTray.isChecked()
self.config['showTimer'] = self.dialog.showTimer.isChecked()
self.config['suppressEstimates'] = not self.dialog.showEstimates.isChecked()
self.config['showStudyScreen'] = self.dialog.showStudyOptions.isChecked()
self.config['simpleToolbar'] = self.dialog.simpleToolbar.isChecked()
self.config['scrollToAnswer'] = self.dialog.scrollToAnswer.isChecked()
self.config['qaDivider'] = self.dialog.showDivider.isChecked()
self.config['splitQA'] = self.dialog.splitQA.isChecked()
self.config['addZeroSpace'] = self.dialog.addZeroSpace.isChecked()
self.config['alternativeTheme'] = self.dialog.alternativeTheme.isChecked()
i = 32
try:
i = int(self.dialog.toolbarIconSize.text())
except:
pass
self.config['iconSize'] = i
def codeToIndex(self, code):
n = 0

View file

@ -8,6 +8,7 @@ import anki, anki.utils
from anki.sound import playFromText, stripSounds
from anki.latex import renderLatex, stripLatex
from anki.utils import stripHTML
from anki.hooks import runHook
import types, time, re, os, urllib, sys
from ankiqt import ui
from ankiqt.ui.utils import mungeQA
@ -50,7 +51,6 @@ class View(object):
if self.state == "noDeck" or self.state == "studyScreen":
return
self.clearWindow()
self.setBackgroundColour()
self.haveTop = (self.main.lastCard and (
self.main.config['showLastCardContent'] or
self.main.config['showLastCardInterval']))
@ -81,16 +81,6 @@ class View(object):
s = "<style>\n"
if self.main.deck:
s += self.main.deck.css
# last card
for base in ("lastCard", "interface"):
family = self.main.config[base + "FontFamily"]
size = self.main.config[base + "FontSize"]
color = ("; color: " + self.main.config[base + "Colour"])
s += ('.%s {font-family: "%s"; font-size: %spx%s}\n' %
(base, family, size, color))
s += ("body { background-color: " +
self.main.config["backgroundColour"] +
";}\n")
s += "div { white-space: pre-wrap; }"
s += "</style>"
return s
@ -104,24 +94,16 @@ class View(object):
def flush(self):
"Write the current HTML buffer to the screen."
txt = (self.addStyles() + '''
<div class="interface">''' +
self.buffer + '</div>')
self.body.setHtml(txt)
self.buffer = self.addStyles() + self.buffer
# hook for user css
runHook("preFlushHook")
self.body.setHtml(self.buffer)
def write(self, text):
if type(text) != types.UnicodeType:
text = unicode(text, "utf-8")
self.buffer += text
def setBackgroundColour(self):
p = QPalette()
p.setColor(QPalette.Base, QColor(self.main.config['backgroundColour']))
self.body.setPalette(p)
if self.frame:
p.setColor(QPalette.Background, QColor(self.main.config['backgroundColour']))
self.frame.setPalette(p)
# Question and answer
##########################################################################
@ -141,7 +123,7 @@ class View(object):
if self.haveTop:
height = 35
else:
height = 40
height = 45
self.write(self.center(self.mungeQA(self.main.deck, q), height))
if self.state != self.oldState and not nosound:
playFromText(q)
@ -283,6 +265,10 @@ Start adding your own material.</td>
class AnkiWebView(QWebView):
def __init__(self, *args):
QWebView.__init__(self, *args)
self.setObjectName("mainText")
def keyPressEvent(self, evt):
if evt.matches(QKeySequence.Copy):
self.triggerPageAction(QWebPage.Copy)

View file

@ -5,8 +5,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>562</width>
<height>469</height>
<width>569</width>
<height>454</height>
</rect>
</property>
<property name="sizePolicy" >
@ -27,8 +27,8 @@
<rect>
<x>0</x>
<y>69</y>
<width>562</width>
<height>380</height>
<width>569</width>
<height>365</height>
</rect>
</property>
<property name="sizePolicy" >
@ -154,8 +154,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>277</width>
<height>302</height>
<width>284</width>
<height>280</height>
</rect>
</property>
</widget>
@ -207,304 +207,212 @@
<rect>
<x>0</x>
<y>0</y>
<width>100</width>
<height>30</height>
<width>284</width>
<height>280</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_5" >
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4" >
<layout class="QGridLayout" name="gridLayout_3" >
<property name="verticalSpacing" >
<number>0</number>
</property>
<item row="0" column="0" >
<layout class="QVBoxLayout" name="verticalLayout_11" >
<property name="spacing" >
<number>0</number>
</property>
<property name="topMargin" >
<number>4</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_11" >
<widget class="QLabel" name="optionsLabel" >
<property name="text" >
<string>&lt;h1>Welcome!&lt;/h1></string>
</property>
<property name="textInteractionFlags" >
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_4" >
<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>6</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="Line" name="line_2" >
<property name="maximumSize" >
<size>
<width>400</width>
<height>16777215</height>
</size>
</property>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_13" >
<property name="leftMargin" >
<number>2</number>
</property>
<property name="topMargin" >
<number>6</number>
</property>
<property name="spacing" >
<number>0</number>
</property>
<property name="topMargin" >
<number>4</number>
</property>
<item>
<widget class="QLabel" name="optionsLabel" >
<property name="text" >
<string>&lt;h1>Welcome!&lt;/h1></string>
<item row="1" column="0" >
<widget class="QLabel" name="label_20" >
<property name="minimumSize" >
<size>
<width>140</width>
<height>0</height>
</size>
</property>
<property name="textInteractionFlags" >
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
<property name="text" >
<string>&lt;b>Session limit (mins):&lt;/b></string>
</property>
<property name="margin" >
<number>4</number>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_4" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
<item row="1" column="1" >
<widget class="QLineEdit" name="minuteLimit" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="sizeType" >
<enum>QSizePolicy::Fixed</enum>
<property name="maximumSize" >
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<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="text" >
<string>&lt;b>New cards per day:&lt;/b></string>
</property>
<property name="margin" >
<number>4</number>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="newPerDay" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize" >
<size>
<width>50</width>
<height>16777215</height>
</size>
</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>20</width>
<height>6</height>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="Line" name="line_2" >
<item row="2" column="1" >
<widget class="QLineEdit" name="questionLimit" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize" >
<size>
<width>400</width>
<width>50</width>
<height>16777215</height>
</size>
</property>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</widget>
</item>
<item row="2" column="0" >
<widget class="QLabel" name="label" >
<property name="text" >
<string>&lt;b>Session limit (reps):</string>
</property>
<property name="margin" >
<number>4</number>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox" >
<property name="title" >
<string/>
<item row="3" column="0" >
<layout class="QHBoxLayout" name="horizontalLayout_2" >
<property name="topMargin" >
<number>4</number>
</property>
<property name="flat" >
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_9" >
<property name="bottomMargin" >
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout_13" >
<property name="leftMargin" >
<number>2</number>
</property>
<property name="spacing" >
<number>0</number>
</property>
<item row="1" column="0" >
<widget class="QLabel" name="label_20" >
<property name="minimumSize" >
<size>
<width>90</width>
<height>0</height>
</size>
</property>
<property name="text" >
<string>&lt;b>Minute limit:&lt;/b></string>
</property>
</widget>
</item>
<item row="1" column="2" >
<widget class="QLineEdit" name="minuteLimit" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Maximum" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize" >
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="2" column="0" >
<widget class="QLabel" name="label_21" >
<property name="text" >
<string>&lt;b>Question limit:&lt;/b></string>
</property>
</widget>
</item>
<item row="2" column="2" >
<widget class="QLineEdit" name="questionLimit" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
<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="3" >
<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="0" >
<widget class="QLabel" name="label_22" >
<property name="minimumSize" >
<size>
<width>90</width>
<height>0</height>
</size>
</property>
<property name="text" >
<string>&lt;b>New per day:&lt;/b></string>
</property>
</widget>
</item>
<item row="0" column="2" >
<widget class="QLineEdit" name="newPerDay" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize" >
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="0" column="1" >
<spacer name="horizontalSpacer_5" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType" >
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0" >
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2" >
<item>
<widget class="QPushButton" name="optionsButton" >
<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>
<widget class="QPushButton" name="optionsHelpButton" >
<property name="text" >
<string>Help</string>
</property>
</widget>
</item>
<item>
<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>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_12" >
<item>
<widget class="QGroupBox" name="optionsBox" >
<property name="maximumSize" >
<size>
<width>400</width>
<height>16777215</height>
</size>
<widget class="QPushButton" name="optionsButton" >
<property name="text" >
<string>More>></string>
</property>
<property name="title" >
<string/>
</property>
<property name="flat" >
<property name="checkable" >
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8" >
<property name="topMargin" >
<number>0</number>
</property>
<item>
<widget class="QComboBox" name="newCardOrder" >
<property name="maximumSize" >
<size>
<width>400</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="newCardScheduling" >
<property name="maximumSize" >
<size>
<width>400</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="revCardOrder" >
<property name="maximumSize" >
<size>
<width>400</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="delayLapsedCards" >
<property name="text" >
<string>Show failed cards last</string>
</property>
</widget>
</item>
</layout>
<property name="checked" >
<bool>false</bool>
</property>
<property name="flat" >
<bool>false</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_3" >
<widget class="QPushButton" name="optionsHelpButton" >
<property name="text" >
<string>Help</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0" >
<size>
<width>20</width>
<height>40</height>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
@ -514,20 +422,98 @@
</layout>
</item>
<item>
<spacer name="horizontalSpacer_4" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0" >
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
<layout class="QVBoxLayout" name="verticalLayout_12" >
<item>
<widget class="QWidget" native="1" name="optionsBox" >
<layout class="QVBoxLayout" name="verticalLayout_7" >
<property name="spacing" >
<number>4</number>
</property>
<property name="leftMargin" >
<number>2</number>
</property>
<property name="topMargin" >
<number>4</number>
</property>
<property name="rightMargin" >
<number>0</number>
</property>
<property name="bottomMargin" >
<number>0</number>
</property>
<item>
<widget class="QComboBox" name="newCardOrder" >
<property name="minimumSize" >
<size>
<width>250</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="newCardScheduling" >
<property name="maximumSize" >
<size>
<width>400</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="revCardOrder" >
<property name="maximumSize" >
<size>
<width>400</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="delayLapsedCards" >
<property name="text" >
<string>Show failed cards last</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_3" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0" >
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
<item row="0" column="1" >
<spacer name="horizontalSpacer_4" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType" >
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0" >
<size>
<width>1000</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
@ -542,8 +528,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>277</width>
<height>72</height>
<width>284</width>
<height>89</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout" >
@ -583,8 +569,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>277</width>
<height>72</height>
<width>284</width>
<height>89</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3" >
@ -746,8 +732,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>277</width>
<height>72</height>
<width>284</width>
<height>89</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4" >
@ -781,8 +767,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>277</width>
<height>72</height>
<width>284</width>
<height>89</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6" >
@ -823,8 +809,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>277</width>
<height>72</height>
<width>284</width>
<height>89</height>
</rect>
</property>
<layout class="QVBoxLayout" name="typeAnswerLayout" >
@ -851,8 +837,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>277</width>
<height>72</height>
<width>284</width>
<height>79</height>
</rect>
</property>
</widget>
@ -894,15 +880,6 @@
<property name="palette" >
<palette>
<active>
<colorrole role="Base" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
<colorrole role="Window" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
@ -914,15 +891,6 @@
</colorrole>
</active>
<inactive>
<colorrole role="Base" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>255</red>
<green>255</green>
<blue>255</blue>
</color>
</brush>
</colorrole>
<colorrole role="Window" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
@ -934,15 +902,6 @@
</colorrole>
</inactive>
<disabled>
<colorrole role="Base" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>255</red>
<green>250</green>
<blue>230</blue>
</color>
</brush>
</colorrole>
<colorrole role="Window" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
@ -991,6 +950,15 @@
<property name="palette" >
<palette>
<active>
<colorrole role="Text" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="Base" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
@ -1002,6 +970,15 @@
</colorrole>
</active>
<inactive>
<colorrole role="Text" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="Base" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
@ -1013,6 +990,15 @@
</colorrole>
</inactive>
<disabled>
<colorrole role="Text" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
<red>165</red>
<green>164</green>
<blue>164</blue>
</color>
</brush>
</colorrole>
<colorrole role="Base" >
<brush brushstyle="SolidPattern" >
<color alpha="255" >
@ -1049,7 +1035,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>562</width>
<width>569</width>
<height>23</height>
</rect>
</property>
@ -1197,8 +1183,8 @@
<property name="geometry" >
<rect>
<x>0</x>
<y>449</y>
<width>562</width>
<y>434</y>
<width>569</width>
<height>20</height>
</rect>
</property>
@ -1211,7 +1197,7 @@
<rect>
<x>0</x>
<y>23</y>
<width>562</width>
<width>569</width>
<height>46</height>
</rect>
</property>
@ -1792,10 +1778,6 @@
</action>
</widget>
<tabstops>
<tabstop>easeButton1</tabstop>
<tabstop>easeButton2</tabstop>
<tabstop>easeButton3</tabstop>
<tabstop>easeButton4</tabstop>
<tabstop>newPerDay</tabstop>
<tabstop>minuteLimit</tabstop>
<tabstop>questionLimit</tabstop>
@ -1805,6 +1787,10 @@
<tabstop>newCardScheduling</tabstop>
<tabstop>revCardOrder</tabstop>
<tabstop>delayLapsedCards</tabstop>
<tabstop>easeButton1</tabstop>
<tabstop>easeButton2</tabstop>
<tabstop>easeButton3</tabstop>
<tabstop>easeButton4</tabstop>
<tabstop>startReviewingButton</tabstop>
<tabstop>showAnswerButton</tabstop>
<tabstop>help</tabstop>
@ -1822,12 +1808,12 @@
<slot>setShown(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>87</x>
<y>219</y>
<x>54</x>
<y>202</y>
</hint>
<hint type="destinationlabel" >
<x>211</x>
<y>344</y>
<x>53</x>
<y>250</y>
</hint>
</hints>
</connection>

View file

@ -5,8 +5,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>322</width>
<height>417</height>
<width>320</width>
<height>399</height>
</rect>
</property>
<property name="windowTitle" >
@ -26,8 +26,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>306</width>
<height>351</height>
<width>304</width>
<height>333</height>
</rect>
</property>
<attribute name="title" >
@ -38,129 +38,43 @@
<number>6</number>
</property>
<item>
<layout class="QVBoxLayout" >
<property name="spacing" >
<number>6</number>
<widget class="QLabel" name="label" >
<property name="text" >
<string>&lt;h1>Language&lt;/h1></string>
</property>
<property name="margin" >
<number>0</number>
<property name="wordWrap" >
<bool>false</bool>
</property>
<item>
<widget class="QLabel" name="label" >
<property name="text" >
<string>&lt;h1>Language&lt;/h1></string>
</property>
<property name="wordWrap" >
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="interfaceLang" >
<property name="minimumSize" >
<size>
<width>300</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy" >
<enum>Qt::TabFocus</enum>
</property>
<property name="text" >
<string>&lt;h1>Main Window&lt;/h1></string>
</property>
<property name="wordWrap" >
<bool>false</bool>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item row="0" column="0" >
<widget class="QLabel" name="label_8" >
<property name="text" >
<string>Interface font</string>
</property>
</widget>
</item>
<item row="1" column="0" >
<widget class="QLabel" name="label_13" >
<property name="text" >
<string>Interface colour</string>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QPushButton" name="interfaceColour" >
<property name="text" >
<string/>
</property>
</widget>
</item>
<item row="2" column="0" >
<widget class="QLabel" name="label_15" >
<property name="text" >
<string>Background colour</string>
</property>
</widget>
</item>
<item row="2" column="1" >
<widget class="QPushButton" name="backgroundColour" >
<property name="text" >
<string/>
</property>
</widget>
</item>
<item row="0" column="1" >
<layout class="QHBoxLayout" name="horizontalLayout_2" >
<item>
<widget class="QFontComboBox" name="interfaceFamily" >
<property name="maximumSize" >
<size>
<width>140</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="interfaceSize" >
<property name="maximum" >
<number>300</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QComboBox" name="interfaceLang" >
<property name="minimumSize" >
<size>
<width>300</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy" >
<enum>Qt::TabFocus</enum>
</property>
<property name="text" >
<string>&lt;h1>Reviewing&lt;/h1></string>
</property>
<property name="wordWrap" >
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showDivider" >
@ -183,13 +97,6 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showStudyOptions" >
<property name="text" >
<string>Show study options on startup</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer" >
<property name="orientation" >
@ -210,8 +117,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>306</width>
<height>351</height>
<width>304</width>
<height>333</height>
</rect>
</property>
<attribute name="title" >
@ -398,8 +305,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>306</width>
<height>351</height>
<width>304</width>
<height>333</height>
</rect>
</property>
<attribute name="title" >
@ -408,38 +315,38 @@
<layout class="QVBoxLayout" >
<item>
<layout class="QGridLayout" >
<item row="3" column="0" >
<widget class="QCheckBox" name="simpleToolbar" >
<property name="text" >
<string>Simple toolbar</string>
</property>
</widget>
</item>
<item row="2" column="0" >
<widget class="QLabel" name="label_6" >
<property name="text" >
<string>&lt;h1>Advanced settings&lt;/h1></string>
<string>&lt;h1>Advanced settings&lt;/h1>Some settings require a restart.</string>
</property>
</widget>
</item>
<item row="4" column="0" >
<item row="5" column="0" >
<widget class="QCheckBox" name="showTimer" >
<property name="text" >
<string>Show timer</string>
</property>
</widget>
</item>
<item row="5" column="0" >
<widget class="QCheckBox" name="showLastCardContent" >
<item row="8" column="0" >
<widget class="QCheckBox" name="showTray" >
<property name="text" >
<string>Show last card's question/answer</string>
<string>Show tray icon</string>
</property>
</widget>
</item>
<item row="6" column="0" >
<widget class="QCheckBox" name="showLastCardInterval" >
<item row="9" column="0" >
<widget class="QCheckBox" name="scrollToAnswer" >
<property name="text" >
<string>Show last card's interval</string>
<string>Scroll down to the answer when showing answer</string>
</property>
</widget>
</item>
<item row="10" column="0" >
<widget class="QCheckBox" name="addZeroSpace" >
<property name="text" >
<string>Add hidden char to text (fixes Thai on OSX)</string>
</property>
</widget>
</item>
@ -450,68 +357,36 @@
</property>
</widget>
</item>
<item row="8" column="0" >
<widget class="QCheckBox" name="tallButtons" >
<property name="text" >
<string>Tall buttons (for touchscreen)</string>
<item row="3" column="0" >
<spacer name="verticalSpacer_3" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="9" column="0" >
<widget class="QCheckBox" name="showTray" >
<property name="text" >
<string>Show tray icon</string>
<property name="sizeType" >
<enum>QSizePolicy::Fixed</enum>
</property>
</widget>
</item>
<item row="10" column="0" >
<widget class="QCheckBox" name="scrollToAnswer" >
<property name="text" >
<string>Scroll down to the answer when showing answer</string>
<property name="sizeHint" stdset="0" >
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</widget>
</spacer>
</item>
<item row="11" column="0" >
<widget class="QCheckBox" name="addZeroSpace" >
<property name="text" >
<string>Add hidden char to text (fixes Thai on OSX)</string>
</property>
</widget>
</item>
<item row="12" column="0" >
<item row="4" column="0" >
<widget class="QCheckBox" name="alternativeTheme" >
<property name="text" >
<string>Alternative theme</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout" >
<item>
<widget class="QLabel" name="label_11" >
<item row="6" column="0" >
<widget class="QCheckBox" name="showStudyOptions" >
<property name="text" >
<string>Toolbar icon size</string>
<string>Show study options on startup</string>
</property>
</widget>
</item>
<item>
<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>
<widget class="QLineEdit" name="toolbarIconSize" />
</item>
</layout>
</item>
<item>
@ -547,14 +422,9 @@
<tabstop>tabWidget</tabstop>
<tabstop>interfaceLang</tabstop>
<tabstop>label_2</tabstop>
<tabstop>interfaceFamily</tabstop>
<tabstop>interfaceSize</tabstop>
<tabstop>interfaceColour</tabstop>
<tabstop>backgroundColour</tabstop>
<tabstop>showDivider</tabstop>
<tabstop>splitQA</tabstop>
<tabstop>showEstimates</tabstop>
<tabstop>showStudyOptions</tabstop>
<tabstop>saveWhenClosing</tabstop>
<tabstop>saveAfterEvery</tabstop>
<tabstop>saveAfterEveryNum</tabstop>
@ -564,17 +434,13 @@
<tabstop>syncPass</tabstop>
<tabstop>syncOnOpen</tabstop>
<tabstop>syncOnClose</tabstop>
<tabstop>simpleToolbar</tabstop>
<tabstop>alternativeTheme</tabstop>
<tabstop>showTimer</tabstop>
<tabstop>showLastCardContent</tabstop>
<tabstop>showLastCardInterval</tabstop>
<tabstop>showStudyOptions</tabstop>
<tabstop>showToolbar</tabstop>
<tabstop>tallButtons</tabstop>
<tabstop>showTray</tabstop>
<tabstop>scrollToAnswer</tabstop>
<tabstop>addZeroSpace</tabstop>
<tabstop>alternativeTheme</tabstop>
<tabstop>toolbarIconSize</tabstop>
<tabstop>buttonBox</tabstop>
</tabstops>
<resources/>