File indexing completed on 2024-04-14 15:39:43

0001 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0002 // SPDX-FileCopyrightText: 2020 Harald Sitter <sitter@kde.org>
0003 
0004 #pragma once
0005 
0006 #include <KService>
0007 #include <QObject>
0008 
0009 class ServiceRunner : public QObject
0010 {
0011     Q_OBJECT
0012     Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
0013     Q_PROPERTY(bool canRun READ canRun NOTIFY canRunChanged)
0014 public:
0015     using QObject::QObject;
0016 
0017     Q_INVOKABLE void run();
0018 
0019     QString name() const;
0020     void setName(const QString &name);
0021 
0022     bool canRun() const;
0023 
0024 signals:
0025     void nameChanged();
0026     void canRunChanged();
0027 
0028 private:
0029     QString m_name;
0030     KService::Ptr m_service{nullptr};
0031 };