From a35c9fa159173388d88ef77e1d31f53488aad094 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 3 Apr 2026 22:55:30 +0200 Subject: Generalize for all fediverse accounts --- .../fediversepostsmodel.h | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 eventsview-plugins/eventsview-plugin-fediverse/fediversepostsmodel.h (limited to 'eventsview-plugins/eventsview-plugin-fediverse/fediversepostsmodel.h') diff --git a/eventsview-plugins/eventsview-plugin-fediverse/fediversepostsmodel.h b/eventsview-plugins/eventsview-plugin-fediverse/fediversepostsmodel.h new file mode 100644 index 0000000..96acae3 --- /dev/null +++ b/eventsview-plugins/eventsview-plugin-fediverse/fediversepostsmodel.h @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2013-2026 Jolla Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef FEDIVERSEPOSTSMODEL_H +#define FEDIVERSEPOSTSMODEL_H + +#include "fediversepostsdatabase.h" +#include +#include + +class FediversePostsModel: public QAbstractListModel +{ + Q_OBJECT + Q_PROPERTY(QVariantList accountIdFilter READ accountIdFilter WRITE setAccountIdFilter NOTIFY accountIdFilterChanged) + Q_PROPERTY(int count READ rowCount NOTIFY countChanged) + +public: + enum FediversePostsRole { + FediverseId = 0, + Name, + AccountName, + Acct, + Body, + Timestamp, + Icon, + Images, + Url, + Link, + BoostedBy, + RebloggedBy, + RepliesCount, + FavouritesCount, + ReblogsCount, + Favourited, + Reblogged, + InstanceUrl, + InstanceIconPath, + Accounts + }; + + explicit FediversePostsModel(QObject *parent = 0); + + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + QVariant data(const QModelIndex &index, int role) const override; + QHash roleNames() const override; + + QVariantList accountIdFilter() const; + void setAccountIdFilter(const QVariantList &accountIds); + + Q_INVOKABLE void refresh(); + +signals: + void accountIdFilterChanged(); + void countChanged(); + +private slots: + void postsChanged(); + +private: + typedef QMap RowData; + QList m_data; + FediversePostsDatabase m_database; +}; + +#endif // FEDIVERSEPOSTSMODEL_H -- cgit v1.2.3