| 98 | } |
| 99 | |
| 100 | void BuildManager::addMenu() |
| 101 | { |
| 102 | auto &ctx = dpfInstance.serviceContext(); |
| 103 | auto windowService = ctx.service<WindowService>(WindowService::name()); |
| 104 | if (!windowService) |
| 105 | return; |
| 106 | |
| 107 | auto actionInit = [&](QAction *action, const QString &actionID, |
| 108 | const QKeySequence &key, |
| 109 | const QString &iconFileName = {}) |
| 110 | -> Command * { |
| 111 | if (!iconFileName.isEmpty()) |
| 112 | action->setIcon(QIcon::fromTheme(iconFileName)); |
| 113 | auto cmd = ActionManager::instance()->registerAction(action, actionID); |
| 114 | if (!key.isEmpty()) |
| 115 | cmd->setDefaultKeySequence(key); |
| 116 | return cmd; |
| 117 | }; |
| 118 | |
| 119 | auto mBuild = ActionManager::instance()->actionContainer(M_BUILD); |
| 120 | d->buildAction = new QAction(MWMBA_BUILD, this); |
| 121 | auto cmd = actionInit(d->buildAction, "Build.Build", |
| 122 | QKeySequence(Qt::Modifier::CTRL | Qt::Key::Key_B), |
| 123 | "build"); |
| 124 | mBuild->addAction(cmd); |
| 125 | d->buildCancelBtn = windowService->addTopToolItem(cmd, true, Priority::low); |
| 126 | |
| 127 | d->cancelAction = new QAction(MWMBA_CANCEL, this); |
| 128 | d->cancelAction->setIcon(QIcon::fromTheme("cancel")); |
| 129 | cmd = actionInit(d->cancelAction, "Build.Cancel", QKeySequence(Qt::ALT | Qt::Key_Backspace)); |
| 130 | mBuild->addAction(cmd); |
| 131 | |
| 132 | d->rebuildAction = new QAction(MWMBA_REBUILD, this); |
| 133 | d->rebuildAction->setIcon(QIcon::fromTheme("rebuild")); |
| 134 | actionInit(d->rebuildAction, "Build.Rebuild", QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_B)); |
| 135 | |
| 136 | d->cleanAction = new QAction(MWMBA_CLEAN, this); |
| 137 | d->cleanAction->setIcon(QIcon::fromTheme("clearall")); |
| 138 | actionInit(d->cleanAction, "Build.Clean", QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_C)); |
| 139 | |
| 140 | QObject::connect(d->buildAction, &QAction::triggered, |
| 141 | this, &BuildManager::buildCancelProject, Qt::DirectConnection); |
| 142 | QObject::connect(d->rebuildAction, &QAction::triggered, |
| 143 | this, &BuildManager::rebuildProject, Qt::DirectConnection); |
| 144 | QObject::connect(d->cleanAction, &QAction::triggered, |
| 145 | this, &BuildManager::cleanProject, Qt::DirectConnection); |
| 146 | QObject::connect(d->cancelAction, &QAction::triggered, |
| 147 | this, &BuildManager::cancelBuild, Qt::DirectConnection); |
| 148 | } |
| 149 | |
| 150 | void BuildManager::initCompileWidget() |
| 151 | { |
no test coverage detected