]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Assure that non-default messages don't get hidden after a very short time by default...
authorPeter Penz <peter.penz19@gmail.com>
Sat, 1 Aug 2009 20:30:23 +0000 (20:30 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sat, 1 Aug 2009 20:30:23 +0000 (20:30 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=1005712

src/statusbar/dolphinstatusbar.cpp
src/statusbar/dolphinstatusbar.h

index aaa302a152ca3b135284e074886e8309fbbc1a9d..fe42011d37fafa57e58b6672f95e341aa9358fbe 100644 (file)
@@ -48,7 +48,8 @@ DolphinStatusBar::DolphinStatusBar(QWidget* parent, DolphinView* view) :
     m_zoomSlider(0),
     m_zoomIn(0),
     m_progressBar(0),
-    m_progress(100)
+    m_progress(100),
+    m_messageTimeStamp()
 {
     setMargin(0);
     setSpacing(4);
@@ -135,7 +136,21 @@ void DolphinStatusBar::setMessage(const QString& msg,
         return;
     }
 
+    const QTime currentTime = QTime::currentTime();
+    const bool skipMessage = (type == Default) &&
+                             m_messageTimeStamp.isValid() &&
+                             (m_messageTimeStamp.msecsTo(currentTime) < 1000);
+    if (skipMessage) {
+        // A non-default message is shown just for a very short time. Don't hide
+        // the message by a default message, so that the user gets the chance to
+        // read the information.
+        return;
+    }
+
     m_messageLabel->setMessage(msg, type);
+    if (type != Default) {
+        m_messageTimeStamp = currentTime;
+    }
 
     const int widthGap = m_messageLabel->widthGap();
     if (widthGap > 0) {
index a536ea17856efea47bcbc47fa38eefd1bb97363f..a07313babb714293e7b8aeac818c1cd2955c14f6 100644 (file)
@@ -22,6 +22,7 @@
 #define DOLPHINSTATUSBAR_H
 
 #include <khbox.h>
+#include <QTime>
 
 class DolphinView;
 class KUrl;
@@ -179,6 +180,11 @@ private:
     QLabel* m_progressText;
     QProgressBar* m_progressBar;
     int m_progress;
+
+    // Timestamp when the last message has been set that has not the type
+    // 'Default'. The timestamp is used to prevent that default messages
+    // hide more important messages after a very short delay.
+    QTime m_messageTimeStamp;
 };
 
 #endif