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
+
+
+
+
+
+
+
+