Files
qt-creator/tests/manual/tasking/demo/taskwidget.h
Jarek Kobus d97d3f58ac TaskTree: Rename TaskItem into GroupItem
Not all classes derived from TaskItem are tasks,
but the common denominator is that all may be placed
inside a group: thus GroupItem sounds more appropriate.

Addresses the 10th point in the bugreport below.

Task-number: QTCREATORBUG-28741
Change-Id: I94d728a8e39ec732810f2e5bbe6b9a76f3bc387c
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
2023-06-06 09:06:01 +00:00

82 lines
1.5 KiB
C++

// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef TASKWIDGET_H
#define TASKWIDGET_H
#include <tasking/tasktree.h>
#include <QWidget>
class StateIndicator;
QT_BEGIN_NAMESPACE
class QCheckBox;
class QComboBox;
class QLabel;
class QSpinBox;
QT_END_NAMESPACE
enum class State {
Initial,
Running,
Done,
Error
};
enum class ExecuteMode {
Sequential, // default
Parallel
};
class StateWidget : public QWidget
{
public:
StateWidget();
void setState(State state);
protected:
StateIndicator *m_stateIndicator = nullptr;
};
class TaskWidget : public StateWidget
{
public:
TaskWidget();
void setBusyTime(int seconds);
int busyTime() const;
void setSuccess(bool success);
bool isSuccess() const;
private:
QLabel *m_infoLabel = nullptr;
QSpinBox *m_spinBox = nullptr;
QCheckBox *m_checkBox = nullptr;
};
class GroupWidget : public StateWidget
{
public:
GroupWidget();
void setExecuteMode(ExecuteMode mode);
Tasking::GroupItem executeMode() const;
void setWorkflowPolicy(Tasking::WorkflowPolicy policy);
Tasking::GroupItem workflowPolicy() const;
private:
void updateExecuteMode();
void updateWorkflowPolicy();
QComboBox *m_executeCombo = nullptr;
QComboBox *m_workflowCombo = nullptr;
ExecuteMode m_executeMode = ExecuteMode::Sequential;
Tasking::WorkflowPolicy m_workflowPolicy = Tasking::WorkflowPolicy::StopOnError;
};
#endif // TASKWIDGET_H