add new media options to preferences

This commit is contained in:
Damien Elmes 2010-12-09 13:55:37 +09:00
parent 1c599e7d76
commit b18bd51694
3 changed files with 82 additions and 2 deletions

View file

@ -64,6 +64,9 @@ class Config(dict):
'loadLastDeck': False,
'mainWindowGeom': None,
'mainWindowState': None,
# one of empty, 'dropbox', or path used as prefix
'mediaLocation': "",
'mainWindowState': None,
'numBackups': 30,
'preventEditUntilAnswer': False,
'proxyHost': '',

View file

@ -25,6 +25,7 @@ class Preferences(QDialog):
self.origInterfaceLang = self.config['interfaceLang']
self.dialog = ankiqt.forms.preferences.Ui_Preferences()
self.dialog.setupUi(self)
self.needDeckClose = False
self.supportedLanguages = [
(u"Bahasa Melayu", "ms"),
(u"Dansk", "da"),
@ -68,16 +69,21 @@ class Preferences(QDialog):
self.setupNetwork()
self.setupSave()
self.setupAdvanced()
self.setupMedia()
self.show()
def accept(self):
self.updateNetwork()
self.updateSave()
self.updateAdvanced()
self.updateMedia()
self.config['interfaceLang'] = self.origConfig['interfaceLang']
self.origConfig.update(self.config)
self.origConfig.save()
self.parent.setLang()
if self.needDeckClose:
self.parent.saveAndClose(parent=self)
else:
self.parent.reset()
self.done(0)
@ -99,6 +105,37 @@ class Preferences(QDialog):
self.parent.setLang()
self.dialog.retranslateUi(self)
def setupMedia(self):
self.dialog.mediaChoice.addItems(
QStringList([
_("Keep media next to deck"),
_("Keep media in DropBox"),
_("Keep media in custom folder"),
]))
if not self.config['mediaLocation']:
idx = 0
elif self.config['mediaLocation'] == "dropbox":
idx = 1
else:
idx = 2
self.dialog.mediaChoice.setCurrentIndex(idx)
self.mediaChoiceChanged(idx)
self.connect(self.dialog.mediaChoice,
SIGNAL("currentIndexChanged(int)"),
self.mediaChoiceChanged)
self.origMediaChoice = idx
def mediaChoiceChanged(self, idx):
mp = self.dialog.mediaPath
mpl = self.dialog.mediaPrefix
if idx == 2:
mp.setText(self.config['mediaLocation'])
mp.setShown(True)
mpl.setShown(True)
else:
mp.setShown(False)
mpl.setShown(False)
def setupNetwork(self):
self.dialog.syncOnOpen.setChecked(self.config['syncOnLoad'])
self.dialog.syncOnProgramOpen.setChecked(self.config['syncOnProgramOpen'])
@ -143,6 +180,20 @@ class Preferences(QDialog):
else:
QDesktopServices.openUrl(QUrl("file://" + path))
def updateMedia(self):
orig = self.origMediaChoice
new = self.dialog.mediaChoice.currentIndex()
if orig == new:
return
if new == 0:
p = ""
elif new == 1:
p = "dropbox"
else:
p = unicode(self.dialog.mediaPath.text())
self.config['mediaLocation'] = p
self.needDeckClose = True
def updateSave(self):
self.config['saveAfterAnswer'] = self.dialog.saveAfterEvery.isChecked()
self.config['saveAfterAnswerNum'] = self.dialog.saveAfterEveryNum.value()

View file

@ -24,7 +24,7 @@
</property>
<widget class="QWidget" name="tab_1">
<attribute name="title">
<string>Display</string>
<string>Basic</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
@ -104,6 +104,30 @@
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>&lt;b&gt;Media&lt;/b&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="mediaChoice"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="mediaPrefix">
<property name="text">
<string>Prefix:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="mediaPath"/>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
@ -666,6 +690,8 @@
<tabstop>showEstimates</tabstop>
<tabstop>showProgress</tabstop>
<tabstop>preventEdits</tabstop>
<tabstop>mediaChoice</tabstop>
<tabstop>mediaPath</tabstop>
<tabstop>syncUser</tabstop>
<tabstop>syncPass</tabstop>
<tabstop>syncOnOpen</tabstop>