Do not set Title or Cover Art for the global meta info object, when assigning the info from a file.

This commit is contained in:
LoRd_MuldeR 2013-10-28 00:28:47 +01:00
parent 992b21a3d0
commit dcca2f0dd0
2 changed files with 21 additions and 6 deletions

View File

@ -51,11 +51,14 @@ protected:
if(file->open(QIODevice::ReadOnly)) if(file->open(QIODevice::ReadOnly))
{ {
m_fileHandle = file; m_fileHandle = file;
return;
} }
else
{
qWarning("[ArtworkModel] Failed to open artwork file!");
LAMEXP_DELETE(file); LAMEXP_DELETE(file);
} }
} }
}
~ArtworkModel_SharedData(void) ~ArtworkModel_SharedData(void)
{ {
@ -86,11 +89,18 @@ protected:
if(*ptr) if(*ptr)
{ {
QMutexLocker lock(&s_mutex); QMutexLocker lock(&s_mutex);
if((*ptr)->m_referenceCounter > 0)
{
(*ptr)->m_referenceCounter = (*ptr)->m_referenceCounter - 1; (*ptr)->m_referenceCounter = (*ptr)->m_referenceCounter - 1;
if((*ptr)->m_referenceCounter < 1) if((*ptr)->m_referenceCounter < 1)
{ {
delete (*ptr); delete (*ptr);
} }
}
else
{
qWarning("[ArtworkModel::detach] Ref counter already zero!");
}
*ptr = NULL; *ptr = NULL;
} }
} }
@ -169,8 +179,11 @@ void ArtworkModel::setFilePath(const QString &newPath, bool isOwner)
{ {
QMutexLocker lock(m_mutex); QMutexLocker lock(m_mutex);
ArtworkModel_SharedData::detach(&m_data); ArtworkModel_SharedData::detach(&m_data);
if(!newPath.isEmpty())
{
m_data = new ArtworkModel_SharedData(newPath, isOwner); m_data = new ArtworkModel_SharedData(newPath, isOwner);
} }
}
void ArtworkModel::clear(void) void ArtworkModel::clear(void)
{ {

View File

@ -484,7 +484,9 @@ void MetaInfoModel::assignInfoFrom(const AudioFileModel &file)
m_metaInfo->update(file.metaInfo(), true); m_metaInfo->update(file.metaInfo(), true);
if(m_offset) if(m_offset)
{ {
m_metaInfo->setTitle(QString());
m_metaInfo->setPosition(position ? UINT_MAX : 0); m_metaInfo->setPosition(position ? UINT_MAX : 0);
m_metaInfo->setCover(QString(), false);
} }
endResetModel(); endResetModel();
} }