diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-03-01 11:16:56 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-03-01 11:16:56 +0000 |
| commit | 9a26d9b1c35ea1f76fd0a5b5daefa8e73115f043 (patch) | |
| tree | 5842f870c78f602e2c2039011cdbcb6d5ecab0eb /src | |
| parent | 18fc53f886bdb3799ffea7b0906abfdbd8b62064 (diff) | |
| download | qmmp-9a26d9b1c35ea1f76fd0a5b5daefa8e73115f043.tar.gz qmmp-9a26d9b1c35ea1f76fd0a5b5daefa8e73115f043.tar.bz2 qmmp-9a26d9b1c35ea1f76fd0a5b5daefa8e73115f043.zip | |
added multicolumn support to the PlayListTrack class
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4750 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/mainwindow.cpp | 8 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlisttitlebar.cpp | 6 | ||||
| -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 |
9 files changed, 65 insertions, 34 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index cc4aa6915..2d9913599 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(); + row->title = items[i]->formattedTitle(0); (m_first + i) == m_model->currentIndex() ? row->flags |= ListWidgetRow::CURRENT : row->flags &= ~ListWidgetRow::CURRENT; diff --git a/src/plugins/Ui/skinned/mainwindow.cpp b/src/plugins/Ui/skinned/mainwindow.cpp index ce650cb47..8a4a6e76b 100644 --- a/src/plugins/Ui/skinned/mainwindow.cpp +++ b/src/plugins/Ui/skinned/mainwindow.cpp @@ -176,21 +176,21 @@ void MainWindow::showState(Qmmp::State state) break; case Qmmp::Stopped: m_playlist->setTime(-1); - if (m_pl_manager->currentPlayList()->currentTrack()) + /*if (m_pl_manager->currentPlayList()->currentTrack()) setWindowTitle(m_pl_manager->currentPlayList()->currentTrack()->formattedTitle()); else - setWindowTitle("Qmmp"); + setWindowTitle("Qmmp");*/ break; } } void MainWindow::showMetaData() { - PlayListTrack *track = m_pl_manager->currentPlayList()->currentTrack(); + /*PlayListTrack *track = m_pl_manager->currentPlayList()->currentTrack(); if (track && track->url() == m_core->metaData().value(Qmmp::URL)) { setWindowTitle(track->formattedTitle()); - } + }*/ } void MainWindow::closeEvent (QCloseEvent *) diff --git a/src/plugins/Ui/skinned/playlisttitlebar.cpp b/src/plugins/Ui/skinned/playlisttitlebar.cpp index e7c1f266b..2151cfe1b 100644 --- a/src/plugins/Ui/skinned/playlisttitlebar.cpp +++ b/src/plugins/Ui/skinned/playlisttitlebar.cpp @@ -262,16 +262,16 @@ void PlayListTitleBar::showCurrent() { if (m_model) { - PlayListTrack* track = m_model->currentTrack(); + /*PlayListTrack* track = m_model->currentTrack(); if (track) { m_text = QString("%1. %2").arg(m_model->numberOfTrack(m_model->currentIndex())+1) - .arg(track->formattedTitle()); + .arg(track->formattedTitle(0)); if(track->length()) m_text.append(QString(" (%1)").arg(track->formattedLength())); } else - m_text.clear(); + m_text.clear();*/ } QFontMetrics metrics(m_font); m_truncatedText = metrics.elidedText (m_text, Qt::ElideRight, width() - 35*m_ratio); 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 |
