+}
+
+void DolphinViewContainer::showFilterBar(bool show)
+{
+ Q_ASSERT(m_filterBar != 0);
+ if (show) {
+ m_filterBar->show();
+ } else {
+ closeFilterBar();
+ }
+}
+
+void DolphinViewContainer::delayedStatusBarUpdate()
+{
+ if (m_statusBarTimer->isActive() && (m_statusBarTimestamp.elapsed() > 2000)) {
+ // No update of the statusbar has been done during the last 2 seconds,
+ // although an update has been requested. Trigger an immediate update.
+ m_statusBarTimer->stop();
+ updateStatusBar();
+ } else {
+ // Invoke updateStatusBar() with a small delay. This assures that
+ // when a lot of delayedStatusBarUpdates() are done in a short time,
+ // no bottleneck is given.
+ m_statusBarTimer->start();
+ }
+}
+
+void DolphinViewContainer::updateStatusBar()
+{
+ m_statusBarTimestamp.start();
+
+ // As the item count information is less important
+ // in comparison with other messages, it should only
+ // be shown if:
+ // - the status bar is empty or
+ // - shows already the item count information or
+ // - shows only a not very important information
+ const QString newMessage = m_view->statusBarText();
+ const QString currentMessage = m_statusBar->message();
+ const bool updateStatusBarMsg = currentMessage.isEmpty()
+ || (currentMessage == m_statusBar->defaultText())
+ || (m_statusBar->type() == DolphinStatusBar::Information);
+
+ m_statusBar->setDefaultText(newMessage);
+
+ if (updateStatusBarMsg) {
+ m_statusBar->setMessage(newMessage, DolphinStatusBar::Default);
+ }
+}