aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/metadataformatter.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-05-02 10:16:40 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-05-02 10:16:40 +0000
commit9bdd208bbb16ec15d52653a9913789b44b3b28b3 (patch)
tree4b4c6aafc3b3cdefdece02d976bd2da357d42a5c /src/qmmpui/metadataformatter.cpp
parente2f78b8713a26a1f7aac119ffeea8ad9e1c16eed (diff)
downloadqmmp-9bdd208bbb16ec15d52653a9913789b44b3b28b3.tar.gz
qmmp-9bdd208bbb16ec15d52653a9913789b44b3b28b3.tar.bz2
qmmp-9bdd208bbb16ec15d52653a9913789b44b3b28b3.zip
removed Qmmp::URL
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7943 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/metadataformatter.cpp')
-rw-r--r--src/qmmpui/metadataformatter.cpp53
1 files changed, 30 insertions, 23 deletions
diff --git a/src/qmmpui/metadataformatter.cpp b/src/qmmpui/metadataformatter.cpp
index bb019b442..2b1174cfd 100644
--- a/src/qmmpui/metadataformatter.cpp
+++ b/src/qmmpui/metadataformatter.cpp
@@ -59,7 +59,7 @@ MetaDataFormatter::MetaDataFormatter(const QString &pattern)
m_fieldNames.insert("y", Qmmp::YEAR);
m_fieldNames.insert("n", Qmmp::TRACK);
m_fieldNames.insert("D", Qmmp::DISCNUMBER);
- m_fieldNames.insert("F", Qmmp::URL);
+ m_fieldNames.insert("F", Param::PATH);
m_fieldNames.insert("NN", Param::TWO_DIGIT_TRACK);
m_fieldNames.insert("l", Param::DURATION);
m_fieldNames.insert("f", Param::FILE_NAME);
@@ -98,17 +98,17 @@ const QString MetaDataFormatter::pattern() const
QString MetaDataFormatter::format(const PlayListTrack *item) const
{
- return format(item->metaData(), item->duration(), item->trackIndex());
+ return format(item->metaData(), item->path(), item->duration(), item->trackIndex());
}
-QString MetaDataFormatter::format(const QMap<Qmmp::MetaData, QString> &metaData, qint64 duration, int track) const
+QString MetaDataFormatter::format(const QMap<Qmmp::MetaData, QString> &metaData, const QString &path, qint64 duration, int track) const
{
- return evalute(&m_nodes, &metaData, duration, track).trimmed();
+ return evalute(&m_nodes, &metaData, &path, duration, track).trimmed();
}
QString MetaDataFormatter::format(const TrackInfo *info, int track) const
{
- return format(info->metaData(), info->duration(), track);
+ return format(info->metaData(), info->path(), info->duration(), track);
}
QString MetaDataFormatter::formatDuration(qint64 duration, bool hideZero, bool showMs)
@@ -398,7 +398,8 @@ void MetaDataFormatter::parseEscape(QList<MetaDataFormatter::Node> *nodes, QStri
nodes->append(node);
}
-QString MetaDataFormatter::evalute(const QList<Node> *nodes, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length, int track) const
+QString MetaDataFormatter::evalute(const QList<Node> *nodes, const QMap<Qmmp::MetaData, QString> *metaData,
+ const QString *path, qint64 length, int track) const
{
QString out;
for(int i = 0; i < nodes->count(); ++i)
@@ -407,56 +408,57 @@ QString MetaDataFormatter::evalute(const QList<Node> *nodes, const QMap<Qmmp::Me
if(node.command == Node::PRINT_TEXT)
{
Param p = node.params.first();
- out.append(printParam(&p, metaData, length, track));
+ out.append(printParam(&p, metaData, path, length, track));
}
else if(node.command == Node::IF_KEYWORD)
{
- QString var1 = printParam(&node.params[0], metaData, length, track);
+ QString var1 = printParam(&node.params[0], metaData, path, length, track);
if(var1.isEmpty() || var1 == "0")
- out.append(printParam(&node.params[2], metaData, length, track));
+ out.append(printParam(&node.params[2], metaData, path, length, track));
else
- out.append(printParam(&node.params[1], metaData, length, track));
+ out.append(printParam(&node.params[1], metaData, path, length, track));
}
else if(node.command == Node::AND_OPERATOR)
{
- QString var1 = printParam(&node.params[0], metaData, length, track);
- QString var2 = printParam(&node.params[1], metaData, length, track);
+ QString var1 = printParam(&node.params[0], metaData, path, length, track);
+ QString var2 = printParam(&node.params[1], metaData, path, length, track);
if(!var1.isEmpty() && !var2.isEmpty())
out.append("1");
}
else if(node.command == Node::OR_OPERATOR)
{
- QString var1 = printParam(&node.params[0], metaData, length, track);
+ QString var1 = printParam(&node.params[0], metaData, path, length, track);
if(!var1.isEmpty())
out.append("1");
else
{
- QString var2 = printParam(&node.params[1], metaData, length, track);
+ QString var2 = printParam(&node.params[1], metaData, path, length, track);
if(!var2.isEmpty())
out.append("1");
}
}
else if(node.command == Node::DIR_FUNCTION)
{
- out.append(metaData->value(Qmmp::URL).section('/', -node.params[0].number - 2, -node.params[0].number - 2));
+ out.append(path->section('/', -node.params[0].number - 2, -node.params[0].number - 2));
}
}
return out;
}
-QString MetaDataFormatter::printParam(MetaDataFormatter::Param *p, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length, int track) const
+QString MetaDataFormatter::printParam(MetaDataFormatter::Param *p, const QMap<Qmmp::MetaData, QString> *metaData,
+ const QString *path, qint64 length, int track) const
{
switch (p->type)
{
case Param::FIELD:
- return printField(p->field, metaData, length, track);
+ return printField(p->field, metaData, path, length, track);
break;
case Param::TEXT:
return p->text;
break;
case Param::NODES:
- return evalute(&p->children, metaData, length, track);
+ return evalute(&p->children, metaData, path, length, track);
break;
default:
break;
@@ -464,26 +466,31 @@ QString MetaDataFormatter::printParam(MetaDataFormatter::Param *p, const QMap<Qm
return QString();
}
-QString MetaDataFormatter::printField(int field, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length, int track) const
+QString MetaDataFormatter::printField(int field, const QMap<Qmmp::MetaData, QString> *metaData,
+ const QString *path, qint64 length, int track) const
{
- if(field >= Qmmp::TITLE && field <= Qmmp::URL)
+ if(field >= Qmmp::TITLE && field <= Qmmp::DISCNUMBER)
{
if(field == Qmmp::TITLE)
{
QString title = metaData->value(Qmmp::TITLE);
if(title.isEmpty()) //using file name if title is empty
{
- title = metaData->value(Qmmp::URL).section('/',-1);
+ title = path->section('/',-1);
title = title.left(title.lastIndexOf('.'));
}
if(title.isEmpty()) //using full path if file name is empty
- title = metaData->value(Qmmp::URL);
+ title = *path;
return title;
}
return metaData->value((Qmmp::MetaData) field);
}
+ else if(field == Param::PATH)
+ {
+ return *path;
+ }
else if(field == Param::TWO_DIGIT_TRACK)
{
return QString("%1").arg(metaData->value(Qmmp::TRACK),2,'0');
@@ -494,7 +501,7 @@ QString MetaDataFormatter::printField(int field, const QMap<Qmmp::MetaData, QStr
}
else if(field == Param::FILE_NAME)
{
- return metaData->value(Qmmp::URL).section('/',-1);
+ return path->section('/',-1);
}
else if(field == Param::TRACK_INDEX)
{