┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2011-09-01 15:43:59 +0200
committerPeter Penz <[email protected]>2011-09-01 15:48:22 +0200
commit9e6d73aef89453c1c251a8678d730e3dea2f8d54 (patch)
tree573fd56a8ec260e54ac5e72194e2fe34d0f75cff /src
parent15ebfc7329234857379d68d030e5b33d6fdbc3d2 (diff)
Fix issue when moving items to trash
KDirLister does not emit a completed() signal when deleting files, only when files are listed.
Diffstat (limited to 'src')
-rw-r--r--src/kitemviews/kfileitemmodel.cpp23
-rw-r--r--src/kitemviews/kfileitemmodel.h3
2 files changed, 7 insertions, 19 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp
index bfe45d647..33dc9979b 100644
--- a/src/kitemviews/kfileitemmodel.cpp
+++ b/src/kitemviews/kfileitemmodel.cpp
@@ -45,7 +45,6 @@ KFileItemModel::KFileItemModel(KDirLister* dirLister, QObject* parent) :
m_minimumUpdateIntervalTimer(0),
m_maximumUpdateIntervalTimer(0),
m_pendingItemsToInsert(),
- m_pendingItemsToDelete(),
m_rootExpansionLevel(-1)
{
resetRoles();
@@ -67,14 +66,14 @@ KFileItemModel::KFileItemModel(KDirLister* dirLister, QObject* parent) :
m_minimumUpdateIntervalTimer = new QTimer(this);
m_minimumUpdateIntervalTimer->setInterval(1000);
m_minimumUpdateIntervalTimer->setSingleShot(true);
- connect(m_minimumUpdateIntervalTimer, SIGNAL(timeout()), this, SLOT(dispatchPendingItems()));
+ connect(m_minimumUpdateIntervalTimer, SIGNAL(timeout()), this, SLOT(dispatchPendingItemsToInsert()));
// For slow KIO-slaves like used for searching it makes sense to show results periodically even
// before the completed() or canceled() signal has been emitted.
m_maximumUpdateIntervalTimer = new QTimer(this);
m_maximumUpdateIntervalTimer->setInterval(2000);
m_maximumUpdateIntervalTimer->setSingleShot(true);
- connect(m_maximumUpdateIntervalTimer, SIGNAL(timeout()), this, SLOT(dispatchPendingItems()));
+ connect(m_maximumUpdateIntervalTimer, SIGNAL(timeout()), this, SLOT(dispatchPendingItemsToInsert()));
Q_ASSERT(m_minimumUpdateIntervalTimer->interval() <= m_maximumUpdateIntervalTimer->interval());
}
@@ -363,7 +362,7 @@ void KFileItemModel::slotCompleted()
return;
}
- dispatchPendingItems();
+ dispatchPendingItemsToInsert();
m_minimumUpdateIntervalTimer->start();
}
@@ -371,15 +370,11 @@ void KFileItemModel::slotCanceled()
{
m_minimumUpdateIntervalTimer->stop();
m_maximumUpdateIntervalTimer->stop();
- dispatchPendingItems();
+ dispatchPendingItemsToInsert();
}
void KFileItemModel::slotNewItems(const KFileItemList& items)
{
- if (!m_pendingItemsToDelete.isEmpty()) {
- removeItems(m_pendingItemsToDelete);
- m_pendingItemsToDelete.clear();
- }
m_pendingItemsToInsert.append(items);
if (useMaximumUpdateInterval() && !m_maximumUpdateIntervalTimer->isActive()) {
@@ -395,7 +390,7 @@ void KFileItemModel::slotItemsDeleted(const KFileItemList& items)
insertItems(m_pendingItemsToInsert);
m_pendingItemsToInsert.clear();
}
- m_pendingItemsToDelete.append(items);
+ removeItems(items);
}
void KFileItemModel::slotClear()
@@ -407,7 +402,6 @@ void KFileItemModel::slotClear()
m_minimumUpdateIntervalTimer->stop();
m_maximumUpdateIntervalTimer->stop();
m_pendingItemsToInsert.clear();
- m_pendingItemsToDelete.clear();
m_rootExpansionLevel = -1;
@@ -425,16 +419,11 @@ void KFileItemModel::slotClear(const KUrl& url)
Q_UNUSED(url);
}
-void KFileItemModel::dispatchPendingItems()
+void KFileItemModel::dispatchPendingItemsToInsert()
{
if (!m_pendingItemsToInsert.isEmpty()) {
- Q_ASSERT(m_pendingItemsToDelete.isEmpty());
insertItems(m_pendingItemsToInsert);
m_pendingItemsToInsert.clear();
- } else if (!m_pendingItemsToDelete.isEmpty()) {
- Q_ASSERT(m_pendingItemsToInsert.isEmpty());
- removeItems(m_pendingItemsToDelete);
- m_pendingItemsToDelete.clear();
}
}
diff --git a/src/kitemviews/kfileitemmodel.h b/src/kitemviews/kfileitemmodel.h
index 0fecbcf3f..839d4e724 100644
--- a/src/kitemviews/kfileitemmodel.h
+++ b/src/kitemviews/kfileitemmodel.h
@@ -112,7 +112,7 @@ private slots:
void slotClear();
void slotClear(const KUrl& url);
- void dispatchPendingItems();
+ void dispatchPendingItemsToInsert();
private:
void insertItems(const KFileItemList& items);
@@ -184,7 +184,6 @@ private:
QTimer* m_minimumUpdateIntervalTimer;
QTimer* m_maximumUpdateIntervalTimer;
KFileItemList m_pendingItemsToInsert;
- KFileItemList m_pendingItemsToDelete;
// Stores the smallest expansion level of the root-URL. Is required to calculate
// the "expansionLevel" role in an efficient way. A value < 0 indicates that