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/plugins/Input/cue/cuemetadatamodel.cpp | 2 -- src/plugins/Input/wavpack/wavpackmetadatamodel.cpp | 8 ++------ src/qmmpui/detailsdialog.cpp | 16 +++++++++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/plugins/Input/cue/cuemetadatamodel.cpp b/src/plugins/Input/cue/cuemetadatamodel.cpp index 94f4eb310..59a582242 100644 --- a/src/plugins/Input/cue/cuemetadatamodel.cpp +++ b/src/plugins/Input/cue/cuemetadatamodel.cpp @@ -35,8 +35,6 @@ CUEMetaDataModel::CUEMetaDataModel(bool readOnly, const QString &url) : MetaData int track = url.section("#", -1).toInt(); m_dataFilePath = file.dataFilePath(track); m_cueFilePath = file.cueFilePath(); - if(!QFileInfo(m_cueFilePath).isWritable()) - setReadOnly(true); } CUEMetaDataModel::~CUEMetaDataModel() diff --git a/src/plugins/Input/wavpack/wavpackmetadatamodel.cpp b/src/plugins/Input/wavpack/wavpackmetadatamodel.cpp index 8d24aa51f..dbd8c215c 100644 --- a/src/plugins/Input/wavpack/wavpackmetadatamodel.cpp +++ b/src/plugins/Input/wavpack/wavpackmetadatamodel.cpp @@ -39,11 +39,9 @@ WavPackMetaDataModel::WavPackMetaDataModel(const QString &path, bool readOnly) : if(!readOnly) flags |= OPEN_EDIT_TAGS; #if defined(Q_OS_WIN) && defined(OPEN_FILE_UTF8) - m_ctx = WavpackOpenFileInput(m_path.toUtf8().constData(), - err, flags | OPEN_FILE_UTF8, 0); + m_ctx = WavpackOpenFileInput(m_path.toUtf8().constData(), err, flags | OPEN_FILE_UTF8, 0); #else - m_ctx = WavpackOpenFileInput(m_path.toLocal8Bit().constData(), err, - flags, 0); + m_ctx = WavpackOpenFileInput(m_path.toLocal8Bit().constData(), err, flags, 0); #endif if (!m_ctx) { @@ -53,8 +51,6 @@ WavPackMetaDataModel::WavPackMetaDataModel(const QString &path, bool readOnly) : } if(!path.contains("://")) m_tags << new WavPackFileTagModel(m_ctx); - - setReadOnly(!(flags & OPEN_EDIT_TAGS)); } WavPackMetaDataModel::~WavPackMetaDataModel() 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