File indexing completed on 2024-05-12 16:23:41

0001 // SPDX-FileCopyrightText: 2020 Rinigus <rinigus.git@gmail.com>
0002 //
0003 // SPDX-License-Identifier: GPL-2.0-or-later
0004 
0005 #ifndef URLOBSERVER_H
0006 #define URLOBSERVER_H
0007 
0008 #include <QObject>
0009 
0010 #include <QCoro/QCoroTask>
0011 
0012 class UrlObserver : public QObject
0013 {
0014     Q_PROPERTY(QString url READ url WRITE setUrl NOTIFY urlChanged)
0015     Q_PROPERTY(bool bookmarked READ bookmarked NOTIFY bookmarkedChanged)
0016 
0017     Q_OBJECT
0018 public:
0019     explicit UrlObserver(QObject *parent = nullptr);
0020 
0021     QString url() const;
0022     void setUrl(const QString &url);
0023 
0024     bool bookmarked() const;
0025 
0026 Q_SIGNALS:
0027     void urlChanged(const QString &url);
0028     void bookmarkedChanged(bool bookmarked);
0029 
0030 private:
0031     void onDatabaseTableChanged(const QString &table);
0032     QCoro::Task<> updateBookmarked();
0033 
0034 private:
0035     QString m_url;
0036     bool m_bookmarked = false;
0037 };
0038 
0039 #endif // URLOBSERVER_H