From b2576ddc181d3758e3a57d9cac871ee7d7e2ef06 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Wed, 14 Jun 2017 20:24:58 +0000 Subject: improved playlist formats support git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7237 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/playlisttrack.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'src/qmmpui/playlisttrack.cpp') 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(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 &metaDat formatGroup(); } +void PlayListTrack::updateMetaData(FileInfo *info) +{ + m_length = info->length(); + QMap ::operator =(info->metaData()); + insert(Qmmp::URL, info->path()); + m_formattedTitles.clear(); + m_formattedLength.clear(); + formatGroup(); +} + void PlayListTrack::updateMetaData() { QList 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 ::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(); } -- cgit v1.2.3-13-gbd6f