summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2008-08-02 16:40:16 +0000
committerDominik Wenger <domonoky@googlemail.com>2008-08-02 16:40:16 +0000
commit85eb99211ad1c9a71364a5de17eafc0644a03c67 (patch)
tree0e0f265af4a2d90cc0d7a4c2e1bd3f44ba5e201b
parent4c83ef1dbebacc84d03d343bb542cd1ce53bbac5 (diff)
downloadrockbox-85eb99211ad1c9a71364a5de17eafc0644a03c67.tar.gz
rockbox-85eb99211ad1c9a71364a5de17eafc0644a03c67.zip
rbutil: try to detect position of tts executeables without opening the config window.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18183 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--rbutil/rbutilqt/tts.cpp37
-rw-r--r--rbutil/rbutilqt/tts.h4
-rw-r--r--rbutil/rbutilqt/ttsgui.cpp31
3 files changed, 41 insertions, 31 deletions
diff --git a/rbutil/rbutilqt/tts.cpp b/rbutil/rbutilqt/tts.cpp
index d6049f8aec..fd0097c617 100644
--- a/rbutil/rbutilqt/tts.cpp
+++ b/rbutil/rbutilqt/tts.cpp
@@ -97,6 +97,43 @@ TTSExes::TTSExes(QString name) : TTSBase()
97 97
98} 98}
99 99
100void TTSExes::setCfg(RbSettings* sett)
101{
102 // call function of base class
103 TTSBase::setCfg(sett);
104
105 // if the config isnt OK, try to autodetect
106 if(!configOk())
107 {
108 QString exepath;
109 //try autodetect tts
110#if defined(Q_OS_LINUX) || defined(Q_OS_MACX)
111 QStringList path = QString(getenv("PATH")).split(":", QString::SkipEmptyParts);
112#elif defined(Q_OS_WIN)
113 QStringList path = QString(getenv("PATH")).split(";", QString::SkipEmptyParts);
114#endif
115 qDebug() << path;
116 for(int i = 0; i < path.size(); i++)
117 {
118 QString executable = QDir::fromNativeSeparators(path.at(i)) + "/" + m_name;
119#if defined(Q_OS_WIN)
120 executable += ".exe";
121 QStringList ex = executable.split("\"", QString::SkipEmptyParts);
122 executable = ex.join("");
123#endif
124 qDebug() << executable;
125 if(QFileInfo(executable).isExecutable())
126 {
127 exepath= QDir::toNativeSeparators(executable);
128 break;
129 }
130 }
131 settings->setTTSPath(m_name,exepath);
132 settings->sync();
133 }
134
135}
136
100bool TTSExes::start(QString *errStr) 137bool TTSExes::start(QString *errStr)
101{ 138{
102 m_TTSexec = settings->ttsPath(m_name); 139 m_TTSexec = settings->ttsPath(m_name);
diff --git a/rbutil/rbutilqt/tts.h b/rbutil/rbutilqt/tts.h
index e25949de55..f73114b8c1 100644
--- a/rbutil/rbutilqt/tts.h
+++ b/rbutil/rbutilqt/tts.h
@@ -46,7 +46,7 @@ class TTSBase : public QObject
46 virtual void showCfg(){} 46 virtual void showCfg(){}
47 virtual bool configOk() { return false; } 47 virtual bool configOk() { return false; }
48 48
49 void setCfg(RbSettings* sett) { settings = sett; } 49 virtual void setCfg(RbSettings* sett) { settings = sett; }
50 50
51 static TTSBase* getTTS(QString ttsname); 51 static TTSBase* getTTS(QString ttsname);
52 static QStringList getTTSList(); 52 static QStringList getTTSList();
@@ -105,6 +105,8 @@ class TTSExes : public TTSBase
105 virtual void showCfg(); 105 virtual void showCfg();
106 virtual bool configOk(); 106 virtual bool configOk();
107 107
108 virtual void setCfg(RbSettings* sett);
109
108 private: 110 private:
109 QString m_name; 111 QString m_name;
110 QString m_TTSexec; 112 QString m_TTSexec;
diff --git a/rbutil/rbutilqt/ttsgui.cpp b/rbutil/rbutilqt/ttsgui.cpp
index 385dfa12e7..0a59b25d86 100644
--- a/rbutil/rbutilqt/ttsgui.cpp
+++ b/rbutil/rbutilqt/ttsgui.cpp
@@ -137,36 +137,7 @@ void TTSExesGui::showCfg(QString name)
137 m_name = name; 137 m_name = name;
138 // try to get config from settings 138 // try to get config from settings
139 QString exepath =settings->ttsPath(m_name); 139 QString exepath =settings->ttsPath(m_name);
140 ui.ttsoptions->setText(settings->ttsOptions(m_name)); 140 ui.ttsoptions->setText(settings->ttsOptions(m_name));
141
142 if(exepath == "")
143 {
144
145 //try autodetect tts
146#if defined(Q_OS_LINUX) || defined(Q_OS_MACX)
147 QStringList path = QString(getenv("PATH")).split(":", QString::SkipEmptyParts);
148#elif defined(Q_OS_WIN)
149 QStringList path = QString(getenv("PATH")).split(";", QString::SkipEmptyParts);
150#endif
151 qDebug() << path;
152 for(int i = 0; i < path.size(); i++)
153 {
154 QString executable = QDir::fromNativeSeparators(path.at(i)) + "/" + m_name;
155#if defined(Q_OS_WIN)
156 executable += ".exe";
157 QStringList ex = executable.split("\"", QString::SkipEmptyParts);
158 executable = ex.join("");
159#endif
160 qDebug() << executable;
161 if(QFileInfo(executable).isExecutable())
162 {
163 exepath= QDir::toNativeSeparators(executable);
164 break;
165 }
166 }
167
168 }
169
170 ui.ttspath->setText(exepath); 141 ui.ttspath->setText(exepath);
171 142
172 //show dialog 143 //show dialog