Issue #119: Improve search bar 2 (the revenge)

This commit is contained in:
Jakub Melka
2023-12-09 15:41:08 +01:00
parent 5a6f448467
commit d50ecdbb28
8 changed files with 140 additions and 83 deletions

View File

@ -89,7 +89,8 @@ PDFViewerMainWindow::PDFViewerMainWindow(QWidget* parent) :
m_isLoadingUI(false),
m_progress(new pdf::PDFProgress(this)),
m_progressTaskbarIndicator(new PDFWinTaskBarProgress(this)),
m_progressDialog(nullptr),
m_progressBarOnStatusBar(nullptr),
m_progressBarLeftLabelOnStatusBar(nullptr),
m_isChangingProgressStep(false)
{
ui->setupUi(this);
@ -100,6 +101,14 @@ PDFViewerMainWindow::PDFViewerMainWindow(QWidget* parent) :
adjustToolbar(ui->mainToolBar);
ui->mainToolBar->setWindowTitle(tr("Standard"));
// Initialize status bar
m_progressBarOnStatusBar = new QProgressBar(this);
m_progressBarOnStatusBar->setHidden(true);
m_progressBarLeftLabelOnStatusBar = new QLabel(this);
m_progressBarLeftLabelOnStatusBar->setHidden(true);
statusBar()->addPermanentWidget(m_progressBarLeftLabelOnStatusBar);
statusBar()->addPermanentWidget(m_progressBarOnStatusBar);
// Initialize actions
m_actionManager->setAction(PDFActionManager::Open, ui->actionOpen);
m_actionManager->setAction(PDFActionManager::Close, ui->actionClose);
@ -353,13 +362,12 @@ void PDFViewerMainWindow::onPageZoomSpinboxEditingFinished()
void PDFViewerMainWindow::onProgressStarted(pdf::ProgressStartupInfo info)
{
Q_ASSERT(!m_progressDialog);
if (info.showDialog)
{
m_progressDialog = new QProgressDialog(info.text, QString(), 0, 100, this);
m_progressDialog->setWindowModality(Qt::WindowModal);
m_progressDialog->setCancelButton(nullptr);
}
m_progressBarLeftLabelOnStatusBar->setText(info.text);
m_progressBarLeftLabelOnStatusBar->setVisible(!info.text.isEmpty());
m_progressBarOnStatusBar->setRange(0, 100);
m_progressBarOnStatusBar->reset();
m_progressBarOnStatusBar->show();
m_progressTaskbarIndicator->setRange(0, 100);
m_progressTaskbarIndicator->reset();
@ -377,24 +385,14 @@ void PDFViewerMainWindow::onProgressStep(int percentage)
}
pdf::PDFTemporaryValueChange guard(&m_isChangingProgressStep, true);
if (m_progressDialog)
{
m_progressDialog->setValue(percentage);
}
m_progressBarOnStatusBar->setValue(percentage);
m_progressTaskbarIndicator->setValue(percentage);
}
void PDFViewerMainWindow::onProgressFinished()
{
if (m_progressDialog)
{
m_progressDialog->hide();
m_progressDialog->deleteLater();
m_progressDialog = nullptr;
}
m_progressBarLeftLabelOnStatusBar->hide();
m_progressBarOnStatusBar->hide();
m_progressTaskbarIndicator->hide();
m_programController->setIsBusy(false);