File indexing completed on 2024-06-02 05:33:01

0001 /*
0002  * SPDX-FileCopyrightText: 2017 David Faure <faure@kde.org>
0003  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004  */
0005 
0006 
0007 #ifndef PRESENTATION_RUNNINGTASKMODELINTERFACE_H
0008 #define PRESENTATION_RUNNINGTASKMODELINTERFACE_H
0009 
0010 #include <QObject>
0011 
0012 #include "domain/task.h"
0013 
0014 #include "errorhandlingmodelbase.h"
0015 
0016 namespace Presentation {
0017 
0018 class RunningTaskModelInterface : public QObject, public ErrorHandlingModelBase
0019 {
0020     Q_OBJECT
0021     Q_PROPERTY(Domain::Task::Ptr runningTask READ runningTask WRITE setRunningTask NOTIFY runningTaskChanged)
0022 public:
0023     typedef QSharedPointer<RunningTaskModelInterface> Ptr;
0024 
0025     explicit RunningTaskModelInterface(QObject *parent = nullptr);
0026     ~RunningTaskModelInterface();
0027 
0028     virtual Domain::Task::Ptr runningTask() const = 0;
0029     virtual void setRunningTask(const Domain::Task::Ptr &runningTask) = 0;
0030 
0031     virtual void taskDeleted(const Domain::Task::Ptr &task) = 0;
0032 
0033 signals:
0034     void runningTaskChanged(const Domain::Task::Ptr &task);
0035 
0036 public slots:
0037     virtual void stopTask() = 0;
0038     virtual void doneTask() = 0;
0039 };
0040 
0041 }
0042 
0043 #endif // PRESENTATION_RUNNINGTASKMODEL_H