default to optional answer, add config option to card model, tweak dialogs

This commit is contained in:
Damien Elmes 2008-12-23 13:41:48 +09:00
parent a5c445369d
commit 504749b741
4 changed files with 128 additions and 61 deletions

View file

@ -104,10 +104,10 @@ class AddCards(QDialog):
"Some fields are missing or not unique."), "Some fields are missing or not unique."),
parent=self, help="AddItems#AddError") parent=self, help="AddItems#AddError")
return return
if not fact.cards: if not fact:
ui.utils.showWarning(_("""\ ui.utils.showWarning(_("""\
The input you have provided would make an empty The input you have provided would make an empty
question or answer on all cards. Can't proceed."""), parent=self) question or answer on all cards."""), parent=self)
return return
self.dialog.status.append(_("Added %(num)d card(s) for '%(str)s'.") % { self.dialog.status.append(_("Added %(num)d card(s) for '%(str)s'.") % {
"num": len(fact.cards), "num": len(fact.cards),

View file

@ -291,10 +291,8 @@ class ModelProperties(QDialog):
self.dialog.cardName.setText(card.name) self.dialog.cardName.setText(card.name)
self.dialog.cardQuestion.setPlainText(card.qformat.replace("<br>", "\n")) self.dialog.cardQuestion.setPlainText(card.qformat.replace("<br>", "\n"))
self.dialog.cardAnswer.setPlainText(card.aformat.replace("<br>", "\n")) self.dialog.cardAnswer.setPlainText(card.aformat.replace("<br>", "\n"))
if card.questionInAnswer: self.dialog.questionInAnswer.setChecked(card.questionInAnswer)
self.dialog.questionInAnswer.setCheckState(Qt.Checked) self.dialog.allowEmptyAnswer.setChecked(card.allowEmptyAnswer)
else:
self.dialog.questionInAnswer.setCheckState(Qt.Unchecked)
self.updateToggleButtonText(card) self.updateToggleButtonText(card)
def enableCardMoveButtons(self): def enableCardMoveButtons(self):
@ -330,6 +328,7 @@ class ModelProperties(QDialog):
changed2 = self.updateField(card, 'aformat', s) changed2 = self.updateField(card, 'aformat', s)
changed = changed or changed2 changed = changed or changed2
self.updateField(card, 'questionInAnswer', self.dialog.questionInAnswer.isChecked()) self.updateField(card, 'questionInAnswer', self.dialog.questionInAnswer.isChecked())
self.updateField(card, 'allowEmptyAnswer', self.dialog.allowEmptyAnswer.isChecked())
if changed: if changed:
# need to generate all question/answers for this card # need to generate all question/answers for this card
self.deck.updateCardsFromModel(self.m) self.deck.updateCardsFromModel(self.m)

View file

@ -23,6 +23,14 @@
<normaloff>:/icons/anki.png</normaloff>:/icons/anki.png</iconset> <normaloff>:/icons/anki.png</normaloff>:/icons/anki.png</iconset>
</property> </property>
<widget class="QWidget" name="centralwidget" > <widget class="QWidget" name="centralwidget" >
<property name="geometry" >
<rect>
<x>0</x>
<y>69</y>
<width>655</width>
<height>398</height>
</rect>
</property>
<property name="sizePolicy" > <property name="sizePolicy" >
<sizepolicy vsizetype="Expanding" hsizetype="Expanding" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<horstretch>1</horstretch> <horstretch>1</horstretch>
@ -141,8 +149,25 @@
<property name="currentIndex" > <property name="currentIndex" >
<number>0</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="blankPage" /> <widget class="QWidget" name="blankPage" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>370</width>
<height>343</height>
</rect>
</property>
</widget>
<widget class="QWidget" name="welcomePage" > <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" > <layout class="QVBoxLayout" name="verticalLayout_5" >
<item> <item>
<widget class="QTextBrowser" name="welcomeText" > <widget class="QTextBrowser" name="welcomeText" >
@ -157,6 +182,14 @@
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="editPage" > <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" > <layout class="QVBoxLayout" name="verticalLayout_2" >
<property name="spacing" > <property name="spacing" >
<number>0</number> <number>0</number>
@ -177,6 +210,14 @@
<number>3</number> <number>3</number>
</property> </property>
<widget class="QWidget" name="page1" > <widget class="QWidget" name="page1" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>100</width>
<height>30</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout" > <layout class="QVBoxLayout" name="verticalLayout" >
<item> <item>
<spacer name="verticalSpacer" > <spacer name="verticalSpacer" >
@ -201,6 +242,14 @@
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="page2" > <widget class="QWidget" name="page2" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>100</width>
<height>30</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3" > <layout class="QVBoxLayout" name="verticalLayout_3" >
<property name="spacing" > <property name="spacing" >
<number>0</number> <number>0</number>
@ -331,6 +380,14 @@
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="page3" > <widget class="QWidget" name="page3" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>100</width>
<height>30</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4" > <layout class="QVBoxLayout" name="verticalLayout_4" >
<item> <item>
<spacer name="verticalSpacer_2" > <spacer name="verticalSpacer_2" >
@ -357,7 +414,16 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="page4" /> <widget class="QWidget" name="page4" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>370</width>
<height>49</height>
</rect>
</property>
</widget>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -552,7 +618,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>655</width> <width>655</width>
<height>25</height> <height>23</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menuHelp" > <widget class="QMenu" name="menuHelp" >
@ -633,7 +699,7 @@
</widget> </widget>
<widget class="QMenu" name="menuAdvanced" > <widget class="QMenu" name="menuAdvanced" >
<property name="title" > <property name="title" >
<string>&amp;Advanced</string> <string>Ad&amp;vanced</string>
</property> </property>
<addaction name="actionCheckDatabaseIntegrity" /> <addaction name="actionCheckDatabaseIntegrity" />
<addaction name="actionCheckMediaDatabase" /> <addaction name="actionCheckMediaDatabase" />
@ -690,11 +756,28 @@
<addaction name="menu_Settings" /> <addaction name="menu_Settings" />
<addaction name="menuHelp" /> <addaction name="menuHelp" />
</widget> </widget>
<widget class="QStatusBar" name="statusbar" /> <widget class="QStatusBar" name="statusbar" >
<property name="geometry" >
<rect>
<x>0</x>
<y>467</y>
<width>655</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QToolBar" name="toolBar" > <widget class="QToolBar" name="toolBar" >
<property name="enabled" > <property name="enabled" >
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="geometry" >
<rect>
<x>0</x>
<y>23</y>
<width>655</width>
<height>46</height>
</rect>
</property>
<property name="orientation" > <property name="orientation" >
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>

View file

@ -9,7 +9,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>376</width> <width>376</width>
<height>528</height> <height>518</height>
</rect> </rect>
</property> </property>
<property name="windowTitle" > <property name="windowTitle" >
@ -27,7 +27,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>360</width> <width>360</width>
<height>462</height> <height>452</height>
</rect> </rect>
</property> </property>
<attribute name="title" > <attribute name="title" >
@ -121,7 +121,7 @@
</layout> </layout>
</item> </item>
<item> <item>
<widget class="Line" name="line" > <widget class="Line" name="line_3" >
<property name="orientation" > <property name="orientation" >
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
@ -215,15 +215,12 @@
<property name="title" > <property name="title" >
<string/> <string/>
</property> </property>
<layout class="QVBoxLayout" > <property name="flat" >
<property name="spacing" > <bool>false</bool>
<number>6</number>
</property>
<property name="margin" >
<number>9</number>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2" >
<item> <item>
<layout class="QGridLayout" > <layout class="QGridLayout" name="_2" >
<property name="margin" > <property name="margin" >
<number>0</number> <number>0</number>
</property> </property>
@ -233,7 +230,7 @@
<item row="1" column="0" > <item row="1" column="0" >
<widget class="QLabel" name="label_18" > <widget class="QLabel" name="label_18" >
<property name="text" > <property name="text" >
<string>&lt;b>Unique?</string> <string>&lt;b>Options&lt;/b></string>
</property> </property>
</widget> </widget>
</item> </item>
@ -253,14 +250,7 @@
<string>&lt;b>Name&lt;/b></string> <string>&lt;b>Name&lt;/b></string>
</property> </property>
<property name="alignment" > <property name="alignment" >
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="0" >
<widget class="QLabel" name="label_17" >
<property name="text" >
<string>&lt;b>Required?&lt;/b></string>
</property> </property>
</widget> </widget>
</item> </item>
@ -271,13 +261,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="0" >
<widget class="QLabel" name="label_21" >
<property name="text" >
<string>&lt;b>Numeric?&lt;/b></string>
</property>
</widget>
</item>
<item row="3" column="1" > <item row="3" column="1" >
<widget class="QCheckBox" name="numeric" > <widget class="QCheckBox" name="numeric" >
<property name="text" > <property name="text" >
@ -297,8 +280,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>370</width> <width>360</width>
<height>462</height> <height>452</height>
</rect> </rect>
</property> </property>
<attribute name="title" > <attribute name="title" >
@ -385,24 +368,12 @@
</item> </item>
<item row="3" column="0" > <item row="3" column="0" >
<widget class="QGroupBox" name="cardEditBox" > <widget class="QGroupBox" name="cardEditBox" >
<property name="sizePolicy" >
<sizepolicy vsizetype="MinimumExpanding" hsizetype="Preferred" >
<horstretch>0</horstretch>
<verstretch>3</verstretch>
</sizepolicy>
</property>
<property name="title" > <property name="title" >
<string/> <string/>
</property> </property>
<layout class="QVBoxLayout" > <layout class="QVBoxLayout" name="verticalLayout_3" >
<property name="spacing" >
<number>6</number>
</property>
<property name="margin" >
<number>9</number>
</property>
<item> <item>
<layout class="QGridLayout" > <layout class="QGridLayout" name="_3" >
<property name="margin" > <property name="margin" >
<number>0</number> <number>0</number>
</property> </property>
@ -412,7 +383,7 @@
<item row="3" column="0" > <item row="3" column="0" >
<widget class="QLabel" name="label_23" > <widget class="QLabel" name="label_23" >
<property name="text" > <property name="text" >
<string>&lt;b>Question hiding&lt;/b></string> <string>&lt;b>Options&lt;/b></string>
</property> </property>
</widget> </widget>
</item> </item>
@ -451,10 +422,10 @@
<item row="2" column="0" > <item row="2" column="0" >
<widget class="QLabel" name="label_15" > <widget class="QLabel" name="label_15" >
<property name="text" > <property name="text" >
<string>&lt;b>Answer format&lt;/b></string> <string>&lt;b>Answer&lt;/b></string>
</property> </property>
<property name="alignment" > <property name="alignment" >
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property> </property>
<property name="openExternalLinks" > <property name="openExternalLinks" >
<bool>true</bool> <bool>true</bool>
@ -486,13 +457,20 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="1" >
<widget class="QCheckBox" name="allowEmptyAnswer" >
<property name="text" >
<string>Allow the answer to be blank</string>
</property>
</widget>
</item>
<item row="0" column="0" > <item row="0" column="0" >
<widget class="QLabel" name="label_12" > <widget class="QLabel" name="label_12" >
<property name="text" > <property name="text" >
<string>&lt;b>Name/tag&lt;/b></string> <string>&lt;b>Name&lt;/b></string>
</property> </property>
<property name="alignment" > <property name="alignment" >
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property> </property>
<property name="openExternalLinks" > <property name="openExternalLinks" >
<bool>true</bool> <bool>true</bool>
@ -502,10 +480,10 @@
<item row="1" column="0" > <item row="1" column="0" >
<widget class="QLabel" name="label_14" > <widget class="QLabel" name="label_14" >
<property name="text" > <property name="text" >
<string>&lt;b>Question format&lt;/b></string> <string>&lt;b>Question&lt;/b></string>
</property> </property>
<property name="alignment" > <property name="alignment" >
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property> </property>
<property name="openExternalLinks" > <property name="openExternalLinks" >
<bool>true</bool> <bool>true</bool>
@ -532,9 +510,15 @@
</widget> </widget>
</item> </item>
</layout> </layout>
<zorder>buttonBox</zorder>
<zorder>tabWidget</zorder>
</widget> </widget>
<tabstops> <tabstops>
<tabstop>tabWidget</tabstop> <tabstop>tabWidget</tabstop>
<tabstop>name</tabstop>
<tabstop>tags</tabstop>
<tabstop>initialSpacing</tabstop>
<tabstop>spacing</tabstop>
<tabstop>fieldList</tabstop> <tabstop>fieldList</tabstop>
<tabstop>fieldAdd</tabstop> <tabstop>fieldAdd</tabstop>
<tabstop>fieldUp</tabstop> <tabstop>fieldUp</tabstop>
@ -554,6 +538,7 @@
<tabstop>cardQuestion</tabstop> <tabstop>cardQuestion</tabstop>
<tabstop>cardAnswer</tabstop> <tabstop>cardAnswer</tabstop>
<tabstop>questionInAnswer</tabstop> <tabstop>questionInAnswer</tabstop>
<tabstop>allowEmptyAnswer</tabstop>
<tabstop>buttonBox</tabstop> <tabstop>buttonBox</tabstop>
</tabstops> </tabstops>
<resources/> <resources/>