diff options
Diffstat (limited to 'src/qmmpui')
| -rw-r--r-- | src/qmmpui/jumptotrackdialog.cpp | 4 | ||||
| -rw-r--r-- | src/qmmpui/playlistgroup.cpp | 3 | ||||
| -rw-r--r-- | src/qmmpui/playlistgroup.h | 3 | ||||
| -rw-r--r-- | src/qmmpui/playlistitem.h | 3 | ||||
| -rw-r--r-- | src/qmmpui/playlisttrack.cpp | 58 | ||||
| -rw-r--r-- | src/qmmpui/playlisttrack.h | 12 |
6 files changed, 57 insertions, 26 deletions
diff --git a/src/qmmpui/jumptotrackdialog.cpp b/src/qmmpui/jumptotrackdialog.cpp index c4e19f683..57d192233 100644 --- a/src/qmmpui/jumptotrackdialog.cpp +++ b/src/qmmpui/jumptotrackdialog.cpp @@ -105,7 +105,7 @@ void JumpToTrackDialog::on_jumpToPushButton_clicked() void JumpToTrackDialog::refresh() { - filterLineEdit->clear(); + /*filterLineEdit->clear(); m_indexes.clear(); QStringList titles; QList<PlayListItem *> items = m_model->items(); @@ -117,7 +117,7 @@ void JumpToTrackDialog::refresh() m_indexes.append(i); } m_listModel->setStringList(titles); - filterLineEdit->setFocus(); + filterLineEdit->setFocus();*/ } void JumpToTrackDialog::jumpTo(const QModelIndex & index) diff --git a/src/qmmpui/playlistgroup.cpp b/src/qmmpui/playlistgroup.cpp index ad3a5bc16..225b9b8d4 100644 --- a/src/qmmpui/playlistgroup.cpp +++ b/src/qmmpui/playlistgroup.cpp @@ -38,8 +38,9 @@ PlayListGroup::~PlayListGroup() } } -const QString PlayListGroup::formattedTitle() +const QString PlayListGroup::formattedTitle(int column) { + Q_UNUSED(column); return m_name; } diff --git a/src/qmmpui/playlistgroup.h b/src/qmmpui/playlistgroup.h index 2a9f3be3a..8db56c1ed 100644 --- a/src/qmmpui/playlistgroup.h +++ b/src/qmmpui/playlistgroup.h @@ -43,8 +43,9 @@ public: virtual ~PlayListGroup(); /*! * Returns formatted title of the group. + * @param column Number of column (unused). */ - const QString formattedTitle(); + const QString formattedTitle(int column = 0); /*! * 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 5739db5be..cf4f1d89f 100644 --- a/src/qmmpui/playlistitem.h +++ b/src/qmmpui/playlistitem.h @@ -50,8 +50,9 @@ public: bool isSelected() const; /*! * Returns formatted title of the item. + * @param column Number of column. */ - virtual const QString formattedTitle() = 0; + virtual const QString formattedTitle(int column) = 0; /*! * Returns formatted length of the item. */ diff --git a/src/qmmpui/playlisttrack.cpp b/src/qmmpui/playlisttrack.cpp index 13690362f..b21e8fbb8 100644 --- a/src/qmmpui/playlisttrack.cpp +++ b/src/qmmpui/playlisttrack.cpp @@ -26,6 +26,7 @@ PlayListTrack::PlayListTrack() : QMap<Qmmp::MetaData, QString>(), PlayListItem() { m_settings = QmmpUiSettings::instance(); + m_columnManager = m_settings->columnManager(); m_length = 0; m_refCount = 0; m_sheduledForDeletion = false; @@ -35,13 +36,14 @@ PlayListTrack::PlayListTrack(const PlayListTrack &other) : QMap<Qmmp::MetaData, PlayListItem() { m_settings = QmmpUiSettings::instance(); + m_columnManager = m_settings->columnManager(); m_refCount = 0; m_sheduledForDeletion = false; - m_formattedTitle = other.m_formattedTitle; + m_formattedTitles = other.m_formattedTitles; m_group = other.m_group; m_formattedLength = other.m_formattedLength; - m_titleFormat = other.m_titleFormat; + m_titleFormats = other.m_titleFormats; m_groupFormat = other.m_groupFormat; setSelected(other.isSelected()); m_length = other.m_length; @@ -52,6 +54,7 @@ PlayListTrack::PlayListTrack(FileInfo *info) : QMap<Qmmp::MetaData, QString>(in PlayListItem() { m_settings = QmmpUiSettings::instance(); + m_columnManager = m_settings->columnManager(); setLength(m_length = info->length()); insert(Qmmp::URL, info->path()); m_refCount = 0; @@ -67,7 +70,7 @@ PlayListTrack::~PlayListTrack() void PlayListTrack::updateMetaData(const QMap <Qmmp::MetaData, QString> &metaData) { QMap <Qmmp::MetaData, QString>::operator =(metaData); - formatTitle(); + m_formattedTitles.clear(); formatGroup(); } @@ -80,7 +83,7 @@ void PlayListTrack::updateMetaData() m_length = info->length(); QMap <Qmmp::MetaData, QString>::operator =(info->metaData()); insert(Qmmp::URL, info->path()); - formatTitle(); + m_formattedTitles.clear(); formatGroup(); } qDeleteAll(list); @@ -126,14 +129,35 @@ bool PlayListTrack::isUsed() const return (m_refCount != 0); } -const QString PlayListTrack::formattedTitle() +const QString PlayListTrack::formattedTitle(int column) { - if(m_formattedTitle.isEmpty() || m_titleFormat != m_settings->columnManager()->pattern(0)) + if(m_formattedTitles.count() != m_settings->columnManager()->count()) { - m_titleFormat = m_settings->columnManager()->pattern(0); - formatTitle(); + 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()); + } + + if(column < 0 || column >= m_formattedTitles.size()) + { + qWarning("PlayListTrack: column number is out of range"); + return QString(); + } + + if(m_formattedTitles[column].isEmpty() || m_titleFormats[column] != m_columnManager->pattern(column)) + { + m_titleFormats[column] = m_settings->columnManager()->pattern(column); + formatTitle(column); } - return m_formattedTitle; + return m_formattedTitles[column]; } const QString PlayListTrack::formattedLength() @@ -164,17 +188,17 @@ const QString PlayListTrack::url() const return value(Qmmp::URL); } -void PlayListTrack::formatTitle() +void PlayListTrack::formatTitle(int column) { - m_formattedTitle = m_settings->columnManager()->titleFormatter(0)->format(this); - if (m_formattedTitle.isEmpty()) - m_formattedTitle = value(Qmmp::URL).section('/',-1); - if (m_formattedTitle.isEmpty()) - m_formattedTitle = value(Qmmp::URL); + m_formattedTitles[column] = m_columnManager->titleFormatter(column)->format(this); + if (m_formattedTitles[column].isEmpty() && column == 0) + m_formattedTitles[column] = value(Qmmp::URL).section('/',-1); + if (m_formattedTitles[column].isEmpty() && column == 0) + m_formattedTitles[column] = value(Qmmp::URL); if (m_settings->convertUnderscore()) - m_formattedTitle.replace("_", " "); + m_formattedTitles[column].replace("_", " "); if (m_settings->convertTwenty()) - m_formattedTitle.replace("%20", " "); + m_formattedTitles[column].replace("%20", " "); } void PlayListTrack::formatGroup() diff --git a/src/qmmpui/playlisttrack.h b/src/qmmpui/playlisttrack.h index 810be411a..78e562950 100644 --- a/src/qmmpui/playlisttrack.h +++ b/src/qmmpui/playlisttrack.h @@ -21,11 +21,13 @@ #define PLAYLISTTRACK_H #include <QMap> +#include <QStringList> #include <qmmp/fileinfo.h> #include <qmmp/qmmp.h> #include "playlistitem.h" class QmmpUiSettings; +class ColumnManager; /** @brief The PlayListTrack class provides a track for use with the PlayListModel class. * @author Ilya Kotov <forkotov02@hotmail.ru> @@ -52,8 +54,9 @@ public: virtual ~PlayListTrack(); /*! * Returns formatted title of the item. + * @param column Number of column. */ - const QString formattedTitle(); + const QString formattedTitle(int column); /*! * Returns formatted length of the item. */ @@ -102,17 +105,18 @@ public: bool isUsed() const; private: - void formatTitle(); + void formatTitle(int column); void formatGroup(); - QString m_formattedTitle; + QStringList m_formattedTitles; QString m_formattedLength; QString m_group; - QString m_titleFormat; + QStringList m_titleFormats; QString m_groupFormat; QmmpUiSettings *m_settings; qint64 m_length; int m_refCount; bool m_sheduledForDeletion; + ColumnManager *m_columnManager; }; #endif |
