summaryrefslogtreecommitdiff
path: root/transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@jolla.com>2026-02-10 10:41:02 +0100
committerAndrew Branson <andrew.branson@jolla.com>2026-02-10 17:09:39 +0100
commit4351f4627ba9e71775438dd26c9acddd002c7e11 (patch)
tree3c72c980c5c81507109087bda67052b7ec8216b6 /transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp
Initial commit
Diffstat (limited to 'transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp')
-rw-r--r--transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp52
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();
+}