diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.5) -set(PIM_VERSION "5.11.40") +set(PIM_VERSION "5.11.41") project(Akonadi VERSION ${PIM_VERSION}) if (MSVC) diff --git a/src/agentbase/agentbase.h b/src/agentbase/agentbase.h --- a/src/agentbase/agentbase.h +++ b/src/agentbase/agentbase.h @@ -37,6 +37,8 @@ class Akonadi__ControlAdaptor; class Akonadi__StatusAdaptor; +class KAboutData; + namespace Akonadi { @@ -471,13 +473,13 @@ QApplication app(argc, argv); debugAgent(argc, argv); const QString id = parseArguments(argc, argv); - T *r = new T(id); + T r(id); // check if T also inherits AgentBase::Observer and // if it does, automatically register it on itself - Observer *observer = dynamic_cast(r); + Observer *observer = dynamic_cast(&r); if (observer != nullptr) { - r->registerObserver(observer); + r.registerObserver(observer); } return init(r); } @@ -770,10 +772,12 @@ */ virtual void doSetOnline(bool online); + virtual KAboutData aboutData() const; + private: //@cond PRIVATE static QString parseArguments(int argc, char **argv); - static int init(AgentBase *r); + static int init(AgentBase &r); void setOnlineInternal(bool state); // D-Bus interface stuff diff --git a/src/agentbase/agentbase.cpp b/src/agentbase/agentbase.cpp --- a/src/agentbase/agentbase.cpp +++ b/src/agentbase/agentbase.cpp @@ -43,6 +43,7 @@ #include #include +#include #include #include @@ -959,12 +960,11 @@ // @endcond -int AgentBase::init(AgentBase *r) +int AgentBase::init(AgentBase &r) { KLocalizedString::setApplicationDomain("libakonadi5"); - int rv = qApp->exec(); - delete r; - return rv; + KAboutData::setApplicationData(r.aboutData()); + return qApp->exec(); } int AgentBase::status() const @@ -1081,6 +1081,11 @@ Q_UNUSED(online); } +KAboutData AgentBase::aboutData() const +{ + return KAboutData(qApp->applicationName(), agentName(), qApp->applicationVersion()); +} + void AgentBase::configure(WId windowId) { Q_UNUSED(windowId); diff --git a/src/agentbase/resourcebase.h b/src/agentbase/resourcebase.h --- a/src/agentbase/resourcebase.h +++ b/src/agentbase/resourcebase.h @@ -187,13 +187,13 @@ QApplication app(argc, argv); debugAgent(argc, argv); const QString id = parseArguments(argc, argv); - T *r = new T(id); + T r(id); // check if T also inherits AgentBase::Observer and // if it does, automatically register it on itself - Observer *observer = dynamic_cast(r); + Observer *observer = dynamic_cast(&r); if (observer != nullptr) { - r->registerObserver(observer); + r.registerObserver(observer); } return init(r); @@ -842,7 +842,7 @@ private: static QString parseArguments(int argc, char **argv); - static int init(ResourceBase *r); + static int init(ResourceBase &r); // dbus resource interface friend class ::Akonadi__ResourceAdaptor; diff --git a/src/agentbase/resourcebase.cpp b/src/agentbase/resourcebase.cpp --- a/src/agentbase/resourcebase.cpp +++ b/src/agentbase/resourcebase.cpp @@ -54,6 +54,7 @@ #include "akonadiagentbase_debug.h" #include +#include #include #include @@ -603,11 +604,11 @@ return identifier; } -int ResourceBase::init(ResourceBase *r) +int ResourceBase::init(ResourceBase &r) { - int rv = qApp->exec(); - delete r; - return rv; + KLocalizedString::setApplicationDomain("libakonadi5"); + KAboutData::setApplicationData(r.aboutData()); + return qApp->exec(); } void ResourceBasePrivate::slotAbortRequested()