aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2021-02-09 20:05:00 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2021-02-09 20:05:00 +0000
commit2163134c1829a8126afb6921510c89c321e2809c (patch)
treeaaf6ce0cd679891df31ca51d8d4e6ba96a5d7f0d
parent263fd1ab79ca6e2ccb01b5a6e9c49676ac5e1aeb (diff)
downloadqmmp-2163134c1829a8126afb6921510c89c321e2809c.tar.gz
qmmp-2163134c1829a8126afb6921510c89c321e2809c.tar.bz2
qmmp-2163134c1829a8126afb6921510c89c321e2809c.zip
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
-rw-r--r--src/plugins/Input/cue/cuemetadatamodel.cpp2
-rw-r--r--src/plugins/Input/wavpack/wavpackmetadatamodel.cpp8
-rw-r--r--src/qmmpui/detailsdialog.cpp16
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;