]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.h
* Use Nepomuk for getting the meta data instead of KFileMetaInfo.
[dolphin.git] / src / dolphincontextmenu.h
index 2a678d9a2b08c61fa2755e8cb934b9b4c1270e0f..a660f0500934f06587526e44d8400039a7f7b099 100644 (file)
 #ifndef DOLPHINCONTEXTMENU_H
 #define DOLPHINCONTEXTMENU_H
 
-#include <kdedesktopmimetype.h>
+#include <kdesktopfileactions.h>
 #include <kfileitem.h>
 #include <kservice.h>
 #include <kurl.h>
+#include <konq_copytomenu.h>
 
-#include <QObject>
-#include <QString>
-#include <QVector>
+#include <QtCore/QObject>
+
+#include <QtCore/QVector>
 
 class KMenu;
 class KFileItem;
 class QAction;
 class DolphinMainWindow;
+class KonqFileItemCapabilities;
 
 /**
  * @brief Represents the context menu which appears when doing a right
@@ -51,12 +53,6 @@ class DolphinContextMenu : public QObject
     Q_OBJECT
 
 public:
-    enum ViewType
-    {
-        ItemsView,
-        SidebarView
-    };
-
     /**
      * @parent        Pointer to the main window the context menu
      *                belongs to.
@@ -65,39 +61,17 @@ public:
      *                is above the viewport.
      * @baseUrl       Base URL of the viewport where the context menu
      *                should be opened.
-     * @viewType      On which view type is the context menu shown.
      */
     DolphinContextMenu(DolphinMainWindow* parent,
-                       KFileItem* fileInfo,
-                       const KUrl& baseUrl,
-                       ViewType viewType = ItemsView);
+                       const KFileItem& fileInfo,
+                       const KUrl& baseUrl);
 
     virtual ~DolphinContextMenu();
 
-    /** Opens the context menu modal. */
-    void open();
-
-private slots:
-    /** Cuts the item m_fileInfo. */
-    void cut();
-
-    /** Copies the item m_fileInfo. */
-    void copy();
-
-    /** Paste the clipboard to m_fileInfo. */
-    void paste();
-
-    /** Renames the item m_fileInfo. */
-    void rename();
+    void setCustomActions(const QList<QAction*>& actions);
 
-    /** Moves the item m_fileInfo to the trash. */
-    void moveToTrash();
-
-    /** Deletes the item m_fileInfo. */
-    void deleteItem();
-
-    /** Shows the properties of the item m_fileInfo. */
-    void showProperties();
+    /** Opens the context menu model. */
+    void open();
 
 private:
     void openTrashContextMenu();
@@ -108,37 +82,25 @@ private:
     void insertDefaultItemActions(KMenu* popup);
 
     /**
-     * Inserts the 'Open With...' submenu to \a popup.
-     * @param popup          Menu where the 'Open With...' sub menu should
-     *                       be added.
-     * @param openWithVector Output parameter which contains all 'Open with...'
-     *                       services.
-     * @return               Identifier of the first 'Open With...' entry.
-     *                       All succeeding identifiers have an increased value of 1
-     *                       to the predecessor.
+     * Adds the "Show menubar" action to the menu if the
+     * menubar is hidden.
      */
-    QList<QAction*> insertOpenWithItems(KMenu* popup,
-                                        QVector<KService::Ptr>& openWithVector);
+    void addShowMenubarAction(KMenu* menu);
 
     /**
-     * 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.
+     * Returns a name for adding the URL \a url to the Places panel.
      */
-    QList<QAction*> insertActionItems(KMenu* popup,
-                                      QVector<KDEDesktopMimeType::Service>& actionsVector);
+    QString placesName(const KUrl& url) const;
 
-    /**
-     * Returns true, if 'menu' contains already
-     * an entry with the name 'entryName'.
-     */
-    bool containsEntry(const KMenu* menu,
-                       const QString& entryName) const;
+    QAction* createPasteAction();
 
 private:
-    struct Entry {
+    KonqFileItemCapabilities& capabilities();
+    void addCustomActions(KMenu* menu);
+
+private:
+    struct Entry
+    {
         int type;
         QString name;
         QString filePath;     // empty for separator
@@ -147,19 +109,22 @@ private:
         QString comment;
     };
 
-    enum ContextType {
+    enum ContextType
+    {
         NoContext = 0,
         ItemContext = 1,
         TrashContext = 2
     };
 
     DolphinMainWindow* m_mainWindow;
-    KFileItem* m_fileInfo;
+    KonqFileItemCapabilities* m_capabilities;
+    KFileItem m_fileInfo;
     KUrl m_baseUrl;
     KFileItemList m_selectedItems;
     KUrl::List m_selectedUrls;
-    ViewType m_viewType;
     int m_context;
+    KonqCopyToMenu m_copyToMenu;
+    QList<QAction*> m_customActions;
 };
 
 #endif