diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2012-06-14 22:36:54 +0200 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2012-06-14 22:54:30 +0200 |
commit | 537dfe482fc0378151406ee37a98c99283b5a3f0 (patch) | |
tree | ecbc4c0915092ad4ca76bf03364562449695876a | |
parent | a9217bde2749df65d2f59fb63bf1622096263e4f (diff) | |
download | rockbox-537dfe482fc0378151406ee37a98c99283b5a3f0.tar.gz rockbox-537dfe482fc0378151406ee37a98c99283b5a3f0.zip |
Save all settings in talkfile dialog.
Save settings that haven't been and rename the configuration file value for the
talked folder. Since the folder was replaced with a list we can't use the old
value anymore so there's no need to keep a name that's not really suitable
anymore.
Solves FS#12634.
Change-Id: I8db2a536409b94c45f28db9418a11f11f57dfacb
-rw-r--r-- | rbutil/rbutilqt/base/rbsettings.cpp | 9 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/rbsettings.h | 13 | ||||
-rw-r--r-- | rbutil/rbutilqt/installtalkfrm.ui | 12 | ||||
-rw-r--r-- | rbutil/rbutilqt/installtalkwindow.cpp | 58 | ||||
-rw-r--r-- | rbutil/rbutilqt/installtalkwindow.h | 1 |
5 files changed, 65 insertions, 28 deletions
diff --git a/rbutil/rbutilqt/base/rbsettings.cpp b/rbutil/rbutilqt/base/rbsettings.cpp index a74b167e92..f584c6808c 100644 --- a/rbutil/rbutilqt/base/rbsettings.cpp +++ b/rbutil/rbutilqt/base/rbsettings.cpp | |||
@@ -48,7 +48,14 @@ const static struct { | |||
48 | { RbSettings::Tts, "tts", "espeak" }, | 48 | { RbSettings::Tts, "tts", "espeak" }, |
49 | #endif | 49 | #endif |
50 | { RbSettings::UseTtsCorrections, "use_tts_corrections", "true" }, | 50 | { RbSettings::UseTtsCorrections, "use_tts_corrections", "true" }, |
51 | { RbSettings::LastTalkedFolder, "last_talked_folder", "" }, | 51 | { RbSettings::TalkFolders, "talk_folders", "" }, |
52 | { RbSettings::TalkProcessFiles, "talk_process_files", "true" }, | ||
53 | { RbSettings::TalkProcessFolders, "talk_process_folders", "true" }, | ||
54 | { RbSettings::TalkRecursive, "talk_recursive", "true" }, | ||
55 | { RbSettings::TalkSkipExisting, "talk_skip_existing", "true" }, | ||
56 | { RbSettings::TalkStripExtensions, "talk_strip_extensions","true" }, | ||
57 | { RbSettings::TalkIgnoreFiles, "talk_ignore_files", "false" }, | ||
58 | { RbSettings::TalkIgnoreWildcards, "talk_ignore_wildcards","" }, | ||
52 | { RbSettings::VoiceLanguage, "voicelanguage", "" }, | 59 | { RbSettings::VoiceLanguage, "voicelanguage", "" }, |
53 | { RbSettings::TtsLanguage, ":tts:/language", "" }, | 60 | { RbSettings::TtsLanguage, ":tts:/language", "" }, |
54 | { RbSettings::TtsOptions, ":tts:/options", "" }, | 61 | { RbSettings::TtsOptions, ":tts:/options", "" }, |
diff --git a/rbutil/rbutilqt/base/rbsettings.h b/rbutil/rbutilqt/base/rbsettings.h index ba4a63cb3b..45ec7092e2 100644 --- a/rbutil/rbutilqt/base/rbsettings.h +++ b/rbutil/rbutilqt/base/rbsettings.h | |||
@@ -27,7 +27,7 @@ class RbSettings : public QObject | |||
27 | { | 27 | { |
28 | Q_OBJECT | 28 | Q_OBJECT |
29 | public: | 29 | public: |
30 | 30 | ||
31 | //! All user settings | 31 | //! All user settings |
32 | enum UserSettings { | 32 | enum UserSettings { |
33 | RbutilVersion, | 33 | RbutilVersion, |
@@ -42,7 +42,14 @@ class RbSettings : public QObject | |||
42 | Language, | 42 | Language, |
43 | Tts, | 43 | Tts, |
44 | UseTtsCorrections, | 44 | UseTtsCorrections, |
45 | LastTalkedFolder, | 45 | TalkFolders, |
46 | TalkProcessFiles, | ||
47 | TalkProcessFolders, | ||
48 | TalkRecursive, | ||
49 | TalkSkipExisting, | ||
50 | TalkStripExtensions, | ||
51 | TalkIgnoreFiles, | ||
52 | TalkIgnoreWildcards, | ||
46 | VoiceLanguage, | 53 | VoiceLanguage, |
47 | TtsLanguage, | 54 | TtsLanguage, |
48 | TtsOptions, | 55 | TtsOptions, |
@@ -61,7 +68,7 @@ class RbSettings : public QObject | |||
61 | EncoderQuality, | 68 | EncoderQuality, |
62 | EncoderVolume, | 69 | EncoderVolume, |
63 | }; | 70 | }; |
64 | 71 | ||
65 | //! call this to flush the user Settings | 72 | //! call this to flush the user Settings |
66 | static void sync(); | 73 | static void sync(); |
67 | //! returns the filename of the usersettings file | 74 | //! returns the filename of the usersettings file |
diff --git a/rbutil/rbutilqt/installtalkfrm.ui b/rbutil/rbutilqt/installtalkfrm.ui index 216a473573..0ee723d442 100644 --- a/rbutil/rbutilqt/installtalkfrm.ui +++ b/rbutil/rbutilqt/installtalkfrm.ui | |||
@@ -113,7 +113,7 @@ | |||
113 | </widget> | 113 | </widget> |
114 | </item> | 114 | </item> |
115 | <item row="8" column="0"> | 115 | <item row="8" column="0"> |
116 | <widget class="QCheckBox" name="checkBox"> | 116 | <widget class="QCheckBox" name="ignoreEnabled"> |
117 | <property name="text"> | 117 | <property name="text"> |
118 | <string>Ignore files</string> | 118 | <string>Ignore files</string> |
119 | </property> | 119 | </property> |
@@ -199,7 +199,7 @@ | |||
199 | <tabstop>recursive</tabstop> | 199 | <tabstop>recursive</tabstop> |
200 | <tabstop>GenerateOnlyNew</tabstop> | 200 | <tabstop>GenerateOnlyNew</tabstop> |
201 | <tabstop>StripExtensions</tabstop> | 201 | <tabstop>StripExtensions</tabstop> |
202 | <tabstop>checkBox</tabstop> | 202 | <tabstop>ignoreEnabled</tabstop> |
203 | <tabstop>ignoreFiles</tabstop> | 203 | <tabstop>ignoreFiles</tabstop> |
204 | </tabstops> | 204 | </tabstops> |
205 | <resources> | 205 | <resources> |
@@ -213,8 +213,8 @@ | |||
213 | <slot>accept()</slot> | 213 | <slot>accept()</slot> |
214 | <hints> | 214 | <hints> |
215 | <hint type="sourcelabel"> | 215 | <hint type="sourcelabel"> |
216 | <x>472</x> | 216 | <x>624</x> |
217 | <y>418</y> | 217 | <y>437</y> |
218 | </hint> | 218 | </hint> |
219 | <hint type="destinationlabel"> | 219 | <hint type="destinationlabel"> |
220 | <x>382</x> | 220 | <x>382</x> |
@@ -229,8 +229,8 @@ | |||
229 | <slot>reject()</slot> | 229 | <slot>reject()</slot> |
230 | <hints> | 230 | <hints> |
231 | <hint type="sourcelabel"> | 231 | <hint type="sourcelabel"> |
232 | <x>561</x> | 232 | <x>711</x> |
233 | <y>428</y> | 233 | <y>437</y> |
234 | </hint> | 234 | </hint> |
235 | <hint type="destinationlabel"> | 235 | <hint type="destinationlabel"> |
236 | <x>522</x> | 236 | <x>522</x> |
diff --git a/rbutil/rbutilqt/installtalkwindow.cpp b/rbutil/rbutilqt/installtalkwindow.cpp index f2e042e2a5..dedb19cb38 100644 --- a/rbutil/rbutilqt/installtalkwindow.cpp +++ b/rbutil/rbutilqt/installtalkwindow.cpp | |||
@@ -50,12 +50,8 @@ InstallTalkWindow::InstallTalkWindow(QWidget *parent) : QDialog(parent) | |||
50 | } | 50 | } |
51 | 51 | ||
52 | 52 | ||
53 | void InstallTalkWindow::change() | 53 | void InstallTalkWindow::saveSettings(void) |
54 | { | 54 | { |
55 | Config *cw = new Config(this, 4); | ||
56 | |||
57 | // make sure the current selected folder doesn't get lost on settings | ||
58 | // changes. | ||
59 | QModelIndexList si = ui.treeView->selectionModel()->selectedIndexes(); | 55 | QModelIndexList si = ui.treeView->selectionModel()->selectedIndexes(); |
60 | QStringList foldersToTalk; | 56 | QStringList foldersToTalk; |
61 | for(int i = 0; i < si.size(); i++) { | 57 | for(int i = 0; i < si.size(); i++) { |
@@ -63,7 +59,26 @@ void InstallTalkWindow::change() | |||
63 | foldersToTalk.append(fsm->filePath(si.at(i))); | 59 | foldersToTalk.append(fsm->filePath(si.at(i))); |
64 | } | 60 | } |
65 | } | 61 | } |
66 | RbSettings::setValue(RbSettings::LastTalkedFolder, foldersToTalk); | 62 | RbSettings::setValue(RbSettings::TalkFolders, foldersToTalk); |
63 | |||
64 | RbSettings::setValue(RbSettings::TalkSkipExisting, ui.GenerateOnlyNew->isChecked()); | ||
65 | RbSettings::setValue(RbSettings::TalkRecursive, ui.recursive->isChecked()); | ||
66 | RbSettings::setValue(RbSettings::TalkStripExtensions, ui.StripExtensions->isChecked()); | ||
67 | RbSettings::setValue(RbSettings::TalkProcessFolders, ui.talkFolders->isChecked()); | ||
68 | RbSettings::setValue(RbSettings::TalkProcessFiles, ui.talkFiles->isChecked()); | ||
69 | RbSettings::setValue(RbSettings::TalkIgnoreWildcards, ui.ignoreFiles->text()); | ||
70 | RbSettings::setValue(RbSettings::TalkIgnoreFiles, ui.ignoreEnabled->isChecked()); | ||
71 | |||
72 | RbSettings::sync(); | ||
73 | } | ||
74 | |||
75 | |||
76 | void InstallTalkWindow::change() | ||
77 | { | ||
78 | Config *cw = new Config(this, 4); | ||
79 | |||
80 | // make sure the current selected folder doesn't get lost on settings | ||
81 | // changes. | ||
67 | connect(cw, SIGNAL(settingsUpdated()), this, SLOT(updateSettings())); | 82 | connect(cw, SIGNAL(settingsUpdated()), this, SLOT(updateSettings())); |
68 | 83 | ||
69 | cw->show(); | 84 | cw->show(); |
@@ -73,19 +88,10 @@ void InstallTalkWindow::accept() | |||
73 | { | 88 | { |
74 | logger = new ProgressLoggerGui(this); | 89 | logger = new ProgressLoggerGui(this); |
75 | 90 | ||
76 | QModelIndexList si = ui.treeView->selectionModel()->selectedIndexes(); | 91 | saveSettings(); |
77 | QStringList foldersToTalk; | ||
78 | for(int i = 0; i < si.size(); i++) { | ||
79 | if(si.at(i).column() == 0) { | ||
80 | foldersToTalk.append(fsm->filePath(si.at(i))); | ||
81 | } | ||
82 | } | ||
83 | connect(logger,SIGNAL(closed()),this,SLOT(close())); | 92 | connect(logger,SIGNAL(closed()),this,SLOT(close())); |
84 | logger->show(); | 93 | logger->show(); |
85 | 94 | saveSettings(); | |
86 | RbSettings::setValue(RbSettings::LastTalkedFolder, foldersToTalk); | ||
87 | |||
88 | RbSettings::sync(); | ||
89 | 95 | ||
90 | talkcreator->setMountPoint(RbSettings::value(RbSettings::Mountpoint).toString()); | 96 | talkcreator->setMountPoint(RbSettings::value(RbSettings::Mountpoint).toString()); |
91 | 97 | ||
@@ -101,6 +107,8 @@ void InstallTalkWindow::accept() | |||
101 | connect(talkcreator, SIGNAL(logProgress(int, int)), logger, SLOT(setProgress(int, int))); | 107 | connect(talkcreator, SIGNAL(logProgress(int, int)), logger, SLOT(setProgress(int, int))); |
102 | connect(logger,SIGNAL(aborted()),talkcreator,SLOT(abort())); | 108 | connect(logger,SIGNAL(aborted()),talkcreator,SLOT(abort())); |
103 | 109 | ||
110 | QStringList foldersToTalk | ||
111 | = RbSettings::value(RbSettings::TalkFolders).toStringList(); | ||
104 | for(int i = 0; i < foldersToTalk.size(); i++) { | 112 | for(int i = 0; i < foldersToTalk.size(); i++) { |
105 | talkcreator->setDir(QDir(foldersToTalk.at(i))); | 113 | talkcreator->setDir(QDir(foldersToTalk.at(i))); |
106 | talkcreator->createTalkFiles(); | 114 | talkcreator->createTalkFiles(); |
@@ -119,7 +127,7 @@ void InstallTalkWindow::updateSettings(void) | |||
119 | ui.labelTtsProfile->setText(tr("<b>%1</b>") | 127 | ui.labelTtsProfile->setText(tr("<b>%1</b>") |
120 | .arg("Invalid TTS configuration!")); | 128 | .arg("Invalid TTS configuration!")); |
121 | 129 | ||
122 | QStringList folders = RbSettings::value(RbSettings::LastTalkedFolder).toStringList(); | 130 | QStringList folders = RbSettings::value(RbSettings::TalkFolders).toStringList(); |
123 | for(int i = 0; i < folders.size(); ++i) { | 131 | for(int i = 0; i < folders.size(); ++i) { |
124 | QModelIndex mi = fsm->index(folders.at(i)); | 132 | QModelIndex mi = fsm->index(folders.at(i)); |
125 | ui.treeView->selectionModel()->select(mi, QItemSelectionModel::Select); | 133 | ui.treeView->selectionModel()->select(mi, QItemSelectionModel::Select); |
@@ -128,6 +136,20 @@ void InstallTalkWindow::updateSettings(void) | |||
128 | ui.treeView->setExpanded(mi, true); | 136 | ui.treeView->setExpanded(mi, true); |
129 | } | 137 | } |
130 | } | 138 | } |
139 | ui.GenerateOnlyNew->setChecked( | ||
140 | RbSettings::value(RbSettings::TalkSkipExisting).toBool()); | ||
141 | ui.recursive->setChecked( | ||
142 | RbSettings::value(RbSettings::TalkRecursive).toBool()); | ||
143 | ui.StripExtensions->setChecked( | ||
144 | RbSettings::value(RbSettings::TalkStripExtensions).toBool()); | ||
145 | ui.talkFolders->setChecked( | ||
146 | RbSettings::value(RbSettings::TalkProcessFolders).toBool()); | ||
147 | ui.talkFiles->setChecked( | ||
148 | RbSettings::value(RbSettings::TalkProcessFiles).toBool()); | ||
149 | ui.ignoreFiles->setText( | ||
150 | RbSettings::value(RbSettings::TalkIgnoreWildcards).toString()); | ||
151 | ui.ignoreEnabled->setChecked( | ||
152 | RbSettings::value(RbSettings::TalkIgnoreFiles).toBool()); | ||
131 | 153 | ||
132 | emit settingsUpdated(); | 154 | emit settingsUpdated(); |
133 | } | 155 | } |
diff --git a/rbutil/rbutilqt/installtalkwindow.h b/rbutil/rbutilqt/installtalkwindow.h index ab233955d8..7bb338587c 100644 --- a/rbutil/rbutilqt/installtalkwindow.h +++ b/rbutil/rbutilqt/installtalkwindow.h | |||
@@ -39,6 +39,7 @@ class InstallTalkWindow : public QDialog | |||
39 | 39 | ||
40 | private slots: | 40 | private slots: |
41 | void updateSettings(void); | 41 | void updateSettings(void); |
42 | void saveSettings(void); | ||
42 | 43 | ||
43 | signals: | 44 | signals: |
44 | void settingsUpdated(void); | 45 | void settingsUpdated(void); |