add learn ahead / review early, fix modelchooser, update icons

This commit is contained in:
Damien Elmes 2009-01-15 02:56:37 +09:00
parent ef8fbbdd74
commit 2f05f253fc
14 changed files with 535 additions and 393 deletions

View file

@ -78,6 +78,7 @@ class AnkiQt(QMainWindow):
traceback.format_exc()) traceback.format_exc())
def setupMainWindow(self): def setupMainWindow(self):
# main window
self.mainWin = ankiqt.forms.main.Ui_MainWindow() self.mainWin = ankiqt.forms.main.Ui_MainWindow()
self.mainWin.setupUi(self) self.mainWin.setupUi(self)
self.mainWin.mainText = ui.view.AnkiWebView(self.mainWin.mainTextFrame) self.mainWin.mainText = ui.view.AnkiWebView(self.mainWin.mainTextFrame)
@ -88,6 +89,13 @@ class AnkiQt(QMainWindow):
self.connect(self.mainWin.mainText.pageAction(QWebPage.Reload), self.connect(self.mainWin.mainText.pageAction(QWebPage.Reload),
SIGNAL("activated()"), SIGNAL("activated()"),
lambda: self.moveToState("auto")) lambda: self.moveToState("auto"))
# congrats
self.connect(self.mainWin.learnMoreButton,
SIGNAL("clicked()"),
self.onLearnMore)
self.connect(self.mainWin.reviewEarlyButton,
SIGNAL("clicked()"),
self.onReviewEarly)
def setupViews(self): def setupViews(self):
self.bodyView = ui.view.View(self, self.mainWin.mainText, self.bodyView = ui.view.View(self, self.mainWin.mainText,
@ -226,6 +234,7 @@ Please do not file a bug report with Anki.\n\n""")
# if the same card is being shown and it's not # if the same card is being shown and it's not
# due yet, give up # due yet, give up
return self.moveToState("deckFinished") return self.moveToState("deckFinished")
if not self.deck.reviewEarly:
if (self.config['showStudyScreen'] and if (self.config['showStudyScreen'] and
not self.deck.sessionStartTime): not self.deck.sessionStartTime):
return self.moveToState("studyScreen") return self.moveToState("studyScreen")
@ -242,8 +251,13 @@ Please do not file a bug report with Anki.\n\n""")
self.deck.s.flush() self.deck.s.flush()
self.hideButtons() self.hideButtons()
self.disableCardMenuItems() self.disableCardMenuItems()
self.switchToCongratsScreen()
self.mainWin.learnMoreButton.setEnabled(
not not self.deck.newCount)
self.startRefreshTimer() self.startRefreshTimer()
self.bodyView.setState(state) self.bodyView.setState(state)
# make sure the buttons aren't focused
self.mainWin.congratsLabel.setFocus()
elif state == "showQuestion": elif state == "showQuestion":
if self.deck.mediaDir(): if self.deck.mediaDir():
os.chdir(self.deck.mediaDir()) os.chdir(self.deck.mediaDir())
@ -408,9 +422,12 @@ new:
def switchToStudyScreen(self): def switchToStudyScreen(self):
self.mainWin.mainStack.setCurrentIndex(3) self.mainWin.mainStack.setCurrentIndex(3)
def switchToReviewScreen(self): def switchToCongratsScreen(self):
self.mainWin.mainStack.setCurrentIndex(4) self.mainWin.mainStack.setCurrentIndex(4)
def switchToReviewScreen(self):
self.mainWin.mainStack.setCurrentIndex(5)
# Buttons # Buttons
########################################################################## ##########################################################################
@ -674,6 +691,8 @@ To upgrade an old deck, download Anki 0.9.8.7."""))
"(Auto)save and close. Prompt if necessary. True if okay to proceed." "(Auto)save and close. Prompt if necessary. True if okay to proceed."
self.hideWelcome = hideWelcome self.hideWelcome = hideWelcome
if self.deck is not None: if self.deck is not None:
if self.deck.reviewEarly:
self.deck.resetAfterReviewEarly()
if self.deck.modifiedSinceSave(): if self.deck.modifiedSinceSave():
if (self.deck.path is None or if (self.deck.path is None or
(not self.config['saveOnClose'] and (not self.config['saveOnClose'] and
@ -1366,6 +1385,17 @@ day = :d""", d=yesterday)
self.deck.syncName = None self.deck.syncName = None
self.reset() self.reset()
# Reviewing and learning ahead
##########################################################################
def onLearnMore(self):
self.deck.extraNewCards += 5
self.reset()
def onReviewEarly(self):
self.deck.reviewEarly = True
self.reset()
# Language handling # Language handling
########################################################################## ##########################################################################

View file

@ -66,14 +66,13 @@ class ModelChooser(QHBoxLayout):
onFinish=self.onModelEdited) onFinish=self.onModelEdited)
def onModelEdited(self): def onModelEdited(self):
idx = self.models.currentIndex()
self.drawModels() self.drawModels()
self.onChange(idx) self.changed(self.deck.currentModel)
def onChange(self, idx): def onChange(self, idx):
model = self._models[idx] model = self._models[idx]
self.deck.currentModel = model self.deck.currentModel = model
self.changed(model) self.changed(self.deck.currentModel)
self.deck.setModified() self.deck.setModified()
def changed(self, model): def changed(self, model):

View file

@ -12,10 +12,12 @@ from anki.hooks import runHook
import types, time, re, os, urllib, sys import types, time, re, os, urllib, sys
from ankiqt import ui from ankiqt import ui
from ankiqt.ui.utils import mungeQA from ankiqt.ui.utils import mungeQA
from anki.utils import fmtTimeSpan
from PyQt4.QtWebKit import QWebPage, QWebView from PyQt4.QtWebKit import QWebPage, QWebView
failedCharColour = "#FF0000" failedCharColour = "#FF0000"
passedCharColour = "#00FF00" passedCharColour = "#00FF00"
futureWarningColour = "#FF0000"
# Views - define the way a user is prompted for questions, etc # Views - define the way a user is prompted for questions, etc
########################################################################## ##########################################################################
@ -53,7 +55,8 @@ class View(object):
self.clearWindow() self.clearWindow()
self.haveTop = (self.main.lastCard and ( self.haveTop = (self.main.lastCard and (
self.main.config['showLastCardContent'] or self.main.config['showLastCardContent'] or
self.main.config['showLastCardInterval'])) self.main.config['showLastCardInterval'])) or (
self.main.currentCard and self.main.currentCard.due > time.time())
self.drawRule = (self.main.config['qaDivider'] and self.drawRule = (self.main.config['qaDivider'] and
self.main.currentCard and self.main.currentCard and
not self.main.currentCard.cardModel.questionInAnswer) not self.main.currentCard.cardModel.questionInAnswer)
@ -178,9 +181,20 @@ class View(object):
def drawTopSection(self): def drawTopSection(self):
"Show previous card, next scheduled time, and stats." "Show previous card, next scheduled time, and stats."
self.buffer += "<center>" self.buffer += "<center>"
self.drawFutureWarning()
self.drawLastCard() self.drawLastCard()
self.buffer += "</center>" self.buffer += "</center>"
def drawFutureWarning(self):
if not self.main.currentCard:
return
if self.main.currentCard.due <= time.time():
return
self.write("<span style='color: %s'>" % futureWarningColour +
_("This card was due in %s.") % fmtTimeSpan(
self.main.currentCard.due - time.time()) +
"</span>")
def drawLastCard(self): def drawLastCard(self):
"Show the last card if not the current one, and next time." "Show the last card if not the current one, and next time."
if self.main.lastCard: if self.main.lastCard:
@ -262,7 +276,8 @@ Start adding your own material.</td>
def drawDeckFinishedMessage(self): def drawDeckFinishedMessage(self):
"Tell the user the deck is finished." "Tell the user the deck is finished."
self.write(self.main.deck.deckFinishedMsg()) self.main.mainWin.congratsLabel.setText(
self.main.deck.deckFinishedMsg())
class AnkiWebView(QWebView): class AnkiWebView(QWebView):

View file

@ -321,7 +321,7 @@
<action name="actionNextCard" > <action name="actionNextCard" >
<property name="icon" > <property name="icon" >
<iconset resource="../icons.qrc" > <iconset resource="../icons.qrc" >
<normaloff>:/icons/arrow-down.png</normaloff>:/icons/arrow-down.png</iconset> <normaloff>:/icons/go-next.png</normaloff>:/icons/go-next.png</iconset>
</property> </property>
<property name="text" > <property name="text" >
<string>&amp;Next Card</string> <string>&amp;Next Card</string>
@ -333,7 +333,7 @@
<action name="actionPreviousCard" > <action name="actionPreviousCard" >
<property name="icon" > <property name="icon" >
<iconset resource="../icons.qrc" > <iconset resource="../icons.qrc" >
<normaloff>:/icons/arrow-up.png</normaloff>:/icons/arrow-up.png</iconset> <normaloff>:/icons/go-previous.png</normaloff>:/icons/go-previous.png</iconset>
</property> </property>
<property name="text" > <property name="text" >
<string>&amp;Previous Card</string> <string>&amp;Previous Card</string>
@ -345,7 +345,7 @@
<action name="actionFirstCard" > <action name="actionFirstCard" >
<property name="icon" > <property name="icon" >
<iconset resource="../icons.qrc" > <iconset resource="../icons.qrc" >
<normaloff>:/icons/arrow-up-double.png</normaloff>:/icons/arrow-up-double.png</iconset> <normaloff>:/icons/go-first.png</normaloff>:/icons/go-first.png</iconset>
</property> </property>
<property name="text" > <property name="text" >
<string>F&amp;irst Card</string> <string>F&amp;irst Card</string>
@ -357,7 +357,7 @@
<action name="actionLastCard" > <action name="actionLastCard" >
<property name="icon" > <property name="icon" >
<iconset resource="../icons.qrc" > <iconset resource="../icons.qrc" >
<normaloff>:/icons/arrow-down-double.png</normaloff>:/icons/arrow-down-double.png</iconset> <normaloff>:/icons/go-last.png</normaloff>:/icons/go-last.png</iconset>
</property> </property>
<property name="text" > <property name="text" >
<string>&amp;Last Card</string> <string>&amp;Last Card</string>

View file

@ -138,379 +138,6 @@
<property name="spacing" > <property name="spacing" >
<number>0</number> <number>0</number>
</property> </property>
<item row="0" column="0" >
<widget class="QStackedWidget" name="mainStack" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<horstretch>0</horstretch>
<verstretch>99</verstretch>
</sizepolicy>
</property>
<property name="currentIndex" >
<number>0</number>
</property>
<widget class="QWidget" name="blankPage" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>364</width>
<height>280</height>
</rect>
</property>
</widget>
<widget class="QWidget" name="welcomePage" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>100</width>
<height>30</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5" >
<item>
<widget class="QTextBrowser" name="welcomeText" >
<property name="focusPolicy" >
<enum>Qt::ClickFocus</enum>
</property>
<property name="frameShape" >
<enum>QFrame::NoFrame</enum>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="editPage" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>100</width>
<height>30</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2" >
<property name="spacing" >
<number>0</number>
</property>
<property name="margin" >
<number>4</number>
</property>
<item>
<widget class="QWidget" native="1" name="fieldsArea" />
</item>
</layout>
</widget>
<widget class="QWidget" name="optionsPage" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>364</width>
<height>280</height>
</rect>
</property>
<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>
<widget class="QLabel" name="optionsLabel" >
<property name="minimumSize" >
<size>
<width>350</width>
<height>0</height>
</size>
</property>
<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>
<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="text" >
<string>&lt;b>Session limit (mins):&lt;/b></string>
</property>
<property name="margin" >
<number>4</number>
</property>
</widget>
</item>
<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="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>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<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>50</width>
<height>16777215</height>
</size>
</property>
</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 row="3" column="0" >
<layout class="QHBoxLayout" name="horizontalLayout_2" >
<property name="topMargin" >
<number>4</number>
</property>
<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>
</layout>
</item>
</layout>
</item>
<item>
<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>
</item>
<item row="1" column="0" > <item row="1" column="0" >
<widget class="QStackedWidget" name="buttonStack" > <widget class="QStackedWidget" name="buttonStack" >
<property name="currentIndex" > <property name="currentIndex" >
@ -831,12 +458,480 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>364</width> <width>364</width>
<height>79</height> <height>89</height>
</rect> </rect>
</property> </property>
</widget> </widget>
</widget> </widget>
</item> </item>
<item row="0" column="0" >
<widget class="QStackedWidget" name="mainStack" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<horstretch>0</horstretch>
<verstretch>99</verstretch>
</sizepolicy>
</property>
<property name="currentIndex" >
<number>0</number>
</property>
<widget class="QWidget" name="blankPage" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>364</width>
<height>270</height>
</rect>
</property>
</widget>
<widget class="QWidget" name="welcomePage" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>364</width>
<height>270</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5" >
<item>
<widget class="QTextBrowser" name="welcomeText" >
<property name="focusPolicy" >
<enum>Qt::ClickFocus</enum>
</property>
<property name="frameShape" >
<enum>QFrame::NoFrame</enum>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="editPage" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>364</width>
<height>270</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2" >
<property name="spacing" >
<number>0</number>
</property>
<property name="margin" >
<number>4</number>
</property>
<item>
<widget class="QWidget" native="1" name="fieldsArea" />
</item>
</layout>
</widget>
<widget class="QWidget" name="optionsPage" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>364</width>
<height>270</height>
</rect>
</property>
<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>
<widget class="QLabel" name="optionsLabel" >
<property name="minimumSize" >
<size>
<width>350</width>
<height>0</height>
</size>
</property>
<property name="text" >
<string>TextLabel</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>
<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="text" >
<string>&lt;b>Session limit (mins):&lt;/b></string>
</property>
<property name="margin" >
<number>4</number>
</property>
</widget>
</item>
<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="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>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<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>50</width>
<height>16777215</height>
</size>
</property>
</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 row="3" column="0" >
<layout class="QHBoxLayout" name="horizontalLayout_2" >
<property name="topMargin" >
<number>4</number>
</property>
<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>
</layout>
</item>
</layout>
</item>
<item>
<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 class="QWidget" name="congratsPage" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>364</width>
<height>270</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_9" >
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3" >
<item>
<layout class="QVBoxLayout" name="verticalLayout_10" >
<item>
<widget class="QLabel" name="congratsLabel" >
<property name="text" >
<string>TextLabel</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_9" >
<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="QPushButton" name="learnMoreButton" >
<property name="text" >
<string>&amp;Learn More</string>
</property>
<property name="iconSize" >
<size>
<width>32</width>
<height>32</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="reviewEarlyButton" >
<property name="text" >
<string>Re&amp;view Early</string>
</property>
<property name="iconSize" >
<size>
<width>32</width>
<height>32</height>
</size>
</property>
</widget>
</item>
</layout>
</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>
<item>
<spacer name="verticalSpacer_8" >
<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>
</widget>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>

View file

@ -1,14 +1,17 @@
<RCC> <RCC>
<qresource prefix="/" > <qresource prefix="/" >
<file>icons/view-calendar-tasks.png</file>
<file>icons/help-hint.png</file>
<file>icons/go-first.png</file>
<file>icons/go-jump-today.png</file>
<file>icons/go-last.png</file>
<file>icons/go-next.png</file>
<file>icons/go-previous.png</file>
<file>icons/player-time.png</file> <file>icons/player-time.png</file>
<file>icons/find.png</file> <file>icons/find.png</file>
<file>icons/editclear.png</file> <file>icons/editclear.png</file>
<file>icons/view-statistics.png</file> <file>icons/view-statistics.png</file>
<file>icons/arrow-down-double.png</file>
<file>icons/emblem-favorite.png</file> <file>icons/emblem-favorite.png</file>
<file>icons/arrow-up-double.png</file>
<file>icons/arrow-down.png</file>
<file>icons/arrow-up.png</file>
<file>icons/view-pim-calendar.png</file> <file>icons/view-pim-calendar.png</file>
<file>icons/anki-tag.png</file> <file>icons/anki-tag.png</file>
<file>icons/edit-redo.png</file> <file>icons/edit-redo.png</file>

BIN
icons/appointment-new.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
icons/go-first.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
icons/go-jump-today.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
icons/go-last.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
icons/go-next.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
icons/go-previous.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
icons/help-hint.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB