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:
parent
9877bef7c5
commit
d71de955f4
|
@ -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()
|
||||
|
|
|
@ -92,6 +92,8 @@ private:
|
|||
Desaturate
|
||||
};
|
||||
|
||||
enum { GeometryTimeout = 100 };
|
||||
|
||||
DolphinStatusBar::Type m_type;
|
||||
State m_state;
|
||||
int m_illumination;
|
||||
|
|
Loading…
Reference in New Issue
Block a user