diff --git a/CMakeLists.txt b/CMakeLists.txt index 30b0c16..4fb4bb6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,133 +1,132 @@ set(KDEPIM_VERSION_NUMBER "5.13.40") cmake_minimum_required(VERSION 3.5) project(knotes VERSION ${KDEPIM_VERSION_NUMBER}) set(RELEASE_SERVICE_VERSION "20.03.70") set(KF5_MIN_VERSION "5.67.0") find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED) set(CMAKE_MODULE_PATH ${knotes_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH}) include(ECMInstallIcons) include(ECMSetupVersion) include(ECMAddTests) include(GenerateExportHeader) include(ECMGenerateHeaders) include(FeatureSummary) include(CheckFunctionExists) include(ECMGeneratePriFile) include(KDEInstallDirs) include(KDECMakeSettings) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include(ECMAddAppIcon) include(ECMQtDeclareLoggingCategory) # Do NOT add quote set(KDEPIM_DEV_VERSION alpha) # add an extra space if(DEFINED KDEPIM_DEV_VERSION) set(KDEPIM_DEV_VERSION " ${KDEPIM_DEV_VERSION}") endif() set(KDEPIM_VERSION "${KDEPIM_VERSION_NUMBER}${KDEPIM_DEV_VERSION} (${RELEASE_SERVICE_VERSION})") set(KDEPIM_LIB_VERSION "${KDEPIM_VERSION_NUMBER}") set(KDEPIM_LIB_SOVERSION "5") set(AKONADINOTES_LIB_VERSION "5.13.40") set(AKONADI_VERSION "5.13.40") set(CALENDARUTILS_LIB_VERSION "5.13.40") set(KDEPIM_APPS_LIB_VERSION "5.13.40") set(KONTACTINTERFACE_LIB_VERSION "5.13.40") set(KPIMTEXTEDIT_LIB_VERSION "5.13.40") set(LIBKDEPIM_LIB_VERSION "5.13.40") set(KMIME_LIB_VERSION "5.13.40") set(PIMCOMMON_LIB_VERSION "5.13.40") set(GRANTLEETHEME_LIB_VERSION "5.13.40") set(QT_REQUIRED_VERSION "5.12.0") find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED DBus Network PrintSupport Test Widgets Xml) find_package(Qt5X11Extras NO_MODULE) find_package(Grantlee5 "5.2" CONFIG REQUIRED) # Find KF5 package find_package(KF5Completion ${KF5_MIN_VERSION} REQUIRED) find_package(KF5Config ${KF5_MIN_VERSION} REQUIRED) find_package(KF5ConfigWidgets ${KF5_MIN_VERSION} REQUIRED) find_package(KF5CoreAddons ${KF5_MIN_VERSION} REQUIRED) find_package(KF5Crash ${KF5_MIN_VERSION} REQUIRED) -find_package(KF5DBusAddons ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5DNSSD ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5DocTools ${KF5_MIN_VERSION} REQUIRED) find_package(KF5GlobalAccel ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5IconThemes ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5ItemModels ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5ItemViews ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5KCMUtils ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5NewStuff ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5Notifications ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5NotifyConfig ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5Parts ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5TextWidgets ${KF5_MIN_VERSION} REQUIRED) find_package(KF5WidgetsAddons ${KF5_MIN_VERSION} REQUIRED) find_package(KF5WindowSystem ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5XmlGui ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5Notifications ${KF5_MIN_VERSION} CONFIG REQUIRED) # Find KdepimLibs Package find_package(KF5Akonadi ${AKONADI_VERSION} CONFIG REQUIRED) find_package(KF5AkonadiNotes ${AKONADINOTES_LIB_VERSION} CONFIG REQUIRED) find_package(KF5CalendarUtils ${CALENDARUTILS_LIB_VERSION} CONFIG REQUIRED) find_package(KF5KontactInterface ${KONTACTINTERFACE_LIB_VERSION} CONFIG REQUIRED) find_package(KF5Libkdepim ${LIBKDEPIM_LIB_VERSION} CONFIG REQUIRED) find_package(KF5Mime ${KMIME_LIB_VERSION} CONFIG REQUIRED) find_package(KF5PimCommonAkonadi ${PIMCOMMON_LIB_VERSION} CONFIG REQUIRED) find_package(KF5PimTextEdit ${KPIMTEXTEDIT_LIB_VERSION} CONFIG REQUIRED) find_package(KF5GrantleeTheme ${GRANTLEETHEME_LIB_VERSION} CONFIG REQUIRED) find_package(KF5AkonadiSearch "5.13.40" CONFIG REQUIRED) set_package_properties(KF5AkonadiSearch PROPERTIES DESCRIPTION "The Akonadi Search libraries" URL "https://kde.org/" TYPE REQUIRED PURPOSE "Provides search capabilities in KMail and Akonadi") if (NOT APPLE) find_package(X11) endif() set(KDEPIM_HAVE_X11 ${X11_FOUND}) set(CMAKE_MODULE_PATH ${knotes_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH}) find_package(Xsltproc) set_package_properties(Xsltproc PROPERTIES DESCRIPTION "XSLT processor from libxslt" TYPE REQUIRED PURPOSE "Required to generate D-Bus interfaces for all Akonadi resources.") include_directories(${knotes_SOURCE_DIR} ${knotes_BINARY_DIR}) if (EXISTS "${CMAKE_SOURCE_DIR}/.git") add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x060000) endif() add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x060000) add_definitions(-DQT_NO_FOREACH) set(CMAKE_CXX_STANDARD 14) configure_file(knotes-version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/knotes-version.h @ONLY) if(BUILD_TESTING) add_definitions(-DBUILD_TESTING) endif() add_subdirectory(noteshared) add_subdirectory(src) add_subdirectory(notesagent) install(FILES knotes.categories knotes.renamecategories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) add_subdirectory(doc) feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/notesagent/CMakeLists.txt b/notesagent/CMakeLists.txt index 9bed6c9..181f249 100644 --- a/notesagent/CMakeLists.txt +++ b/notesagent/CMakeLists.txt @@ -1,50 +1,49 @@ add_definitions(-DTRANSLATION_DOMAIN=\"akonadi_notes_agent\") set(notesagent_SRCS notesagent.cpp notesmanager.cpp notesagentsettingsdialog.cpp notesagentalarmdialog.cpp notesagentnotedialog.cpp ) kconfig_add_kcfg_files(notesagent_SRCS settings/notesagentsettings.kcfgc ) qt5_add_dbus_adaptor(notesagent_SRCS org.freedesktop.Akonadi.NotesAgent.xml notesagent.h NotesAgent) ecm_qt_declare_logging_category(notesagent_SRCS HEADER notesagent_debug.h IDENTIFIER NOTESAGENT_LOG CATEGORY_NAME org.kde.pim.notesagentagent) add_executable(akonadi_notes_agent ${notesagent_SRCS}) target_link_libraries(akonadi_notes_agent KF5::AkonadiCore KF5::Mime KF5::AkonadiAgentBase KF5::NotifyConfig - KF5::DBusAddons notesharedprivate KF5::PimCommon KF5::PimTextEdit KF5::XmlGui KF5::WindowSystem KF5::Notifications KF5::IconThemes KF5::I18n KF5::AkonadiNotes ) if( APPLE ) set_target_properties(akonadi_notes_agent PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${knotes_SOURCE_DIR}/notesagent/Info.plist.template) set_target_properties(akonadi_notes_agent PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "org.kde.Akonadi.archivemail") set_target_properties(akonadi_notes_agent PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "KDE Akonadi Notes") endif () install(TARGETS akonadi_notes_agent ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} ) install(FILES settings/notesagentsettings.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) install(FILES notesagent.desktop DESTINATION "${KDE_INSTALL_DATAROOTDIR}/akonadi/agents") install(FILES akonadi_notes_agent.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFY5RCDIR} ) add_subdirectory(kconf_update) diff --git a/notesagent/notesagent.cpp b/notesagent/notesagent.cpp index 64a83fc..14d4508 100644 --- a/notesagent/notesagent.cpp +++ b/notesagent/notesagent.cpp @@ -1,189 +1,189 @@ /* Copyright (C) 2013-2020 Laurent Montel This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "notesagent.h" #include "notesagentadaptor.h" #include "notesagentsettings.h" #include "notesagentsettingsdialog.h" #include "notesharedglobalconfig.h" #include "notesmanager.h" #include #include -#include +#include #include NotesAgent::NotesAgent(const QString &id) : Akonadi::AgentBase(id) , mAgentInitialized(false) { Kdelibs4ConfigMigrator migrate(QStringLiteral("notesagent")); migrate.setConfigFiles(QStringList() << QStringLiteral("akonadi_notes_agentrc") << QStringLiteral("akonadi_notes_agent.notifyrc")); migrate.migrate(); mNotesManager = new NotesManager(this); new NotesAgentAdaptor(this); - KDBusConnectionPool::threadConnection().registerObject(QStringLiteral("/NotesAgent"), + QDBusConnection::sessionBus().registerObject(QStringLiteral("/NotesAgent"), this, QDBusConnection::ExportAdaptors); QString service = QStringLiteral("org.freedesktop.Akonadi.NotesAgent"); if (Akonadi::ServerManager::hasInstanceIdentifier()) { service += QLatin1Char('.') + Akonadi::ServerManager::instanceIdentifier(); } - KDBusConnectionPool::threadConnection().registerService(service); + QDBusConnection::sessionBus().registerService(service); setNeedsNetwork(true); if (NotesAgentSettings::enabled()) { QTimer::singleShot(60 * 1000, this, &NotesAgent::slotStartAgent); } } NotesAgent::~NotesAgent() { } void NotesAgent::doSetOnline(bool online) { if (mAgentInitialized) { if (online) { reload(); } else { mNotesManager->stopAll(); } } } void NotesAgent::slotStartAgent() { mAgentInitialized = true; if (isOnline()) { mNotesManager->load(); } } void NotesAgent::reload() { if (NotesAgentSettings::enabled()) { mNotesManager->load(); } } void NotesAgent::setEnableAgent(bool enabled) { if (NotesAgentSettings::enabled() == enabled) { return; } NotesAgentSettings::setEnabled(enabled); NotesAgentSettings::self()->save(); if (enabled) { mNotesManager->load(); } else { mNotesManager->stopAll(); } } bool NotesAgent::enabledAgent() const { return NotesAgentSettings::enabled(); } void NotesAgent::configure(WId windowId) { showConfigureDialog((qlonglong)windowId); } void NotesAgent::showConfigureDialog(qlonglong windowId) { QPointer dialog = new NotesAgentSettingsDialog; if (windowId) { dialog->setAttribute(Qt::WA_NativeWindow, true); KWindowSystem::setMainWindow(dialog->windowHandle(), windowId); } if (dialog->exec()) { mNotesManager->load(); } delete dialog; } bool NotesAgent::receiveNotes() const { return NoteShared::NoteSharedGlobalConfig::receiveNotes(); } void NotesAgent::setReceiveNotes(bool b) { if (NoteShared::NoteSharedGlobalConfig::receiveNotes() != b) { NoteShared::NoteSharedGlobalConfig::setReceiveNotes(b); NoteShared::NoteSharedGlobalConfig::self()->save(); mNotesManager->updateNetworkListener(); } } int NotesAgent::port() const { return NoteShared::NoteSharedGlobalConfig::port(); } void NotesAgent::setPort(int value) { if (value < 0) { return; } if (NoteShared::NoteSharedGlobalConfig::port() != static_cast(value)) { NoteShared::NoteSharedGlobalConfig::setPort(value); NoteShared::NoteSharedGlobalConfig::self()->save(); if (NotesAgentSettings::enabled()) { mNotesManager->updateNetworkListener(); } } } void NotesAgent::setAlarmCheckInterval(int value) { if (value < 0) { return; } if (NoteShared::NoteSharedGlobalConfig::checkInterval() != static_cast(value)) { NoteShared::NoteSharedGlobalConfig::setCheckInterval(value); NoteShared::NoteSharedGlobalConfig::self()->save(); reload(); } } void NotesAgent::configurationChanged() { NoteShared::NoteSharedGlobalConfig::self()->config()->reparseConfiguration(); mNotesManager->updateNetworkListener(); } int NotesAgent::alarmCheckInterval() const { return NoteShared::NoteSharedGlobalConfig::checkInterval(); } AKONADI_AGENT_MAIN(NotesAgent)