diff --git a/src/filewidgets/kfileplacesview.cpp b/src/filewidgets/kfileplacesview.cpp --- a/src/filewidgets/kfileplacesview.cpp +++ b/src/filewidgets/kfileplacesview.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include @@ -49,6 +50,7 @@ #include #include #include +#include #include "kfileplaceeditdialog_p.h" #include "kfileplacesmodel.h" @@ -768,6 +770,16 @@ teardown = placesModel->teardownActionForIndex(index); if (teardown != nullptr) { + // Disable teardown option for root and home partitions + bool teardownEnabled = placesModel->url(index) != QUrl::fromLocalFile(QDir::rootPath()); + if (teardownEnabled) { + KMountPoint::Ptr mountPoint = KMountPoint::currentMountPoints().findByPath(QDir::homePath()); + if (mountPoint && placesModel->url(index) == QUrl::fromLocalFile(mountPoint->mountPoint())) { + teardownEnabled = false; + } + } + teardown->setEnabled(teardownEnabled); + teardown->setParent(&menu); menu.addAction(teardown); }