File indexing completed on 2024-05-12 05:12:54
0001 /* 0002 SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "article.h" 0010 #include "articleformatter.h" 0011 #include <QObject> 0012 namespace Akregator 0013 { 0014 class ArticleGrantleeObject : public QObject 0015 { 0016 Q_OBJECT 0017 Q_PROPERTY(QString strippedTitle READ strippedTitle) 0018 Q_PROPERTY(QString author READ author) 0019 Q_PROPERTY(QString content READ content) 0020 Q_PROPERTY(QString articleLinkUrl READ articleLinkUrl) 0021 Q_PROPERTY(QString articlePubDate READ articlePubDate) 0022 Q_PROPERTY(QString enclosure READ enclosure) 0023 Q_PROPERTY(QString articleCompleteStoryLink READ articleCompleteStoryLink) 0024 Q_PROPERTY(QString imageFeed READ imageFeed) 0025 Q_PROPERTY(Akregator::ArticleGrantleeObject::ArticleStatus articleStatus READ articleStatus) 0026 Q_PROPERTY(bool important READ important) 0027 Q_PROPERTY(QString actionToken READ actionToken) 0028 0029 public: 0030 explicit ArticleGrantleeObject(const Article &article, ArticleFormatter::IconOption icon, QObject *parent = nullptr); 0031 ~ArticleGrantleeObject() override; 0032 0033 enum ArticleStatus { Unread = 0, Read, New }; 0034 Q_ENUMS(ArticleStatus) 0035 0036 Akregator::ArticleGrantleeObject::ArticleStatus articleStatus() const; 0037 0038 [[nodiscard]] QString strippedTitle() const; 0039 [[nodiscard]] QString author() const; 0040 [[nodiscard]] QString content() const; 0041 [[nodiscard]] QString articleLinkUrl() const; 0042 [[nodiscard]] QString articlePubDate() const; 0043 [[nodiscard]] QString enclosure() const; 0044 [[nodiscard]] QString articleCompleteStoryLink() const; 0045 [[nodiscard]] QString imageFeed() const; 0046 0047 [[nodiscard]] bool important() const; 0048 [[nodiscard]] QString actionToken() const; 0049 0050 private: 0051 const Article mArticle; 0052 const ArticleFormatter::IconOption mArticleFormatOption; 0053 }; 0054 }