summaryrefslogtreecommitdiff
path: root/x11/kdelibs4/files/patch-kfile-kfileplacesview.cpp
blob: ffb64af99a5662cfbeead208b03554aab861dc70 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
--- ../kfile/kfileplacesview.cpp	2008/08/06 22:07:11	843298
+++ ../kfile/kfileplacesview.cpp	2008/08/15 10:30:45	847376
@@ -551,6 +551,9 @@
     QAction *edit = 0;
     QAction *hide = 0;
     QAction *emptyTrash = 0;
+    QAction* eject = 0;
+    QAction* teardown = 0;
+
     if (index.isValid()) {
         if (!placesModel->isDevice(index)) {
             if (placesModel->url(index) == KUrl("trash:/")) {
@@ -561,6 +564,22 @@
             }
 
             edit = menu.addAction(KIcon("document-properties"), i18n("&Edit '%1'...", label));
+        } else {
+            eject = placesModel->ejectActionForIndex(index);
+            if (eject!=0) {
+                eject->setParent(&menu);
+                menu.addAction(eject);
+            }
+
+            teardown = placesModel->teardownActionForIndex(index);
+            if (teardown!=0) {
+                teardown->setParent(&menu);
+                menu.addAction(teardown);
+            }
+
+            if (teardown!=0 || eject!=0) {
+                menu.addSeparator();
+            }
         }
 
         hide = menu.addAction(i18n("&Hide '%1'", label));
@@ -575,19 +594,11 @@
         showAll->setChecked(d->showAll);
     }
 
-    QAction* remove = 0L;
-    QAction* teardown = 0L;
+    QAction* remove = 0;
     if (index.isValid()) {
         if (!placesModel->isDevice(index)) {
             menu.addSeparator();
             remove = menu.addAction( KIcon("edit-delete"), i18n("&Remove '%1'", label));
-        } else {
-            teardown = placesModel->teardownActionForIndex(index);
-            if (teardown!=0) {
-                teardown->setParent(&menu);
-                menu.addSeparator();
-                menu.addAction(teardown);
-            }
         }
     }
 
@@ -646,6 +657,8 @@
         setShowAll(showAll->isChecked());
     } else if (teardown != 0 && result == teardown) {
         placesModel->requestTeardown(index);
+    } else if (eject != 0 && result == eject) {
+        placesModel->requestEject(index);
     }
 
     index = placesModel->closestItem(d->currentUrl);