MCPcopy Create free account
hub / github.com/KDE/kdevelop / showContextMenu

Method showContextMenu

plugins/projectmanagerview/projectbuildsetwidget.cpp:101–157  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

99}
100
101void ProjectBuildSetWidget::showContextMenu( const QPoint& p )
102{
103 if( m_ui->itemView->selectionModel()->selectedRows().isEmpty() )
104 return;
105
106 QList<KDevelop::ProjectBaseItem*> itemlist;
107
108 if(m_ui->itemView->selectionModel()->selectedRows().count() == 1)
109 {
110 KDevelop::ProjectBuildSetModel* buildSet = KDevelop::ICore::self()->projectController()->buildSetModel();
111
112 int row = m_ui->itemView->selectionModel()->selectedRows()[0].row();
113 if(row < buildSet->items().size())
114 {
115 KDevelop::ProjectBaseItem* item = buildSet->items().at(row).findItem();
116 if(item)
117 itemlist << item;
118 }
119 }
120
121
122 QMenu m(this);
123 m.setTitle(i18nc("@title:menu", "Build Set"));
124 m.addAction(QIcon::fromTheme(QStringLiteral("list-remove")), i18nc("@action:inmenu", "Remove from Build Set"), this, SLOT(removeItems()) );
125
126 if( !itemlist.isEmpty() )
127 {
128 KDevelop::ProjectItemContextImpl context(itemlist);
129 const QList<KDevelop::ContextMenuExtension> extensions = KDevelop::ICore::self()->pluginController()->queryPluginsForContextMenuExtensions(&context, &m);
130
131 QList<QAction*> buildActions;
132 QList<QAction*> vcsActions;
133 QList<QAction*> extActions;
134 QList<QAction*> projectActions;
135 QList<QAction*> fileActions;
136 QList<QAction*> runActions;
137 for (const KDevelop::ContextMenuExtension& ext : extensions) {
138 buildActions += ext.actions(KDevelop::ContextMenuExtension::BuildGroup);
139 fileActions += ext.actions(KDevelop::ContextMenuExtension::FileGroup);
140 projectActions += ext.actions(KDevelop::ContextMenuExtension::ProjectGroup);
141 vcsActions += ext.actions(KDevelop::ContextMenuExtension::VcsGroup);
142 extActions += ext.actions(KDevelop::ContextMenuExtension::ExtensionGroup);
143 runActions += ext.actions(KDevelop::ContextMenuExtension::RunGroup);
144 }
145
146 showContextMenu_appendActions(m, buildActions);
147 showContextMenu_appendActions(m, runActions);
148 showContextMenu_appendActions(m, fileActions);
149
150 showContextMenu_appendActions(m, vcsActions);
151 showContextMenu_appendActions(m, extActions);
152
153 showContextMenu_appendActions(m, projectActions);
154 }
155
156 m.exec( m_ui->itemView->viewport()->mapToGlobal( p ) );
157}
158

Callers

nothing calls this directly

Calls 15

buildSetModelMethod · 0.80
projectControllerMethod · 0.80
pluginControllerMethod · 0.80
execMethod · 0.80
isEmptyMethod · 0.45
countMethod · 0.45
rowMethod · 0.45
sizeMethod · 0.45
itemsMethod · 0.45
findItemMethod · 0.45
atMethod · 0.45

Tested by

no test coverage detected