mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 16:31:21 +00:00
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:
parent
99eacd9f56
commit
52478842e3
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue