diff --git a/src/statusbar/dolphinstatusbar.h b/src/statusbar/dolphinstatusbar.h --- a/src/statusbar/dolphinstatusbar.h +++ b/src/statusbar/dolphinstatusbar.h @@ -67,8 +67,7 @@ /** * Replaces the text set by setText() by the text that - * has been set by setDefaultText(). It is assured that the previous - * text will be shown for at least 1 second. DolphinStatusBar::text() + * has been set by setDefaultText(). DolphinStatusBar::text() * will return an empty string after the reset has been done. */ void resetToDefaultText(); @@ -119,14 +118,6 @@ */ void updateLabelText(); - /** - * Is invoked by m_resetToDefaultTextTimer and clears - * m_text so that the default text will be shown. This - * prevents that information-messages will be cleared - * too fast. - */ - void slotResetToDefaultText(); - /** * Updates the text of the zoom slider tooltip to show * the currently used size. @@ -156,7 +147,7 @@ int m_progress; QTimer* m_showProgressBarTimer; - QTimer* m_resetToDefaultTextTimer; + QTimer* m_delayUpdateTimer; QTime m_textTimestamp; }; diff --git a/src/statusbar/dolphinstatusbar.cpp b/src/statusbar/dolphinstatusbar.cpp --- a/src/statusbar/dolphinstatusbar.cpp +++ b/src/statusbar/dolphinstatusbar.cpp @@ -39,7 +39,7 @@ #include namespace { - const int ResetToDefaultTimeout = 1000; + const int UpdateDelay = 50; } DolphinStatusBar::DolphinStatusBar(QWidget* parent) : @@ -53,7 +53,7 @@ m_stopButton(nullptr), m_progress(100), m_showProgressBarTimer(nullptr), - m_resetToDefaultTextTimer(nullptr), + m_delayUpdateTimer(nullptr), m_textTimestamp() { // Initialize text label @@ -95,10 +95,12 @@ m_showProgressBarTimer->setSingleShot(true); connect(m_showProgressBarTimer, &QTimer::timeout, this, &DolphinStatusBar::updateProgressInfo); - m_resetToDefaultTextTimer = new QTimer(this); - m_resetToDefaultTextTimer->setInterval(ResetToDefaultTimeout); - m_resetToDefaultTextTimer->setSingleShot(true); - connect(m_resetToDefaultTextTimer, &QTimer::timeout, this, &DolphinStatusBar::slotResetToDefaultText); + // initialize text updater delay timer + m_delayUpdateTimer = new QTimer(this); + m_delayUpdateTimer->setInterval(UpdateDelay); + m_delayUpdateTimer->setSingleShot(true); + connect(m_delayUpdateTimer, &QTimer::timeout, + this, &DolphinStatusBar::updateLabelText); // Initialize top layout and size policies const int fontHeight = QFontMetrics(m_label->font()).height(); @@ -154,19 +156,9 @@ m_textTimestamp = QTime::currentTime(); - if (text.isEmpty()) { - // Assure that the previous set text won't get - // cleared immediately. - m_resetToDefaultTextTimer->start(); - } else { - m_text = text; - - if (m_resetToDefaultTextTimer->isActive()) { - m_resetToDefaultTextTimer->start(); - } - - updateLabelText(); - } + m_text = text; + // will update status bar text in 50ms + m_delayUpdateTimer->start(); } QString DolphinStatusBar::text() const @@ -214,12 +206,13 @@ void DolphinStatusBar::resetToDefaultText() { + m_text.clear(); + QTime currentTime; - if (currentTime.msecsTo(m_textTimestamp) < ResetToDefaultTimeout) { - m_resetToDefaultTextTimer->start(); + if (currentTime.msecsTo(m_textTimestamp) < UpdateDelay) { + m_delayUpdateTimer->start(); } else { - m_resetToDefaultTextTimer->stop(); - slotResetToDefaultText(); + updateLabelText(); } } @@ -325,12 +318,6 @@ m_label->setText(text); } -void DolphinStatusBar::slotResetToDefaultText() -{ - m_text.clear(); - updateLabelText(); -} - void DolphinStatusBar::updateZoomSliderToolTip(int zoomLevel) { const int size = ZoomLevelInfo::iconSizeForZoomLevel(zoomLevel);