From d71de955f4a0901288d060a2eaceca305d11a203 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Fri, 26 Jan 2007 19:58:41 +0000 Subject: Further optimizations: do a delayed update of the geometry. This leads to a reduced flickering/resizing when e. g. the view is split or the window is resized. svn path=/trunk/playground/utils/dolphin/; revision=627494 --- src/statusbarmessagelabel.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/statusbarmessagelabel.cpp') diff --git a/src/statusbarmessagelabel.cpp b/src/statusbarmessagelabel.cpp index de66bebba..1178a1688 100644 --- a/src/statusbarmessagelabel.cpp +++ b/src/statusbarmessagelabel.cpp @@ -79,7 +79,7 @@ void StatusBarMessageLabel::setType(DolphinStatusBar::Type type) } m_pixmap = (iconName == 0) ? QPixmap() : SmallIcon(iconName); - assureVisibleText(); + QTimer::singleShot(GeometryTimeout, this, SLOT(assureVisibleText())); update(); } } @@ -93,7 +93,7 @@ void StatusBarMessageLabel::setText(const QString& text) m_state = Illuminate; } m_text = text; - assureVisibleText(); + QTimer::singleShot(GeometryTimeout, this, SLOT(assureVisibleText())); update(); } } @@ -139,14 +139,18 @@ void StatusBarMessageLabel::paintEvent(QPaintEvent* /* event */) // draw text painter.setPen(foregroundColor); - painter.drawText(QRect(x, 0, width() - x, height()), Qt::AlignVCenter | Qt::TextWordWrap, m_text); + int flags = Qt::AlignVCenter; + if (height() > m_minTextHeight) { + flags = flags | Qt::TextWordWrap; + } + painter.drawText(QRect(x, 0, width() - x, height()), flags, m_text); painter.end(); } void StatusBarMessageLabel::resizeEvent(QResizeEvent* event) { QWidget::resizeEvent(event); - QTimer::singleShot(0, this, SLOT(assureVisibleText())); + QTimer::singleShot(GeometryTimeout, this, SLOT(assureVisibleText())); } void StatusBarMessageLabel::timerDone() -- cgit v1.3