diff options
Diffstat (limited to 'src/qmmpui/detailsdialog.cpp')
| -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; |
