File indexing completed on 2024-04-21 15:02:24
0001 /* 0002 SPDX-FileCopyrightText: 2019 Dan Leinir Turthra Jensen <admin@leinir.dk> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #ifndef KNSQUICK_AUTHOR_H 0008 #define KNSQUICK_AUTHOR_H 0009 0010 #include <QObject> 0011 #include <QQmlParserStatus> 0012 #include <entryinternal.h> 0013 0014 namespace KNewStuffQuick 0015 { 0016 class AuthorPrivate; 0017 /** 0018 * @short Encapsulates a KNSCore::Author for use in Qt Quick 0019 * 0020 * This class takes care of initialisation of a KNSCore::Author when assigned an engine, provider ID and username. 0021 * If the data is not yet cached, it will be requested from the provider, and updated for display 0022 * @since 5.63 0023 */ 0024 class Author : public QObject, public QQmlParserStatus 0025 { 0026 Q_OBJECT 0027 Q_INTERFACES(QQmlParserStatus) 0028 /** 0029 * The NewStuffQuickEngine to interact with servers through 0030 */ 0031 Q_PROPERTY(QObject *engine READ engine WRITE setEngine NOTIFY engineChanged) 0032 /** 0033 * The ID of the provider which the user is registered on 0034 */ 0035 Q_PROPERTY(QString providerId READ providerId WRITE setProviderId NOTIFY providerIdChanged) 0036 /** 0037 * The user ID for the user this object represents 0038 */ 0039 Q_PROPERTY(QString username READ username WRITE setUsername NOTIFY usernameChanged) 0040 0041 Q_PROPERTY(QString name READ name NOTIFY dataChanged) 0042 Q_PROPERTY(QString description READ description NOTIFY dataChanged) 0043 Q_PROPERTY(QString homepage READ homepage NOTIFY dataChanged) 0044 Q_PROPERTY(QString profilepage READ profilepage NOTIFY dataChanged) 0045 Q_PROPERTY(QUrl avatarUrl READ avatarUrl NOTIFY dataChanged) 0046 public: 0047 explicit Author(QObject *parent = nullptr); 0048 ~Author() override; 0049 void classBegin() override; 0050 void componentComplete() override; 0051 0052 QObject *engine() const; 0053 void setEngine(QObject *newEngine); 0054 Q_SIGNAL void engineChanged(); 0055 0056 QString providerId() const; 0057 void setProviderId(const QString &providerId); 0058 Q_SIGNAL void providerIdChanged(); 0059 0060 QString username() const; 0061 void setUsername(const QString &username); 0062 Q_SIGNAL void usernameChanged(); 0063 0064 QString name() const; 0065 QString description() const; 0066 QString homepage() const; 0067 QString profilepage() const; 0068 QUrl avatarUrl() const; 0069 Q_SIGNAL void dataChanged(); 0070 0071 private: 0072 const std::unique_ptr<AuthorPrivate> d; 0073 }; 0074 } 0075 0076 #endif // KNSQUICK_AUTHOR_H