summaryrefslogtreecommitdiff
path: root/buteo-plugins/buteo-sync-plugin-fediverse-notifications/fediversenotificationsplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'buteo-plugins/buteo-sync-plugin-fediverse-notifications/fediversenotificationsplugin.cpp')
-rw-r--r--buteo-plugins/buteo-sync-plugin-fediverse-notifications/fediversenotificationsplugin.cpp96
1 files changed, 96 insertions, 0 deletions
diff --git a/buteo-plugins/buteo-sync-plugin-fediverse-notifications/fediversenotificationsplugin.cpp b/buteo-plugins/buteo-sync-plugin-fediverse-notifications/fediversenotificationsplugin.cpp
new file mode 100644
index 0000000..c518e7e
--- /dev/null
+++ b/buteo-plugins/buteo-sync-plugin-fediverse-notifications/fediversenotificationsplugin.cpp
@@ -0,0 +1,96 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2013-2026 Jolla Ltd.
+ **
+ ** This program/library is free software; you can redistribute it and/or
+ ** modify it under the terms of the GNU Lesser General Public License
+ ** version 2.1 as published by the Free Software Foundation.
+ **
+ ** This program/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 program/library; if not, write to the Free
+ ** Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ ** 02110-1301 USA
+ **
+ ****************************************************************************/
+
+#include "fediversenotificationsplugin.h"
+#include "fediversenotificationssyncadaptor.h"
+#include "socialnetworksyncadaptor.h"
+
+#include <QCoreApplication>
+#include <QLocale>
+#include <QTranslator>
+
+namespace {
+class AppTranslator : public QTranslator
+{
+public:
+ explicit AppTranslator(QObject *parent)
+ : QTranslator(parent)
+ {
+ qApp->installTranslator(this);
+ }
+
+ ~AppTranslator() override
+ {
+ qApp->removeTranslator(this);
+ }
+};
+
+void ensureNotificationTranslations()
+{
+ static bool initialized = false;
+ if (initialized) {
+ return;
+ }
+
+ QCoreApplication *app = QCoreApplication::instance();
+ if (!app) {
+ return;
+ }
+
+ AppTranslator *engineeringEnglish = new AppTranslator(app);
+ engineeringEnglish->load(QStringLiteral("lipstick-jolla-home-fediverse-notifications_eng_en"),
+ QStringLiteral("/usr/share/translations"));
+
+ AppTranslator *translator = new AppTranslator(app);
+ translator->load(QLocale(),
+ QStringLiteral("lipstick-jolla-home-fediverse-notifications"),
+ QStringLiteral("-"),
+ QStringLiteral("/usr/share/translations"));
+
+ initialized = true;
+}
+}
+
+FediverseNotificationsPlugin::FediverseNotificationsPlugin(const QString& pluginName,
+ const Buteo::SyncProfile& profile,
+ Buteo::PluginCbInterface *callbackInterface)
+ : SocialdButeoPlugin(pluginName, profile, callbackInterface,
+ QStringLiteral("fediverse"),
+ SocialNetworkSyncAdaptor::dataTypeName(SocialNetworkSyncAdaptor::Notifications))
+{
+ ensureNotificationTranslations();
+}
+
+FediverseNotificationsPlugin::~FediverseNotificationsPlugin()
+{
+}
+
+SocialNetworkSyncAdaptor *FediverseNotificationsPlugin::createSocialNetworkSyncAdaptor()
+{
+ return new FediverseNotificationsSyncAdaptor(this);
+}
+
+Buteo::ClientPlugin* FediverseNotificationsPluginLoader::createClientPlugin(
+ const QString& pluginName,
+ const Buteo::SyncProfile& profile,
+ Buteo::PluginCbInterface* cbInterface)
+{
+ return new FediverseNotificationsPlugin(pluginName, profile, cbInterface);
+}