diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-05-27 18:47:51 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-05-27 18:47:51 +0000 |
| commit | 18033cfd3cb4f33490d7f59b7b24ae3ceb184a0b (patch) | |
| tree | a2cc53f7c7a0fef8e64e69e24c632aab9f5d4c1f /src/plugins | |
| parent | 55753bcabe762990c3ce3e31199db4d8581c3e2b (diff) | |
| download | qmmp-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')
| -rw-r--r-- | src/plugins/Ui/skinned/listwidgetdrawer.cpp | 23 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlistheader.cpp | 17 |
2 files changed, 30 insertions, 10 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) { diff --git a/src/plugins/Ui/skinned/playlistheader.cpp b/src/plugins/Ui/skinned/playlistheader.cpp index 79de5aa0e..4134b6607 100644 --- a/src/plugins/Ui/skinned/playlistheader.cpp +++ b/src/plugins/Ui/skinned/playlistheader.cpp @@ -120,6 +120,7 @@ void PlayListHeader::setNumberWidth(int width) if(width != m_number_width) { m_number_width = width; + m_model->setMinimalSize(0, 30 + (m_number_width ? (m_number_width + 2 * m_pl_padding) : 0)); updateColumns(); } } @@ -152,22 +153,28 @@ void PlayListHeader::updateColumns() for(int i = 0; i < m_model->count(); ++i) { + int size = m_model->size(i); + + //add number width to the first column + if(i == 0 && m_number_width) + size -= m_number_width + 2 * m_pl_padding; + if(rtl) - m_rects << QRect(width() - sx - m_model->size(i), 0, m_model->size(i), height()); + m_rects << QRect(width() - sx - size, 0, size, height()); else - m_rects << QRect(sx, 0, m_model->size(i), height()); + m_rects << QRect(sx, 0, size, height()); if(i == m_sorting_column) { m_names << m_metrics->elidedText(m_model->name(i), Qt::ElideRight, - m_model->size(i) - 2 * m_padding - m_arrow_up.width() - 4); + size - 2 * m_padding - m_arrow_up.width() - 4); } else { m_names << m_metrics->elidedText(m_model->name(i), Qt::ElideRight, - m_model->size(i) - 2 * m_padding); + size - 2 * m_padding); } - sx += m_model->size(i); + sx += size; } update(); } |
