Changeset View
Changeset View
Standalone View
Standalone View
kdevplatform/vcs/widgets/vcseventwidget.cpp
Show All 27 Lines | |||||
28 | #include <QHeaderView> | 28 | #include <QHeaderView> | ||
29 | #include <QMenu> | 29 | #include <QMenu> | ||
30 | #include <QPushButton> | 30 | #include <QPushButton> | ||
31 | #include <QVBoxLayout> | 31 | #include <QVBoxLayout> | ||
32 | 32 | | |||
33 | #include <KLocalizedString> | 33 | #include <KLocalizedString> | ||
34 | 34 | | |||
35 | #include <interfaces/iplugin.h> | 35 | #include <interfaces/iplugin.h> | ||
36 | #include <interfaces/icore.h> | ||||
37 | #include <interfaces/iprojectcontroller.h> | ||||
38 | #include <interfaces/iplugincontroller.h> | ||||
39 | #include <interfaces/contextmenuextension.h> | ||||
36 | 40 | | |||
37 | #include "ui_vcseventwidget.h" | 41 | #include "ui_vcseventwidget.h" | ||
38 | #include "vcsdiffwidget.h" | 42 | #include "vcsdiffwidget.h" | ||
39 | 43 | | |||
40 | #include "../interfaces/ibasicversioncontrol.h" | 44 | #include "../interfaces/ibasicversioncontrol.h" | ||
41 | #include "../models/vcseventmodel.h" | 45 | #include "../models/vcseventmodel.h" | ||
42 | #include "../models/vcsitemeventmodel.h" | 46 | #include "../models/vcsitemeventmodel.h" | ||
43 | #include "../vcsevent.h" | 47 | #include "../vcsevent.h" | ||
44 | #include "../vcsjob.h" | 48 | #include "../vcsjob.h" | ||
45 | #include "../vcsrevision.h" | 49 | #include "../vcsrevision.h" | ||
50 | #include "../vcsrevisioncontext.h" | ||||
46 | #include "debug.h" | 51 | #include "debug.h" | ||
47 | 52 | | |||
48 | 53 | | |||
49 | namespace KDevelop | 54 | namespace KDevelop | ||
50 | { | 55 | { | ||
51 | 56 | | |||
52 | class VcsEventWidgetPrivate | 57 | class VcsEventWidgetPrivate | ||
53 | { | 58 | { | ||
Show All 35 Lines | 86 | { | |||
89 | menu.addAction(m_copyAction); | 94 | menu.addAction(m_copyAction); | ||
90 | auto diffToPreviousAction = menu.addAction(i18n("Diff to previous revision")); | 95 | auto diffToPreviousAction = menu.addAction(i18n("Diff to previous revision")); | ||
91 | QObject::connect(diffToPreviousAction, &QAction::triggered, q, [&] { diffToPrevious(); }); | 96 | QObject::connect(diffToPreviousAction, &QAction::triggered, q, [&] { diffToPrevious(); }); | ||
92 | 97 | | |||
93 | auto diffRevisionsAction = menu.addAction(i18n("Diff between revisions")); | 98 | auto diffRevisionsAction = menu.addAction(i18n("Diff between revisions")); | ||
94 | QObject::connect(diffRevisionsAction, &QAction::triggered, q, [&] { diffRevisions(); }); | 99 | QObject::connect(diffRevisionsAction, &QAction::triggered, q, [&] { diffRevisions(); }); | ||
95 | diffRevisionsAction->setEnabled(m_ui->eventView->selectionModel()->selectedRows().size()>=2); | 100 | diffRevisionsAction->setEnabled(m_ui->eventView->selectionModel()->selectedRows().size()>=2); | ||
96 | 101 | | |||
102 | IProject* project = ICore::self()->projectController()->findProjectForUrl(m_url); | ||||
103 | if (project ) { | ||||
104 | const auto revision = m_logModel->eventForIndex(m_contextIndex).revision(); | ||||
105 | if (revision.revisionType() != KDevelop::VcsRevision::Invalid) { | ||||
106 | VcsRevisionContext context(project, revision, m_url); | ||||
107 | const auto extensions = ICore::self()->pluginController()->queryPluginsForContextMenuExtensions(&context, &menu); | ||||
108 | | ||||
109 | QList<QAction*> vcsActions; | ||||
110 | for (const auto& ext : extensions) { | ||||
111 | // TODO: git submenu always added for all context type, needs another approach | ||||
112 | vcsActions += ext.actions(ContextMenuExtension::VcsGroup); | ||||
113 | } | ||||
114 | menu.addActions(vcsActions); | ||||
115 | } | ||||
116 | } | ||||
97 | menu.exec( m_ui->eventView->viewport()->mapToGlobal(point) ); | 117 | menu.exec( m_ui->eventView->viewport()->mapToGlobal(point) ); | ||
98 | } | 118 | } | ||
99 | 119 | | |||
100 | void VcsEventWidgetPrivate::currentRowChanged(const QModelIndex& start, const QModelIndex& end) | 120 | void VcsEventWidgetPrivate::currentRowChanged(const QModelIndex& start, const QModelIndex& end) | ||
101 | { | 121 | { | ||
102 | Q_UNUSED(end); | 122 | Q_UNUSED(end); | ||
103 | if(start.isValid()) | 123 | if(start.isValid()) | ||
104 | eventViewClicked(start); | 124 | eventViewClicked(start); | ||
▲ Show 20 Lines • Show All 130 Lines • Show Last 20 Lines |