[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/graphics/digikam/digikam
From: Gilles Caulier <caulier.gilles () gmail ! com>
Date: 2011-01-21 14:56:55
Message-ID: 20110121145655.E56D6AC8B8 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1216143 by cgilles:
use d private internal container
constify
M +104 -82 albumhistory.cpp
M +3 -8 albumhistory.h
--- trunk/extragear/graphics/digikam/digikam/albumhistory.cpp #1216142:1216143
@@ -78,7 +78,7 @@
};
- HistoryPosition(ImageInfo c, KUrl::List s)
+ HistoryPosition(const ImageInfo& c, const KUrl::List& s)
{
current = c;
select = s;
@@ -95,94 +95,116 @@
// ---------------------------------------------------------------------
+class AlbumHistory::AlbumHistoryPriv
+{
+public:
+
+ AlbumHistoryPriv() :
+ moving(false),
+ blockSelection(false),
+ backwardStack(0),
+ forwardStack(0)
+ {
+ }
+
+ typedef QList<HistoryItem*> AlbumStack;
+
+ bool moving;
+ bool blockSelection;
+
+ AlbumStack* backwardStack;
+ AlbumStack* forwardStack;
+ QMap<Album*, HistoryPosition> historyPos;
+};
+
AlbumHistory::AlbumHistory()
+ : d(new AlbumHistoryPriv)
{
- m_backwardStack = new AlbumStack;
- m_forwardStack = new AlbumStack;
- m_moving = false;
- m_blockSelection = false;
+ d->backwardStack = new AlbumHistoryPriv::AlbumStack;
+ d->forwardStack = new AlbumHistoryPriv::AlbumStack;
}
AlbumHistory::~AlbumHistory()
{
clearHistory();
- delete m_backwardStack;
- delete m_forwardStack;
+ delete d->backwardStack;
+ delete d->forwardStack;
+ delete d;
}
void AlbumHistory::clearHistory()
{
- AlbumStack::const_iterator iter = m_backwardStack->constBegin();
+ AlbumHistoryPriv::AlbumStack::const_iterator iter = \
d->backwardStack->constBegin();
- for (; iter != m_backwardStack->constEnd(); ++iter)
+ for (; iter != d->backwardStack->constEnd(); ++iter)
{
delete *iter;
}
- m_backwardStack->clear();
+ d->backwardStack->clear();
- iter = m_forwardStack->constBegin();
+ iter = d->forwardStack->constBegin();
- for (; iter != m_forwardStack->constEnd(); ++iter)
+ for (; iter != d->forwardStack->constEnd(); ++iter)
{
delete *iter;
}
- m_forwardStack->clear();
+ d->forwardStack->clear();
- m_moving = false;
+ d->moving = false;
}
void AlbumHistory::addAlbum(Album* album, QWidget* widget)
{
- if (!album || !widget || m_moving)
+ if (!album || !widget || d->moving)
{
- m_moving = false;
+ d->moving = false;
return;
}
// Same album as before in the history
- if (!m_backwardStack->isEmpty() && m_backwardStack->last()->album == album)
+ if (!d->backwardStack->isEmpty() && d->backwardStack->last()->album == album)
{
- m_backwardStack->last()->widget = widget;
+ d->backwardStack->last()->widget = widget;
return;
}
HistoryItem* item = new HistoryItem(album, widget);
- m_backwardStack->push_back(item);
+ d->backwardStack->push_back(item);
// The forward stack has to be cleared, if backward stack was changed
- if (!m_forwardStack->isEmpty())
+ if (!d->forwardStack->isEmpty())
{
- AlbumStack::const_iterator iter = m_forwardStack->constBegin();
+ AlbumHistoryPriv::AlbumStack::const_iterator iter = \
d->forwardStack->constBegin();
- for (; iter != m_forwardStack->constEnd(); ++iter)
+ for (; iter != d->forwardStack->constEnd(); ++iter)
{
delete *iter;
}
- m_forwardStack->clear();
+ d->forwardStack->clear();
}
}
void AlbumHistory::deleteAlbum(Album* album)
{
- if (!album || m_backwardStack->isEmpty())
+ if (!album || d->backwardStack->isEmpty())
{
return;
}
// Search all HistoryItems, with album and delete them
- AlbumStack::iterator iter = m_backwardStack->begin();
+ AlbumHistoryPriv::AlbumStack::iterator iter = d->backwardStack->begin();
- while (iter != m_backwardStack->end())
+ while (iter != d->backwardStack->end())
{
if ((*iter)->album == album)
{
delete *iter;
- iter = m_backwardStack->erase(iter);
+ iter = d->backwardStack->erase(iter);
}
else
{
@@ -190,14 +212,14 @@
}
}
- iter = m_forwardStack->begin();
+ iter = d->forwardStack->begin();
- while (iter != m_forwardStack->end())
+ while (iter != d->forwardStack->end())
{
if ((*iter)->album == album)
{
delete *iter;
- iter = m_forwardStack->erase(iter);
+ iter = d->forwardStack->erase(iter);
}
else
{
@@ -205,29 +227,29 @@
}
}
- if (m_backwardStack->isEmpty() && m_forwardStack->isEmpty())
+ if (d->backwardStack->isEmpty() && d->forwardStack->isEmpty())
{
return;
}
// If backwardStack is empty, then there is no current album.
// So make the first album of the forwardStack the current one.
- if (m_backwardStack->isEmpty())
+ if (d->backwardStack->isEmpty())
{
forward();
}
// After the album is deleted from the history it has to be ensured,
// that neighboring albums are different
- AlbumStack::iterator lhs = m_backwardStack->begin();
- AlbumStack::iterator rhs = lhs;
+ AlbumHistoryPriv::AlbumStack::iterator lhs = d->backwardStack->begin();
+ AlbumHistoryPriv::AlbumStack::iterator rhs = lhs;
++rhs;
- while (rhs != m_backwardStack->end())
+ while (rhs != d->backwardStack->end())
{
if (*lhs == *rhs)
{
- rhs = m_backwardStack->erase(rhs);
+ rhs = d->backwardStack->erase(rhs);
}
else
{
@@ -237,19 +259,19 @@
}
}
- rhs = m_forwardStack->begin();
+ rhs = d->forwardStack->begin();
- while (rhs != m_forwardStack->end())
+ while (rhs != d->forwardStack->end())
{
if (*lhs == *rhs)
{
- rhs = m_forwardStack->erase(rhs);
+ rhs = d->forwardStack->erase(rhs);
}
else
{
- if (lhs == (m_backwardStack->isEmpty() ? m_backwardStack->end() : \
--m_backwardStack->end())) + if (lhs == (d->backwardStack->isEmpty() ? \
d->backwardStack->end() : --d->backwardStack->end())) {
- lhs = m_forwardStack->begin();
+ lhs = d->forwardStack->begin();
}
else
{
@@ -261,7 +283,7 @@
}
}
- if (m_backwardStack->isEmpty() && !m_forwardStack->isEmpty())
+ if (d->backwardStack->isEmpty() && !d->forwardStack->isEmpty())
{
forward();
}
@@ -269,16 +291,16 @@
void AlbumHistory::getBackwardHistory(QStringList& list) const
{
- if (m_backwardStack->isEmpty())
+ if (d->backwardStack->isEmpty())
{
return;
}
Album* album = 0;
- AlbumStack::const_iterator iter = m_backwardStack->constBegin();
+ AlbumHistoryPriv::AlbumStack::const_iterator iter = \
d->backwardStack->constBegin();
- for (; iter != (m_backwardStack->isEmpty() ? m_backwardStack->constEnd() : \
--m_backwardStack->constEnd()); ++iter) + for (; iter != \
(d->backwardStack->isEmpty() ? d->backwardStack->constEnd() : \
--d->backwardStack->constEnd()); ++iter) {
album = (*iter)->album;
@@ -291,16 +313,16 @@
void AlbumHistory::getForwardHistory(QStringList& list) const
{
- if (m_forwardStack->isEmpty())
+ if (d->forwardStack->isEmpty())
{
return;
}
Album* album = 0;
- AlbumStack::const_iterator iter;
+ AlbumHistoryPriv::AlbumStack::const_iterator iter;
- for (iter = m_forwardStack->constBegin(); iter != m_forwardStack->constEnd(); \
++iter) + for (iter = d->forwardStack->constBegin(); iter != \
d->forwardStack->constEnd(); ++iter) {
album = (*iter)->album;
@@ -316,19 +338,19 @@
*album = 0;
*widget = 0;
- if (m_backwardStack->count() <= 1 || (int)steps > m_backwardStack->count())
+ if (d->backwardStack->count() <= 1 || (int)steps > d->backwardStack->count())
{
return; // Only the current album available
}
while (steps)
{
- m_forwardStack->push_front(m_backwardStack->last());
- m_backwardStack->erase((m_backwardStack->isEmpty() ? m_backwardStack->end() \
: --m_backwardStack->end())); + \
d->forwardStack->push_front(d->backwardStack->last()); + \
d->backwardStack->erase((d->backwardStack->isEmpty() ? d->backwardStack->end() : \
--d->backwardStack->end()));
--steps;
}
- m_moving = true;
+ d->moving = true;
HistoryItem* item = getCurrentAlbum();
@@ -344,7 +366,7 @@
*album = 0;
*widget = 0;
- if (m_forwardStack->isEmpty() || (int)steps > m_forwardStack->count())
+ if (d->forwardStack->isEmpty() || (int)steps > d->forwardStack->count())
{
return;
}
@@ -362,29 +384,29 @@
void AlbumHistory::forward(unsigned int steps)
{
- if (m_forwardStack->isEmpty() || (int)steps > m_forwardStack->count())
+ if (d->forwardStack->isEmpty() || (int)steps > d->forwardStack->count())
{
return;
}
while (steps)
{
- m_backwardStack->push_back(m_forwardStack->first());
- m_forwardStack->erase(m_forwardStack->begin());
+ d->backwardStack->push_back(d->forwardStack->first());
+ d->forwardStack->erase(d->forwardStack->begin());
--steps;
}
- m_moving = true;
+ d->moving = true;
}
HistoryItem* AlbumHistory::getCurrentAlbum() const
{
- if (m_backwardStack->isEmpty())
+ if (d->backwardStack->isEmpty())
{
return 0;
}
- return m_backwardStack->last();
+ return d->backwardStack->last();
}
void AlbumHistory::getCurrentAlbum(Album** album, QWidget** widget) const
@@ -392,12 +414,12 @@
*album = 0;
*widget = 0;
- if (m_backwardStack->isEmpty())
+ if (d->backwardStack->isEmpty())
{
return;
}
- HistoryItem* item = m_backwardStack->last();
+ HistoryItem* item = d->backwardStack->last();
if (item)
{
@@ -408,26 +430,26 @@
bool AlbumHistory::isForwardEmpty() const
{
- return m_forwardStack->isEmpty();
+ return d->forwardStack->isEmpty();
}
bool AlbumHistory::isBackwardEmpty() const
{
// the last album of the backwardStack is the currently shown
// album, and therfore not really a previous album
- return (m_backwardStack->count() <= 1) ? true : false;
+ return (d->backwardStack->count() <= 1) ? true : false;
}
void AlbumHistory::slotAlbumSelected()
{
Album* currentAlbum = AlbumManager::instance()->currentAlbum();
- if (m_historyPos.contains(currentAlbum))
+ if (d->historyPos.contains(currentAlbum))
{
if (currentAlbum->type() == Album::PHYSICAL || currentAlbum->type() == \
Album::TAG) {
- m_blockSelection = true;
- emit signalSetCurrent(m_historyPos[currentAlbum].current.id());
+ d->blockSelection = true;
+ emit signalSetCurrent(d->historyPos[currentAlbum].current.id());
}
}
}
@@ -436,45 +458,45 @@
{
Album* currentAlbum = AlbumManager::instance()->currentAlbum();
- if (m_historyPos.contains(currentAlbum))
+ if (d->historyPos.contains(currentAlbum))
{
if (currentAlbum->type() == Album::PHYSICAL || currentAlbum->type() == \
Album::TAG) {
- if (m_historyPos[currentAlbum].select.size())
+ if (d->historyPos[currentAlbum].select.size())
{
- emit signalSetSelectedUrls(m_historyPos[currentAlbum].select);
+ emit signalSetSelectedUrls(d->historyPos[currentAlbum].select);
}
}
}
- m_blockSelection = false;
+ d->blockSelection = false;
}
void AlbumHistory::slotCurrentChange(const ImageInfo& info)
{
Album* currentAlbum = AlbumManager::instance()->currentAlbum();
- m_historyPos[currentAlbum].current = info;
+ d->historyPos[currentAlbum].current = info;
}
void AlbumHistory::slotImageSelected(const ImageInfoList& selectedImage)
{
- if (m_blockSelection)
+ if (d->blockSelection)
{
return;
}
Album* currentAlbum = AlbumManager::instance()->currentAlbum();
- if (m_historyPos.contains(currentAlbum))
+ if (d->historyPos.contains(currentAlbum))
{
- m_historyPos[currentAlbum].select.clear();
+ d->historyPos[currentAlbum].select.clear();
}
for (int i = 0; i < selectedImage.count(); i++)
{
- if (!m_historyPos[currentAlbum].select.contains(selectedImage[i].fileUrl()))
+ if (!d->historyPos[currentAlbum].select.contains(selectedImage[i].fileUrl()))
{
- m_historyPos[currentAlbum].select.insert(0, selectedImage[i].fileUrl());
+ d->historyPos[currentAlbum].select.insert(0, \
selectedImage[i].fileUrl()); }
}
}
@@ -483,9 +505,9 @@
{
Album* album = dynamic_cast<Album*>(AlbumManager::instance()->findPAlbum(imageInfo.albumId()));
- if (m_historyPos.contains(album))
+ if (d->historyPos.contains(album))
{
- m_historyPos[album].select.clear();
+ d->historyPos[album].select.clear();
}
}
@@ -493,17 +515,17 @@
{
Album* album = dynamic_cast<Album*>(AlbumManager::instance()->findTAlbum(id));
- if (m_historyPos.contains(album))
+ if (d->historyPos.contains(album))
{
- m_historyPos[album].select.clear();
+ d->historyPos[album].select.clear();
}
}
void AlbumHistory::slotAlbumDeleted(Album* album)
{
- if (m_historyPos.contains(album))
+ if (d->historyPos.contains(album))
{
- m_historyPos.remove(album);
+ d->historyPos.remove(album);
}
}
--- trunk/extragear/graphics/digikam/digikam/albumhistory.h #1216142:1216143
@@ -35,6 +35,7 @@
#include <QStringList>
//KDE includes
+
#include <KUrl>
namespace Digikam
@@ -96,14 +97,8 @@
private:
- typedef QList<HistoryItem*> AlbumStack;
-
- bool m_moving;
- bool m_blockSelection;
-
- AlbumStack* m_backwardStack;
- AlbumStack* m_forwardStack;
- QMap<Album*, HistoryPosition> m_historyPos;
+ class AlbumHistoryPriv;
+ AlbumHistoryPriv* const d;
};
} // namespace Digikam
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic