File indexing completed on 2025-02-09 06:35:13
0001 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0002 // SPDX-FileCopyrightText: 2020-2021 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 desktopFileName READ desktopFileName WRITE setDesktopFileName NOTIFY desktopFileNameChanged) 0013 Q_PROPERTY(QString genericName READ genericName NOTIFY changed) 0014 Q_PROPERTY(QString iconName READ iconName NOTIFY changed) 0015 Q_PROPERTY(bool canRun READ canRun NOTIFY changed) 0016 public: 0017 using QObject::QObject; 0018 0019 Q_INVOKABLE void run(); 0020 0021 QString desktopFileName() const; 0022 void setDesktopFileName(const QString &name); 0023 0024 QString genericName() const; 0025 QString iconName() const; 0026 bool canRun() const; 0027 0028 Q_SIGNALS: 0029 void desktopFileNameChanged(); 0030 void changed(); 0031 0032 private: 0033 QString m_desktopFileName; 0034 QString m_genericName; 0035 QString m_iconName; 0036 KService::Ptr m_service{nullptr}; 0037 };