aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/playlisttrack.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui/playlisttrack.cpp')
-rw-r--r--src/qmmpui/playlisttrack.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/qmmpui/playlisttrack.cpp b/src/qmmpui/playlisttrack.cpp
index fc9c139e9..917e95399 100644
--- a/src/qmmpui/playlisttrack.cpp
+++ b/src/qmmpui/playlisttrack.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2015 by Ilya Kotov *
+ * Copyright (C) 2008-2017 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -59,7 +59,7 @@ PlayListTrack::PlayListTrack(FileInfo *info) : QMap<Qmmp::MetaData, QString>(in
m_track_index = -1;
m_settings = QmmpUiSettings::instance();
m_helper = MetaDataHelper::instance();
- setLength(m_length = info->length());
+ m_length = info->length();
insert(Qmmp::URL, info->path());
m_refCount = 0;
m_sheduledForDeletion = false;
@@ -78,17 +78,23 @@ void PlayListTrack::updateMetaData(const QMap <Qmmp::MetaData, QString> &metaDat
formatGroup();
}
+void PlayListTrack::updateMetaData(FileInfo *info)
+{
+ m_length = info->length();
+ QMap <Qmmp::MetaData, QString>::operator =(info->metaData());
+ insert(Qmmp::URL, info->path());
+ m_formattedTitles.clear();
+ m_formattedLength.clear();
+ formatGroup();
+}
+
void PlayListTrack::updateMetaData()
{
QList <FileInfo *> list = MetaDataManager::instance()->createPlayList(value(Qmmp::URL));
if(!list.isEmpty() && !list.at(0)->path().contains("://"))
{
FileInfo *info = list.at(0);
- m_length = info->length();
- QMap <Qmmp::MetaData, QString>::operator =(info->metaData());
- insert(Qmmp::URL, info->path());
- m_formattedTitles.clear();
- formatGroup();
+ updateMetaData(info);
}
qDeleteAll(list);
}
@@ -223,7 +229,7 @@ qint64 PlayListTrack::length() const
void PlayListTrack::setLength(qint64 length)
{
- m_length = length;
+ m_length = qMax(length, 0LL);
m_formattedLength.clear();
}