From: Peter Penz Date: Fri, 9 Sep 2011 17:21:22 +0000 (+0200) Subject: Version control: Show context menu entries of plugins X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/93cb7e02616df9746f7cdae09434e7488f4e7d28?ds=inline Version control: Show context menu entries of plugins --- diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index bb9b52365..a53934ddc 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -518,8 +518,16 @@ QString DolphinView::statusBarText() const QList DolphinView::versionControlActions(const KFileItemList& items) const { - Q_UNUSED(items); - return QList(); //m_dolphinViewController->versionControlActions(items); + QList 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) diff --git a/src/views/versioncontrol/versioncontrolobserver.cpp b/src/views/versioncontrol/versioncontrolobserver.cpp index ba83b7515..c8d9d6874 100644 --- a/src/views/versioncontrol/versioncontrolobserver.cpp +++ b/src/views/versioncontrol/versioncontrolobserver.cpp @@ -90,19 +90,28 @@ KFileItemModel* VersionControlObserver::model() const QList VersionControlObserver::contextMenuActions(const KFileItemList& items) const { QList 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 VersionControlObserver::contextMenuActions(const QString& directory) const { QList 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"