[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [digikam/frameworks] libs: Use quinptr to pass the deleted album pointer in albumHasBeenDeleted
From: Marcel Wiesweg <marcel.wiesweg () gmx ! de>
Date: 2015-09-25 17:19:33
Message-ID: E1ZfWej-0004gF-Mi () scm ! kde ! org
[Download RAW message or body]
Git commit 2e7242ff5902be0348445e0ac6ce1704f3a8364b by Marcel Wiesweg.
Committed on 25/09/2015 at 17:19.
Pushed by mwiesweg into branch 'frameworks'.
Use quinptr to pass the deleted album pointer in albumHasBeenDeleted
After delete, the pointer may be set to 0 on some platforms.
quintptr makes it absolutely clear that there is no object anymore
behind the identifier.
M +13 -7 libs/album/albummanager.cpp
M +1 -1 libs/album/albummanager.h
M +4 -4 libs/models/abstractalbummodel.cpp
M +1 -1 libs/models/abstractalbummodel.h
M +1 -1 libs/models/abstractalbummodelpriv.h
http://commits.kde.org/digikam/2e7242ff5902be0348445e0ac6ce1704f3a8364b
diff --git a/libs/album/albummanager.cpp b/libs/album/albummanager.cpp
index ac38328..ca980e0 100644
--- a/libs/album/albummanager.cpp
+++ b/libs/album/albummanager.cpp
@@ -1768,8 +1768,9 @@ void AlbumManager::scanSAlbums()
emit signalAlbumAboutToBeDeleted(album);
d->allAlbumsIdHash.remove(album->globalID());
emit signalAlbumDeleted(album);
+ quintptr deletedAlbum = reinterpret_cast<quintptr>(album);
delete album;
- emit signalAlbumHasBeenDeleted(album);
+ emit signalAlbumHasBeenDeleted(deletedAlbum);
}
// add new albums
@@ -2558,7 +2559,7 @@ bool AlbumManager::moveTAlbum(TAlbum* album, TAlbum* newParent, QString& errMsg)
album->setParent(0);
emit signalAlbumDeleted(album);
- emit signalAlbumHasBeenDeleted(album);
+ emit signalAlbumHasBeenDeleted(reinterpret_cast<quintptr>(album));
emit signalAlbumAboutToBeAdded(album, newParent, newParent->lastChild());
ChangingDB changing(d);
@@ -2856,8 +2857,9 @@ bool AlbumManager::deleteSAlbum(SAlbum* album)
d->allAlbumsIdHash.remove(album->globalID());
emit signalAlbumDeleted(album);
+ quintptr deletedAlbum = reinterpret_cast<quintptr>(album);
delete album;
- emit signalAlbumHasBeenDeleted(album);
+ emit signalAlbumHasBeenDeleted(deletedAlbum);
return true;
}
@@ -2953,8 +2955,9 @@ void AlbumManager::removePAlbum(PAlbum* album)
}
emit signalAlbumDeleted(album);
+ quintptr deletedAlbum = reinterpret_cast<quintptr>(album);
delete album;
- emit signalAlbumHasBeenDeleted(album);
+ emit signalAlbumHasBeenDeleted(deletedAlbum);
}
void AlbumManager::insertTAlbum(TAlbum* album, TAlbum* parent)
@@ -3014,8 +3017,9 @@ void AlbumManager::removeTAlbum(TAlbum* album)
}
emit signalAlbumDeleted(album);
+ quintptr deletedAlbum = reinterpret_cast<quintptr>(album);
delete album;
- emit signalAlbumHasBeenDeleted(album);
+ emit signalAlbumHasBeenDeleted(deletedAlbum);
}
void AlbumManager::notifyAlbumDeletion(Album* album)
@@ -3245,8 +3249,9 @@ void AlbumManager::slotDatesJobData(const QMap<QDateTime, int>& datesStatMap)
emit signalAlbumAboutToBeDeleted(album);
d->allAlbumsIdHash.remove(album->globalID());
emit signalAlbumDeleted(album);
+ quintptr deletedAlbum = reinterpret_cast<quintptr>(album);
delete album;
- emit signalAlbumHasBeenDeleted(album);
+ emit signalAlbumHasBeenDeleted(deletedAlbum);
}
for (QMap<int, DAlbum*>::const_iterator it = yAlbumMap.constBegin();
@@ -3256,8 +3261,9 @@ void AlbumManager::slotDatesJobData(const QMap<QDateTime, int>& datesStatMap)
emit signalAlbumAboutToBeDeleted(album);
d->allAlbumsIdHash.remove(album->globalID());
emit signalAlbumDeleted(album);
+ quintptr deletedAlbum = reinterpret_cast<quintptr>(album);
delete album;
- emit signalAlbumHasBeenDeleted(album);
+ emit signalAlbumHasBeenDeleted(deletedAlbum);
}
d->dAlbumsCount = yearMonthMap;
diff --git a/libs/album/albummanager.h b/libs/album/albummanager.h
index 4f25118..53aa2ae 100644
--- a/libs/album/albummanager.h
+++ b/libs/album/albummanager.h
@@ -619,7 +619,7 @@ Q_SIGNALS:
void signalAlbumDeleted(Album* album);
/// The album is deleted, the object can no longer be accessed.
/// For identification purposes, the former album pointer is passed.
- void signalAlbumHasBeenDeleted(void*);
+ void signalAlbumHasBeenDeleted(quintptr);
void signalAlbumsCleared();
void signalAlbumCurrentChanged(QList<Album*> album);
void signalAllAlbumsLoaded();
diff --git a/libs/models/abstractalbummodel.cpp b/libs/models/abstractalbummodel.cpp
index 3c3de19..3e1f3ca 100644
--- a/libs/models/abstractalbummodel.cpp
+++ b/libs/models/abstractalbummodel.cpp
@@ -62,8 +62,8 @@ AbstractAlbumModel::AbstractAlbumModel(Album::Type albumType, Album* const rootA
connect(AlbumManager::instance(), SIGNAL(signalAlbumAboutToBeDeleted(Album*)),
this, SLOT(slotAlbumAboutToBeDeleted(Album*)));
- connect(AlbumManager::instance(), SIGNAL(signalAlbumHasBeenDeleted(void*)),
- this, SLOT(slotAlbumHasBeenDeleted(void*)));
+ connect(AlbumManager::instance(), &AlbumManager::signalAlbumHasBeenDeleted,
+ this, &AbstractAlbumModel::slotAlbumHasBeenDeleted);
connect(AlbumManager::instance(), SIGNAL(signalAlbumsCleared()),
this, SLOT(slotAlbumsCleared()));
@@ -485,10 +485,10 @@ void AbstractAlbumModel::slotAlbumAboutToBeDeleted(Album* album)
albumCleared(album);
// store album for slotAlbumHasBeenDeleted
- d->removingAlbum = album;
+ d->removingAlbum = reinterpret_cast<quintptr>(album);
}
-void AbstractAlbumModel::slotAlbumHasBeenDeleted(void* p)
+void AbstractAlbumModel::slotAlbumHasBeenDeleted(quintptr p)
{
if (d->removingAlbum == p)
{
diff --git a/libs/models/abstractalbummodel.h b/libs/models/abstractalbummodel.h
index 64340d4..1b0aea4 100644
--- a/libs/models/abstractalbummodel.h
+++ b/libs/models/abstractalbummodel.h
@@ -192,7 +192,7 @@ protected Q_SLOTS:
void slotAlbumAboutToBeAdded(Album* album, Album* parent, Album* prev);
void slotAlbumAdded(Album*);
void slotAlbumAboutToBeDeleted(Album* album);
- void slotAlbumHasBeenDeleted(void*);
+ void slotAlbumHasBeenDeleted(quintptr);
void slotAlbumsCleared();
void slotAlbumIconChanged(Album* album);
void slotAlbumRenamed(Album* album);
diff --git a/libs/models/abstractalbummodelpriv.h b/libs/models/abstractalbummodelpriv.h
index 7021230..ad733c7 100644
--- a/libs/models/abstractalbummodelpriv.h
+++ b/libs/models/abstractalbummodelpriv.h
@@ -51,7 +51,7 @@ public:
AlbumModelDragDropHandler* dragDropHandler;
Album* addingAlbum;
- Album* removingAlbum;
+ quintptr removingAlbum;
public:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic