From ccdd9e6784c1aaee8ebb35f192dae647895c67bc Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Sun, 20 Mar 2022 09:58:04 +0100 Subject: 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 --- utils/rbutilqt/encttscfggui.cpp | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) (limited to 'utils/rbutilqt/encttscfggui.cpp') 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 m_busyCnt(0) { // create a busy Dialog - m_busyDlg= new QProgressDialog("", "", 0, 0,this); + m_busyDlg= new QProgressDialog("", "", 0, 1, this); m_busyDlg->setWindowTitle(tr("Waiting for engine...")); m_busyDlg->setModal(true); m_busyDlg->setLabel(nullptr); m_busyDlg->setCancelButton(nullptr); - m_busyDlg->hide(); - connect(iface, &EncTtsSettingInterface::busy, this, &EncTtsCfgGui::showBusy); - connect(iface, &EncTtsSettingInterface::busyEnd, this, &EncTtsCfgGui::hideBusy); + m_busyDlg->setMinimumDuration(100); + m_busyDlg->setValue(1); + connect(iface, &EncTtsSettingInterface::busy, this, &EncTtsCfgGui::busyDialog); //setup the window setWindowTitle(name); @@ -279,18 +279,21 @@ QWidget* EncTtsCfgGui::createButton(EncTtsSetting* setting) } -void EncTtsCfgGui::showBusy() +void EncTtsCfgGui::busyDialog(bool show) { - if(m_busyCnt == 0) m_busyDlg->show(); - - m_busyCnt++; -} - -void EncTtsCfgGui::hideBusy() -{ - m_busyCnt--; - - if(m_busyCnt == 0) m_busyDlg->hide(); + if(show) + { + m_busyDlg->setValue(0); + m_busyCnt++; + } + else + { + m_busyDlg->setValue(1); + if(m_busyCnt > 0) + { + m_busyCnt--; + } + } } -- cgit v1.2.3