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

Method contextMenuExtension

plugins/projectfilter/projectfilterprovider.cpp:53–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

51}
52
53ContextMenuExtension ProjectFilterProvider::contextMenuExtension(Context* context, QWidget* parent)
54{
55 ContextMenuExtension ret;
56 if (!context->hasType(Context::ProjectItemContext)) {
57 return ret;
58 }
59
60 auto* ctx = static_cast<ProjectItemContext*>( context );
61
62 QList<ProjectBaseItem*> items = ctx->items();
63 // filter out project roots and items in targets
64 QList< ProjectBaseItem* >::iterator it = items.begin();
65 while (it != items.end()) {
66 if ((*it)->isProjectRoot() || !(*it)->parent()->folder()) {
67 it = items.erase(it);
68 } else {
69 ++it;
70 }
71 }
72 if (items.isEmpty()) {
73 return ret;
74 }
75
76 auto* action = new QAction(QIcon::fromTheme(QStringLiteral("view-filter")),
77 i18ncp("@action:inmenu", "Exclude Item from Project",
78 "Exclude Items from Project",
79 items.size()), parent);
80 action->setData(QVariant::fromValue(items));
81 connect(action, &QAction::triggered, this, &ProjectFilterProvider::addFilterFromContextMenu);
82 ret.addAction(ContextMenuExtension::FileGroup, action);
83 return ret;
84}
85
86void ProjectFilterProvider::addFilterFromContextMenu()
87{

Callers

nothing calls this directly

Calls 11

hasTypeMethod · 0.80
isProjectRootMethod · 0.80
folderMethod · 0.80
itemsMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
parentMethod · 0.45
isEmptyMethod · 0.45
sizeMethod · 0.45
setDataMethod · 0.45
addActionMethod · 0.45

Tested by

no test coverage detected