diff options
Diffstat (limited to 'transferengine-plugins/fediverseshareplugin/fediverseplugininfo.cpp')
| -rw-r--r-- | transferengine-plugins/fediverseshareplugin/fediverseplugininfo.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/transferengine-plugins/fediverseshareplugin/fediverseplugininfo.cpp b/transferengine-plugins/fediverseshareplugin/fediverseplugininfo.cpp new file mode 100644 index 0000000..4e04be1 --- /dev/null +++ b/transferengine-plugins/fediverseshareplugin/fediverseplugininfo.cpp @@ -0,0 +1,62 @@ +/* + * SPDX-FileCopyrightText: 2013 - 2026 Jolla Ltd. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include "fediverseplugininfo.h" +#include "fediverseshareservicestatus.h" + +FediversePluginInfo::FediversePluginInfo() + : SharingPluginInfo() + , m_fediverseShareServiceStatus(new FediverseShareServiceStatus(this)) +{ + m_capabilities << QLatin1String("image/jpeg") + << QLatin1String("image/png") + << QLatin1String("video/mp4") + << QLatin1String("text/x-url") + << QLatin1String("text/plain"); + + connect(m_fediverseShareServiceStatus, &FediverseShareServiceStatus::serviceReady, + this, &FediversePluginInfo::serviceReady); + connect(m_fediverseShareServiceStatus, &FediverseShareServiceStatus::serviceError, + this, &FediversePluginInfo::infoError); +} + +FediversePluginInfo::~FediversePluginInfo() +{ +} + +QList<SharingMethodInfo> FediversePluginInfo::info() const +{ + return m_info; +} + +void FediversePluginInfo::query() +{ + m_fediverseShareServiceStatus->queryStatus(FediverseShareServiceStatus::PassiveMode); +} + +void FediversePluginInfo::serviceReady() +{ + m_info.clear(); + + for (int i = 0; i < m_fediverseShareServiceStatus->count(); ++i) { + SharingMethodInfo info; + + const FediverseShareServiceStatus::AccountDetails details = m_fediverseShareServiceStatus->details(i); + info.setDisplayName(details.providerName); + info.setSubtitle(details.displayName); + info.setAccountId(details.accountId); + + info.setMethodId(QLatin1String("Fediverse")); + info.setMethodIcon(details.iconPath.isEmpty() + ? QLatin1String("image://theme/icon-l-fediverse") + : details.iconPath); + info.setShareUIPath(QLatin1String("/usr/share/nemo-transferengine/plugins/sharing/FediverseSharePost.qml")); + info.setCapabilities(m_capabilities); + m_info << info; + } + + emit infoReady(); +} |
