aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-03-01 12:07:14 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-03-01 12:07:14 +0000
commit9b20171e567bb04cb34b5f2f4af28f0fef42070c (patch)
tree57b04684ef5d97f5634093e5df3407072781bf77 /src
parent9a26d9b1c35ea1f76fd0a5b5daefa8e73115f043 (diff)
downloadqmmp-9b20171e567bb04cb34b5f2f4af28f0fef42070c.tar.gz
qmmp-9b20171e567bb04cb34b5f2f4af28f0fef42070c.tar.bz2
qmmp-9b20171e567bb04cb34b5f2f4af28f0fef42070c.zip
added PlayListTrack::formattedTitles() function
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4751 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
-rw-r--r--src/plugins/Ui/skinned/listwidget.cpp2
-rw-r--r--src/plugins/Ui/skinned/listwidgetdrawer.cpp18
-rw-r--r--src/plugins/Ui/skinned/listwidgetdrawer.h3
-rw-r--r--src/qmmpui/playlistgroup.cpp5
-rw-r--r--src/qmmpui/playlistgroup.h1
-rw-r--r--src/qmmpui/playlistitem.h2
-rw-r--r--src/qmmpui/playlisttrack.cpp29
-rw-r--r--src/qmmpui/playlisttrack.h1
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.
*/