OSDN Git Service

Do not set Title or Cover Art for the global meta info object, when assigning the...
authorLoRd_MuldeR <mulder2@gmx.de>
Sun, 27 Oct 2013 23:28:47 +0000 (00:28 +0100)
committerLoRd_MuldeR <mulder2@gmx.de>
Sun, 27 Oct 2013 23:28:47 +0000 (00:28 +0100)
src/Model_Artwork.cpp
src/Model_MetaInfo.cpp

index b392fd1..cc4f4f0 100644 (file)
@@ -51,9 +51,12 @@ protected:
                        if(file->open(QIODevice::ReadOnly))
                        {
                                m_fileHandle = file;
-                               return;
                        }
-                       LAMEXP_DELETE(file);
+                       else
+                       {
+                               qWarning("[ArtworkModel] Failed to open artwork file!");
+                               LAMEXP_DELETE(file);
+                       }
                }
        }
 
@@ -86,10 +89,17 @@ protected:
                if(*ptr)
                {
                        QMutexLocker lock(&s_mutex);
-                       (*ptr)->m_referenceCounter = (*ptr)->m_referenceCounter - 1;
-                       if((*ptr)->m_referenceCounter < 1)
+                       if((*ptr)->m_referenceCounter > 0)
+                       {
+                               (*ptr)->m_referenceCounter = (*ptr)->m_referenceCounter - 1;
+                               if((*ptr)->m_referenceCounter < 1)
+                               {
+                                       delete (*ptr);
+                               }
+                       }
+                       else
                        {
-                               delete (*ptr);
+                               qWarning("[ArtworkModel::detach] Ref counter already zero!");
                        }
                        *ptr = NULL;
                }
@@ -169,7 +179,10 @@ void ArtworkModel::setFilePath(const QString &newPath, bool isOwner)
 {
        QMutexLocker lock(m_mutex);
        ArtworkModel_SharedData::detach(&m_data);
-       m_data = new ArtworkModel_SharedData(newPath, isOwner);
+       if(!newPath.isEmpty())
+       {
+               m_data = new ArtworkModel_SharedData(newPath, isOwner);
+       }
 }
 
 void ArtworkModel::clear(void)
index 0852c0d..70463ba 100644 (file)
@@ -484,7 +484,9 @@ void MetaInfoModel::assignInfoFrom(const AudioFileModel &file)
        m_metaInfo->update(file.metaInfo(), true);
        if(m_offset)
        {
+               m_metaInfo->setTitle(QString());
                m_metaInfo->setPosition(position ? UINT_MAX : 0);
+               m_metaInfo->setCover(QString(), false);
        }
        endResetModel();
 }