summaryrefslogtreecommitdiff
path: root/transferengine-plugins/fediverseshareplugin/fediverseplugininfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'transferengine-plugins/fediverseshareplugin/fediverseplugininfo.cpp')
-rw-r--r--transferengine-plugins/fediverseshareplugin/fediverseplugininfo.cpp62
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();
+}