]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Further optimizations: do a delayed update of the geometry. This leads to a reduced...
authorPeter Penz <peter.penz19@gmail.com>
Fri, 26 Jan 2007 19:58:41 +0000 (19:58 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Fri, 26 Jan 2007 19:58:41 +0000 (19:58 +0000)
svn path=/trunk/playground/utils/dolphin/; revision=627494

src/statusbarmessagelabel.cpp
src/statusbarmessagelabel.h

index de66bebba3e1c8932e266ed59dbbd478a30fc991..1178a16886588af6ddc4e4ae08c87a3cde4b9074 100644 (file)
@@ -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()
index 922465584d8b9011d2254887a4d36a34de33d618..03683c107290cf732b0274f621599f532e4d91b6 100644 (file)
@@ -92,6 +92,8 @@ private:
         Desaturate
     };
 
+    enum { GeometryTimeout = 100 };
+
     DolphinStatusBar::Type m_type;
     State m_state;
     int m_illumination;