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 };