diff --git a/src/libkdepim/progresswidget/statusbarprogresswidget.h b/src/libkdepim/progresswidget/statusbarprogresswidget.h --- a/src/libkdepim/progresswidget/statusbarprogresswidget.h +++ b/src/libkdepim/progresswidget/statusbarprogresswidget.h @@ -79,25 +79,24 @@ void updateBusyMode(KPIM::ProgressItem *); protected: - void setMode(); - void connectSingleItem(); - void activateSingleItemMode(); - bool eventFilter(QObject *, QEvent *) override; private: + enum Mode { + Progress, + Clean + }; + void setMode(Mode mode); void updateProgressButton(); + void connectSingleItem(); + void activateSingleItemMode(); + unsigned int mShowTypeProgressItem = 0; QProgressBar *mProgressBar = nullptr; QLabel *mLabel = nullptr; SSLLabel *mSslLabel = nullptr; QPushButton *mButton = nullptr; - enum Mode { - Progress, - Clean - }; - Mode mMode = Clean; bool mShowButton = false; bool mShowDetailedProgress = false; diff --git a/src/libkdepim/progresswidget/statusbarprogresswidget.cpp b/src/libkdepim/progresswidget/statusbarprogresswidget.cpp --- a/src/libkdepim/progresswidget/statusbarprogresswidget.cpp +++ b/src/libkdepim/progresswidget/statusbarprogresswidget.cpp @@ -103,8 +103,8 @@ mButton->setMaximumHeight(maximumHeight); setFixedWidth(600); - mMode = Clean; - setMode(); + mMode = Progress; // so the call below works + setMode(Clean); connect(mButton, &QAbstractButton::clicked, this, &StatusbarProgressWidget::slotProgressButtonClicked); @@ -223,9 +223,8 @@ } } - if (!noItems && mMode != Progress) { - mMode = Progress; - setMode(); + if (!noItems) { + setMode(Progress); } } @@ -242,8 +241,11 @@ mProgressBar->setValue(value); } -void StatusbarProgressWidget::setMode() +void StatusbarProgressWidget::setMode(Mode mode) { + if (mMode == mode) + return; + mMode = mode; switch (mMode) { case Clean: if (mShowButton) { @@ -272,8 +274,7 @@ // check if a new item showed up since we started the timer. If not, clear if (ProgressManager::instance()->isEmpty()) { mProgressBar->setValue(0); - mMode = Clean; - setMode(); + setMode(Clean); } } @@ -315,8 +316,7 @@ { // Show the hide/show button (mButton) as soon as the progress dialog is shown // (StatusbarProgressWidget::slotShowItemDelayed happens later) - if (b && mMode != Progress) { - mMode = Progress; - setMode(); + if (b) { + setMode(Progress); } }