[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/graphics/digikam/utilities
From: Gilles Caulier <caulier.gilles () gmail ! com>
Date: 2009-05-18 8:27:27
Message-ID: 1242635247.358451.799.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 969391 by cgilles:
bugfix : same here than Light Table : if BatchQueueManager is not busy. Remove items \
in Queue deleted from Album Gui
CCMAIL: digikam-devel@kde.org
M +0 -4 lighttable/lighttablebar.cpp
M +41 -3 queuemanager/queuelist.cpp
M +4 -0 queuemanager/queuelist.h
M +5 -0 queuemanager/queuemgrwindow.cpp
M +1 -0 queuemanager/queuemgrwindow.h
--- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablebar.cpp \
#969390:969391 @@ -683,10 +683,6 @@
void LightTableBar::slotCollectionImageChange(const CollectionImageChangeset& \
changeset) {
- // ignore when closed
- if (!isVisible())
- return;
-
switch(changeset.operation())
{
case CollectionImageChangeset::Removed:
--- trunk/extragear/graphics/digikam/utilities/queuemanager/queuelist.cpp \
#969390:969391 @@ -53,6 +53,8 @@
#include "ddragobjects.h"
#include "queuemgrwindow.h"
#include "queuetooltip.h"
+#include "databasewatch.h"
+#include "databasechangesets.h"
namespace Digikam
{
@@ -250,6 +252,10 @@
// -----------------------------------------------------------
+ connect(DatabaseAccess::databaseWatch(), SIGNAL(collectionImageChange(const \
CollectionImageChangeset&)), + this, SLOT(slotCollectionImageChange(const \
CollectionImageChangeset&)), + Qt::QueuedConnection);
+
connect(d->thumbLoadThread, SIGNAL(signalThumbnailLoaded(const \
LoadingDescription&, const QPixmap&)),
this, SLOT(slotThumbnailLoaded(const LoadingDescription&, const \
QPixmap&)));
@@ -668,6 +674,11 @@
void QueueListView::removeItemByInfo(const ImageInfo& info)
{
+ removeItemById(info.id());
+}
+
+void QueueListView::removeItemById(qlonglong id)
+{
hideToolTip();
bool find;
@@ -678,7 +689,7 @@
while (*it)
{
QueueListViewItem* item = dynamic_cast<QueueListViewItem*>(*it);
- if (item->info() == info)
+ if (item->info().id() == id)
{
delete item;
find = true;
@@ -694,16 +705,20 @@
bool QueueListView::findItemByInfo(const ImageInfo& info)
{
+ return findItemById(info.id());
+}
+
+bool QueueListView::findItemById(qlonglong id)
+{
QTreeWidgetItemIterator it(this);
while (*it)
{
QueueListViewItem* item = dynamic_cast<QueueListViewItem*>(*it);
- if (item->info() == info)
+ if (item->info().id() == id)
return true;
++it;
}
-
return false;
}
@@ -839,4 +854,27 @@
popmenu.exec(QCursor::pos());
}
+void QueueListView::slotCollectionImageChange(const CollectionImageChangeset& \
changeset) +{
+ if (QueueMgrWindow::queueManagerWindow()->isBusy())
+ return;
+
+ switch(changeset.operation())
+ {
+ case CollectionImageChangeset::Removed:
+ case CollectionImageChangeset::RemovedAll:
+ {
+ foreach(qlonglong id, changeset.ids())
+ {
+ removeItemById(id);
+ }
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+}
+
} // namespace Digikam
--- trunk/extragear/graphics/digikam/utilities/queuemanager/queuelist.h \
#969390:969391 @@ -83,6 +83,7 @@
// -------------------------------------------------------------------------
+class CollectionImageChangeset;
class QueueListViewPriv;
class QueueListView : public QTreeWidget
@@ -96,6 +97,7 @@
int itemsCount();
void removeItemByInfo(const ImageInfo& info);
+ void removeItemById(qlonglong id);
ImageInfoList pendingItemsList();
int pendingItemsCount();
@@ -125,6 +127,7 @@
private Q_SLOTS:
+ void slotCollectionImageChange(const CollectionImageChangeset&);
void slotThumbnailLoaded(const LoadingDescription&, const QPixmap&);
void slotContextMenu();
void slotToolTip();
@@ -132,6 +135,7 @@
private:
bool findItemByInfo(const ImageInfo& info);
+ bool findItemById(qlonglong id);
void removeItems(int removeType);
void updateDestFileNames();
void hideToolTip();
--- trunk/extragear/graphics/digikam/utilities/queuemanager/queuemgrwindow.cpp \
#969390:969391 @@ -165,6 +165,11 @@
return QMap<int, QString>();
}
+bool QueueMgrWindow::isBusy() const
+{
+ return d->busy;
+}
+
void QueueMgrWindow::closeEvent(QCloseEvent* e)
{
if (!e) return;
--- trunk/extragear/graphics/digikam/utilities/queuemanager/queuemgrwindow.h \
#969390:969391 @@ -61,6 +61,7 @@
static QueueMgrWindow *queueManagerWindow();
static bool queueManagerWindowCreated();
+ bool isBusy() const;
void addNewQueue();
void loadImageInfos(const ImageInfoList& list, int queueId);
void refreshView();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic