diff options
Diffstat (limited to 'rbutil/rbutilqt/tts.cpp')
-rw-r--r-- | rbutil/rbutilqt/tts.cpp | 37 |
1 files changed, 37 insertions, 0 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); |