/* SPDX-FileCopyrightText: 2016 Martin Gräßlin SPDX-FileCopyrightText: 2017 David Edmundson SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #pragma once #include #include #include class KConfigLoader; namespace ScreenLocker { class ShellIntegration : public QObject { Q_OBJECT Q_PROPERTY(KConfigPropertyMap *configuration READ configuration NOTIFY configurationChanged) public: explicit ShellIntegration(QObject *parent); ~ShellIntegration() override; void init(); QString defaultShell() const; void setConfig(const KSharedConfig::Ptr &config) { m_config = config; } void setPackage(const KPackage::Package &package) { m_package = package; } KPackage::Package package() const { return m_package; } KConfigPropertyMap *configuration() const { return m_configuration; } KConfigLoader *configScheme(); Q_SIGNALS: void packageChanged(); void configurationChanged(); private: KPackage::Package m_package; KSharedConfig::Ptr m_config; KConfigLoader *m_configLoader = nullptr; KConfigPropertyMap *m_configuration = nullptr; }; }