/* * Copyright (C) 2021 CutefishOS Team. * * Author: revenmartin * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef SETTINGS_H #define SETTINGS_H #include #include class DesktopSettings : public QObject { Q_OBJECT Q_PROPERTY(QString wallpaper READ wallpaper NOTIFY wallpaperChanged) Q_PROPERTY(bool dimsWallpaper READ dimsWallpaper NOTIFY dimsWallpaperChanged) Q_PROPERTY(int backgroundType READ backgroundType NOTIFY backgroundTypeChanged) Q_PROPERTY(QString backgroundColor READ backgroundColor NOTIFY backgroundColorChanged) public: explicit DesktopSettings(QObject *parent = nullptr); QString wallpaper() const; bool dimsWallpaper() const; int backgroundType() const; QString backgroundColor() const; Q_INVOKABLE void launch(const QString &command, const QStringList &args); signals: void wallpaperChanged(); void dimsWallpaperChanged(); void backgroundColorChanged(); void backgroundTypeChanged(); private slots: void init(); void onWallpaperChanged(QString); private: QDBusInterface m_interface; QString m_wallpaper; }; #endif // SETTINGS_H