diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-02-09 20:05:00 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-02-09 20:05:00 +0000 |
| commit | 2163134c1829a8126afb6921510c89c321e2809c (patch) | |
| tree | aaf6ce0cd679891df31ca51d8d4e6ba96a5d7f0d /src/qmmpui | |
| parent | 263fd1ab79ca6e2ccb01b5a6e9c49676ac5e1aeb (diff) | |
| download | qmmp-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
Diffstat (limited to 'src/qmmpui')
| -rw-r--r-- | src/qmmpui/detailsdialog.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
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; |
