From: Peter Penz Date: Fri, 23 Dec 2011 20:10:32 +0000 (+0100) Subject: Fix possible double entries in details view X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/c2f86821b841add2b94e7074e6991570788913de Fix possible double entries in details view The patch 30ae57ba807ecadfdef833a4895621fc330badc9 did not resolve the issue completely: The pending items to insert must be dispatched before checking for duplicates. Related to this report the expanding for the remote-protocol has been disabled. BUG: 288521 FIXED-IN: 4.8.0 --- diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp index 3d4e65302..b40865f8f 100644 --- a/src/kitemviews/kfileitemmodel.cpp +++ b/src/kitemviews/kfileitemmodel.cpp @@ -677,7 +677,11 @@ void KFileItemModel::slotNewItems(const KFileItemList& items) Q_ASSERT(!items.isEmpty()); if (m_requestRole[ExpansionLevelRole] && m_rootExpansionLevel >= 0) { - const KFileItem item = items.first(); + // To be able to compare whether the new items may be inserted as children + // of a parent item the pending items must be added to the model first. + dispatchPendingItemsToInsert(); + + KFileItem item = items.first(); // If the expanding of items is enabled, the call // dirLister->openUrl(url, KDirLister::Keep) in KFileItemModel::setExpanded() @@ -1171,6 +1175,7 @@ QHash KFileItemModel::retrieveData(const KFileItem& item) const QString protocol = rootUrl.protocol(); const bool forceRootExpansionLevel = (protocol == QLatin1String("trash") || protocol == QLatin1String("nepomuk") || + protocol == QLatin1String("remote") || protocol.contains(QLatin1String("search"))); if (forceRootExpansionLevel) { m_rootExpansionLevel = ForceRootExpansionLevel;