diff options
| author | Peter Penz <[email protected]> | 2011-09-01 15:43:59 +0200 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2011-09-01 15:48:22 +0200 |
| commit | 9e6d73aef89453c1c251a8678d730e3dea2f8d54 (patch) | |
| tree | 573fd56a8ec260e54ac5e72194e2fe34d0f75cff /src/kitemviews/kfileitemmodel.cpp | |
| parent | 15ebfc7329234857379d68d030e5b33d6fdbc3d2 (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/kitemviews/kfileitemmodel.cpp')
| -rw-r--r-- | src/kitemviews/kfileitemmodel.cpp | 23 |
1 files changed, 6 insertions, 17 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(); } } |
