diff options
| author | Andrew Branson <andrew.branson@jolla.com> | 2026-02-10 10:41:02 +0100 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@jolla.com> | 2026-02-10 17:09:39 +0100 |
| commit | 4351f4627ba9e71775438dd26c9acddd002c7e11 (patch) | |
| tree | 3c72c980c5c81507109087bda67052b7ec8216b6 /transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp | |
Initial commit
Diffstat (limited to 'transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp')
| -rw-r--r-- | transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp b/transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp new file mode 100644 index 0000000..405b86e --- /dev/null +++ b/transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp @@ -0,0 +1,52 @@ +#include "mastodonplugininfo.h" +#include "mastodonshareservicestatus.h" + +MastodonPluginInfo::MastodonPluginInfo() + : SharingPluginInfo() + , m_mastodonShareServiceStatus(new MastodonShareServiceStatus(this)) +{ + m_capabilities << QLatin1String("image/jpeg") + << QLatin1String("image/png"); + + connect(m_mastodonShareServiceStatus, &MastodonShareServiceStatus::serviceReady, + this, &MastodonPluginInfo::serviceReady); + connect(m_mastodonShareServiceStatus, &MastodonShareServiceStatus::serviceError, + this, &MastodonPluginInfo::infoError); +} + +MastodonPluginInfo::~MastodonPluginInfo() +{ +} + +QList<SharingMethodInfo> MastodonPluginInfo::info() const +{ + return m_info; +} + +void MastodonPluginInfo::query() +{ + m_mastodonShareServiceStatus->queryStatus(MastodonShareServiceStatus::PassiveMode); +} + +void MastodonPluginInfo::serviceReady() +{ + m_info.clear(); + + for (int i = 0; i < m_mastodonShareServiceStatus->count(); ++i) { + SharingMethodInfo info; + + const MastodonShareServiceStatus::AccountDetails details = m_mastodonShareServiceStatus->details(i); + info.setDisplayName(details.providerName); + info.setSubtitle(details.displayName); + info.setAccountId(details.accountId); + + info.setMethodId(QLatin1String("Mastodon")); + info.setMethodIcon(QLatin1String("image://theme/graphic-m-service-mastodon")); + info.setShareUIPath(QLatin1String("/usr/share/nemo-transferengine/plugins/sharing/MastodonShareImage.qml")); + info.setCapabilities(m_capabilities); + + m_info << info; + } + + emit infoReady(); +} |
