diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-02-02 11:09:14 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-02-02 11:09:14 +0000 |
| commit | 908de607e2f3de2fd50517a9752cf66bddd16582 (patch) | |
| tree | 8fd397291f58073c849aa710c3c17a9b91ac97a1 /src | |
| parent | ad74871af2596050dbfb8630c0157af002ade752 (diff) | |
| download | qmmp-908de607e2f3de2fd50517a9752cf66bddd16582.tar.gz qmmp-908de607e2f3de2fd50517a9752cf66bddd16582.tar.bz2 qmmp-908de607e2f3de2fd50517a9752cf66bddd16582.zip | |
using one formatter for all tracks
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4712 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
| -rw-r--r-- | src/qmmpui/metadataformatter.cpp | 12 | ||||
| -rw-r--r-- | src/qmmpui/metadataformatter.h | 12 | ||||
| -rw-r--r-- | src/qmmpui/playlisttrack.cpp | 12 | ||||
| -rw-r--r-- | src/qmmpui/qmmpuisettings.cpp | 15 | ||||
| -rw-r--r-- | src/qmmpui/qmmpuisettings.h | 7 |
5 files changed, 39 insertions, 19 deletions
diff --git a/src/qmmpui/metadataformatter.cpp b/src/qmmpui/metadataformatter.cpp index f1b70eeb0..dbee47323 100644 --- a/src/qmmpui/metadataformatter.cpp +++ b/src/qmmpui/metadataformatter.cpp @@ -83,12 +83,12 @@ const QString MetaDataFormatter::pattern() const return m_pattern; } -QString MetaDataFormatter::format(const PlayListTrack *item) +QString MetaDataFormatter::format(const PlayListTrack *item) const { return format(*item, item->length()); } -QString MetaDataFormatter::format(const QMap<Qmmp::MetaData, QString> &metaData, qint64 length) +QString MetaDataFormatter::format(const QMap<Qmmp::MetaData, QString> &metaData, qint64 length) const { return evalute(&m_nodes, &metaData, length).trimmed(); } @@ -265,7 +265,7 @@ void MetaDataFormatter::parseText(QList<MetaDataFormatter::Node> *nodes, QString nodes->append(node); } -QString MetaDataFormatter::evalute(QList<Node> *nodes, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length) +QString MetaDataFormatter::evalute(const QList<Node> *nodes, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length) const { QString out; for(int i = 0; i < nodes->count(); ++i) @@ -289,7 +289,7 @@ QString MetaDataFormatter::evalute(QList<Node> *nodes, const QMap<Qmmp::MetaData return out; } -QString MetaDataFormatter::printParam(MetaDataFormatter::Param *p, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length) +QString MetaDataFormatter::printParam(MetaDataFormatter::Param *p, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length) const { switch (p->type) { @@ -308,7 +308,7 @@ QString MetaDataFormatter::printParam(MetaDataFormatter::Param *p, const QMap<Qm return QString(); } -QString MetaDataFormatter::printField(int field, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length) +QString MetaDataFormatter::printField(int field, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length) const { if(field >= Qmmp::TITLE && field <= Qmmp::URL) { @@ -339,7 +339,7 @@ QString MetaDataFormatter::printField(int field, const QMap<Qmmp::MetaData, QStr return QString(); } -QString MetaDataFormatter::dumpNode(MetaDataFormatter::Node node) +QString MetaDataFormatter::dumpNode(MetaDataFormatter::Node node) const { QString str; QStringList params; diff --git a/src/qmmpui/metadataformatter.h b/src/qmmpui/metadataformatter.h index 39541a379..b44a25b2f 100644 --- a/src/qmmpui/metadataformatter.h +++ b/src/qmmpui/metadataformatter.h @@ -62,13 +62,13 @@ public: /*! * Converts metadata of item \b item to one string using template. */ - QString format(const PlayListTrack *item); + QString format(const PlayListTrack *item) const; /*! * Converts metadata to one string using template. * @param metaData Metadata array. * @param length Length in seconds. */ - QString format(const QMap<Qmmp::MetaData, QString> &metaData, qint64 length = 0); + QString format(const QMap<Qmmp::MetaData, QString> &metaData, qint64 length = 0) const; /*! * Returns formatted length (example: 05:02:03). * \param length Length in seconds. @@ -114,11 +114,11 @@ private: bool parseIf(QList<Node> *nodes, QString::const_iterator *i, QString::const_iterator end); void parseText(QList<Node> *nodes, QString::const_iterator *i, QString::const_iterator end); - QString evalute(QList<Node> *nodes, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length); - QString printParam(Param *p, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length); - QString printField(int field, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length); + QString evalute(const QList<Node> *nodes, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length) const; + QString printParam(Param *p, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length) const; + QString printField(int field, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length) const; - QString dumpNode(Node node); + QString dumpNode(Node node) const; QList<MetaDataFormatter::Node> compile(const QString &expr); QString m_pattern; diff --git a/src/qmmpui/playlisttrack.cpp b/src/qmmpui/playlisttrack.cpp index 756dfcaab..b9262c72b 100644 --- a/src/qmmpui/playlisttrack.cpp +++ b/src/qmmpui/playlisttrack.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2014 by Ilya Kotov * + * Copyright (C) 2008-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -17,9 +17,9 @@ * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#include <qmmp/metadatamanager.h> + #include <QApplication> -#include "metadataformatter.h" +#include <qmmp/metadatamanager.h> #include "qmmpuisettings.h" #include "playlisttrack.h" @@ -166,8 +166,7 @@ const QString PlayListTrack::url() const void PlayListTrack::formatTitle() { - MetaDataFormatter f(m_settings->titleFormat()); - m_formattedTitle = f.format(this); + m_formattedTitle = m_settings->titleFormatter()->format(this); if (m_formattedTitle.isEmpty()) m_formattedTitle = value(Qmmp::URL).section('/',-1); if (m_formattedTitle.isEmpty()) @@ -185,8 +184,7 @@ void PlayListTrack::formatGroup() m_group = qApp->translate("PlayListTrack", "Streams"); return; } - MetaDataFormatter f(m_settings->groupFormat()); - m_group = f.format(this); + m_group = m_settings->groupFormatter()->format(this); if (m_group.isEmpty()) m_group = qApp->translate("PlayListTrack", "Empty group"); if (m_settings->convertUnderscore()) diff --git a/src/qmmpui/qmmpuisettings.cpp b/src/qmmpui/qmmpuisettings.cpp index 30b30cec7..c7355ecb3 100644 --- a/src/qmmpui/qmmpuisettings.cpp +++ b/src/qmmpui/qmmpuisettings.cpp @@ -59,6 +59,9 @@ QmmpUiSettings::QmmpUiSettings(QObject *parent) : QObject(parent) m_timer->setInterval(5000); m_timer->setSingleShot(true); connect(m_timer, SIGNAL(timeout()), SLOT(sync())); + + m_group_formatter.setPattern(m_group_format); + m_title_formatter.setPattern(m_title_format); } QmmpUiSettings::~QmmpUiSettings() @@ -132,6 +135,7 @@ void QmmpUiSettings::setTitleFormat(const QString &titleFormat) if(titleFormat != m_title_format) { m_title_format = titleFormat; + m_title_formatter.setPattern(titleFormat); foreach(PlayListModel *model, PlayListManager::instance()->playLists()) { model->updateMetaData(); @@ -144,6 +148,7 @@ void QmmpUiSettings::setGroupFormat(const QString &groupFormat) if(groupFormat != m_group_format) { m_group_format = groupFormat; + m_group_formatter.setPattern(groupFormat); foreach(PlayListModel *model, PlayListManager::instance()->playLists()) { model->rebuildGroups(); @@ -312,3 +317,13 @@ bool QmmpUiSettings::clearPreviousPlayList() const { return m_clear_prev_playlist; } + +const MetaDataFormatter *QmmpUiSettings::titleFormatter() const +{ + return &m_title_formatter; +} + +const MetaDataFormatter *QmmpUiSettings::groupFormatter() const +{ + return &m_group_formatter; +} diff --git a/src/qmmpui/qmmpuisettings.h b/src/qmmpui/qmmpuisettings.h index f9d6fd99b..0380135ca 100644 --- a/src/qmmpui/qmmpuisettings.h +++ b/src/qmmpui/qmmpuisettings.h @@ -23,6 +23,7 @@ #include <QObject> #include <QStringList> +#include "metadataformatter.h" class QTimer; @@ -180,6 +181,10 @@ public: * otherwise. */ bool clearPreviousPlayList() const; + + const MetaDataFormatter* titleFormatter() const; + const MetaDataFormatter* groupFormatter() const; + /*! * Returns a pointer to the QmmpUiSettings instance. */ @@ -272,6 +277,8 @@ private: bool m_use_clipboard; //timer QTimer *m_timer; + //formatters + MetaDataFormatter m_group_formatter, m_title_formatter; }; #endif // QMMPUISETTINGS_H |
