┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphincontextmenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/dolphincontextmenu.h')
-rw-r--r--src/dolphincontextmenu.h51
1 files changed, 7 insertions, 44 deletions
diff --git a/src/dolphincontextmenu.h b/src/dolphincontextmenu.h
index 3d0005d30..160f08804 100644
--- a/src/dolphincontextmenu.h
+++ b/src/dolphincontextmenu.h
@@ -24,6 +24,7 @@
#include <KService>
#include <KUrl>
#include <konq_copytomenu.h>
+#include <KMenu>
#include <QObject>
@@ -31,12 +32,11 @@
#include <QScopedPointer>
-class KMenu;
-class KFileItem;
class QAction;
class DolphinMainWindow;
class KFileItemActions;
class KFileItemListProperties;
+class DolphinRemoveAction;
/**
* @brief Represents the context menu which appears when doing a right
@@ -50,7 +50,7 @@ class KFileItemListProperties;
* - 'Actions': Contains all actions which can be applied to the
* given item.
*/
-class DolphinContextMenu : public QObject
+class DolphinContextMenu : public KMenu
{
Q_OBJECT
@@ -91,30 +91,9 @@ public:
*/
Command open();
- /**
- * TODO: This method is a workaround for a X11-issue in combination
- * with KModifierKeyInfo: When constructing KModifierKeyInfo in the
- * constructor of the context menu, the user interface might freeze.
- * To bypass this, the KModifierKeyInfo is constructed in DolphinMainWindow
- * directly after starting the application. Remove this method, if
- * the X11-issue got fixed (contact the maintainer of KModifierKeyInfo for
- * more details).
- */
- static void initializeModifierKeyInfo();
-
-private slots:
- /**
- * Is invoked if a key modifier has been pressed and updates the context
- * menu to show the 'Delete' action instead of the 'Move To Trash' action
- * if the shift-key has been pressed.
- */
- void slotKeyModifierPressed(Qt::Key key, bool pressed);
-
- /**
- * Triggers the 'Delete'-action if the shift-key has been pressed, otherwise
- * the 'Move to Trash'-action gets triggered.
- */
- void slotRemoveActionTriggered();
+protected:
+ virtual void keyPressEvent(QKeyEvent *ev);
+ virtual void keyReleaseEvent(QKeyEvent *ev);
private:
void openTrashContextMenu();
@@ -163,20 +142,6 @@ private:
*/
void addCustomActions();
- /**
- * Updates m_removeAction to represent the 'Delete'-action if the shift-key
- * has been pressed or the selection is not local. Otherwise it represents
- * the 'Move to Trash'-action.
- */
- void updateRemoveAction();
-
- /**
- * @return True if a moving to the trash should be done instead of
- * deleting the selected items.
- * @see updateRemoveAction(), slotRemoveActionTriggered()
- */
- bool moveToTrash() const;
-
private:
struct Entry
{
@@ -209,12 +174,10 @@ private:
int m_context;
KonqCopyToMenu m_copyToMenu;
QList<QAction*> m_customActions;
- KMenu* m_popup;
Command m_command;
- bool m_shiftPressed;
- QAction* m_removeAction; // Action that represents either 'Move To Trash' or 'Delete'
+ DolphinRemoveAction* m_removeAction; // Action that represents either 'Move To Trash' or 'Delete'
};
#endif