aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned/listwidgetdrawer.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-05-27 18:47:51 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-05-27 18:47:51 +0000
commit18033cfd3cb4f33490d7f59b7b24ae3ceb184a0b (patch)
treea2cc53f7c7a0fef8e64e69e24c632aab9f5d4c1f /src/plugins/Ui/skinned/listwidgetdrawer.cpp
parent55753bcabe762990c3ce3e31199db4d8581c3e2b (diff)
downloadqmmp-18033cfd3cb4f33490d7f59b7b24ae3ceb184a0b.tar.gz
qmmp-18033cfd3cb4f33490d7f59b7b24ae3ceb184a0b.tar.bz2
qmmp-18033cfd3cb4f33490d7f59b7b24ae3ceb184a0b.zip
fixed problem with column alignment
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5037 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui/skinned/listwidgetdrawer.cpp')
-rw-r--r--src/plugins/Ui/skinned/listwidgetdrawer.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/plugins/Ui/skinned/listwidgetdrawer.cpp b/src/plugins/Ui/skinned/listwidgetdrawer.cpp
index b5bb22e3a..db0ff3f1d 100644
--- a/src/plugins/Ui/skinned/listwidgetdrawer.cpp
+++ b/src/plugins/Ui/skinned/listwidgetdrawer.cpp
@@ -148,11 +148,16 @@ void ListWidgetDrawer::prepareRow(ListWidgetRow *row)
for(int i = 0; i < row->titles.count() && visible_width > 0; ++i)
{
- int width = qMin(m_header_model->size(i) - 2 * m_padding,
+ int size = m_header_model->size(i);
+
+ if(i == 0 && row->numberColumnWidth)
+ size -= row->numberColumnWidth;
+
+ int width = qMin(size - 2 * m_padding,
visible_width - 2 * m_padding);
row->titles[i] = m_metrics->elidedText (row->titles[i], Qt::ElideRight, width);
- visible_width -= m_header_model->size(i);
+ visible_width -= size;
}
}
@@ -185,7 +190,7 @@ void ListWidgetDrawer::drawBackground(QPainter *painter, ListWidgetRow *row)
void ListWidgetDrawer::drawSeparator(QPainter *painter, ListWidgetRow *row, bool rtl)
{
int sx = row->rect.x() + 50;
- int sy = row->rect.y() + m_metrics->overlinePos() - 1;
+ int sy = row->rect.y() + m_metrics->overlinePos() - 1;
painter->setFont(m_font);
painter->setPen(m_normal);
@@ -248,9 +253,13 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl
if(sx - m_padding <= row->rect.x() + row->lengthColumnWidth)
break;
+ int size = m_header_model->size(i);
+ if(i == 0 && row->numberColumnWidth)
+ size -= row->numberColumnWidth;
+
painter->setPen(row->flags & ListWidgetRow::CURRENT ? m_current : m_normal);
painter->drawText(sx - m_padding - m_metrics->width(row->titles[i]), sy, row->titles[i]);
- sx -= m_header_model->size(i);
+ sx -= size;
if(m_header_model->count() > 1 && sx > row->rect.x() + row->lengthColumnWidth)
{
@@ -292,9 +301,13 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl
if(sx + m_padding >= row->rect.right() - row->lengthColumnWidth)
break;
+ int size = m_header_model->size(i);
+ if(i == 0 && row->numberColumnWidth)
+ size -= row->numberColumnWidth;
+
painter->setPen(row->flags & ListWidgetRow::CURRENT ? m_current : m_normal);
painter->drawText(sx + m_padding, sy, row->titles[i]);
- sx += m_header_model->size(i);
+ sx += size;
if(m_header_model->count() > 1 && sx < row->rect.right() - row->lengthColumnWidth)
{