File indexing completed on 2024-05-12 16:23:45
0001 // SPDX-FileCopyrightText: 2020 Jonah BrĂ¼chert <jbb@kaidan.im> 0002 // 0003 // SPDX-License-Identifier: GPL-2.0-or-later 0004 0005 #pragma once 0006 0007 #include <QObject> 0008 0009 class QQmlEngine; 0010 class WebAppManager; 0011 0012 class WebAppCreator : public QObject 0013 { 0014 Q_OBJECT 0015 0016 Q_PROPERTY(QString websiteName READ websiteName WRITE setWebsiteName NOTIFY websiteNameChanged) 0017 Q_PROPERTY(bool exists READ exists NOTIFY existsChanged) 0018 0019 public: 0020 explicit WebAppCreator(QObject *parent = nullptr); 0021 0022 const QString &websiteName() const; 0023 void setWebsiteName(const QString &websiteName); 0024 Q_SIGNAL void websiteNameChanged(); 0025 0026 bool exists() const; 0027 Q_SIGNAL void existsChanged(); 0028 0029 Q_INVOKABLE void createDesktopFile(const QString &name, const QString &url, const QString &icon); 0030 0031 private: 0032 QString m_websiteName; 0033 QImage fetchIcon(const QString &url); 0034 WebAppManager &m_webAppMngr; 0035 };