| 217 | } |
| 218 | |
| 219 | KDevelop::ContextMenuExtension Plugin::contextMenuExtension(KDevelop::Context* context, QWidget* parent) |
| 220 | { |
| 221 | KDevelop::ContextMenuExtension extension = KDevelop::IPlugin::contextMenuExtension(context, parent); |
| 222 | |
| 223 | if (context->hasType(KDevelop::Context::EditorContext) && m_currentProject && !isRunning()) { |
| 224 | auto eContext = static_cast<KDevelop::EditorContext*>(context); |
| 225 | QMimeDatabase db; |
| 226 | const auto mime = db.mimeTypeForUrl(eContext->url()); |
| 227 | |
| 228 | if (isSupportedMimeType(mime)) { |
| 229 | extension.addAction(KDevelop::ContextMenuExtension::AnalyzeFileGroup, m_contextActionFile); |
| 230 | extension.addAction(KDevelop::ContextMenuExtension::AnalyzeProjectGroup, m_contextActionProject); |
| 231 | } |
| 232 | } |
| 233 | |
| 234 | if (context->hasType(KDevelop::Context::ProjectItemContext) && !isRunning()) { |
| 235 | auto pContext = static_cast<KDevelop::ProjectItemContext*>(context); |
| 236 | if (pContext->items().size() != 1) { |
| 237 | return extension; |
| 238 | } |
| 239 | |
| 240 | auto item = pContext->items().first(); |
| 241 | |
| 242 | switch (item->type()) { |
| 243 | case KDevelop::ProjectBaseItem::File: { |
| 244 | const QMimeType mimetype = QMimeDatabase().mimeTypeForUrl(item->path().toUrl()); |
| 245 | if (!isSupportedMimeType(mimetype)) { |
| 246 | return extension; |
| 247 | } |
| 248 | break; |
| 249 | } |
| 250 | case KDevelop::ProjectBaseItem::Folder: |
| 251 | case KDevelop::ProjectBaseItem::BuildFolder: |
| 252 | break; |
| 253 | |
| 254 | default: |
| 255 | return extension; |
| 256 | } |
| 257 | |
| 258 | m_contextActionProjectItem->disconnect(); |
| 259 | connect(m_contextActionProjectItem, &QAction::triggered, this, [this, item](){ |
| 260 | runCppcheck(item->project(), item->path().toLocalFile()); |
| 261 | }); |
| 262 | |
| 263 | extension.addAction(KDevelop::ContextMenuExtension::AnalyzeProjectGroup, m_contextActionProjectItem); |
| 264 | } |
| 265 | |
| 266 | return extension; |
| 267 | } |
| 268 | |
| 269 | KDevelop::ConfigPage* Plugin::perProjectConfigPage(int number, const KDevelop::ProjectConfigOptions& options, QWidget* parent) |
| 270 | { |
nothing calls this directly
no test coverage detected