From 5779ffd6645ba3fae5abe068d456fc1ee9dd91ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 2 May 2015 23:42:33 +0200 Subject: GH-922 improve version select dialogs --- application/widgets/VersionListView.cpp | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'application/widgets/VersionListView.cpp') diff --git a/application/widgets/VersionListView.cpp b/application/widgets/VersionListView.cpp index fc0bcd0a..1e327534 100644 --- a/application/widgets/VersionListView.cpp +++ b/application/widgets/VersionListView.cpp @@ -65,6 +65,23 @@ void VersionListView::reset() void VersionListView::setEmptyString(QString emptyString) { m_emptyString = emptyString; + updateEmptyViewPort(); +} + +void VersionListView::setEmptyErrorString(QString emptyErrorString) +{ + m_emptyErrorString = emptyErrorString; + updateEmptyViewPort(); +} + +void VersionListView::setEmptyMode(VersionListView::EmptyMode mode) +{ + m_emptyMode = mode; + updateEmptyViewPort(); +} + +void VersionListView::updateEmptyViewPort() +{ if(!m_itemCount) { viewport()->update(); @@ -85,6 +102,18 @@ void VersionListView::paintEvent(QPaintEvent *event) void VersionListView::paintInfoLabel(QPaintEvent *event) { + QString emptyString; + switch(m_emptyMode) + { + case VersionListView::Empty: + return; + case VersionListView::String: + emptyString = m_emptyString; + break; + case VersionListView::ErrorString: + emptyString = m_emptyErrorString; + break; + } //calculate the rect for the overlay QPainter painter(viewport()); painter.setRenderHint(QPainter::Antialiasing, true); @@ -93,7 +122,7 @@ void VersionListView::paintInfoLabel(QPaintEvent *event) QRect bounds = viewport()->geometry(); bounds.moveTop(0); - QTextLayout layout(m_emptyString, font); + QTextLayout layout(emptyString, font); qreal height = 0.0; qreal widthUsed = 0.0; QStringList lines = viewItemTextLayout(layout, bounds.width() - 20, height, widthUsed); -- cgit v1.2.3