]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.h
The drag&drop helper did not make the difference between the different kind of views...
[dolphin.git] / src / dolphincontextmenu.h
index 7e3476a4c9bfb7dc00aee32a2715f320e3ac4ad5..c9099925231ed90437e8ad40caf1f4b597c687e4 100644 (file)
 #ifndef DOLPHINCONTEXTMENU_H
 #define DOLPHINCONTEXTMENU_H
 
-#include <kdedesktopmimetype.h>
+#include <kdesktopfileactions.h>
 #include <kfileitem.h>
 #include <kservice.h>
 #include <kurl.h>
 
-#include <QString>
-#include <QVector>
+#include <QtCore/QObject>
+
+#include <QtCore/QVector>
 
 class KMenu;
 class KFileItem;
@@ -45,8 +46,10 @@ class DolphinMainWindow;
  * - 'Actions':   Contains all actions which can be applied to the
  *                given item.
  */
-class DolphinContextMenu
+class DolphinContextMenu : public QObject
 {
+    Q_OBJECT
+
 public:
     /**
      * @parent        Pointer to the main window the context menu
@@ -56,17 +59,14 @@ public:
      *                is above the viewport.
      * @baseUrl       Base URL of the viewport where the context menu
      *                should be opened.
-     * @selectedItems Selected items where the actions of the context menu
-     *                are applied.
      */
     DolphinContextMenu(DolphinMainWindow* parent,
-                       KFileItem* fileInfo,
-                       const KUrl& baseUrl,
-                       KFileItemList selectedItems);
+                       const KFileItem& fileInfo,
+                       const KUrl& baseUrl);
 
     virtual ~DolphinContextMenu();
 
-    /** Opens the context menu modal. */
+    /** Opens the context menu model. */
     void open();
 
 private:
@@ -90,16 +90,6 @@ private:
     QList<QAction*> insertOpenWithItems(KMenu* popup,
                                         QVector<KService::Ptr>& openWithVector);
 
-    /**
-     * Inserts the 'Actions...' submenu to \a popup.
-     * @param popup          Menu where the 'Actions...' sub menu should
-     *                       be added.
-     * @param openWithVector Output parameter which contains all 'Actions...'
-     *                       services.
-     */
-    QList<QAction*> insertActionItems(KMenu* popup,
-                                      QVector<KDEDesktopMimeType::Service>& actionsVector);
-
     /**
      * Returns true, if 'menu' contains already
      * an entry with the name 'entryName'.
@@ -107,8 +97,15 @@ private:
     bool containsEntry(const KMenu* menu,
                        const QString& entryName) const;
 
+    /**
+     * Adds the "Show menubar" action to the menu if the
+     * menubar is hidden.
+     */
+    void addShowMenubarAction(KMenu* menu);
+
 private:
-    struct Entry {
+    struct Entry
+    {
         int type;
         QString name;
         QString filePath;     // empty for separator
@@ -117,14 +114,15 @@ private:
         QString comment;
     };
 
-    enum ContextType {
+    enum ContextType
+    {
         NoContext = 0,
         ItemContext = 1,
         TrashContext = 2
     };
 
     DolphinMainWindow* m_mainWindow;
-    KFileItem* m_fileInfo;
+    KFileItem m_fileInfo;
     KUrl m_baseUrl;
     KFileItemList m_selectedItems;
     KUrl::List m_selectedUrls;