diff options
Diffstat (limited to 'src/plugins/Ui')
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 14 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/listwidgetdrawer.cpp | 6 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/listwidgetdrawer.h | 3 |
3 files changed, 7 insertions, 16 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index c634ee53a..2f950ca6b 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -337,7 +337,6 @@ void ListWidget::updateList(int flags) m_header->setNumberWidth(m_drawer.numberWidth()); } - int prev_number = 0; int trackStateColumn = m_header->trackStateColumn(); for(int i = 0; i < items.count(); ++i) @@ -364,22 +363,13 @@ void ListWidget::updateList(int flags) if(items[i]->isGroup()) { row->flags |= ListWidgetRow::GROUP; - row->number = 0; + row->trackIndex = -1; row->length.clear(); } else { row->flags &= ~ListWidgetRow::GROUP; - //optimization: reduces number of PlaListModel::numberOfTrack(int) calls - if(!prev_number) - { - row->number = m_model->indexOfTrack(m_first+i) + 1; - prev_number = row->number; - } - else - { - row->number = ++prev_number; - } + row->trackIndex = items.at(i)->trackIndex(); row->length = items[i]->formattedLength(); row->extraString = getExtraString(m_first + i); } diff --git a/src/plugins/Ui/skinned/listwidgetdrawer.cpp b/src/plugins/Ui/skinned/listwidgetdrawer.cpp index fb0b87f9c..50b161a64 100644 --- a/src/plugins/Ui/skinned/listwidgetdrawer.cpp +++ b/src/plugins/Ui/skinned/listwidgetdrawer.cpp @@ -125,7 +125,7 @@ void ListWidgetDrawer::prepareRow(ListWidgetRow *row) if(row->titles.count() == 1) { if(m_show_number && !m_align_numbers) - row->titles[0].prepend(QString("%1").arg(row->number)+". "); + row->titles[0].prepend(QString("%1").arg(row->trackIndex)+". "); if((m_show_lengths && !row->length.isEmpty()) || !row->extraString.isEmpty()) row->lengthColumnWidth = m_padding; @@ -254,7 +254,7 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl { sx -= row->numberColumnWidth; painter->setPen(row->flags & ListWidgetRow::CURRENT ? m_current : m_normal); - QString number = QString("%1").arg(row->number); + QString number = QString("%1").arg(row->trackIndex); painter->drawText(sx + m_padding, sy, number); painter->setPen(m_normal); painter->drawLine(sx, row->rect.top(), sx, row->rect.bottom() + 1); @@ -309,7 +309,7 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl { sx += row->numberColumnWidth; painter->setPen(row->flags & ListWidgetRow::CURRENT ? m_current : m_normal); - QString number = QString("%1").arg(row->number); + QString number = QString("%1").arg(row->trackIndex); painter->drawText(sx - m_padding - m_metrics->width(number), sy, number); painter->setPen(m_normal); painter->drawLine(sx, row->rect.top(), sx, row->rect.bottom() + 1); diff --git a/src/plugins/Ui/skinned/listwidgetdrawer.h b/src/plugins/Ui/skinned/listwidgetdrawer.h index 5a11c23ed..88d65d6f6 100644 --- a/src/plugins/Ui/skinned/listwidgetdrawer.h +++ b/src/plugins/Ui/skinned/listwidgetdrawer.h @@ -40,12 +40,13 @@ struct ListWidgetRow numberColumnWidth = 0; lengthColumnWidth = 0; trackStateColumn = -1; + trackIndex = -1; } QStringList titles; QList<int> sizes; QString length; QString extraString; - int number; + int trackIndex; int numberColumnWidth; int lengthColumnWidth; int trackStateColumn; |
