Issue #25: Windows task button progress bar

This commit is contained in:
Jakub Melka
2022-09-09 19:45:03 +02:00
parent 72ad433467
commit 825fe59420
7 changed files with 298 additions and 53 deletions

View File

@@ -88,10 +88,7 @@ PDFViewerMainWindowLite::PDFViewerMainWindowLite(QWidget* parent) :
m_pageZoomSpinBox(nullptr),
m_isLoadingUI(false),
m_progress(new pdf::PDFProgress(this)),
#ifdef WIN_TASKBAR_BUTTON
m_taskbarButton(new QWinTaskbarButton(this)),
m_progressTaskbarIndicator(nullptr),
#endif
m_progressTaskbarIndicator(new PDFWinTaskBarProgress(this)),
m_progressDialog(nullptr),
m_isChangingProgressStep(false)
{
@@ -103,11 +100,6 @@ PDFViewerMainWindowLite::PDFViewerMainWindowLite(QWidget* parent) :
adjustToolbar(ui->mainToolBar);
ui->mainToolBar->setWindowTitle(tr("Standard"));
// Initialize task bar progress
#ifdef WIN_TASKBAR_BUTTON
m_progressTaskbarIndicator = m_taskbarButton->progress();
#endif
// Initialize actions
m_actionManager->setAction(PDFActionManager::Open, ui->actionOpen);
m_actionManager->setAction(PDFActionManager::Close, ui->actionClose);
@@ -277,11 +269,9 @@ void PDFViewerMainWindowLite::onProgressStarted(pdf::ProgressStartupInfo info)
m_progressDialog->setCancelButton(nullptr);
}
#ifdef WIN_TASKBAR_BUTTON
m_progressTaskbarIndicator->setRange(0, 100);
m_progressTaskbarIndicator->reset();
m_progressTaskbarIndicator->show();
#endif
m_programController->setIsBusy(true);
m_programController->updateActionsAvailability();
@@ -301,9 +291,7 @@ void PDFViewerMainWindowLite::onProgressStep(int percentage)
m_progressDialog->setValue(percentage);
}
#ifdef WIN_TASKBAR_BUTTON
m_progressTaskbarIndicator->setValue(percentage);
#endif
}
void PDFViewerMainWindowLite::onProgressFinished()
@@ -314,9 +302,8 @@ void PDFViewerMainWindowLite::onProgressFinished()
m_progressDialog->deleteLater();
m_progressDialog = nullptr;
}
#ifdef WIN_TASKBAR_BUTTON
m_progressTaskbarIndicator->hide();
#endif
m_programController->setIsBusy(false);
m_programController->updateActionsAvailability();
@@ -422,9 +409,7 @@ void PDFViewerMainWindowLite::closeEvent(QCloseEvent* event)
void PDFViewerMainWindowLite::showEvent(QShowEvent* event)
{
Q_UNUSED(event);
#ifdef WIN_TASKBAR_BUTTON
m_taskbarButton->setWindow(windowHandle());
#endif
m_progressTaskbarIndicator->setWindow(windowHandle());
}
void PDFViewerMainWindowLite::dragEnterEvent(QDragEnterEvent* event)