35 #include <QJsonObject>
58 QList<Article *> news;
63 news << item->articles();
64 std::inplace_merge(news.begin(), news.begin() + n, news.end()
67 return Article::articleDateRecentThan(a1, a2->date());
75 const auto itemList =
items();
76 return std::accumulate(itemList.cbegin(), itemList.cend(), 0, [](
const int acc,
const Item *item)
78 return (acc + item->unreadCount());
103 jsonObj.insert(item->name(), item->toJsonValue(withData));
122 Q_ASSERT(!
m_items.contains(item));
139 Q_ASSERT(
m_items.contains(item));
144 item->disconnect(
this);
void markAsRead() override
void removeItem(Item *item)
QList< Article * > articles() const override
QList< Item * > items() const
void handleItemUnreadCountChanged()
QJsonValue toJsonValue(bool withData=false) const override
int unreadCount() const override
void newArticle(Article *article)
void articleAboutToBeRemoved(Article *article)
virtual QList< Article * > articles() const =0
void aboutToBeDestroyed(Item *item=nullptr)
void unreadCountChanged(Item *item=nullptr)
void articleRead(Article *article)
virtual int unreadCount() const =0
constexpr std::add_const_t< T > & asConst(T &t) noexcept