┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHarsh Chouraria J <[email protected]>2009-11-12 20:22:22 +0000
committerHarsh Chouraria J <[email protected]>2009-11-12 20:22:22 +0000
commit51dc542497510da366748304c63894f0f5feb466 (patch)
tree2e8b52ddf2abbb757c55b514e9b614aa173823e9 /src
parentebba84fbdd1effc828f88e08966dad5982371ecc (diff)
BUG: 191309
Don't show 'Add to Places' context-menu action for urls already in places. svn path=/trunk/KDE/kdebase/apps/; revision=1048149
Diffstat (limited to 'src')
-rw-r--r--src/dolphincontextmenu.cpp29
-rw-r--r--src/dolphincontextmenu.h2
2 files changed, 31 insertions, 0 deletions
diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp
index ed99a34e7..494d5e97c 100644
--- a/src/dolphincontextmenu.cpp
+++ b/src/dolphincontextmenu.cpp
@@ -124,6 +124,11 @@ void DolphinContextMenu::openTrashContextMenu()
QAction* addToPlacesAction = popup->addAction(KIcon("bookmark-new"),
i18nc("@action:inmenu Add current folder to places", "Add to Places"));
+ // Don't show if url is already in places
+ if (placeExists(m_mainWindow->activeViewContainer()->url())) {
+ addToPlacesAction->setVisible(false);
+ }
+
addCustomActions(popup);
QAction* propertiesAction = m_mainWindow->actionCollection()->action("properties");
@@ -209,6 +214,10 @@ void DolphinContextMenu::openItemContextMenu()
if (m_fileInfo.isDir() && (m_selectedUrls.count() == 1)) {
addToPlacesAction = popup->addAction(KIcon("bookmark-new"),
i18nc("@action:inmenu Add selected folder to places", "Add to Places"));
+ // Don't show if url is already in places
+ if (placeExists(m_fileInfo.url())) {
+ addToPlacesAction->setVisible(false);
+ }
}
KonqMenuActions menuActions;
@@ -288,6 +297,11 @@ void DolphinContextMenu::openViewportContextMenu()
QAction* addToPlacesAction = popup->addAction(KIcon("bookmark-new"),
i18nc("@action:inmenu Add current folder to places", "Add to Places"));
+ // Don't show if url is already in places
+ if (placeExists(m_mainWindow->activeViewContainer()->url())) {
+ addToPlacesAction->setVisible(false);
+ }
+
addCustomActions(popup);
QAction* propertiesAction = popup->addAction(i18nc("@action:inmenu", "Properties"));
@@ -365,6 +379,21 @@ QString DolphinContextMenu::placesName(const KUrl& url) const
return name;
}
+bool DolphinContextMenu::placeExists(const KUrl& url) const
+{
+ const KFilePlacesModel* placesModel = DolphinSettings::instance().placesModel();
+ const int count = placesModel->rowCount();
+
+ for (int i = 0; i < count; ++i) {
+ const QModelIndex index = placesModel->index(i, 0);
+
+ if (url.equals(placesModel->url(index), KUrl::CompareWithoutTrailingSlash)) {
+ return true;
+ }
+ }
+ return false;
+}
+
QAction* DolphinContextMenu::createPasteAction()
{
QAction* action = 0;
diff --git a/src/dolphincontextmenu.h b/src/dolphincontextmenu.h
index 613e4a434..93afb4481 100644
--- a/src/dolphincontextmenu.h
+++ b/src/dolphincontextmenu.h
@@ -92,6 +92,8 @@ private:
*/
QString placesName(const KUrl& url) const;
+ bool placeExists(const KUrl& url) const;
+
QAction* createPasteAction();
private: