From 10d8a5731507881aa12f166a7d233e8c434894eb Mon Sep 17 00:00:00 2001 From: Kai Uwe Broulik Date: Fri, 7 Jun 2019 10:37:06 +0200 Subject: [PATCH] [DolphinContextMenu] Restore check for whether place already exists Now that we have a places singleton it adds no real overhead. Differential Revision: https://phabricator.kde.org/D21600 --- src/dolphincontextmenu.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index d32d35dd3..1dfbe054d 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -23,6 +23,7 @@ #include "dolphin_generalsettings.h" #include "dolphinmainwindow.h" #include "dolphinnewfilemenu.h" +#include "dolphinplacesmodelsingleton.h" #include "dolphinremoveaction.h" #include "dolphinviewcontainer.h" #include "panels/places/placesitem.h" @@ -460,13 +461,11 @@ void DolphinContextMenu::addShowMenuBarAction() bool DolphinContextMenu::placeExists(const QUrl& url) const { - Q_UNUSED(url) - // Creating up a PlacesItemModel to find out if 'url' is one of the Places - // can be expensive because the model asks Solid for the devices which are - // available, which can take some time. - // TODO: Consider restoring this check if the handling of Places and devices - // will be decoupled in the future. - return false; + const KFilePlacesModel* placesModel = DolphinPlacesModelSingleton::instance().placesModel(); + + const auto& matchedPlaces = placesModel->match(placesModel->index(0,0), KFilePlacesModel::UrlRole, url, 1, Qt::MatchExactly); + + return !matchedPlaces.isEmpty(); } QAction* DolphinContextMenu::createPasteAction() -- 2.47.3