]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Version control: Show context menu entries of plugins
authorPeter Penz <peter.penz19@gmail.com>
Fri, 9 Sep 2011 17:21:22 +0000 (19:21 +0200)
committerPeter Penz <peter.penz19@gmail.com>
Fri, 9 Sep 2011 17:22:13 +0000 (19:22 +0200)
src/views/dolphinview.cpp
src/views/versioncontrol/versioncontrolobserver.cpp

index bb9b523653e94527500db94a9e42a53b3d979d52..a53934ddcfc036c68cd00f058a6eef74800c1956 100644 (file)
@@ -518,8 +518,16 @@ QString DolphinView::statusBarText() const
 
 QList<QAction*> DolphinView::versionControlActions(const KFileItemList& items) const
 {
-    Q_UNUSED(items);
-    return QList<QAction*>(); //m_dolphinViewController->versionControlActions(items);
+    QList<QAction*> actions;
+
+    if (items.isEmpty()) {
+        const KUrl url = fileItemModel()->rootDirectory();
+        actions = m_versionControlObserver->contextMenuActions(url.path(KUrl::AddTrailingSlash));
+    } else {
+        actions = m_versionControlObserver->contextMenuActions(items);
+    }
+
+    return actions;
 }
 
 void DolphinView::setUrl(const KUrl& url)
index ba83b7515516b7d730945dfb54451ad21b551476..c8d9d6874fb5c3d3b1945741c2b5a91774e3df54 100644 (file)
@@ -90,19 +90,28 @@ KFileItemModel* VersionControlObserver::model() const
 QList<QAction*> VersionControlObserver::contextMenuActions(const KFileItemList& items) const
 {
     QList<QAction*> actions;
-    if (isVersioned() && m_updateItemStatesThread->lockPlugin()) {
-        actions = m_plugin->contextMenuActions(items);
-        m_updateItemStatesThread->unlockPlugin();
+    if (isVersioned()) {
+        if (m_updateItemStatesThread && m_updateItemStatesThread->lockPlugin()) {
+            actions = m_plugin->contextMenuActions(items);
+            m_updateItemStatesThread->unlockPlugin();
+        } else {
+            actions = m_plugin->contextMenuActions(items);
+        }
     }
+
     return actions;
 }
 
 QList<QAction*> VersionControlObserver::contextMenuActions(const QString& directory) const
 {
     QList<QAction*> actions;
-    if (isVersioned() && m_updateItemStatesThread->lockPlugin()) {
-        actions = m_plugin->contextMenuActions(directory);
-        m_updateItemStatesThread->unlockPlugin();
+    if (isVersioned()) {
+        if (m_updateItemStatesThread && m_updateItemStatesThread->lockPlugin()) {
+            actions = m_plugin->contextMenuActions(directory);
+            m_updateItemStatesThread->unlockPlugin();
+        } else {
+            actions = m_plugin->contextMenuActions(directory);
+        }
     }
 
     return actions;
@@ -303,7 +312,7 @@ KVersionControlPlugin* VersionControlObserver::searchPlugin(const KUrl& director
 
 bool VersionControlObserver::isVersioned() const
 {
-    return false; //m_dolphinModel->hasVersionData() && m_plugin;
+    return m_versionedDirectory && m_plugin;
 }
 
 #include "versioncontrolobserver.moc"