From 45cafbed6d32304359067ebb55a14309816ac844 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Mon, 28 Jun 2010 16:10:36 +0000 Subject: [PATCH] Only show statusbar info messages for a few seconds, then clear the status bar svn path=/trunk/kdenlive/; revision=4550 --- src/statusbarmessagelabel.cpp | 9 ++++++++- src/statusbarmessagelabel.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/statusbarmessagelabel.cpp b/src/statusbarmessagelabel.cpp index 8bddbd63..5e65f2e4 100644 --- a/src/statusbarmessagelabel.cpp +++ b/src/statusbarmessagelabel.cpp @@ -48,8 +48,10 @@ StatusBarMessageLabel::StatusBarMessageLabel(QWidget* parent) : QPalette palette; palette.setColor(QPalette::Background, Qt::transparent); setPalette(palette); - + m_hidetimer.setSingleShot(true); + m_hidetimer.setInterval(5000); connect(&m_timer, SIGNAL(timeout()), this, SLOT(timerDone())); + connect(&m_hidetimer, SIGNAL(timeout()), this, SLOT(closeErrorMessage())); m_closeButton = new QPushButton(i18nc("@action:button", "Close"), this); m_closeButton->hide(); @@ -92,11 +94,13 @@ void StatusBarMessageLabel::setMessage(const QString& text, iconName = "dialog-ok"; // "ok" icon should probably be "dialog-success", but we don't have that icon in KDE 4.0 m_closeButton->hide(); + m_hidetimer.stop(); break; case InformationMessage: iconName = "dialog-information"; m_closeButton->hide(); + m_hidetimer.start(); break; case ErrorMessage: @@ -105,6 +109,7 @@ void StatusBarMessageLabel::setMessage(const QString& text, m_state = Illuminate; m_closeButton->hide(); KNotification::event("ErrorMessage", m_text); + m_hidetimer.stop(); break; case MltError: @@ -113,11 +118,13 @@ void StatusBarMessageLabel::setMessage(const QString& text, m_state = Illuminate; updateCloseButtonPosition(); m_closeButton->show(); + m_hidetimer.stop(); break; case DefaultMessage: default: m_closeButton->hide(); + m_hidetimer.stop(); break; } diff --git a/src/statusbarmessagelabel.h b/src/statusbarmessagelabel.h index 5f3cc8a4..a0f491df 100644 --- a/src/statusbarmessagelabel.h +++ b/src/statusbarmessagelabel.h @@ -125,6 +125,7 @@ private: int m_illumination; int m_minTextHeight; QTimer m_timer; + QTimer m_hidetimer; QString m_text; QList m_pendingMessages; QPixmap m_pixmap; -- 2.39.2