1
0
mirror of https://invent.kde.org/system/dolphin synced 2024-07-04 17:30:55 +00:00

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
This commit is contained in:
Peter Penz 2007-01-26 19:58:41 +00:00
parent 9877bef7c5
commit d71de955f4
2 changed files with 10 additions and 4 deletions

View 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()

View File

@ -92,6 +92,8 @@ private:
Desaturate
};
enum { GeometryTimeout = 100 };
DolphinStatusBar::Type m_type;
State m_state;
int m_illumination;