Assure that non-default messages don't get hidden after a very short time by default messages.

svn path=/trunk/KDE/kdebase/apps/; revision=1005712
This commit is contained in:
Peter Penz 2009-08-01 20:30:23 +00:00
parent 99eacd9f56
commit 52478842e3
2 changed files with 22 additions and 1 deletions

View 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) {

View 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