summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2022-03-20 09:58:04 +0100
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2022-03-20 10:00:25 +0100
commitccdd9e6784c1aaee8ebb35f192dae647895c67bc (patch)
tree2ec8164d4b6f504adc3f2d441f4c20a0e77ad8e7 /utils
parentc21d10cb33e0d123d4b53acdc28e73002d240634 (diff)
downloadrockbox-ccdd9e6784c1aaee8ebb35f192dae647895c67bc.tar.gz
rockbox-ccdd9e6784c1aaee8ebb35f192dae647895c67bc.zip
rbutil: Fix TTS "waiting for engine" appearing randomly.
QProgressDialog shows / hides itself automatically based on the progress value set, so calling hide() directly doesn't prevent the dialog from showing itself. Change the logic to set a value instead. Fixes the progress dialog sometimes appearing in situations where it wasn't used at all. Change-Id: Ifef063f31b7f888bb74f180dea0679e81cc5c8fe
Diffstat (limited to 'utils')
-rw-r--r--utils/rbutilqt/base/encttssettings.h3
-rw-r--r--utils/rbutilqt/base/ttsfestival.cpp6
-rw-r--r--utils/rbutilqt/encttscfggui.cpp33
-rw-r--r--utils/rbutilqt/encttscfggui.h6
4 files changed, 24 insertions, 24 deletions
diff --git a/utils/rbutilqt/base/encttssettings.h b/utils/rbutilqt/base/encttssettings.h
index 1258d81d57..ef3e5728b5 100644
--- a/utils/rbutilqt/base/encttssettings.h
+++ b/utils/rbutilqt/base/encttssettings.h
@@ -108,8 +108,7 @@ public:
108 virtual void saveSettings() = 0; 108 virtual void saveSettings() = 0;
109 109
110signals: 110signals:
111 void busy(); // emit this if a operation takes time 111 void busy(bool show); // emit this if a operation takes time
112 void busyEnd(); // emit this at the end of a busy section
113 112
114protected: 113protected:
115 //! Child class should fill in the setttingsList 114 //! Child class should fill in the setttingsList
diff --git a/utils/rbutilqt/base/ttsfestival.cpp b/utils/rbutilqt/base/ttsfestival.cpp
index fbb8166a9a..fce1d8cb3e 100644
--- a/utils/rbutilqt/base/ttsfestival.cpp
+++ b/utils/rbutilqt/base/ttsfestival.cpp
@@ -336,14 +336,14 @@ QString TTSFestival::queryServer(QString query, int timeout)
336 return ""; 336 return "";
337 337
338 // this operation could take some time 338 // this operation could take some time
339 emit busy(); 339 emit busy(true);
340 340
341 LOG_INFO() << "queryServer with" << query; 341 LOG_INFO() << "queryServer with" << query;
342 342
343 if (!ensureServerRunning()) 343 if (!ensureServerRunning())
344 { 344 {
345 LOG_ERROR() << "queryServer: ensureServerRunning failed"; 345 LOG_ERROR() << "queryServer: ensureServerRunning failed";
346 emit busyEnd(); 346 emit busy(false);
347 return ""; 347 return "";
348 } 348 }
349 349
@@ -391,7 +391,7 @@ QString TTSFestival::queryServer(QString query, int timeout)
391 while(QDateTime::currentDateTime() < tmpEndTime) 391 while(QDateTime::currentDateTime() < tmpEndTime)
392 QCoreApplication::processEvents(QEventLoop::AllEvents); 392 QCoreApplication::processEvents(QEventLoop::AllEvents);
393 } 393 }
394 emit busyEnd(); 394 emit busy(false);
395 socket.disconnectFromHost(); 395 socket.disconnectFromHost();
396 396
397 if(response == "nil") 397 if(response == "nil")
diff --git a/utils/rbutilqt/encttscfggui.cpp b/utils/rbutilqt/encttscfggui.cpp
index cd2cf24f5b..e0f203bc1c 100644
--- a/utils/rbutilqt/encttscfggui.cpp
+++ b/utils/rbutilqt/encttscfggui.cpp
@@ -40,14 +40,14 @@ EncTtsCfgGui::EncTtsCfgGui(QDialog* parent, EncTtsSettingInterface* iface, QStri
40 m_busyCnt(0) 40 m_busyCnt(0)
41{ 41{
42 // create a busy Dialog 42 // create a busy Dialog
43 m_busyDlg= new QProgressDialog("", "", 0, 0,this); 43 m_busyDlg= new QProgressDialog("", "", 0, 1, this);
44 m_busyDlg->setWindowTitle(tr("Waiting for engine...")); 44 m_busyDlg->setWindowTitle(tr("Waiting for engine..."));
45 m_busyDlg->setModal(true); 45 m_busyDlg->setModal(true);
46 m_busyDlg->setLabel(nullptr); 46 m_busyDlg->setLabel(nullptr);
47 m_busyDlg->setCancelButton(nullptr); 47 m_busyDlg->setCancelButton(nullptr);
48 m_busyDlg->hide(); 48 m_busyDlg->setMinimumDuration(100);
49 connect(iface, &EncTtsSettingInterface::busy, this, &EncTtsCfgGui::showBusy); 49 m_busyDlg->setValue(1);
50 connect(iface, &EncTtsSettingInterface::busyEnd, this, &EncTtsCfgGui::hideBusy); 50 connect(iface, &EncTtsSettingInterface::busy, this, &EncTtsCfgGui::busyDialog);
51 51
52 //setup the window 52 //setup the window
53 setWindowTitle(name); 53 setWindowTitle(name);
@@ -279,18 +279,21 @@ QWidget* EncTtsCfgGui::createButton(EncTtsSetting* setting)
279} 279}
280 280
281 281
282void EncTtsCfgGui::showBusy() 282void EncTtsCfgGui::busyDialog(bool show)
283{ 283{
284 if(m_busyCnt == 0) m_busyDlg->show(); 284 if(show)
285 285 {
286 m_busyCnt++; 286 m_busyDlg->setValue(0);
287} 287 m_busyCnt++;
288 288 }
289void EncTtsCfgGui::hideBusy() 289 else
290{ 290 {
291 m_busyCnt--; 291 m_busyDlg->setValue(1);
292 292 if(m_busyCnt > 0)
293 if(m_busyCnt == 0) m_busyDlg->hide(); 293 {
294 m_busyCnt--;
295 }
296 }
294} 297}
295 298
296 299
diff --git a/utils/rbutilqt/encttscfggui.h b/utils/rbutilqt/encttscfggui.h
index bf9f08a384..109aebd399 100644
--- a/utils/rbutilqt/encttscfggui.h
+++ b/utils/rbutilqt/encttscfggui.h
@@ -40,10 +40,8 @@ private slots:
40 void accept(void); 40 void accept(void);
41 //! close window and dont save configuration 41 //! close window and dont save configuration
42 void reject(void); 42 void reject(void);
43 //! shows a busy dialog. counts calls. 43 //! show / hide the busy dialog, counts calls
44 void showBusy(); 44 void busyDialog(bool show);
45 //! hides the busy dialog, counts calls
46 void hideBusy();
47 45
48private: 46private:
49 //! creates all dynamic window content 47 //! creates all dynamic window content