| 534 | } |
| 535 | |
| 536 | QMenu *ProjectTree::rootMenu(QStandardItem *root) |
| 537 | { |
| 538 | DMenu *menu = nullptr; |
| 539 | QString toolKitName = ProjectInfo::get(root).kitName(); |
| 540 | // 获取支持右键菜单生成器 |
| 541 | auto &ctx = dpfInstance.serviceContext(); |
| 542 | ProjectService *projectService = ctx.service<ProjectService>(ProjectService::name()); |
| 543 | if (projectService->supportGeneratorName<ProjectGenerator>().contains(toolKitName)) { |
| 544 | menu = projectService->createGenerator<ProjectGenerator>(toolKitName)->createItemMenu(root); |
| 545 | } |
| 546 | if (!menu) |
| 547 | menu = new DMenu(); |
| 548 | |
| 549 | QAction *activeProjectAction = new QAction(QAction::tr("Project Active"), menu); |
| 550 | QAction *closeAction = new QAction(QAction::tr("Project Close"), menu); |
| 551 | QAction *propertyAction = new QAction(QAction::tr("Project Info"), menu); |
| 552 | QObject::connect(activeProjectAction, &QAction::triggered, activeProjectAction, [=]() { doActiveProject(root); }); |
| 553 | QObject::connect(closeAction, &QAction::triggered, closeAction, [=]() { doCloseProject(root); }); |
| 554 | QObject::connect(propertyAction, &QAction::triggered, propertyAction, [=]() { doShowProjectInfo(root); }); |
| 555 | menu->insertAction(nullptr, activeProjectAction); |
| 556 | menu->insertAction(nullptr, closeAction); |
| 557 | menu->insertAction(nullptr, propertyAction); |
| 558 | return menu; |
| 559 | } |
| 560 | |
| 561 | void ProjectTree::performDrag() |
| 562 | { |
nothing calls this directly
no test coverage detected