From 87605e149da17a58718059d16531bb9bfc6397cc Mon Sep 17 00:00:00 2001 From: Montel Laurent Date: Wed, 28 Jun 2017 17:34:55 +0200 Subject: [PATCH] Add support for multi instance --- agents/maildispatcher/maildispatcheragent.cpp | 8 +++++++- agents/maildispatcher/sendjob.cpp | 8 +++++++- agents/newmailnotifier/newmailnotifieragent.cpp | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/agents/maildispatcher/maildispatcheragent.cpp b/agents/maildispatcher/maildispatcheragent.cpp index de905beb2..4abdd0498 100644 --- a/agents/maildispatcher/maildispatcheragent.cpp +++ b/agents/maildispatcher/maildispatcheragent.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include "maildispatcher_debug.h" @@ -192,7 +193,12 @@ MailDispatcherAgent::MailDispatcherAgent(const QString &id) KDBusConnectionPool::threadConnection().registerObject(QStringLiteral("/MailDispatcherAgent"), this, QDBusConnection::ExportAdaptors); - KDBusConnectionPool::threadConnection().registerService(QStringLiteral("org.freedesktop.Akonadi.MailDispatcherAgent")); + QString service = QStringLiteral("org.freedesktop.Akonadi.MailDispatcherAgent"); + if (Akonadi::ServerManager::hasInstanceIdentifier()) { + service += QLatin1Char('.') + Akonadi::ServerManager::instanceIdentifier(); + } + + KDBusConnectionPool::threadConnection().registerService(service); d->queue = new OutboxQueue(this); connect(d->queue, SIGNAL(newItems()), diff --git a/agents/maildispatcher/sendjob.cpp b/agents/maildispatcher/sendjob.cpp index 3ed22b9b7..b012fe2d4 100644 --- a/agents/maildispatcher/sendjob.cpp +++ b/agents/maildispatcher/sendjob.cpp @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -321,8 +322,13 @@ bool SendJob::Private::filterItem(int filterset) Q_ASSERT(mailfilterInterface == nullptr); // TODO: create on stack + QString service = QStringLiteral("org.freedesktop.Akonadi.MailFilterAgent"); + if (Akonadi::ServerManager::hasInstanceIdentifier()) { + service += QLatin1Char('.') + Akonadi::ServerManager::instanceIdentifier(); + } + mailfilterInterface = new QDBusInterface( - QStringLiteral("org.freedesktop.Akonadi.MailFilterAgent"), + service, QStringLiteral("/MailFilterAgent"), QStringLiteral("org.freedesktop.Akonadi.MailFilterAgent"), KDBusConnectionPool::threadConnection(), q); diff --git a/agents/newmailnotifier/newmailnotifieragent.cpp b/agents/newmailnotifier/newmailnotifieragent.cpp index e016b9fda..8e923e348 100644 --- a/agents/newmailnotifier/newmailnotifieragent.cpp +++ b/agents/newmailnotifier/newmailnotifieragent.cpp @@ -27,6 +27,7 @@ #include "newmailnotifieragentsettings.h" #include "newmailnotifiersettingsdialog.h" +#include #include #include @@ -77,7 +78,12 @@ NewMailNotifierAgent::NewMailNotifierAgent(const QString &id) KDBusConnectionPool::threadConnection().registerObject(QStringLiteral("/NewMailNotifierAgent"), this, QDBusConnection::ExportAdaptors); - KDBusConnectionPool::threadConnection().registerService(QStringLiteral("org.freedesktop.Akonadi.NewMailNotifierAgent")); + + QString service = QStringLiteral("org.freedesktop.Akonadi.NewMailNotifierAgent"); + if (Akonadi::ServerManager::hasInstanceIdentifier()) { + service += QLatin1Char('.') + Akonadi::ServerManager::instanceIdentifier(); + } + KDBusConnectionPool::threadConnection().registerService(service); connect(Akonadi::AgentManager::self(), &Akonadi::AgentManager::instanceStatusChanged, this, &NewMailNotifierAgent::slotInstanceStatusChanged); connect(Akonadi::AgentManager::self(), &Akonadi::AgentManager::instanceRemoved, this, &NewMailNotifierAgent::slotInstanceRemoved); -- GitLab