diff options
-rw-r--r-- | rbutil/rbutilqt/tts.cpp | 37 | ||||
-rw-r--r-- | rbutil/rbutilqt/tts.h | 4 | ||||
-rw-r--r-- | rbutil/rbutilqt/ttsgui.cpp | 31 |
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 | ||
100 | void 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 | |||
100 | bool TTSExes::start(QString *errStr) | 137 | bool 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 |