summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2012-06-14 22:36:54 +0200
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2012-06-14 22:54:30 +0200
commit537dfe482fc0378151406ee37a98c99283b5a3f0 (patch)
treeecbc4c0915092ad4ca76bf03364562449695876a
parenta9217bde2749df65d2f59fb63bf1622096263e4f (diff)
downloadrockbox-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.cpp9
-rw-r--r--rbutil/rbutilqt/base/rbsettings.h13
-rw-r--r--rbutil/rbutilqt/installtalkfrm.ui12
-rw-r--r--rbutil/rbutilqt/installtalkwindow.cpp58
-rw-r--r--rbutil/rbutilqt/installtalkwindow.h1
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
53void InstallTalkWindow::change() 53void 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
76void 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);