MCPcopy Create free account
hub / github.com/FreeCAD/FreeCAD / contextMenuEvent

Method contextMenuEvent

src/Gui/Tree.cpp:1182–1394  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1180}
1181
1182void TreeWidget::contextMenuEvent(QContextMenuEvent* e)
1183{
1184 // ask workbenches and view provider, ...
1185 MenuItem view;
1186 Gui::Application::Instance->setupContextMenu("Tree", &view);
1187
1188 view << "Std_Properties" << "Separator" << "Std_Expressions";
1189 Workbench::createLinkMenu(&view);
1190
1191 QMenu contextMenu;
1192
1193 QMenu subMenu;
1194 QMenu editMenu;
1195 QActionGroup subMenuGroup(&subMenu);
1196 subMenuGroup.setExclusive(true);
1197 connect(&subMenuGroup, &QActionGroup::triggered, this, &TreeWidget::onActivateDocument);
1198 MenuManager::getInstance()->setupContextMenu(&view, contextMenu);
1199
1200 // get the current item
1201 this->contextItem = itemAt(e->pos());
1202
1203 if (this->contextItem && this->contextItem->type() == DocumentType) {
1204 auto docitem = static_cast<DocumentItem*>(this->contextItem);
1205 App::Document* doc = docitem->document()->getDocument();
1206
1207 // It's better to let user decide whether and how to activate
1208 // the current document, such as by double-clicking.
1209 // App::GetApplication().setActiveDocument(doc);
1210
1211 showHiddenAction->setChecked(docitem->showHidden());
1212 contextMenu.addAction(this->showHiddenAction);
1213 contextMenu.addAction(this->openFileLocationAction);
1214 contextMenu.addAction(this->searchObjectsAction);
1215 contextMenu.addAction(this->closeDocAction);
1216 if (doc->testStatus(App::Document::PartialDoc)) {
1217 contextMenu.addAction(this->reloadDocAction);
1218 }
1219 else {
1220 for (auto d : doc->getDependentDocuments()) {
1221 if (d->testStatus(App::Document::PartialDoc)) {
1222 contextMenu.addAction(this->reloadDocAction);
1223 break;
1224 }
1225 }
1226 contextMenu.addAction(this->selectDependentsAction);
1227 if (doc == App::GetApplication().getActiveDocument() && this->skipRecomputeCommand) {
1228 // if active document is selected, use Command
1229 this->skipRecomputeCommand->addTo(&contextMenu);
1230 }
1231 else {
1232 // if other document is selected or Command load fails, edit selected Document directly
1233 this->skipRecomputeAction->setChecked(doc->testStatus(App::Document::SkipRecompute));
1234 contextMenu.addAction(this->skipRecomputeAction);
1235 }
1236 this->allowPartialRecomputeAction->setChecked(
1237 doc->testStatus(App::Document::AllowPartialRecompute)
1238 );
1239 if (doc->testStatus(App::Document::SkipRecompute)) {

Callers

nothing calls this directly

Calls 15

headerFunction · 0.85
showHiddenMethod · 0.80
getCompleteSelectionMethod · 0.80
objectMethod · 0.80
actionsMethod · 0.80
getDocumentsMethod · 0.80
GetBoolMethod · 0.80
SetBoolMethod · 0.80
connectFunction · 0.70
QByteArrayClass · 0.70
SelectionClass · 0.50

Tested by

no test coverage detected