From 4e1835b80d41e2d578de1eb2de593f2e1f45d657 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 17 Dec 2018 08:30:28 +0100 Subject: [PATCH] Overlay progress bar --- src/blackgui/overlaymessages.cpp | 29 +++++++++++++++++++++++++++++ src/blackgui/overlaymessages.h | 6 ++++++ src/blackgui/overlaymessages.ui | 32 +++++++++++++++++++++++++++++++- 3 files changed, 66 insertions(+), 1 deletion(-) diff --git a/src/blackgui/overlaymessages.cpp b/src/blackgui/overlaymessages.cpp index d1357bf89..f43a4434a 100644 --- a/src/blackgui/overlaymessages.cpp +++ b/src/blackgui/overlaymessages.cpp @@ -351,6 +351,28 @@ namespace BlackGui this->display(timeOutMs); } + void COverlayMessages::showProgressBar(int percentage, const QString &message, int timeOutMs) + { + if (message.isEmpty()) { return; } + if (!sGui || sGui->isShuttingDown()) { return; } + if (this->hasPendingConfirmation()) { return; } // ignore if something else is pending + + const int p = qMax(qMin(percentage, 100), 0); + + ui->pb_ProgressBar->setValue(p); + ui->lbl_ProgressBar->setText(message); + this->setModeToProgressBar(); + + if (p >= 100) + { + this->close(); + } + else + { + this->display(timeOutMs); + } + } + void COverlayMessages::showKillButton(bool killButton) { m_hasKillButton = killButton; @@ -385,6 +407,13 @@ namespace BlackGui this->setHeader("Message"); } + void COverlayMessages::setModeToProgressBar(bool withKillButton) + { + ui->sw_StatusMessagesComponent->setCurrentWidget(ui->pg_ProgressBar); + this->showKill(withKillButton); + this->setHeader("Progress bar"); + } + void COverlayMessages::setModeToTextMessage() { ui->sw_StatusMessagesComponent->setCurrentWidget(ui->pg_TextMessage); diff --git a/src/blackgui/overlaymessages.h b/src/blackgui/overlaymessages.h index 96d1b1f5c..53e30961b 100644 --- a/src/blackgui/overlaymessages.h +++ b/src/blackgui/overlaymessages.h @@ -65,6 +65,9 @@ namespace BlackGui //! HTML message mode void setModeToHTMLMessage(bool withKillButton = false); + //! Progress bar + void setModeToProgressBar(bool withKillButton = false); + //! Single Text message mode void setModeToTextMessage(); @@ -116,6 +119,9 @@ namespace BlackGui //! HTML message void showHTMLMessage(const BlackMisc::CStatusMessage &message, int timeOutMs = -1); + //! Progress bar + void showProgressBar(int percentage, const QString &message, int timeOutMs = -1); + //! Allows to globally enable/disable kill button void showKillButton(bool killButton); diff --git a/src/blackgui/overlaymessages.ui b/src/blackgui/overlaymessages.ui index 9e167075b..23f872b31 100644 --- a/src/blackgui/overlaymessages.ui +++ b/src/blackgui/overlaymessages.ui @@ -113,7 +113,7 @@ - 6 + 0 @@ -340,6 +340,36 @@ + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + 10 + + + + + + + text will go here + + + + + + + +