]> cloud.milkyroute.net Git - dolphin.git/commitdiff
The revision control plugin must be aware on which directory the context-menu-actions...
authorPeter Penz <peter.penz19@gmail.com>
Thu, 23 Jul 2009 06:28:28 +0000 (06:28 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Thu, 23 Jul 2009 06:28:28 +0000 (06:28 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=1001388

src/dolphinview.cpp
src/revisioncontrolobserver.cpp
src/revisioncontrolobserver.h
src/revisioncontrolplugin.cpp
src/revisioncontrolplugin.h

index a979ecdd22554648fa285b8c93f8b23a1eec077b..a12e7a991a036fb8e198ac8f3d3309611cc0f01a 100644 (file)
@@ -611,7 +611,9 @@ QString DolphinView::statusBarText() const
 
 QList<QAction*> DolphinView::revisionControlActions(const KFileItemList& items) const
 {
-    return m_revisionControlObserver->contextMenuActions(items);
+    return items.isEmpty()
+           ? m_revisionControlObserver->contextMenuActions(url().path(KUrl::AddTrailingSlash))
+           : m_revisionControlObserver->contextMenuActions(items);
 }
 
 void DolphinView::setUrl(const KUrl& url)
index 5b3c38947af190ae0b469c323f4c77105a8781e6..f3bf08ce42a88a65153fa9a3bd4253ac41407283 100644 (file)
@@ -131,6 +131,14 @@ QList<QAction*> RevisionControlObserver::contextMenuActions(const KFileItemList&
     if (m_dolphinModel->hasRevisionData() && (m_plugin != 0)) {
         return m_plugin->contextMenuActions(items);
     }
+    return QList<QAction*>();
+}
+
+QList<QAction*> RevisionControlObserver::contextMenuActions(const QString& directory) const
+{
+    if (m_dolphinModel->hasRevisionData() && (m_plugin != 0)) {
+        return m_plugin->contextMenuActions(directory);
+    }
 
     return QList<QAction*>();
 }
index 2fc21ed59a6318ebd574f7340caf242b39c40a30..27c7a27a0e02841e33d1af82d8bfe09b88d443f4 100644 (file)
@@ -55,6 +55,7 @@ public:
     virtual ~RevisionControlObserver();
 
     QList<QAction*> contextMenuActions(const KFileItemList& items) const;
+    QList<QAction*> contextMenuActions(const QString& directory) const;
 
 private slots:
     void delayedDirectoryVerification();
index 6a833f622407d5946c2d55e7935f31c12acf58fc..b3b407c6199e299a305750e76eaf2a992c4e6916 100644 (file)
@@ -133,13 +133,23 @@ RevisionControlPlugin::RevisionState SubversionPlugin::revisionState(const KFile
 
 QList<QAction*> SubversionPlugin::contextMenuActions(const KFileItemList& items) const
 {
+    Q_UNUSED(items);
+
+    QList<QAction*> actions;
+    actions.append(m_updateAction);
+    actions.append(m_commitAction);
+    actions.append(m_addAction);
+    actions.append(m_removeAction);
+    return actions;
+}
+
+QList<QAction*> SubversionPlugin::contextMenuActions(const QString& directory) const
+{
+    Q_UNUSED(directory);
+
     QList<QAction*> actions;
     actions.append(m_updateAction);
     actions.append(m_commitAction);
-    if (!items.isEmpty()) {
-        actions.append(m_addAction);
-        actions.append(m_removeAction);
-    }
     return actions;
 }
 
index 54bd10f032506a36c3a76527225e33af89320067..bbe66b3c3bc92a38743ef013c780c6c9620ad9ea 100644 (file)
@@ -93,13 +93,19 @@ public:
     
     /**
      * Returns the list of actions that should be shown in the context menu
-     * for the files \p items. If no files are provided by \p items, the context
-     * menu is valid for the current directory (see RevisionControlPlugin::beginRetrieval()).
+     * for the files \p items. It is assured that the passed list is not empty.
      * If an action triggers a change of the revisions, the signal
      * RevisionControlPlugin::revisionStatesChanged() must be emitted.
      */
     virtual QList<QAction*> contextMenuActions(const KFileItemList& items) const = 0;
 
+    /**
+     * Returns the list of actions that should be shown in the context menu
+     * for the directory \p directory. If an action triggers a change of the revisions,
+     * the signal RevisionControlPlugin::revisionStatesChanged() must be emitted.
+     */
+    virtual QList<QAction*> contextMenuActions(const QString& directory) const = 0;
+
 signals:
     /**
      * Should be emitted when the revision state of files has been changed
@@ -131,6 +137,7 @@ public:
     virtual void endRetrieval();
     virtual RevisionControlPlugin::RevisionState revisionState(const KFileItem& item);
     virtual QList<QAction*> contextMenuActions(const KFileItemList& items) const;
+    virtual QList<QAction*> contextMenuActions(const QString& directory) const;
 
 private:
     /**