| 99 | } |
| 100 | |
| 101 | void 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 |
nothing calls this directly
no test coverage detected