diff options
23 files changed, 122 insertions, 98 deletions
diff --git a/src/plugins/General/covermanager/covermanager.cpp b/src/plugins/General/covermanager/covermanager.cpp index 93d2f9af0..5b00b6078 100644 --- a/src/plugins/General/covermanager/covermanager.cpp +++ b/src/plugins/General/covermanager/covermanager.cpp @@ -50,7 +50,7 @@ void CoverManager::showWindow() pix = QPixmap(":/cm_no_cover.png"); w->setPixmap(pix); MetaDataFormatter formatter("%p%if(%p&%t, - ,)%if(%t,%t,%f)"); - w->setWindowTitle(formatter.parse(items.at(0)->metaData())); + w->setWindowTitle(formatter.parse(items.at(0))); w->show(); } } diff --git a/src/plugins/General/fileops/fileops.cpp b/src/plugins/General/fileops/fileops.cpp index 1cfe6e6d9..1bea2038a 100644 --- a/src/plugins/General/fileops/fileops.cpp +++ b/src/plugins/General/fileops/fileops.cpp @@ -175,7 +175,7 @@ void FileOps::execAction(int n) destination = QFileInfo(item->url()).absolutePath (); if (file.rename(destination + "/" + fname)) { - item->setMetaData(Qmmp::URL, destination + "/" + fname); + item->insert(Qmmp::URL, destination + "/" + fname); model->doCurrentVisibleRequest(); } else diff --git a/src/plugins/General/hal/halplugin.cpp b/src/plugins/General/hal/halplugin.cpp index 98c06b2fc..90106b8b0 100644 --- a/src/plugins/General/hal/halplugin.cpp +++ b/src/plugins/General/hal/halplugin.cpp @@ -256,7 +256,7 @@ void HalPlugin::removePath(const QString &path) int i = 0; while (model->count() > 0 && i < model->count()) { - if (model->item(i)->url ().startsWith(path)) + if (model->item(i)->url().startsWith(path)) model->removeAt (i); else ++i; diff --git a/src/plugins/General/lyrics/lyrics.cpp b/src/plugins/General/lyrics/lyrics.cpp index 65ab6182a..779f19cf1 100644 --- a/src/plugins/General/lyrics/lyrics.cpp +++ b/src/plugins/General/lyrics/lyrics.cpp @@ -47,9 +47,10 @@ void Lyrics::showLyrics() QList <PlayListItem *> items = pl_manager->selectedPlayList()->getSelectedItems(); if (!items.isEmpty()) { - if (items.at(0)->artist().isEmpty() || items.at(0)->title().isEmpty()) + if (items.at(0)->value(Qmmp::ARTIST).isEmpty() || items.at(0)->value(Qmmp::TITLE).isEmpty()) return; - LyricsWindow *w = new LyricsWindow(items.at(0)->artist(), items.at(0)->title(), qApp->activeWindow ()); + LyricsWindow *w = new LyricsWindow(items.at(0)->value(Qmmp::ARTIST), + items.at(0)->value(Qmmp::TITLE), qApp->activeWindow ()); w->show(); } } diff --git a/src/plugins/General/mpris/tracklistobject.cpp b/src/plugins/General/mpris/tracklistobject.cpp index a7d069c29..56562e8cc 100644 --- a/src/plugins/General/mpris/tracklistobject.cpp +++ b/src/plugins/General/mpris/tracklistobject.cpp @@ -86,15 +86,15 @@ QVariantMap TrackListObject::GetMetadata(int in0) map.insert("location", "file://" + item->url()); else map.insert("location", item->url()); - map.insert("title", item->title()); - map.insert("artist", item->artist()); - map.insert("album", item->album()); - map.insert("tracknumber", item->track()); + map.insert("title", item->value(Qmmp::TITLE)); + map.insert("artist", item->value(Qmmp::ARTIST)); + map.insert("album", item->value(Qmmp::ALBUM)); + map.insert("tracknumber", item->value(Qmmp::TRACK)); map.insert("time", (quint32)item->length()); map.insert("mtime", (quint32)item->length() * 1000); - map.insert("genre", item->genre()); - map.insert("comment", item->comment()); - map.insert("year", item->year().toUInt()); + map.insert("genre", item->value(Qmmp::GENRE)); + map.insert("comment", item->value(Qmmp::COMMENT)); + map.insert("year", item->value(Qmmp::YEAR).toUInt()); } return map; } diff --git a/src/plugins/General/udisks/udisksplugin.cpp b/src/plugins/General/udisks/udisksplugin.cpp index 19cce37a4..1a1b8d41b 100644 --- a/src/plugins/General/udisks/udisksplugin.cpp +++ b/src/plugins/General/udisks/udisksplugin.cpp @@ -248,7 +248,7 @@ void UDisksPlugin::removePath(const QString &path) int i = 0; while (model->count() > 0 && i < model->count()) { - if (model->item(i)->url ().startsWith(path)) + if (model->item(i)->url().startsWith(path)) model->removeAt (i); else ++i; diff --git a/src/plugins/PlaylistFormats/m3u/m3uplaylistformat.cpp b/src/plugins/PlaylistFormats/m3u/m3uplaylistformat.cpp index 18ddc6b01..ce126384a 100644 --- a/src/plugins/PlaylistFormats/m3u/m3uplaylistformat.cpp +++ b/src/plugins/PlaylistFormats/m3u/m3uplaylistformat.cpp @@ -68,13 +68,13 @@ QStringList M3UPlaylistFormat::decode(const QString & contents) return QStringList(); } -QString M3UPlaylistFormat::encode(const QList<AbstractPlaylistItem*> & contents) +QString M3UPlaylistFormat::encode(const QList<PlayListItem*> & contents) { QStringList out; out << QString("#EXTM3U"); - foreach(AbstractPlaylistItem* f,contents) + foreach(PlayListItem* f,contents) { - QString info = "#EXTINF:" + QString::number(f->length()) + "," + f->title(); + QString info = "#EXTINF:" + QString::number(f->length()) + "," + f->value(Qmmp::TITLE); out.append(info); out.append(f->url()); } diff --git a/src/plugins/PlaylistFormats/m3u/m3uplaylistformat.h b/src/plugins/PlaylistFormats/m3u/m3uplaylistformat.h index 91b4d17ad..5a990454c 100644 --- a/src/plugins/PlaylistFormats/m3u/m3uplaylistformat.h +++ b/src/plugins/PlaylistFormats/m3u/m3uplaylistformat.h @@ -24,7 +24,7 @@ #include <QString> #include <QStringList> #include <qmmpui/playlistformat.h> -#include <qmmpui/abstractplaylistitem.h> +#include <qmmpui/playlistitem.h> /*! * Class for M3U playlist format parsing @@ -39,7 +39,7 @@ public: virtual QStringList getExtensions()const; virtual bool hasFormat(const QString&); virtual QStringList decode(const QString& contents); - virtual QString encode(const QList<AbstractPlaylistItem*>& contents); + virtual QString encode(const QList<PlayListItem*>& contents); virtual QString name()const; protected: QStringList m_supported_formats; diff --git a/src/plugins/PlaylistFormats/pls/plsplaylistformat.cpp b/src/plugins/PlaylistFormats/pls/plsplaylistformat.cpp index da567db47..8d39eccb6 100644 --- a/src/plugins/PlaylistFormats/pls/plsplaylistformat.cpp +++ b/src/plugins/PlaylistFormats/pls/plsplaylistformat.cpp @@ -81,17 +81,17 @@ QStringList PLSPlaylistFormat::decode(const QString & contents) return QStringList(); } -QString PLSPlaylistFormat::encode(const QList<AbstractPlaylistItem *> & contents) +QString PLSPlaylistFormat::encode(const QList<PlayListItem *> & contents) { QStringList out; out << QString("[playlist]"); int counter = 1; - foreach(AbstractPlaylistItem* f,contents) + foreach(PlayListItem* f,contents) { QString begin = "File" + QString::number(counter) + "="; out.append(begin + f->url()); begin = "Title" + QString::number(counter) + "="; - out.append(begin + f->title()); + out.append(begin + f->value(Qmmp::TITLE)); begin = "Length" + QString::number(counter) + "="; out.append(begin + QString::number(f->length())); counter ++; diff --git a/src/plugins/PlaylistFormats/pls/plsplaylistformat.h b/src/plugins/PlaylistFormats/pls/plsplaylistformat.h index d69901d0d..dd97385b5 100644 --- a/src/plugins/PlaylistFormats/pls/plsplaylistformat.h +++ b/src/plugins/PlaylistFormats/pls/plsplaylistformat.h @@ -24,7 +24,7 @@ #include <QString> #include <QStringList> #include <qmmpui/playlistformat.h> -#include <qmmpui/abstractplaylistitem.h> +#include <qmmpui/playlistitem.h> /*! * Class for PLS playlist format parsing @@ -39,7 +39,7 @@ public: virtual QStringList getExtensions()const; virtual bool hasFormat(const QString&); virtual QStringList decode(const QString& contents); - virtual QString encode(const QList<AbstractPlaylistItem*>& contents); + virtual QString encode(const QList<PlayListItem*>& contents); virtual QString name()const; protected: QStringList m_supported_formats; diff --git a/src/plugins/PlaylistFormats/xspf/xspfplaylistformat.cpp b/src/plugins/PlaylistFormats/xspf/xspfplaylistformat.cpp index 9b5612fab..ad6c8f2a6 100644 --- a/src/plugins/PlaylistFormats/xspf/xspfplaylistformat.cpp +++ b/src/plugins/PlaylistFormats/xspf/xspfplaylistformat.cpp @@ -68,7 +68,7 @@ QStringList XSPFPlaylistFormat::decode(const QString & contents) // Needs more work - it's better use libSpiff there and put it as plugin. -QString XSPFPlaylistFormat::encode(const QList<AbstractPlaylistItem*> & files) +QString XSPFPlaylistFormat::encode(const QList<PlayListItem*> & files) { QDomDocument doc; QDomElement root = doc.createElement("playlist"); @@ -83,7 +83,7 @@ QString XSPFPlaylistFormat::encode(const QList<AbstractPlaylistItem*> & files) QDomElement tracklist = doc.createElement("trackList"); int counter = 1; - foreach(AbstractPlaylistItem* f,files) + foreach(PlayListItem* f,files) { QDomElement track = doc.createElement("track"); @@ -98,22 +98,22 @@ QString XSPFPlaylistFormat::encode(const QList<AbstractPlaylistItem*> & files) track.appendChild(ch); ch = doc.createElement("title"); - text = doc.createTextNode(f->title()); + text = doc.createTextNode(f->value(Qmmp::TITLE)); ch.appendChild(text); track.appendChild(ch); ch = doc.createElement("creator"); - text = doc.createTextNode(f->artist()); + text = doc.createTextNode(f->value(Qmmp::ARTIST)); ch.appendChild(text); track.appendChild(ch); ch = doc.createElement("annotation"); - text = doc.createTextNode(f->comment()); + text = doc.createTextNode(f->value(Qmmp::COMMENT)); ch.appendChild(text); track.appendChild(ch); ch = doc.createElement("album"); - text = doc.createTextNode(f->album()); + text = doc.createTextNode(f->value(Qmmp::ALBUM)); ch.appendChild(text); track.appendChild(ch); @@ -124,7 +124,7 @@ QString XSPFPlaylistFormat::encode(const QList<AbstractPlaylistItem*> & files) ch = doc.createElement("meta"); ch.setAttribute("rel", "year"); - text = doc.createTextNode(f->year()); + text = doc.createTextNode(f->value(Qmmp::YEAR)); ch.appendChild(text); track.appendChild(ch); diff --git a/src/plugins/PlaylistFormats/xspf/xspfplaylistformat.h b/src/plugins/PlaylistFormats/xspf/xspfplaylistformat.h index 87c1aad80..922cc5abf 100644 --- a/src/plugins/PlaylistFormats/xspf/xspfplaylistformat.h +++ b/src/plugins/PlaylistFormats/xspf/xspfplaylistformat.h @@ -24,7 +24,7 @@ #include <QString> #include <QStringList> #include <qmmpui/playlistformat.h> -#include <qmmpui/abstractplaylistitem.h> +#include <qmmpui/playlistitem.h> /*! * Class for XSPF playlist format parsing @@ -39,7 +39,7 @@ public: virtual QStringList getExtensions()const; virtual bool hasFormat(const QString&); virtual QStringList decode(const QString& contents); - virtual QString encode(const QList<AbstractPlaylistItem*>& contents); + virtual QString encode(const QList<PlayListItem*>& contents); virtual QString name()const; protected: QStringList m_supported_formats; diff --git a/src/qmmpui/CMakeLists.txt b/src/qmmpui/CMakeLists.txt index 78c9ac771..3f0fdcce6 100644 --- a/src/qmmpui/CMakeLists.txt +++ b/src/qmmpui/CMakeLists.txt @@ -54,7 +54,6 @@ SET(libqmmpui_MOC_HDRS filedialog.h filedialogfactory.h qtfiledialog.h - abstractplaylistitem.h fileloader.h playstate.h playlistmodel.h @@ -69,7 +68,6 @@ SET(libqmmpui_MOC_HDRS ) SET(libqmmpui_DEVEL_HDRS - abstractplaylistitem.h generalfactory.h general.h generalhandler.h @@ -79,7 +77,6 @@ SET(libqmmpui_DEVEL_HDRS commandlineoption.h filedialog.h filedialogfactory.h - abstractplaylistitem.h playlistitem.h playlistmodel.h mediaplayer.h diff --git a/src/qmmpui/detailsdialog.cpp b/src/qmmpui/detailsdialog.cpp index e11b6be65..5bb6b2be5 100644 --- a/src/qmmpui/detailsdialog.cpp +++ b/src/qmmpui/detailsdialog.cpp @@ -26,11 +26,11 @@ #include <qmmp/metadatamodel.h> #include <qmmp/tagmodel.h> #include "ui_detailsdialog.h" -#include "abstractplaylistitem.h" +#include "playlistitem.h" #include "tageditor.h" #include "detailsdialog.h" -DetailsDialog::DetailsDialog(AbstractPlaylistItem *item, QWidget *parent) +DetailsDialog::DetailsDialog(PlayListItem *item, QWidget *parent) : QDialog(parent) { m_ui = new Ui::DetailsDialog; @@ -74,7 +74,7 @@ void DetailsDialog::printInfo() if(!flist.isEmpty() && QFile::exists(m_item->url())) metaData = flist.at(0)->metaData(); else - metaData = m_item->metaData(); + metaData = *m_item; QString formattedText; formattedText.append("<TABLE>"); //tags diff --git a/src/qmmpui/detailsdialog.h b/src/qmmpui/detailsdialog.h index 66e8cb69a..3574ab408 100644 --- a/src/qmmpui/detailsdialog.h +++ b/src/qmmpui/detailsdialog.h @@ -27,7 +27,7 @@ class QTextCodec; class QAbstractButton; -class AbstractPlaylistItem; +class PlayListItem; class MetaDataModel; namespace Ui { @@ -46,7 +46,7 @@ public: * @param item Playlist item which should be used. * @param parent Parent widget. */ - DetailsDialog(AbstractPlaylistItem *item, QWidget *parent = 0); + DetailsDialog(PlayListItem *item, QWidget *parent = 0); /*! * Destructor. */ @@ -61,7 +61,7 @@ private: QString m_path; QString formatRow(const QString key, const QString value); MetaDataModel *m_metaDataModel; - AbstractPlaylistItem *m_item; + PlayListItem *m_item; }; #endif diff --git a/src/qmmpui/metadataformatter.cpp b/src/qmmpui/metadataformatter.cpp index ffdba769c..a683cf897 100644 --- a/src/qmmpui/metadataformatter.cpp +++ b/src/qmmpui/metadataformatter.cpp @@ -47,9 +47,9 @@ MetaDataFormatter::MetaDataFormatter(const QString &format) m_format = format; } -QString MetaDataFormatter::parse(AbstractPlaylistItem *item) +QString MetaDataFormatter::parse(PlayListItem *item) { - return parse(item->metaData(), item->length()); + return parse(*item, item->length()); } QString MetaDataFormatter::parse(const QMap<Qmmp::MetaData, QString> metaData, qint64 length) diff --git a/src/qmmpui/metadataformatter.h b/src/qmmpui/metadataformatter.h index c0588ef7c..1a8c26aed 100644 --- a/src/qmmpui/metadataformatter.h +++ b/src/qmmpui/metadataformatter.h @@ -23,7 +23,7 @@ #include <QString> #include <QMap> -#include <qmmpui/abstractplaylistitem.h> +#include <qmmpui/playlistitem.h> #include <qmmp/qmmp.h> /*! @brief The MetaDataFormatter formats metadata using templates. @@ -55,7 +55,7 @@ public: /*! * Converts metadata of item \b item to one string using template. */ - QString parse(AbstractPlaylistItem *item); + QString parse(PlayListItem *item); /*! * Converts metadata to one string using template. * @param metaData Metadata array. diff --git a/src/qmmpui/playlistformat.h b/src/qmmpui/playlistformat.h index 7e5b8c537..520711162 100644 --- a/src/qmmpui/playlistformat.h +++ b/src/qmmpui/playlistformat.h @@ -22,7 +22,7 @@ #define _PALYLISTFORMAT_H #include <QStringList> -class AbstractPlaylistItem; +class PlayListItem; /*! @brief Abstract interface for playlist formats. * @author Vladimir Kuznetsov <vovanec@gmail.com> @@ -46,7 +46,7 @@ public: * Takes the list of AbstractPlaylistItem objects, should return string of * encoded playlist file */ - virtual QString encode(const QList<AbstractPlaylistItem*>& contents) = 0; + virtual QString encode(const QList<PlayListItem*>& contents) = 0; /*! * Returns list of file extensions that current format supports */ diff --git a/src/qmmpui/playlistitem.cpp b/src/qmmpui/playlistitem.cpp index 4ff602948..bdfec7bb0 100644 --- a/src/qmmpui/playlistitem.cpp +++ b/src/qmmpui/playlistitem.cpp @@ -19,20 +19,21 @@ ***************************************************************************/ #include <QSettings> #include <QDir> - #include <qmmp/metadatamanager.h> #include "metadataformatter.h" #include "playlistsettings.h" #include "playlistitem.h" -PlayListItem::PlayListItem() : AbstractPlaylistItem(), m_flag(FREE) +PlayListItem::PlayListItem() : QMap<Qmmp::MetaData, QString>(), m_flag(FREE) { m_info = 0; + m_length = 0; m_selected = false; m_current = false; } -PlayListItem::PlayListItem(const PlayListItem &other) : AbstractPlaylistItem(other), m_flag(other.m_flag) +PlayListItem::PlayListItem(const PlayListItem &other) : QMap<Qmmp::MetaData, QString>(other), + m_flag(other.m_flag) { m_title = other.m_title; if (other.m_info) @@ -41,17 +42,16 @@ PlayListItem::PlayListItem(const PlayListItem &other) : AbstractPlaylistItem(oth } m_selected = other.m_selected; m_current = other.m_current; + m_length = other.m_length; } -PlayListItem::PlayListItem(FileInfo *info) : AbstractPlaylistItem(), m_flag(FREE) +PlayListItem::PlayListItem(FileInfo *info) : QMap<Qmmp::MetaData, QString>(info->metaData()), m_flag(FREE) { + m_length = info->length(); m_selected = false; m_current = false; m_info = info; - - setMetaData(info->metaData()); - setMetaData(Qmmp::URL, m_info->path()); - setLength(m_info->length()); + insert(Qmmp::URL, m_info->path()); } PlayListItem::~PlayListItem() @@ -92,7 +92,7 @@ PlayListItem::FLAGS PlayListItem::flag() const void PlayListItem::updateMetaData(const QMap <Qmmp::MetaData, QString> &metaData) { - setMetaData(metaData); + QMap <Qmmp::MetaData, QString>::operator =(metaData); readMetadata(); } @@ -103,12 +103,13 @@ void PlayListItem::updateTags() delete m_info; m_info = 0; } - QList <FileInfo *> list = MetaDataManager::instance()->createPlayList(url()); + QList <FileInfo *> list = MetaDataManager::instance()->createPlayList(value(Qmmp::URL)); if(!list.isEmpty() && !list.at(0)->path().contains("://")) { m_info = list.at(0); - setMetaData(m_info->metaData()); - setMetaData(Qmmp::URL, m_info->path()); + m_length = m_info->length(); + QMap <Qmmp::MetaData, QString>::operator =(m_info->metaData()); + insert(Qmmp::URL, m_info->path()); readMetadata(); } while(list.size() > 1) @@ -127,15 +128,30 @@ void PlayListItem::setText(const QString &title) m_title = title; } +qint64 PlayListItem::length() const +{ + return m_length; +} + +void PlayListItem::setLength(qint64 length) +{ + m_length = length; +} + +const QString PlayListItem::url() const +{ + return value(Qmmp::URL); +} + void PlayListItem::readMetadata() { MetaDataFormatter f(PlaylistSettings::instance()->format()); - m_title = f.parse(metaData()); + m_title = f.parse(this); //TODO rewrite this if (m_title.isEmpty()) { - if (url().contains('/')) - m_title = url().split('/',QString::SkipEmptyParts).takeLast (); + if (value(Qmmp::URL).contains('/')) + m_title = value(Qmmp::URL).split('/',QString::SkipEmptyParts).takeLast (); } if (m_info) delete m_info; diff --git a/src/qmmpui/playlistitem.h b/src/qmmpui/playlistitem.h index 9ad51ee67..f2ba69ffa 100644 --- a/src/qmmpui/playlistitem.h +++ b/src/qmmpui/playlistitem.h @@ -20,8 +20,8 @@ #ifndef PLAYLISTITEM_H #define PLAYLISTITEM_H +#include <QMap> #include <qmmp/qmmp.h> -#include <qmmpui/abstractplaylistitem.h> class FileInfo; class QSettings; @@ -29,7 +29,7 @@ class QSettings; /** @brief The PlayListItem class provides an item for use with the PlayListModel class. * @author Ilya Kotov <forkotov02@hotmail.ru> */ -class PlayListItem : public AbstractPlaylistItem +class PlayListItem : public QMap <Qmmp::MetaData, QString> { public: /*! @@ -97,6 +97,18 @@ public: */ void setText(const QString &title); /*! + * Returns song length in seconds. + */ + qint64 length() const; + /*! + * Sets length in seconds. + */ + void setLength(qint64 length); + /*! + * Same as url() + */ + const QString url() const; + /*! * Updates current metadata. * @param metaData Map with metadata values. */ @@ -113,6 +125,7 @@ private: bool m_selected; bool m_current; FLAGS m_flag; + qint64 m_length; }; #endif diff --git a/src/qmmpui/playlistmanager.cpp b/src/qmmpui/playlistmanager.cpp index 69d53ae12..ba92777c5 100644 --- a/src/qmmpui/playlistmanager.cpp +++ b/src/qmmpui/playlistmanager.cpp @@ -315,28 +315,28 @@ void PlayListManager::readPlayLists() else if (param == "file") { items << new PlayListItem(); - items.last()->setMetaData(Qmmp::URL, value); + items.last()->insert(Qmmp::URL, value); } else if (items.isEmpty()) continue; else if (param == "title") - items.last()->setMetaData(Qmmp::TITLE, value); + items.last()->insert(Qmmp::TITLE, value); else if (param == "artist") - items.last()->setMetaData(Qmmp::ARTIST, value); + items.last()->insert(Qmmp::ARTIST, value); else if (param == "album") - items.last()->setMetaData(Qmmp::ALBUM, value); + items.last()->insert(Qmmp::ALBUM, value); else if (param == "comment") - items.last()->setMetaData(Qmmp::COMMENT, value); + items.last()->insert(Qmmp::COMMENT, value); else if (param == "genre") - items.last()->setMetaData(Qmmp::GENRE, value); + items.last()->insert(Qmmp::GENRE, value); else if (param == "composer") - items.last()->setMetaData(Qmmp::COMPOSER, value); + items.last()->insert(Qmmp::COMPOSER, value); else if (param == "year") - items.last()->setMetaData(Qmmp::YEAR, value); + items.last()->insert(Qmmp::YEAR, value); else if (param == "track") - items.last()->setMetaData(Qmmp::TRACK, value); + items.last()->insert(Qmmp::TRACK, value); else if (param == "disc") - items.last()->setMetaData(Qmmp::DISCNUMBER, value); + items.last()->insert(Qmmp::DISCNUMBER, value); else if (param == "length") items.last()->setLength(value.toInt()); } @@ -369,15 +369,15 @@ void PlayListManager::writePlayLists() foreach(PlayListItem* m, items) { file.write(QString("file=%1\n").arg(m->url()).toUtf8()); - file.write(QString("title=%1\n").arg(m->title()).toUtf8()); - file.write(QString("artist=%1\n").arg(m->artist()).toUtf8()); - file.write(QString("album=%1\n").arg(m->album()).toUtf8()); - file.write(QString("comment=%1\n").arg(m->comment()).toUtf8()); - file.write(QString("genre=%1\n").arg(m->genre()).toUtf8()); - file.write(QString("composer=%1\n").arg(m->composer()).toUtf8()); - file.write(QString("year=%1\n").arg(m->year()).toUtf8()); - file.write(QString("track=%1\n").arg(m->track()).toUtf8()); - file.write(QString("disc=%1\n").arg(m->discNumber()).toUtf8()); + file.write(QString("title=%1\n").arg(m->value(Qmmp::TITLE)).toUtf8()); + file.write(QString("artist=%1\n").arg(m->value(Qmmp::ARTIST)).toUtf8()); + file.write(QString("album=%1\n").arg(m->value(Qmmp::ALBUM)).toUtf8()); + file.write(QString("comment=%1\n").arg(m->value(Qmmp::COMMENT)).toUtf8()); + file.write(QString("genre=%1\n").arg(m->value(Qmmp::GENRE)).toUtf8()); + file.write(QString("composer=%1\n").arg(m->value(Qmmp::COMPOSER)).toUtf8()); + file.write(QString("year=%1\n").arg(m->value(Qmmp::YEAR)).toUtf8()); + file.write(QString("track=%1\n").arg(m->value(Qmmp::TRACK)).toUtf8()); + file.write(QString("disc=%1\n").arg(m->value(Qmmp::DISCNUMBER)).toUtf8()); file.write(QString("length=%1\n").arg(m->length()).toUtf8()); } } diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp index 7cfe7fb09..189bcf984 100644 --- a/src/qmmpui/playlistmodel.cpp +++ b/src/qmmpui/playlistmodel.cpp @@ -670,32 +670,32 @@ void PlayListModel::reverseList() //by title static bool _titleLessComparator(PlayListItem* s1,PlayListItem* s2) { - return QString::localeAwareCompare (s1->title(), s2->title()) < 0; + return QString::localeAwareCompare (s1->value(Qmmp::TITLE), s2->value(Qmmp::TITLE)) < 0; } static bool _titleGreaterComparator(PlayListItem* s1,PlayListItem* s2) { - return QString::localeAwareCompare (s1->title(), s2->title()) > 0; + return QString::localeAwareCompare (s1->value(Qmmp::TITLE), s2->value(Qmmp::TITLE)) > 0; } //by album static bool _albumLessComparator(PlayListItem* s1,PlayListItem* s2) { - return QString::localeAwareCompare (s1->album(), s2->album()) < 0; + return QString::localeAwareCompare (s1->value(Qmmp::ALBUM), s2->value(Qmmp::ALBUM)) < 0; } static bool _albumGreaterComparator(PlayListItem* s1,PlayListItem* s2) { - return QString::localeAwareCompare (s1->album(), s2->album()) > 0; + return QString::localeAwareCompare (s1->value(Qmmp::ALBUM), s2->value(Qmmp::ALBUM)) > 0; } //by artist static bool _artistLessComparator(PlayListItem* s1,PlayListItem* s2) { - return QString::localeAwareCompare (s1->artist(), s2->artist()) < 0; + return QString::localeAwareCompare (s1->value(Qmmp::ALBUM), s2->value(Qmmp::ALBUM)) < 0; } static bool _artistGreaterComparator(PlayListItem* s1,PlayListItem* s2) { - return QString::localeAwareCompare (s1->artist(), s2->artist()) > 0; + return QString::localeAwareCompare (s1->value(Qmmp::ARTIST), s2->value(Qmmp::ARTIST)) > 0; } //by path static bool _pathAndFilenameLessComparator(PlayListItem* s1,PlayListItem* s2) @@ -724,22 +724,22 @@ static bool _filenameGreaterComparator(PlayListItem* s1,PlayListItem* s2) //by date static bool _dateLessComparator(PlayListItem* s1,PlayListItem* s2) { - return s1->year().toInt() < s2->year().toInt(); + return s1->value(Qmmp::YEAR).toInt() < s2->value(Qmmp::YEAR).toInt(); } static bool _dateGreaterComparator(PlayListItem* s1,PlayListItem* s2) { - return s1->year().toInt() > s2->year().toInt(); + return s1->value(Qmmp::YEAR).toInt() > s2->value(Qmmp::YEAR).toInt(); } //by track static bool _trackLessComparator(PlayListItem* s1,PlayListItem* s2) { - return s1->track().toInt() < s2->track().toInt(); + return s1->value(Qmmp::TRACK).toInt() < s2->value(Qmmp::TRACK).toInt(); } static bool _trackGreaterComparator(PlayListItem* s1,PlayListItem* s2) { - return s1->track().toInt() > s2->track().toInt(); + return s1->value(Qmmp::TRACK).toInt() > s2->value(Qmmp::TRACK).toInt(); } // This is main sort method @@ -883,7 +883,7 @@ void PlayListModel::savePlaylist(const QString & f_name) if (file.open(QIODevice::WriteOnly)) { QTextStream ts(&file); - QList <AbstractPlaylistItem *> songs; + QList <PlayListItem *> songs; foreach(PlayListItem* item, m_items) songs << item; ts << prs->encode(songs); diff --git a/src/qmmpui/qmmpui.pro b/src/qmmpui/qmmpui.pro index 367616ecd..14facd71a 100644 --- a/src/qmmpui/qmmpui.pro +++ b/src/qmmpui/qmmpui.pro @@ -28,7 +28,6 @@ HEADERS += general.h \ filedialog.h \ filedialogfactory.h \ qtfiledialog.h \ - abstractplaylistitem.h \ playlistitem.h \ playlistmodel.h \ playstate.h \ @@ -46,7 +45,6 @@ SOURCES += general.cpp \ commandlinemanager.cpp \ filedialog.cpp \ qtfiledialog.cpp \ - abstractplaylistitem.cpp \ playlistmodel.cpp \ playstate.cpp \ playlistitem.cpp \ @@ -78,7 +76,7 @@ TRANSLATIONS = translations/libqmmpui_ru.ts \ translations/libqmmpui_ja.ts \ translations/libqmmpui_es.ts unix { - devel.files += abstractplaylistitem.h \ + devel.files += \ generalfactory.h \ generalhandler.h \ playlistformat.h \ @@ -87,7 +85,6 @@ unix { commandlineoption.h \ filedialog.h \ filedialogfactory.h \ - abstractplaylistitem.h \ playlistitem.h \ playlistmodel.h \ mediaplayer.h \ |
