GH-922 improve version select dialogs

This commit is contained in:
Petr Mrázek
2015-05-02 23:42:33 +02:00
parent 4fc4a17256
commit 5779ffd664
12 changed files with 168 additions and 22 deletions

View File

@ -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);