forked from qt-creator/qt-creator
TaskTree demo: Simplify task creation
Fix workflow policy. Fix const correctness. Rename treeRoot into recipe. Change-Id: Ib0457691001dbb88135027f8c7a34ba671b0b082 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -163,24 +163,22 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
std::unique_ptr<TaskTree> taskTree;
|
std::unique_ptr<TaskTree> taskTree;
|
||||||
|
|
||||||
const auto createTask = [](TaskWidget *widget) -> GroupItem {
|
const auto createTask = [](TaskWidget *widget) {
|
||||||
const auto setupTask = [](TaskWidget *widget) {
|
const milliseconds timeout{widget->busyTime() * 1000};
|
||||||
return [widget](milliseconds &taskObject) {
|
const auto setupTask = [widget, timeout](milliseconds &taskObject) {
|
||||||
taskObject = milliseconds{widget->busyTime() * 1000};
|
taskObject = timeout;
|
||||||
widget->setState(State::Running);
|
widget->setState(State::Running);
|
||||||
};
|
|
||||||
};
|
};
|
||||||
const Group root {
|
const Group root {
|
||||||
widget->isSuccess() ? finishAllAndDone : finishAllAndError,
|
widget->isSuccess() ? stopOnError : finishAllAndError,
|
||||||
TimeoutTask(setupTask(widget)),
|
TimeoutTask(setupTask),
|
||||||
onGroupDone([widget] { widget->setState(State::Done); }),
|
onGroupDone([widget] { widget->setState(State::Done); }),
|
||||||
onGroupError([widget] { widget->setState(State::Error); })
|
onGroupError([widget] { widget->setState(State::Error); })
|
||||||
};
|
};
|
||||||
return root;
|
return root;
|
||||||
};
|
};
|
||||||
|
|
||||||
auto treeRoot = [&] {
|
const auto recipe = [&] {
|
||||||
|
|
||||||
const Group root {
|
const Group root {
|
||||||
rootGroup->executeMode(),
|
rootGroup->executeMode(),
|
||||||
rootGroup->workflowPolicy(),
|
rootGroup->workflowPolicy(),
|
||||||
@@ -232,21 +230,21 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
// Non-task GUI handling
|
// Non-task GUI handling
|
||||||
|
|
||||||
auto createTaskTree = [&] {
|
const auto createTaskTree = [&] {
|
||||||
TaskTree *taskTree = new TaskTree(treeRoot());
|
TaskTree *taskTree = new TaskTree(recipe());
|
||||||
progressBar->setMaximum(taskTree->progressMaximum());
|
progressBar->setMaximum(taskTree->progressMaximum());
|
||||||
QObject::connect(taskTree, &TaskTree::progressValueChanged,
|
QObject::connect(taskTree, &TaskTree::progressValueChanged,
|
||||||
progressBar, &QProgressBar::setValue);
|
progressBar, &QProgressBar::setValue);
|
||||||
return taskTree;
|
return taskTree;
|
||||||
};
|
};
|
||||||
|
|
||||||
auto stopTaskTree = [&] {
|
const auto stopTaskTree = [&] {
|
||||||
if (taskTree)
|
if (taskTree)
|
||||||
taskTree->stop();
|
taskTree->stop();
|
||||||
// TODO: unlock GUI controls?
|
// TODO: unlock GUI controls?
|
||||||
};
|
};
|
||||||
|
|
||||||
auto resetTaskTree = [&] {
|
const auto resetTaskTree = [&] {
|
||||||
if (!taskTree)
|
if (!taskTree)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user