diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/listwidgetdrawer.cpp | 18 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/listwidgetdrawer.h | 3 | ||||
| -rw-r--r-- | src/qmmpui/playlistgroup.cpp | 5 | ||||
| -rw-r--r-- | src/qmmpui/playlistgroup.h | 1 | ||||
| -rw-r--r-- | src/qmmpui/playlistitem.h | 2 | ||||
| -rw-r--r-- | src/qmmpui/playlisttrack.cpp | 29 | ||||
| -rw-r--r-- | src/qmmpui/playlisttrack.h | 1 |
8 files changed, 50 insertions, 11 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index 2d9913599..6dbdafc90 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -329,7 +329,7 @@ void ListWidget::updateList(int flags) continue; row->rect = QRect(5, i * m_drawer.rowHeight(), width() - 10, m_drawer.rowHeight() - 1); - row->title = items[i]->formattedTitle(0); + row->titles = items[i]->formattedTitles(); (m_first + i) == m_model->currentIndex() ? row->flags |= ListWidgetRow::CURRENT : row->flags &= ~ListWidgetRow::CURRENT; diff --git a/src/plugins/Ui/skinned/listwidgetdrawer.cpp b/src/plugins/Ui/skinned/listwidgetdrawer.cpp index 044aba899..07de62cfa 100644 --- a/src/plugins/Ui/skinned/listwidgetdrawer.cpp +++ b/src/plugins/Ui/skinned/listwidgetdrawer.cpp @@ -97,13 +97,13 @@ void ListWidgetDrawer::prepareRow(ListWidgetRow *row) { if(row->flags & ListWidgetRow::GROUP) { - row->title = m_metrics->elidedText (row->title, Qt::ElideRight, + row->titles[0] = m_metrics->elidedText (row->titles[0], Qt::ElideRight, row->rect.width() - m_number_width - 12 - 70); return; } if(m_show_number && !m_align_numbres) - row->title.prepend(QString("%1").arg(row->number)+". "); + row->titles[0].prepend(QString("%1").arg(row->number)+". "); row->x[ListWidgetRow::NUMBER] = row->x[ListWidgetRow::TITLE] = row->rect.left() + PADDING; @@ -128,7 +128,7 @@ void ListWidgetDrawer::prepareRow(ListWidgetRow *row) //elide title int title_width = row->x[ListWidgetRow::EXTRA_STRING] - row->x[ListWidgetRow::TITLE] - m_metrics->width("9"); - row->title = m_metrics->elidedText (row->title, Qt::ElideRight, title_width); + row->titles[0] = m_metrics->elidedText (row->titles[0], Qt::ElideRight, title_width); } void ListWidgetDrawer::fillBackground(QPainter *painter, int width, int height) @@ -168,22 +168,22 @@ void ListWidgetDrawer::drawSeparator(QPainter *painter, ListWidgetRow *row, bool if(m_number_width) sx += m_number_width + m_metrics->width("9"); if(rtl) - sx = row->rect.right() - sx - m_metrics->width(row->title); + sx = row->rect.right() - sx - m_metrics->width(row->titles[0]); - painter->drawText(sx, sy, row->title); + painter->drawText(sx, sy, row->titles[0]); sy = sy - m_metrics->lineSpacing()/2 + 2; if(rtl) { painter->drawLine(10, sy, sx - 5, sy); - painter->drawLine(sx + m_metrics->width(row->title) + 5, sy, - sx + m_metrics->width(row->title) + 35, sy); + painter->drawLine(sx + m_metrics->width(row->titles[0]) + 5, sy, + sx + m_metrics->width(row->titles[0]) + 35, sy); } else { painter->drawLine(sx - 45, sy, sx - 5, sy); - painter->drawLine(sx + m_metrics->width(row->title) + 5, sy, + painter->drawLine(sx + m_metrics->width(row->titles[0]) + 5, sy, row->rect.width(), sy); } } @@ -200,7 +200,7 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row) QString number = QString("%1").arg(row->number); painter->drawText(row->x[ListWidgetRow::NUMBER], sy, number); } - painter->drawText(row->x[ListWidgetRow::TITLE], sy, row->title); + painter->drawText(row->x[ListWidgetRow::TITLE], sy, row->titles[0]); QString extra_string = row->extraString; diff --git a/src/plugins/Ui/skinned/listwidgetdrawer.h b/src/plugins/Ui/skinned/listwidgetdrawer.h index 420247f9e..537becc22 100644 --- a/src/plugins/Ui/skinned/listwidgetdrawer.h +++ b/src/plugins/Ui/skinned/listwidgetdrawer.h @@ -22,6 +22,7 @@ #define LISTWIDGETDRAWER_H #include <QString> +#include <QStringList> #include <QColor> #include <QRect> #include <QFontMetrics> @@ -35,7 +36,7 @@ struct ListWidgetRow { flags = NO_FLAGS; } - QString title; + QStringList titles; QString length; QString extraString; int number; diff --git a/src/qmmpui/playlistgroup.cpp b/src/qmmpui/playlistgroup.cpp index 225b9b8d4..210245bb2 100644 --- a/src/qmmpui/playlistgroup.cpp +++ b/src/qmmpui/playlistgroup.cpp @@ -44,6 +44,11 @@ const QString PlayListGroup::formattedTitle(int column) return m_name; } +const QStringList PlayListGroup::formattedTitles() +{ + return QStringList() << m_name; +} + bool PlayListGroup::contains(PlayListTrack *track) const { return trackList.contains(track); diff --git a/src/qmmpui/playlistgroup.h b/src/qmmpui/playlistgroup.h index 8db56c1ed..7292470e1 100644 --- a/src/qmmpui/playlistgroup.h +++ b/src/qmmpui/playlistgroup.h @@ -46,6 +46,7 @@ public: * @param column Number of column (unused). */ const QString formattedTitle(int column = 0); + const QStringList formattedTitles(); /*! * Returns \b true if the group contains track \b track. * Otherwise returns \b false. diff --git a/src/qmmpui/playlistitem.h b/src/qmmpui/playlistitem.h index cf4f1d89f..344996890 100644 --- a/src/qmmpui/playlistitem.h +++ b/src/qmmpui/playlistitem.h @@ -53,6 +53,8 @@ public: * @param column Number of column. */ virtual const QString formattedTitle(int column) = 0; + + virtual const QStringList formattedTitles() = 0; /*! * Returns formatted length of the item. */ diff --git a/src/qmmpui/playlisttrack.cpp b/src/qmmpui/playlisttrack.cpp index b21e8fbb8..4e4d759a4 100644 --- a/src/qmmpui/playlisttrack.cpp +++ b/src/qmmpui/playlisttrack.cpp @@ -160,6 +160,35 @@ const QString PlayListTrack::formattedTitle(int column) return m_formattedTitles[column]; } +const QStringList PlayListTrack::formattedTitles() +{ + if(m_formattedTitles.count() != m_settings->columnManager()->count()) + { + while(m_formattedTitles.count() > m_columnManager->count()) + m_formattedTitles.takeLast(); + + while(m_formattedTitles.count() < m_columnManager->count()) + m_formattedTitles.append(QString()); + + while(m_titleFormats.count() > m_columnManager->count()) + m_titleFormats.takeLast(); + + while(m_titleFormats.count() < m_columnManager->count()) + m_titleFormats.append(QString()); + } + + for(int column = 0; column < m_columnManager->count(); column++) + { + if(m_formattedTitles[column].isEmpty() || m_titleFormats[column] != m_columnManager->pattern(column)) + { + m_titleFormats[column] = m_settings->columnManager()->pattern(column); + formatTitle(column); + } + } + + return m_formattedTitles; +} + const QString PlayListTrack::formattedLength() { if(m_length != 0 && m_formattedLength.isEmpty()) diff --git a/src/qmmpui/playlisttrack.h b/src/qmmpui/playlisttrack.h index 78e562950..71966a2d4 100644 --- a/src/qmmpui/playlisttrack.h +++ b/src/qmmpui/playlisttrack.h @@ -57,6 +57,7 @@ public: * @param column Number of column. */ const QString formattedTitle(int column); + const QStringList formattedTitles(); /*! * Returns formatted length of the item. */ |
