Core: Use ActionBuilder in ExternalToolManager

Change-Id: Id92e0d8788aabbe9fe7cfb93680835a2c3f55b99
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
hjk
2023-12-19 17:31:13 +01:00
parent 4d91473c69
commit 2c8f15ba6c

View File

@@ -202,16 +202,16 @@ void ExternalToolManager::setToolsByCategory(const QMap<QString, QList<ExternalT
action = d->m_actions.value(toolId); action = d->m_actions.value(toolId);
command = ActionManager::command(externalToolsPrefix.withSuffix(toolId)); command = ActionManager::command(externalToolsPrefix.withSuffix(toolId));
} else { } else {
action = new QAction(tool->displayName(), m_instance); ActionBuilder external(m_instance, externalToolsPrefix.withSuffix(toolId));
d->m_actions.insert(toolId, action); external.setCommandAttribute(Command::CA_UpdateText);
connect(action, &QAction::triggered, tool, [tool] { external.addOnTriggered(tool, [tool] {
auto runner = new ExternalToolRunner(tool); auto runner = new ExternalToolRunner(tool);
if (runner->hasError()) if (runner->hasError())
MessageManager::writeFlashing(runner->errorString()); MessageManager::writeFlashing(runner->errorString());
}); });
action = external.contextAction();
command = ActionManager::registerAction(action, externalToolsPrefix.withSuffix(toolId)); d->m_actions.insert(toolId, action);
command->setAttribute(Command::CA_UpdateText); command = external.command();
} }
action->setText(tool->displayName()); action->setText(tool->displayName());
action->setToolTip(tool->description()); action->setToolTip(tool->description());