From 2163134c1829a8126afb6921510c89c321e2809c Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 9 Feb 2021 20:05:00 +0000 Subject: added extra file access checking git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9716 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/detailsdialog.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/qmmpui/detailsdialog.cpp') diff --git a/src/qmmpui/detailsdialog.cpp b/src/qmmpui/detailsdialog.cpp index caaed7a4d..b2bc6d72e 100644 --- a/src/qmmpui/detailsdialog.cpp +++ b/src/qmmpui/detailsdialog.cpp @@ -223,18 +223,24 @@ void DetailsDialog::updatePage() QString coverPath; QPixmap coverPixmap; + bool readOnly = false; - if(m_info.path().contains("://")) //URL + if(m_info.path().contains("://") && m_info.path().contains("#")) //track of multi-track file { - m_metaDataModel = MetaDataManager::instance()->createMetaDataModel(m_info.path(), false); + QString filePath = m_info.path(); + filePath.remove(QRegularExpression("#\\d+$")); + filePath.remove(QRegularExpression("^\\D+://")); + if(QFileInfo(filePath).isFile()) + readOnly = !QFileInfo(filePath).isWritable() || !QFile::exists(filePath); } - else if(QFile::exists(m_info.path())) //local file + else if(!m_info.path().contains("://")) //local file { coverPath = MetaDataManager::instance()->findCoverFile(m_info.path()); - bool writable = QFileInfo(m_info.path()).isWritable(); - m_metaDataModel = MetaDataManager::instance()->createMetaDataModel(m_info.path(), !writable); + readOnly = !QFileInfo(m_info.path()).isWritable() || !QFile::exists(m_info.path()); } + m_metaDataModel = MetaDataManager::instance()->createMetaDataModel(m_info.path(), readOnly); + if(m_metaDataModel) { coverPath = coverPath.isEmpty() ? m_metaDataModel->coverPath() : coverPath; -- cgit v1.2.3-13-gbd6f