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())
def setupMainWindow(self):
# main window
self.mainWin = ankiqt.forms.main.Ui_MainWindow()
self.mainWin.setupUi(self)
self.mainWin.mainText = ui.view.AnkiWebView(self.mainWin.mainTextFrame)
@ -88,6 +89,13 @@ class AnkiQt(QMainWindow):
self.connect(self.mainWin.mainText.pageAction(QWebPage.Reload),
SIGNAL("activated()"),
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):
self.bodyView = ui.view.View(self, self.mainWin.mainText,
@ -226,11 +234,12 @@ Please do not file a bug report with Anki.\n\n""")
# if the same card is being shown and it's not
# due yet, give up
return self.moveToState("deckFinished")
if (self.config['showStudyScreen'] and
not self.deck.sessionStartTime):
return self.moveToState("studyScreen")
if self.deck.sessionLimitReached():
return self.moveToState("studyScreen")
if not self.deck.reviewEarly:
if (self.config['showStudyScreen'] and
not self.deck.sessionStartTime):
return self.moveToState("studyScreen")
if self.deck.sessionLimitReached():
return self.moveToState("studyScreen")
self.enableCardMenuItems()
return self.moveToState("showQuestion")
else:
@ -242,8 +251,13 @@ Please do not file a bug report with Anki.\n\n""")
self.deck.s.flush()
self.hideButtons()
self.disableCardMenuItems()
self.switchToCongratsScreen()
self.mainWin.learnMoreButton.setEnabled(
not not self.deck.newCount)
self.startRefreshTimer()
self.bodyView.setState(state)
# make sure the buttons aren't focused
self.mainWin.congratsLabel.setFocus()
elif state == "showQuestion":
if self.deck.mediaDir():
os.chdir(self.deck.mediaDir())
@ -408,9 +422,12 @@ new:
def switchToStudyScreen(self):
self.mainWin.mainStack.setCurrentIndex(3)
def switchToReviewScreen(self):
def switchToCongratsScreen(self):
self.mainWin.mainStack.setCurrentIndex(4)
def switchToReviewScreen(self):
self.mainWin.mainStack.setCurrentIndex(5)
# 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."
self.hideWelcome = hideWelcome
if self.deck is not None:
if self.deck.reviewEarly:
self.deck.resetAfterReviewEarly()
if self.deck.modifiedSinceSave():
if (self.deck.path is None or
(not self.config['saveOnClose'] and
@ -1366,6 +1385,17 @@ day = :d""", d=yesterday)
self.deck.syncName = None
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
##########################################################################

View file

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

View file

@ -12,10 +12,12 @@ from anki.hooks import runHook
import types, time, re, os, urllib, sys
from ankiqt import ui
from ankiqt.ui.utils import mungeQA
from anki.utils import fmtTimeSpan
from PyQt4.QtWebKit import QWebPage, QWebView
failedCharColour = "#FF0000"
passedCharColour = "#00FF00"
futureWarningColour = "#FF0000"
# Views - define the way a user is prompted for questions, etc
##########################################################################
@ -53,7 +55,8 @@ class View(object):
self.clearWindow()
self.haveTop = (self.main.lastCard and (
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.main.currentCard and
not self.main.currentCard.cardModel.questionInAnswer)
@ -178,9 +181,20 @@ class View(object):
def drawTopSection(self):
"Show previous card, next scheduled time, and stats."
self.buffer += "<center>"
self.drawFutureWarning()
self.drawLastCard()
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):
"Show the last card if not the current one, and next time."
if self.main.lastCard:
@ -262,7 +276,8 @@ Start adding your own material.</td>
def drawDeckFinishedMessage(self):
"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):

View file

@ -321,7 +321,7 @@
<action name="actionNextCard" >
<property name="icon" >
<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 name="text" >
<string>&amp;Next Card</string>
@ -333,7 +333,7 @@
<action name="actionPreviousCard" >
<property name="icon" >
<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 name="text" >
<string>&amp;Previous Card</string>
@ -345,7 +345,7 @@
<action name="actionFirstCard" >
<property name="icon" >
<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 name="text" >
<string>F&amp;irst Card</string>
@ -357,7 +357,7 @@
<action name="actionLastCard" >
<property name="icon" >
<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 name="text" >
<string>&amp;Last Card</string>

View file

@ -138,379 +138,6 @@
<property name="spacing" >
<number>0</number>
</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" >
<widget class="QStackedWidget" name="buttonStack" >
<property name="currentIndex" >
@ -831,12 +458,480 @@
<x>0</x>
<y>0</y>
<width>364</width>
<height>79</height>
<height>89</height>
</rect>
</property>
</widget>
</widget>
</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>
</widget>
</item>

View file

@ -1,14 +1,17 @@
<RCC>
<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/find.png</file>
<file>icons/editclear.png</file>
<file>icons/view-statistics.png</file>
<file>icons/arrow-down-double.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/anki-tag.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