diff options
Diffstat (limited to 'eventsview-plugins/eventsview-plugin-mastodon/mastodonpostsmodel.cpp')
| -rw-r--r-- | eventsview-plugins/eventsview-plugin-mastodon/mastodonpostsmodel.cpp | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/eventsview-plugins/eventsview-plugin-mastodon/mastodonpostsmodel.cpp b/eventsview-plugins/eventsview-plugin-mastodon/mastodonpostsmodel.cpp deleted file mode 100644 index aa98a95..0000000 --- a/eventsview-plugins/eventsview-plugin-mastodon/mastodonpostsmodel.cpp +++ /dev/null @@ -1,165 +0,0 @@ -/* - * 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 - */ - -#include "mastodonpostsmodel.h" -#include <QtCore/QVariantMap> - -namespace { - -static const char *URL_KEY = "url"; -static const char *TYPE_KEY = "type"; -static const char *TYPE_PHOTO = "photo"; -static const char *TYPE_VIDEO = "video"; - -QVariantMap createImageData(const SocialPostImage::ConstPtr &image) -{ - QVariantMap imageData; - imageData.insert(QLatin1String(URL_KEY), image->url()); - switch (image->type()) { - case SocialPostImage::Video: - imageData.insert(QLatin1String(TYPE_KEY), QLatin1String(TYPE_VIDEO)); - break; - default: - imageData.insert(QLatin1String(TYPE_KEY), QLatin1String(TYPE_PHOTO)); - break; - } - return imageData; -} - -} - -MastodonPostsModel::MastodonPostsModel(QObject *parent) - : QAbstractListModel(parent) -{ - connect(&m_database, &AbstractSocialPostCacheDatabase::postsChanged, - this, &MastodonPostsModel::postsChanged); - connect(&m_database, SIGNAL(accountIdFilterChanged()), - this, SIGNAL(accountIdFilterChanged())); -} - -int MastodonPostsModel::rowCount(const QModelIndex &parent) const -{ - Q_UNUSED(parent) - return m_data.count(); -} - -QVariant MastodonPostsModel::data(const QModelIndex &index, int role) const -{ - const int row = index.row(); - if (!index.isValid() || row < 0 || row >= m_data.count()) { - return QVariant(); - } - - return m_data.at(row).value(role); -} - -QHash<int, QByteArray> MastodonPostsModel::roleNames() const -{ - QHash<int, QByteArray> roleNames; - roleNames.insert(MastodonId, "mastodonId"); - roleNames.insert(Name, "name"); - roleNames.insert(AccountName, "accountName"); - roleNames.insert(Acct, "acct"); - roleNames.insert(Body, "body"); - roleNames.insert(Timestamp, "timestamp"); - roleNames.insert(Icon, "icon"); - roleNames.insert(Images, "images"); - roleNames.insert(Url, "url"); - roleNames.insert(Link, "link"); - roleNames.insert(BoostedBy, "boostedBy"); - roleNames.insert(RebloggedBy, "rebloggedBy"); - roleNames.insert(RepliesCount, "repliesCount"); - roleNames.insert(FavouritesCount, "favouritesCount"); - roleNames.insert(ReblogsCount, "reblogsCount"); - roleNames.insert(Favourited, "favourited"); - roleNames.insert(Reblogged, "reblogged"); - roleNames.insert(InstanceUrl, "instanceUrl"); - roleNames.insert(Accounts, "accounts"); - return roleNames; -} - -QVariantList MastodonPostsModel::accountIdFilter() const -{ - return m_database.accountIdFilter(); -} - -void MastodonPostsModel::setAccountIdFilter(const QVariantList &accountIds) -{ - m_database.setAccountIdFilter(accountIds); -} - -void MastodonPostsModel::refresh() -{ - m_database.refresh(); -} - -void MastodonPostsModel::postsChanged() -{ - QList<RowData> data; - QList<SocialPost::ConstPtr> postsData = m_database.posts(); - Q_FOREACH (const SocialPost::ConstPtr &post, postsData) { - RowData eventMap; - const QString accountName = m_database.accountName(post); - const QString postUrl = m_database.url(post); - const QString boostedBy = m_database.boostedBy(post); - const int repliesCount = m_database.repliesCount(post); - const int favouritesCount = m_database.favouritesCount(post); - const int reblogsCount = m_database.reblogsCount(post); - const bool favourited = m_database.favourited(post); - const bool reblogged = m_database.reblogged(post); - - eventMap.insert(MastodonPostsModel::MastodonId, post->identifier()); - eventMap.insert(MastodonPostsModel::Name, post->name()); - eventMap.insert(MastodonPostsModel::AccountName, accountName); - eventMap.insert(MastodonPostsModel::Acct, accountName); - eventMap.insert(MastodonPostsModel::Body, post->body()); - eventMap.insert(MastodonPostsModel::Timestamp, post->timestamp()); - eventMap.insert(MastodonPostsModel::Icon, post->icon()); - eventMap.insert(MastodonPostsModel::Url, postUrl); - eventMap.insert(MastodonPostsModel::Link, postUrl); - eventMap.insert(MastodonPostsModel::BoostedBy, boostedBy); - eventMap.insert(MastodonPostsModel::RebloggedBy, boostedBy); - eventMap.insert(MastodonPostsModel::RepliesCount, repliesCount); - eventMap.insert(MastodonPostsModel::FavouritesCount, favouritesCount); - eventMap.insert(MastodonPostsModel::ReblogsCount, reblogsCount); - eventMap.insert(MastodonPostsModel::Favourited, favourited); - eventMap.insert(MastodonPostsModel::Reblogged, reblogged); - eventMap.insert(MastodonPostsModel::InstanceUrl, m_database.instanceUrl(post)); - - QVariantList images; - Q_FOREACH (const SocialPostImage::ConstPtr &image, post->images()) { - images.append(createImageData(image)); - } - eventMap.insert(MastodonPostsModel::Images, images); - - QVariantList accountsVariant; - Q_FOREACH (int account, post->accounts()) { - accountsVariant.append(account); - } - eventMap.insert(MastodonPostsModel::Accounts, accountsVariant); - data.append(eventMap); - } - - const int oldCount = m_data.count(); - beginResetModel(); - m_data = data; - endResetModel(); - if (oldCount != m_data.count()) { - emit countChanged(); - } -} |
