X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d71de955f4a0901288d060a2eaceca305d11a203..abf17941f7:/src/statusbarmessagelabel.h diff --git a/src/statusbarmessagelabel.h b/src/statusbarmessagelabel.h index 03683c107..154915e4c 100644 --- a/src/statusbarmessagelabel.h +++ b/src/statusbarmessagelabel.h @@ -21,13 +21,16 @@ #ifndef STATUSBARMESSAGELABEL_H #define STATUSBARMESSAGELABEL_H -#include -#include -#include -//Added by qt3to4: -#include -#include #include + +#include +#include +#include +#include + +class QPaintEvent; +class QResizeEvent; +class QPushButton; class QTimer; /** @@ -46,12 +49,14 @@ public: explicit StatusBarMessageLabel(QWidget* parent); virtual ~StatusBarMessageLabel(); - void setType(DolphinStatusBar::Type type); - DolphinStatusBar::Type type() const { return m_type; } + void setMessage(const QString& text, DolphinStatusBar::Type type); - void setText(const QString& text); + DolphinStatusBar::Type type() const { return m_type; } const QString& text() const { return m_text; } + void setDefaultText(const QString& text) { m_defaultText = text; } + const QString& defaultText() const { return m_defaultText; } + // TODO: maybe a better approach is possible with the size hint void setMinimumTextHeight(int min); int minimumTextHeight() const { return m_minTextHeight; } @@ -84,6 +89,32 @@ private slots: */ int availableTextWidth() const; + /** + * Moves the close button to the upper right corner + * of the message label. + */ + void updateCloseButtonPosition(); + + /** + * Closes the currently shown error message and replaces it + * by the next pending message. + */ + void closeErrorMessage(); + +private: + /** + * Shows the next pending error message. If no pending message + * was in the queue, false is returned. + */ + bool showPendingMessage(); + + /** + * Resets the message label properties. This is useful when the + * result of invoking StatusBarMessageLabel::setMessage() should + * not rely on previous states. + */ + void reset(); + private: enum State { Default, @@ -100,13 +131,16 @@ private: int m_minTextHeight; QTimer* m_timer; QString m_text; + QString m_defaultText; + QList m_pendingMessages; QPixmap m_pixmap; + QPushButton* m_closeButton; QColor mixColors(const QColor& c1, const QColor& c2, int percent) const; - int pixmapGap() const { return 3; } + int borderGap() const { return 2; } }; #endif