diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-07-03 17:41:39 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-07-03 17:41:39 +0000 |
| commit | 640d330c2491dd038cd2092313be8f6e0b252ede (patch) | |
| tree | c8b1880e281aefb2c877d30ef10d7969f15fb66b | |
| parent | 9548b51896fd67e633605a10e52ef605741b98e7 (diff) | |
| download | qmmp-640d330c2491dd038cd2092313be8f6e0b252ede.tar.gz qmmp-640d330c2491dd038cd2092313be8f6e0b252ede.tar.bz2 qmmp-640d330c2491dd038cd2092313be8f6e0b252ede.zip | |
changed playlist model api
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3536 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 9 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/mainwindow.cpp | 4 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlisttitlebar.cpp | 2 | ||||
| -rw-r--r-- | src/qmmpui/jumptotrackdialog.cpp | 4 | ||||
| -rw-r--r-- | src/qmmpui/metadataformatter.h | 2 | ||||
| -rw-r--r-- | src/qmmpui/playlistitem.cpp | 30 | ||||
| -rw-r--r-- | src/qmmpui/playlistitem.h | 11 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 29 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.h | 12 |
9 files changed, 41 insertions, 62 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index 781f654a3..ea0d72d9a 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -356,8 +356,13 @@ void ListWidget::updateList() emit positionChanged(0, qMax(0, m_model->count() - m_rows)); } - m_titles = m_model->getTitles(m_first, m_rows); - m_times = m_model->getTimes(m_first, m_rows); + m_titles.clear(); + m_times.clear(); + foreach (PlayListItem *item, m_model->mid(m_first, m_rows)) + { + m_titles.append(item->formattedTitle()); + m_times.append(item->formattedLength()); + } m_scroll = false; //add numbers for (int i = 0; i < m_titles.size() && m_show_number && !m_align_numbres; ++i) diff --git a/src/plugins/Ui/skinned/mainwindow.cpp b/src/plugins/Ui/skinned/mainwindow.cpp index a67c7037a..c042e757b 100644 --- a/src/plugins/Ui/skinned/mainwindow.cpp +++ b/src/plugins/Ui/skinned/mainwindow.cpp @@ -182,7 +182,7 @@ void MainWindow::showState(Qmmp::State state) case Qmmp::Stopped: m_playlist->setTime(-1); if (m_playlist->currentItem()) - setWindowTitle(m_playlist->currentItem()->text()); + setWindowTitle(m_playlist->currentItem()->formattedTitle()); else setWindowTitle("Qmmp"); break; @@ -194,7 +194,7 @@ void MainWindow::showMetaData() if (m_playlist->currentItem() && m_playlist->currentItem()->url() == m_core->metaData().value(Qmmp::URL)) { - setWindowTitle(m_playlist->currentItem()->text()); + setWindowTitle(m_playlist->currentItem()->formattedTitle()); } } diff --git a/src/plugins/Ui/skinned/playlisttitlebar.cpp b/src/plugins/Ui/skinned/playlisttitlebar.cpp index a714cb223..3c5e5d55e 100644 --- a/src/plugins/Ui/skinned/playlisttitlebar.cpp +++ b/src/plugins/Ui/skinned/playlisttitlebar.cpp @@ -266,7 +266,7 @@ void PlayListTitleBar::showCurrent() if (info) { m_text = QString("%1. %2").arg(m_model->currentIndex()+1) - .arg(info->text()); + .arg(info->formattedTitle()); if(info->length()) { m_text.append(QString(" (%1:%2)").arg(info->length()/60) diff --git a/src/qmmpui/jumptotrackdialog.cpp b/src/qmmpui/jumptotrackdialog.cpp index 0e9731a6b..132fe7c17 100644 --- a/src/qmmpui/jumptotrackdialog.cpp +++ b/src/qmmpui/jumptotrackdialog.cpp @@ -105,7 +105,9 @@ void JumpToTrackDialog::on_jumpToPushButton_clicked() void JumpToTrackDialog::refresh() { filterLineEdit->clear(); - QStringList titles = m_model->getTitles(0, m_model->count()); + QStringList titles; + foreach (PlayListItem *item, m_model->items()) + titles.append(item->formattedTitle()); m_listModel->setStringList(titles); filterLineEdit->setFocus(); } diff --git a/src/qmmpui/metadataformatter.h b/src/qmmpui/metadataformatter.h index 9669e117c..2e442394c 100644 --- a/src/qmmpui/metadataformatter.h +++ b/src/qmmpui/metadataformatter.h @@ -51,7 +51,7 @@ public: * %l - duration, * %if(A,B,C) or %if(A&B&C,D,E) - condition. */ - MetaDataFormatter(const QString &format); + MetaDataFormatter(const QString &format = QString()); /*! * Converts metadata of item \b item to one string using template. */ diff --git a/src/qmmpui/playlistitem.cpp b/src/qmmpui/playlistitem.cpp index 4a8d6c164..edb676cbc 100644 --- a/src/qmmpui/playlistitem.cpp +++ b/src/qmmpui/playlistitem.cpp @@ -33,7 +33,7 @@ PlayListItem::PlayListItem() : QMap<Qmmp::MetaData, QString>(), m_flag(FREE) PlayListItem::PlayListItem(const PlayListItem &other) : QMap<Qmmp::MetaData, QString>(other), m_flag(other.m_flag) { - m_title = other.m_title; + m_formattedTitle = other.m_formattedTitle; if (other.m_info) m_info = new FileInfo(*(other.m_info)); else @@ -41,11 +41,12 @@ PlayListItem::PlayListItem(const PlayListItem &other) : QMap<Qmmp::MetaData, QSt m_selected = other.m_selected; m_current = other.m_current; m_length = other.m_length; + m_formattedLength = other.m_formattedLength; } PlayListItem::PlayListItem(FileInfo *info) : QMap<Qmmp::MetaData, QString>(info->metaData()), m_flag(FREE) { - m_length = info->length(); + setLength(m_length = info->length()); m_selected = false; m_current = false; m_info = info; @@ -114,16 +115,21 @@ void PlayListItem::updateTags() delete list.takeLast(); } -const QString PlayListItem::text() +const QString PlayListItem::formattedTitle() { - if(m_title.isEmpty()) + if(m_formattedTitle.isEmpty()) readMetadata(); - return m_title; + return m_formattedTitle; +} + +const QString PlayListItem::formattedLength() const +{ + return m_formattedLength; } void PlayListItem::setText(const QString &title) { - m_title = title; + m_formattedTitle = title; } qint64 PlayListItem::length() const @@ -134,6 +140,8 @@ qint64 PlayListItem::length() const void PlayListItem::setLength(qint64 length) { m_length = length; + MetaDataFormatter f; + m_formattedLength = f.formatLength(m_length); } const QString PlayListItem::url() const @@ -144,14 +152,14 @@ const QString PlayListItem::url() const void PlayListItem::readMetadata() { MetaDataFormatter f(QmmpUiSettings::instance()->format()); - m_title = f.parse(this); - if (m_title.isEmpty()) - m_title = value(Qmmp::URL).section('/',-1); + m_formattedTitle = f.parse(this); + if (m_formattedTitle.isEmpty()) + m_formattedTitle = value(Qmmp::URL).section('/',-1); if (m_info) delete m_info; m_info = 0; if (QmmpUiSettings::instance()->convertUnderscore()) - m_title.replace("_", " "); + m_formattedTitle.replace("_", " "); if (QmmpUiSettings::instance()->convertTwenty()) - m_title.replace("%20", " "); + m_formattedTitle.replace("%20", " "); } diff --git a/src/qmmpui/playlistitem.h b/src/qmmpui/playlistitem.h index 82e022e39..6cb8dbb84 100644 --- a/src/qmmpui/playlistitem.h +++ b/src/qmmpui/playlistitem.h @@ -86,9 +86,13 @@ public: */ void setFlag(FLAGS); /*! - * Returns item short title. + * Returns formatted title of the item. */ - const QString text(); + const QString formattedTitle(); + /*! + * Returns formatted length of the item. + */ + const QString formattedLength() const; /*! * Direct access to the item short title. * @param title New short title. @@ -118,7 +122,8 @@ public: private: void readMetadata(); - QString m_title; + QString m_formattedTitle; + QString m_formattedLength; FileInfo *m_info; bool m_selected; bool m_current; diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp index 371d10701..bc83eda7d 100644 --- a/src/qmmpui/playlistmodel.cpp +++ b/src/qmmpui/playlistmodel.cpp @@ -272,35 +272,6 @@ void PlayListModel::clearSelection() emit listChanged(); } -QStringList PlayListModel::getTitles(int b,int l) -{ - QList <QString> m_titles; - for (int i = b;(i < b + l) &&(i < m_items.size()); ++i) - m_titles << m_items.at(i)->text(); - return m_titles; -} - -QStringList PlayListModel::getTimes(int b,int l) -{ - QStringList times; - int d = 0; - QString str; - for (int i = b; (i < b + l) && (i < m_items.size()); ++i) - { - d = m_items.at(i)->length(); - if(d > 3600) - str += QString("%1:%2").arg(d/3600).arg(d%3600/60, 2, 10, QChar('0')); - else - str += QString("%1").arg(d%3600/60); - str += QString(":%1").arg(d%60, 2, 10, QChar('0')); - if(!d) - str.clear(); - times << str; - str.clear(); - } - return times; -} - QList<PlayListItem *> PlayListModel::mid(int pos, int count) { return m_items.mid(pos, count); diff --git a/src/qmmpui/playlistmodel.h b/src/qmmpui/playlistmodel.h index 394c41e2c..a4760b93e 100644 --- a/src/qmmpui/playlistmodel.h +++ b/src/qmmpui/playlistmodel.h @@ -174,18 +174,6 @@ public: */ bool previous(); /*! - * Returns a list of the formated titles. - * @param first First item. - * @param last Last item. - */ - QStringList getTitles(int first,int last); - /*! - * Returns a list of the formatted durations. - * @param first First item. - * @param last Last item. - */ - QStringList getTimes(int first,int last); - /*! * Returns a list of the items, starting at position \b pos * \param pos First item position. * \param count A number of items. If \b count is -1 (the default), all items from pos are returned. |
