1// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5#ifndef TASKMANAGER_H
6#define TASKMANAGER_H
7
8#include "taskmodel.h"
9#include "taskdelegate.h"
10#include "taskview.h"
11
12/**
13 * @brief Used to manage and display the information about build error,
14 * move it to seperate plugin when more type information need be processed.
15 */
16class TaskManager : public QObject
17{
18 Q_OBJECT
19public:
20 static TaskManager *instance();
21
22 QListView *getView() const;
23
24 void clearTasks();
25
26signals:
27
28public slots:
29 void slotAddTask(const Task &task, int linkedOutputLines, int skipLines);
30
31 void currentChanged(const QModelIndex &index);
32 void triggerDefaultHandler(const QModelIndex &index);
33
34private:
35 explicit TaskManager(QObject *parent = nullptr);
36
37 TaskView *view = nullptr;
38 QSharedPointer<TaskModel> model;
39};
40
41#endif // TASKMANAGER_H
42