diff --git a/CMakeLists.txt b/CMakeLists.txt index 9439b7ee..08ed43a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,154 +1,154 @@ cmake_minimum_required(VERSION 3.5) # 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(PIM_VERSION "5.14.40") set(RELEASE_SERVICE_VERSION "20.07.40") set(KDEPIM_VERSION "${PIM_VERSION}${KDEPIM_DEV_VERSION} (${RELEASE_SERVICE_VERSION})") project(korganizer VERSION ${PIM_VERSION}) if(POLICY CMP0063) cmake_policy(SET CMP0063 NEW) endif() set(KF5_MIN_VERSION "5.68.0") find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED) set(CMAKE_MODULE_PATH ${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) set(AKONADI_MIMELIB_VERSION "5.14.40") set(AKONADI_CONTACT_VERSION "5.14.40") set(IDENTITYMANAGEMENT_LIB_VERSION "5.14.40") set(KLDAP_LIB_VERSION "5.14.40") set(KMAILTRANSPORT_LIB_VERSION "5.14.40") set(CALENDARUTILS_LIB_VERSION "5.14.40") set(AKONADICALENDAR_LIB_VERSION "5.14.41") -set(KONTACTINTERFACE_LIB_VERSION "5.14.41") +set(KONTACTINTERFACE_LIB_VERSION "5.14.42") set(KMIME_LIB_VERSION "5.14.40") set(KPIMTEXTEDIT_LIB_VERSION "5.14.40") set(AKONADI_VERSION "5.14.40") set(KDEPIM_LIB_VERSION "${PIM_VERSION}") set(KDEPIM_LIB_SOVERSION "5") set(AKONADINOTES_LIB_VERSION "5.14.40") set(QT_REQUIRED_VERSION "5.12.0") option(KDEPIM_ENTERPRISE_BUILD "Enable features specific to the enterprise branch, which are normally disabled. Also, it disables many components not needed for Kontact such as the Kolab client." FALSE) find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED DBus Gui Widgets Test UiTools) find_package(KUserFeedback 0.9.90 CONFIG) # Needs Provider::describeDataSources() set_package_properties(KUserFeedback PROPERTIES DESCRIPTION "User Feedback lib" TYPE OPTIONAL PURPOSE "Allow to send Telemetry Information (optional). It can be disable in apps.") if (TARGET KUserFeedbackWidgets) add_definitions(-DWITH_KUSERFEEDBACK) endif() set(KDEPIM_APPS_LIB_VERSION_LIB "5.14.40") set(PIMCOMMON_LIB_VERSION_LIB "5.14.40") set(LIBKDEPIM_LIB_VERSION_LIB "5.14.40") set(LIBINCIDENCEEDITOR_LIB_VERSION_LIB "5.14.40") set(CALENDARSUPPORT_LIB_VERSION_LIB "5.14.41") set(EVENTVIEW_LIB_VERSION_LIB "5.14.40") find_package(KF5AkonadiSearch "5.14.40" CONFIG REQUIRED) set_package_properties(KF5AkonadiSearch PROPERTIES DESCRIPTION "The Akonadi Search libraries" URL "https://www.kde.org" TYPE REQUIRED PURPOSE "Provides search capabilities in KMail and Akonadi") # Find KF5 package find_package(KF5Codecs ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5Completion ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5Config ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5ConfigWidgets ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5CoreAddons ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5Crash ${KF5_MIN_VERSION} REQUIRED) find_package(KF5DBusAddons ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5DocTools ${KF5_MIN_VERSION} REQUIRED) find_package(KF5IconThemes ${KF5_MIN_VERSION} REQUIRED) find_package(KF5ItemViews ${KF5_MIN_VERSION} REQUIRED) find_package(KF5JobWidgets ${KF5_MIN_VERSION} REQUIRED) find_package(KF5KCMUtils ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5NewStuff ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5Parts ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5Service ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5WidgetsAddons ${KF5_MIN_VERSION} CONFIG 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_package(KF5Holidays ${KF5_MIN_VERSION} CONFIG REQUIRED) # Find KdepimLibs Package find_package(KF5PimTextEdit ${KPIMTEXTEDIT_LIB_VERSION} CONFIG REQUIRED) find_package(KF5Akonadi ${AKONADI_VERSION} CONFIG REQUIRED) find_package(KF5Contacts ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5CalendarCore ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5AkonadiContact ${AKONADI_CONTACT_VERSION} CONFIG REQUIRED) find_package(KF5IdentityManagement ${IDENTITYMANAGEMENT_LIB_VERSION} CONFIG REQUIRED) find_package(KF5MailTransportAkonadi ${KMAILTRANSPORT_LIB_VERSION} CONFIG REQUIRED) find_package(KF5AkonadiMime ${AKONADI_MIMELIB_VERSION} CONFIG REQUIRED) find_package(KF5CalendarUtils ${CALENDARUTILS_LIB_VERSION} CONFIG REQUIRED) find_package(KF5Ldap ${KLDAP_LIB_VERSION} CONFIG REQUIRED) find_package(KF5AkonadiCalendar ${AKONADICALENDAR_LIB_VERSION} CONFIG REQUIRED) find_package(Phonon4Qt5 CONFIG REQUIRED) find_package(KF5KontactInterface ${KONTACTINTERFACE_LIB_VERSION} CONFIG REQUIRED) find_package(KF5Mime ${KMIME_LIB_VERSION} CONFIG REQUIRED) find_package(KF5AkonadiNotes ${AKONADINOTES_LIB_VERSION} CONFIG REQUIRED) find_package(KF5KdepimDBusInterfaces ${KDEPIM_APPS_LIB_VERSION_LIB} CONFIG REQUIRED) find_package(KF5PimCommonAkonadi ${PIMCOMMON_LIB_VERSION_LIB} CONFIG REQUIRED) find_package(KF5LibkdepimAkonadi ${LIBKDEPIM_LIB_VERSION_LIB} CONFIG REQUIRED) find_package(KF5IncidenceEditor ${LIBINCIDENCEEDITOR_LIB_VERSION_LIB} CONFIG REQUIRED) find_package(KF5CalendarSupport ${CALENDARSUPPORT_LIB_VERSION_LIB} CONFIG REQUIRED) find_package(KF5EventViews ${EVENTVIEW_LIB_VERSION_LIB} CONFIG REQUIRED) if(NOT APPLE) find_package(X11) endif() set(KDEPIM_HAVE_X11 ${X11_FOUND}) configure_file(config-korganizer.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-korganizer.h) configure_file(korgac/config-enterprise.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-enterprise.h) include_directories(${korganizer_SOURCE_DIR} ${korganizer_BINARY_DIR} ${korgac_SOURCE_DIR} ${korgac_BINARY_DIR}) configure_file(korganizer-version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/korganizer-version.h @ONLY) if (EXISTS "${CMAKE_SOURCE_DIR}/.git") add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050e00) endif() add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x054400) set(CMAKE_CXX_STANDARD 14) #add_definitions(-DQT_NO_FOREACH) add_subdirectory(src) add_subdirectory(korgac) ecm_qt_install_logging_categories( EXPORT KORGANIZER FILE korganizer.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} ) add_subdirectory(doc) feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/src/kontactplugin/korganizer/CMakeLists.txt b/src/kontactplugin/korganizer/CMakeLists.txt index c231b6d8..157379d2 100644 --- a/src/kontactplugin/korganizer/CMakeLists.txt +++ b/src/kontactplugin/korganizer/CMakeLists.txt @@ -1,75 +1,81 @@ ########### next target ############### set(libcommon_SRCS korg_uniqueapp.cpp) ecm_qt_declare_logging_category(libcommon_SRCS HEADER korganizerplugin_debug.h IDENTIFIER KORGANIZERPLUGIN_LOG CATEGORY_NAME org.kde.pim.korganizer_plugin DESCRIPTION "korganizer (korganizer kontact plugins)" OLD_CATEGORY_NAMES log_korganizer_plugin EXPORT KORGANIZER ) set(kontact_korganizerplugin_PART_SRCS korganizerplugin.cpp apptsummarywidget.cpp summaryeventinfo.cpp ${libcommon_SRCS}) qt5_add_dbus_interfaces(kontact_korganizerplugin_PART_SRCS ${korganizer_SOURCE_DIR}/src/data/org.kde.Korganizer.Calendar.xml ${korganizer_SOURCE_DIR}/src/data/org.kde.korganizer.Korganizer.xml) add_library(kontact_korganizerplugin MODULE ${kontact_korganizerplugin_PART_SRCS}) target_link_libraries(kontact_korganizerplugin KF5::AkonadiCalendar KF5::CalendarUtils KF5::Contacts KF5::CalendarCore KF5::Libkdepim KF5::KontactInterface korganizerprivate KF5::CalendarSupport KF5::AkonadiCalendar KF5::WindowSystem KF5::I18n) +kcoreaddons_desktop_to_json(kontact_korganizerplugin korganizerplugin.desktop) + ########### next target ############### set(kontact_todoplugin_PART_SRCS todoplugin.cpp todosummarywidget.cpp ${libcommon_SRCS}) qt5_add_dbus_interfaces(kontact_todoplugin_PART_SRCS ${korganizer_SOURCE_DIR}/src/data/org.kde.Korganizer.Calendar.xml ${korganizer_SOURCE_DIR}/src/data/org.kde.korganizer.Korganizer.xml) add_library(kontact_todoplugin MODULE ${kontact_todoplugin_PART_SRCS}) target_link_libraries(kontact_todoplugin KF5::AkonadiCalendar KF5::Contacts KF5::Libkdepim KF5::KontactInterface KF5::CalendarCore KF5::CalendarUtils KF5::CalendarSupport KF5::AkonadiCalendar KF5::WindowSystem) +kcoreaddons_desktop_to_json(kontact_todoplugin todoplugin.desktop) + ########### next target ############### set(kontact_journalplugin_PART_SRCS journalplugin.cpp ${libcommon_SRCS}) qt5_add_dbus_interfaces(kontact_journalplugin_PART_SRCS ${korganizer_SOURCE_DIR}/src/data/org.kde.Korganizer.Calendar.xml) add_library(kontact_journalplugin MODULE ${kontact_journalplugin_PART_SRCS}) target_link_libraries(kontact_journalplugin KF5::KontactInterface KF5::WindowSystem) +kcoreaddons_desktop_to_json(kontact_journalplugin journalplugin.desktop) + ########### next target ############### set(kcm_apptsummary_PART_SRCS kcmapptsummary.cpp) ki18n_wrap_ui(kcm_apptsummary_PART_SRCS apptsummaryconfig_base.ui) add_library(kcm_apptsummary MODULE ${kcm_apptsummary_PART_SRCS}) target_link_libraries(kcm_apptsummary KF5::KCMUtils KF5::I18n) ########### next target ############### set(kcm_todosummary_PART_SRCS kcmtodosummary.cpp) ki18n_wrap_ui(kcm_todosummary_PART_SRCS todosummaryconfig_base.ui) add_library(kcm_todosummary MODULE ${kcm_todosummary_PART_SRCS}) target_link_libraries(kcm_todosummary Qt5::Widgets KF5::KCMUtils KF5::I18n) ########## Unit Test ########### if (BUILD_TESTING) add_subdirectory(autotests) endif() ########### install files ############### install(TARGETS kcm_apptsummary DESTINATION ${KDE_INSTALL_PLUGINDIR}) install(TARGETS kcm_todosummary DESTINATION ${KDE_INSTALL_PLUGINDIR}) -install(TARGETS kontact_korganizerplugin DESTINATION ${KDE_INSTALL_PLUGINDIR}) -install(TARGETS kontact_todoplugin DESTINATION ${KDE_INSTALL_PLUGINDIR}) -install(TARGETS kontact_journalplugin DESTINATION ${KDE_INSTALL_PLUGINDIR}) +install(TARGETS kontact_korganizerplugin DESTINATION ${KDE_INSTALL_PLUGINDIR}/kontact5) +install(TARGETS kontact_todoplugin DESTINATION ${KDE_INSTALL_PLUGINDIR}/kontact5) +install(TARGETS kontact_journalplugin DESTINATION ${KDE_INSTALL_PLUGINDIR}/kontact5) install(FILES korganizerplugin.desktop todoplugin.desktop journalplugin.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}/kontact) install(FILES kcmapptsummary.desktop kcmtodosummary.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) install(FILES korganizer.setdlg DESTINATION ${KDE_INSTALL_DATADIR}/kontact/ksettingsdialog) diff --git a/src/kontactplugin/korganizer/journalplugin.cpp b/src/kontactplugin/korganizer/journalplugin.cpp index c85df60c..1ca4f726 100644 --- a/src/kontactplugin/korganizer/journalplugin.cpp +++ b/src/kontactplugin/korganizer/journalplugin.cpp @@ -1,129 +1,129 @@ /* This file is part of Kontact. Copyright (c) 2004,2009 Allen Winter 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; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #include "journalplugin.h" #include "calendarinterface.h" #include "korg_uniqueapp.h" #include #include #include #include "korganizerplugin_debug.h" #include #include -EXPORT_KONTACT_PLUGIN(JournalPlugin, journal) +EXPORT_KONTACT_PLUGIN_WITH_JSON(JournalPlugin, "journalplugin.json") JournalPlugin::JournalPlugin(KontactInterface::Core *core, const QVariantList &) : KontactInterface::Plugin(core, core, "korganizer", "journal") , mIface(nullptr) { setComponentName(QStringLiteral("korganizer"), i18n("KOrganizer")); QAction *action = new QAction(QIcon::fromTheme(QStringLiteral("journal-new")), i18nc("@action:inmenu", "New Journal..."), this); actionCollection()->addAction(QStringLiteral("new_journal"), action); actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_J)); QString str = i18nc("@info:status", "Create a new journal"); action->setStatusTip(str); action->setToolTip(str); action->setWhatsThis( i18nc("@info:whatsthis", "You will be presented with a dialog where you can create " "a new journal entry.")); connect(action, &QAction::triggered, this, &JournalPlugin::slotNewJournal); insertNewAction(action); mUniqueAppWatcher = new KontactInterface::UniqueAppWatcher( new KontactInterface::UniqueAppHandlerFactory(), this); } JournalPlugin::~JournalPlugin() { } KParts::Part *JournalPlugin::createPart() { KParts::Part *part = loadPart(); if (!part) { return nullptr; } mIface = new OrgKdeKorganizerCalendarInterface( QStringLiteral("org.kde.korganizer"), QStringLiteral( "/Calendar"), QDBusConnection::sessionBus(), this); return part; } void JournalPlugin::select() { interface()->showJournalView(); } QStringList JournalPlugin::invisibleToolbarActions() const { QStringList invisible; invisible += QStringLiteral("new_event"); invisible += QStringLiteral("new_todo"); invisible += QStringLiteral("new_journal"); invisible += QStringLiteral("view_whatsnext"); invisible += QStringLiteral("view_day"); invisible += QStringLiteral("view_nextx"); invisible += QStringLiteral("view_month"); invisible += QStringLiteral("view_workweek"); invisible += QStringLiteral("view_week"); invisible += QStringLiteral("view_list"); invisible += QStringLiteral("view_todo"); invisible += QStringLiteral("view_journal"); invisible += QStringLiteral("view_timeline"); return invisible; } OrgKdeKorganizerCalendarInterface *JournalPlugin::interface() { if (!mIface) { part(); } Q_ASSERT(mIface); return mIface; } void JournalPlugin::slotNewJournal() { interface()->openJournalEditor(QString(), QDate()); } bool JournalPlugin::isRunningStandalone() const { return mUniqueAppWatcher->isRunningStandalone(); } #include "journalplugin.moc" diff --git a/src/kontactplugin/korganizer/journalplugin.desktop b/src/kontactplugin/korganizer/journalplugin.desktop index be39af0a..5a208b48 100644 --- a/src/kontactplugin/korganizer/journalplugin.desktop +++ b/src/kontactplugin/korganizer/journalplugin.desktop @@ -1,143 +1,143 @@ [Desktop Entry] Type=Service Icon=view-pim-journal X-KDE-ServiceTypes=Kontact/Plugin -X-KDE-Library=kontact_journalplugin +X-KDE-Library=kontact5/kontact_journalplugin X-KDE-KontactPluginVersion=10 X-KDE-KontactPartLibraryName=korganizerpart X-KDE-KontactPartExecutableName=korganizer X-KDE-KontactPluginHasSummary=false X-KDE-PluginInfo-Website=https://kontact.kde.org/components/korganizer.html X-KDE-PluginInfo-Name=kontact_journalplugin X-KDE-PluginInfo-Version=0.1 X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-EnabledByDefault=true Comment=Kontact KOrganizer Journal Plugin Comment[af]=Kontact KOrganizer joernaal inprop module Comment[ar]=ملحقة يوميّة «منظّمك» لِ‍«متراسلك» Comment[bg]=Приставка за дневника Comment[bs]=Kontat KOrganizer dodatak za dnevnik Comment[ca]=Connector de diaris del KOrganizer per al Kontact Comment[ca@valencia]=Connector de diaris del KOrganizer per al Kontact Comment[cs]=Modul deníku KOrganizeru pro aplikaci Kontact Comment[da]=Kontact KOrganizer journal-plugin Comment[de]=Kontact KOrganizer-Modul für Journaleinträge Comment[el]=Πρόσθετο KOrganizer χρονικού του Kontact Comment[en_GB]=Kontact KOrganizer Journal Plugin Comment[eo]=Kontact-KOrganizilo-ĵurnalkromaĵo Comment[es]=Complemento de diario de KOrganizer para Kontact Comment[et]=Kontacti KOrganizeri päevikuplugin Comment[eu]=Kontact-en KOrganizer egunkari plugin-a Comment[fa]=وصله نشریه Kontact KOrganizer Comment[fi]=Päiväkirjaliitännäinen Comment[fr]=Module de journal KOrganizer pour Kontact Comment[fy]=Kontact KOrganizer Journaalplugin Comment[ga]=Breiseán Dialainne Korganizer le haghaidh Kontact Comment[gl]=Complemento para o Diario en KOrganizer de Kontact Comment[hu]=Kontact-bővítőmodul a KOrganizer-naplóhoz Comment[ia]=Plug-in de Jornal de Kontact KOrganizer Comment[is]=Kontact KOrganizer dagbókar íforrit Comment[it]=Estensione per Kontact del diario di KOrganizer Comment[ja]=Kontact KOrganizer 日記プラグイン Comment[ka]=Kontact KOrganizer ჟურნალის მოდული Comment[kk]=Kontact-тың KOrganizer күнделігінің плагині Comment[km]=កម្មវិធី​ជំនួយ​ទិនានុប្បវត្តិ KOrganizer ក្នុង Kontact Comment[ko]=Kontact KOrganizer 저널 플러그인 Comment[lt]=Kontact KOrganizer dienyno papildinys Comment[lv]=Kontact KOrganizer dienasgrāmatas spraudnis Comment[mr]=कॉन्टेक्ट के-ऑर्गनायझर जर्नल प्लगइन Comment[ms]=Plugin Jurnal KOrganizer Kontact Comment[nb]=Kontact programtillegg for KOrganizer dagbok Comment[nds]=KOrganizer-Daagbookmoduul för Kontact Comment[ne]=केडीई आयोजक जर्नल प्लगइन सम्पर्क गर्नुहोस् Comment[nl]=Kontact KOrganizer Journaalplug-in Comment[nn]=Kontakt-programtillegg for KOrganizer-dagbøker Comment[pl]=Wtyczka Kontact do współpracy z dziennikiem KOrganizera Comment[pt]='Plugin' de Diários do KOrganizer para o Kontact Comment[pt_BR]=Plugin de diário do KOrganizer para o Kontact Comment[ru]=Дневник Comment[sk]=Modul Kontact KOrganizer žurnálu Comment[sl]=Vstavek dnevnika KOrganizer za Kontact Comment[sr]=Прикључак Контакта за К‑организаторов дневник Comment[sr@ijekavian]=Прикључак Контакта за К‑организаторов дневник Comment[sr@ijekavianlatin]=Priključak Kontacta za K‑organizatorov dnevnik Comment[sr@latin]=Priključak Kontacta za K‑organizatorov dnevnik Comment[sv]=Kontacts journalinsticksprogram för Korganizer Comment[ta]=கேஅமைப்பாளர் செய்தி சொருகுப்பொருளை தொடர்புகொள் Comment[tr]=Kontact KOrganizer Günlük Eklentisi Comment[uk]=Додаток журналу для (KOrganizer) Kontact Comment[wa]=Module djournå KOrganizer di Kontact Comment[x-test]=xxKontact KOrganizer Journal Pluginxx Comment[zh_CN]=Kontact KOrganizer 日记插件 Comment[zh_TW]=Kontact KOrganizer Journal 外掛程式 Name=Journal Name[af]=Joernaal Name[ar]=اليوميّات Name[bg]=Journal Name[br]=Deizlevr Name[bs]=Dnevnik Name[ca]=Diari Name[ca@valencia]=Diari Name[cs]=Deník Name[cy]=Dyddlyfr Name[da]=Journal Name[de]=Journale Name[el]=Χρονικό Name[en_GB]=Journal Name[eo]=Ĵurnalo Name[es]=Diario Name[et]=Päevik Name[eu]=Egunkaria Name[fa]=نشریه Name[fi]=Päiväkirja Name[fr]=Journal Name[fy]=Journaal Name[ga]=Dialann Name[gl]=Diario Name[he]=יומן Name[hu]=Napló Name[ia]=Jornal Name[is]=Dagbók Name[it]=Diario Name[ja]=日記 Name[ka]=ჟურნალი Name[kk]=Күнделік Name[km]=ទិនានុប្បវត្តិ Name[ko]=저널 Name[lt]=Dienynas Name[lv]=Dienasgrāmata Name[mai]=पत्रिका Name[mr]=जर्नल Name[ms]=Jurnal Name[nb]=Dagbok Name[nds]=Daagbook Name[ne]=जर्नल Name[nl]=Journaal Name[nn]=Dagbok Name[pa]=ਜਰਨਲ Name[pl]=Dziennik Name[pt]=Diário Name[pt_BR]=Diário Name[ro]=Jurnal Name[ru]=Дневник Name[sk]=Žurnál Name[sl]=Dnevnik Name[sr]=Дневник Name[sr@ijekavian]=Дневник Name[sr@ijekavianlatin]=Dnevnik Name[sr@latin]=Dnevnik Name[sv]=Journal Name[ta]=பத்திரிகை Name[th]=บันทึกประจำวัน Name[tr]=Günlük Name[ug]=ژۇرنال Name[uk]=Журнал Name[uz]=Kundalik Name[uz@cyrillic]=Кундалик Name[wa]=Djournå Name[x-test]=xxJournalxx Name[zh_CN]=日记 Name[zh_TW]=日誌 diff --git a/src/kontactplugin/korganizer/korganizerplugin.cpp b/src/kontactplugin/korganizer/korganizerplugin.cpp index 54816efc..60ce1036 100644 --- a/src/kontactplugin/korganizer/korganizerplugin.cpp +++ b/src/kontactplugin/korganizer/korganizerplugin.cpp @@ -1,230 +1,230 @@ /* This file is part of Kontact. Copyright (c) 2001 Matthias Hoelzer-Kluepfel 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; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #include "korganizerplugin.h" #include "apptsummarywidget.h" #include "calendarinterface.h" #include "korg_uniqueapp.h" #include #include #include #include #include #include #include #include #include "korganizerplugin_debug.h" #include #include #include #include #include #include -EXPORT_KONTACT_PLUGIN(KOrganizerPlugin, korganizer) +EXPORT_KONTACT_PLUGIN_WITH_JSON(KOrganizerPlugin, "korganizerplugin.json") KOrganizerPlugin::KOrganizerPlugin(KontactInterface::Core *core, const QVariantList &) : KontactInterface::Plugin(core, core, "korganizer", "calendar") , mIface(nullptr) { setComponentName(QStringLiteral("korganizer"), i18n("KOrganizer")); QAction *action = new QAction(QIcon::fromTheme(QStringLiteral("appointment-new")), i18nc("@action:inmenu", "New Event..."), this); actionCollection()->addAction(QStringLiteral("new_event"), action); actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_E)); QString str = i18nc("@info:status", "Create a new event"); action->setStatusTip(str); action->setToolTip(str); action->setWhatsThis( i18nc("@info:whatsthis", "You will be presented with a dialog where you can create a new event item.")); connect(action, &QAction::triggered, this, &KOrganizerPlugin::slotNewEvent); insertNewAction(action); mUniqueAppWatcher = new KontactInterface::UniqueAppWatcher( new KontactInterface::UniqueAppHandlerFactory(), this); } KOrganizerPlugin::~KOrganizerPlugin() { } KontactInterface::Summary *KOrganizerPlugin::createSummaryWidget(QWidget *parent) { return new ApptSummaryWidget(this, parent); } KParts::Part *KOrganizerPlugin::createPart() { KParts::Part *part = loadPart(); if (!part) { return nullptr; } mIface = new OrgKdeKorganizerCalendarInterface( QStringLiteral("org.kde.korganizer"), QStringLiteral( "/Calendar"), QDBusConnection::sessionBus(), this); return part; } QStringList KOrganizerPlugin::invisibleToolbarActions() const { QStringList invisible; invisible += QStringLiteral("new_event"); invisible += QStringLiteral("new_todo"); invisible += QStringLiteral("new_journal"); invisible += QStringLiteral("view_todo"); invisible += QStringLiteral("view_journal"); return invisible; } void KOrganizerPlugin::select() { interface()->showEventView(); } OrgKdeKorganizerCalendarInterface *KOrganizerPlugin::interface() { if (!mIface) { part(); } Q_ASSERT(mIface); return mIface; } void KOrganizerPlugin::slotNewEvent() { interface()->openEventEditor(QString()); } bool KOrganizerPlugin::isRunningStandalone() const { return mUniqueAppWatcher->isRunningStandalone(); } bool KOrganizerPlugin::canDecodeMimeData(const QMimeData *mimeData) const { return mimeData->hasText() || KPIM::MailList::canDecode(mimeData) || KContacts::VCardDrag::canDecode(mimeData); } void KOrganizerPlugin::processDropEvent(QDropEvent *event) { const QMimeData *md = event->mimeData(); if (KContacts::VCardDrag::canDecode(md)) { KContacts::Addressee::List contacts; KContacts::VCardDrag::fromMimeData(md, contacts); KContacts::Addressee::List::ConstIterator it; KContacts::Addressee::List::ConstIterator end(contacts.constEnd()); QStringList attendees; for (it = contacts.constBegin(); it != end; ++it) { QString email = (*it).fullEmail(); if (email.isEmpty()) { attendees.append((*it).realName() + QStringLiteral("<>")); } else { attendees.append(email); } } interface()->openEventEditor(i18nc("@item", "Meeting"), QString(), QStringList(), attendees); return; } if (KCalUtils::ICalDrag::canDecode(event->mimeData())) { KCalendarCore::MemoryCalendar::Ptr cal( new KCalendarCore::MemoryCalendar(QTimeZone::systemTimeZone())); if (KCalUtils::ICalDrag::fromMimeData(event->mimeData(), cal)) { KCalendarCore::Incidence::List incidences = cal->incidences(); Q_ASSERT(incidences.count()); if (!incidences.isEmpty()) { event->accept(); KCalendarCore::Incidence::Ptr i = incidences.first(); QString summary; if (i->type() == KCalendarCore::Incidence::TypeJournal) { summary = i18nc("@item", "Note: %1", i->summary()); } else { summary = i->summary(); } interface()->openEventEditor(summary, i->description(), QStringList()); return; } // else fall through to text decoding } } if (md->hasText()) { const QString text = md->text(); qCDebug(KORGANIZERPLUGIN_LOG) << "DROP:" << text; interface()->openEventEditor(text); return; } if (KPIM::MailList::canDecode(md)) { KPIM::MailList mails = KPIM::MailList::fromMimeData(md); event->accept(); if (mails.count() != 1) { KMessageBox::sorry( core(), i18nc("@info", "Dropping multiple mails is not supported.")); } else { KPIM::MailSummary mail = mails.first(); QString txt = i18nc("@item", "From: %1\nTo: %2\nSubject: %3", mail.from(), mail.to(), mail.subject()); QTemporaryFile tf; tf.setAutoRemove(true); tf.open(); QString uri = QLatin1String("kmail:") + QString::number(mail.serialNumber()); tf.write(event->mimeData()->data(QStringLiteral("message/rfc822"))); interface()->openEventEditor( i18nc("@item", "Mail: %1", mail.subject()), txt, uri, tf.fileName(), QStringList(), QStringLiteral("message/rfc822")); tf.close(); } return; } qCWarning(KORGANIZERPLUGIN_LOG) << QStringLiteral("Cannot handle drop events of type '%1'.").arg( event->mimeData()->formats().join(QLatin1Char(';'))); } #include "korganizerplugin.moc" diff --git a/src/kontactplugin/korganizer/korganizerplugin.desktop b/src/kontactplugin/korganizer/korganizerplugin.desktop index 00e497f1..34bcee86 100644 --- a/src/kontactplugin/korganizer/korganizerplugin.desktop +++ b/src/kontactplugin/korganizer/korganizerplugin.desktop @@ -1,155 +1,155 @@ [Desktop Entry] Type=Service Icon=view-pim-calendar X-KDE-ServiceTypes=Kontact/Plugin,KPluginInfo -X-KDE-Library=kontact_korganizerplugin +X-KDE-Library=kontact5/kontact_korganizerplugin X-KDE-KontactPluginVersion=10 X-KDE-KontactPartLibraryName=korganizerpart X-KDE-KontactPartExecutableName=korganizer X-KDE-KontactPluginHasSummary=true X-KDE-PluginInfo-Website=https://kontact.kde.org/components/korganizer.html X-KDE-PluginInfo-Name=kontact_korganizerplugin X-KDE-PluginInfo-Version=0.1 X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-EnabledByDefault=true Comment=Kontact KOrganizer Plugin Comment[af]=Kontact KOrganizer inprop module Comment[ar]=ملحقة «منظّمك» لِ‍«متراسلك» Comment[bg]=Приставка за календар и връзка с KOrganizer Comment[br]=Lugent Kontact KOrganizer Comment[bs]=Kontakt KOrganizer dodatak Comment[ca]=Connector del KOrganizer per al Kontact Comment[ca@valencia]=Connector del KOrganizer per al Kontact Comment[cs]=Modul KOrganizeru pro aplikaci Kontact Comment[cy]=Ategyn KOrganizer Kontact Comment[da]=Kontact KOrganizer-plugin Comment[de]=KOrganizer-Modul für Kontact Comment[el]=Πρόσθετο KOrganizer του Kontact Comment[en_GB]=Kontact KOrganizer Plugin Comment[eo]=Kontact-KOrganizilo-kromaĵo Comment[es]=Complemento de KOrganizer para Kontact Comment[et]=Kontacti KOrganizeri plugin Comment[eu]=Kontact-en KOrganizer plugin-a Comment[fa]=وصله Kontact KOrganizer Comment[fi]=Kontactin KOrganizer-liitännäinen Comment[fr]=Module KOrganizer pour Kontact Comment[fy]=Kontact KOrganizer-plugin Comment[ga]=Breiseán KOrganizer le haghaidh Kontact Comment[gl]=Complemento de KOrganizer para Kontact Comment[he]=תוסף KOrganizer עבור Kontact Comment[hu]=Kontact KOrganizer-bővítőmodul Comment[ia]=Plug-in Kontact KOrganizer Comment[is]=Kontact KOrganizer íforrit Comment[it]=Estensione per Kontact di KOrganizer Comment[ja]=Kontact KOrganizer プラグイン Comment[ka]=Kontact KOrganizer მოდული Comment[kk]=Kontact-тың KOrganizer плагині Comment[km]=កម្មវិធី​ជំនួយ KOrganizer ក្នុង Kontact Comment[ko]=Kontact KOrganizer 플러그인 Comment[lt]=Kontact KOrganizer papildinys Comment[lv]=Kontact KOrganizer spraudnis Comment[mk]=Приклучок за КОрганизатор во Контакт Comment[mr]=कॉन्टेक्ट के-ऑर्गनायझर प्लगइन Comment[ms]=Plugin KOragnizer Kontact Comment[nb]=Kontact programtillegg for KOrganizer Comment[nds]=KOrganizer-Moduul för Kontact Comment[ne]=केडीई आयोजक प्लगइन सम्पर्क गर्नुहोस् Comment[nl]=Kontact KOrganizer-plug-in Comment[nn]=Kontakt-programtillegg for KOrganizer Comment[pl]=Wtyczka Kontact do współpracy z KOrganizerem Comment[pt]='Plugin' do KOrganizer para o Kontact Comment[pt_BR]=Plugin do KOrganizer para o Kontact Comment[ro]=Modul KOrganizer pentru Kontact Comment[ru]=Календарь Comment[se]=Kontact, KOrganizer-lassemoduvla Comment[sk]=Kontact KOrganizer Plugin Comment[sl]=Vstavek KOrganizer za Kontact Comment[sr]=Прикључак Контакта за К‑организатор Comment[sr@ijekavian]=Прикључак Контакта за К‑организатор Comment[sr@ijekavianlatin]=Priključak Kontacta za K‑organizator Comment[sr@latin]=Priključak Kontacta za K‑organizator Comment[sv]=Kontact-insticksprogram för Korganizer Comment[ta]=கேஅமைப்பாளரை சொருகுப்பொருளை தொடர்புகொள் Comment[tg]=Модули Kontact барои дастрасӣ ба органайзер Comment[tr]=Kontact KOrganizer Eklentisi Comment[uk]=Додаток календаря KOrganizer для Kontact Comment[uz]=Kontact uchun KOrganizer plagini Comment[uz@cyrillic]=Kontact учун KOrganizer плагини Comment[wa]=Module KOrganizer di Kontact Comment[x-test]=xxKontact KOrganizer Pluginxx Comment[zh_CN]=Kontact KOrganizer 插件 Comment[zh_TW]=Kontact KOrganizer 外掛程式 Name=Calendar Name[af]=Kalender Name[ar]=التّقويم Name[bg]=Calendar Name[br]=Deiziadur Name[bs]=Kalendar Name[ca]=Calendari Name[ca@valencia]=Calendari Name[cs]=Kalendář Name[cy]=Calendr Name[da]=Kalender Name[de]=Kalender Name[el]=Ημερολόγιο Name[en_GB]=Calendar Name[eo]=Kalendaro Name[es]=Calendario Name[et]=Kalender Name[eu]=Egutegia Name[fa]=تقویم Name[fi]=Kalenteri Name[fr]=Calendrier Name[fy]=Aginda Name[ga]=Féilire Name[gl]=Calendario Name[he]=לוח שנה Name[hu]=Naptár Name[ia]=Calendario Name[is]=Dagatal Name[it]=Calendario Name[ja]=カレンダー Name[ka]=კალენდარი Name[kk]=Күнтізбе Name[km]=ប្រតិទិន Name[ko]=달력 Name[lt]=Kalendorius Name[lv]=Kalendārs Name[mai]=कैलेंडर Name[mk]=Календар Name[mr]=दिनदर्शिका Name[ms]=Kalendar Name[nb]=Kalender Name[nds]=Kalenner Name[ne]=क्यालेन्डर Name[nl]=Agenda Name[nn]=Kalender Name[pa]=ਕੈਲੰਡਰ Name[pl]=Kalendarz Name[pt]=Calendário Name[pt_BR]=Calendário Name[ro]=Calendar Name[ru]=Календарь Name[se]=Kaleandar Name[sk]=Kalendár Name[sl]=Koledar Name[sr]=Календар Name[sr@ijekavian]=Календар Name[sr@ijekavianlatin]=Kalendar Name[sr@latin]=Kalendar Name[sv]=Kalender Name[ta]=நாள்காட்டி Name[tg]=Тақвим Name[th]=ปฏิทิน Name[tr]=Takvim Name[ug]=يىلنامە Name[uk]=Календар Name[uz]=Kalendar Name[uz@cyrillic]=Календар Name[wa]=Calindrî Name[x-test]=xxCalendarxx Name[zh_CN]=日历 Name[zh_TW]=行事曆 diff --git a/src/kontactplugin/korganizer/todoplugin.cpp b/src/kontactplugin/korganizer/todoplugin.cpp index 8df5833d..e0635802 100644 --- a/src/kontactplugin/korganizer/todoplugin.cpp +++ b/src/kontactplugin/korganizer/todoplugin.cpp @@ -1,238 +1,238 @@ /* This file is part of Kontact. Copyright (c) 2003 Cornelius Schumacher 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; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #include "todoplugin.h" #include "calendarinterface.h" #include "korg_uniqueapp.h" #include "todosummarywidget.h" #include #include #include #include #include #include #include #include "korganizerplugin_debug.h" #include #include #include #include #include -EXPORT_KONTACT_PLUGIN(TodoPlugin, todo) +EXPORT_KONTACT_PLUGIN_WITH_JSON(TodoPlugin, "todoplugin.json") TodoPlugin::TodoPlugin(KontactInterface::Core *core, const QVariantList &) : KontactInterface::Plugin(core, core, "korganizer", "todo") , mIface(nullptr) { setComponentName(QStringLiteral("korganizer"), i18n("KOrganizer")); QAction *action = new QAction(QIcon::fromTheme(QStringLiteral("task-new")), i18nc("@action:inmenu", "New To-do..."), this); actionCollection()->addAction(QStringLiteral("new_todo"), action); actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_T)); QString str = i18nc("@info:status", "Create a new to-do"); action->setStatusTip(str); action->setToolTip(str); action->setWhatsThis( i18nc("@info:whatsthis", "You will be presented with a dialog where you can create a new to-do item.")); connect(action, &QAction::triggered, this, &TodoPlugin::slotNewTodo); insertNewAction(action); mUniqueAppWatcher = new KontactInterface::UniqueAppWatcher( new KontactInterface::UniqueAppHandlerFactory(), this); } TodoPlugin::~TodoPlugin() { } KontactInterface::Summary *TodoPlugin::createSummaryWidget(QWidget *parent) { return new TodoSummaryWidget(this, parent); } KParts::Part *TodoPlugin::createPart() { KParts::Part *part = loadPart(); if (!part) { return nullptr; } mIface = new OrgKdeKorganizerCalendarInterface( QStringLiteral("org.kde.korganizer"), QStringLiteral( "/Calendar"), QDBusConnection::sessionBus(), this); return part; } void TodoPlugin::select() { interface()->showTodoView(); } QStringList TodoPlugin::invisibleToolbarActions() const { QStringList invisible; invisible += QStringLiteral("new_event"); invisible += QStringLiteral("new_todo"); invisible += QStringLiteral("new_journal"); invisible += QStringLiteral("view_whatsnext"); invisible += QStringLiteral("view_day"); invisible += QStringLiteral("view_nextx"); invisible += QStringLiteral("view_month"); invisible += QStringLiteral("view_workweek"); invisible += QStringLiteral("view_week"); invisible += QStringLiteral("view_list"); invisible += QStringLiteral("view_todo"); invisible += QStringLiteral("view_journal"); invisible += QStringLiteral("view_timeline"); return invisible; } OrgKdeKorganizerCalendarInterface *TodoPlugin::interface() { if (!mIface) { part(); } Q_ASSERT(mIface); return mIface; } void TodoPlugin::slotNewTodo() { interface()->openTodoEditor(QString()); } bool TodoPlugin::canDecodeMimeData(const QMimeData *mimeData) const { return mimeData->hasText() || KPIM::MailList::canDecode(mimeData) || KContacts::VCardDrag::canDecode(mimeData) || KCalUtils::ICalDrag::canDecode(mimeData); } bool TodoPlugin::isRunningStandalone() const { return mUniqueAppWatcher->isRunningStandalone(); } void TodoPlugin::processDropEvent(QDropEvent *event) { const QMimeData *md = event->mimeData(); if (KContacts::VCardDrag::canDecode(md)) { KContacts::Addressee::List contacts; KContacts::VCardDrag::fromMimeData(md, contacts); KContacts::Addressee::List::ConstIterator it; QStringList attendees; KContacts::Addressee::List::ConstIterator end(contacts.constEnd()); for (it = contacts.constBegin(); it != end; ++it) { const QString email = (*it).fullEmail(); if (email.isEmpty()) { attendees.append((*it).realName() + QStringLiteral("<>")); } else { attendees.append(email); } } interface()->openTodoEditor(i18nc("@item", "Meeting"), QString(), QStringList(), attendees); return; } if (KCalUtils::ICalDrag::canDecode(event->mimeData())) { KCalendarCore::MemoryCalendar::Ptr cal(new KCalendarCore::MemoryCalendar(QTimeZone::systemTimeZone())); if (KCalUtils::ICalDrag::fromMimeData(event->mimeData(), cal)) { KCalendarCore::Incidence::List incidences = cal->incidences(); Q_ASSERT(incidences.count()); if (!incidences.isEmpty()) { event->accept(); KCalendarCore::Incidence::Ptr i = incidences.first(); QString summary; if (i->type() == KCalendarCore::Incidence::TypeJournal) { summary = i18nc("@item", "Note: %1", i->summary()); } else { summary = i->summary(); } interface()->openTodoEditor(summary, i->description(), QStringList()); return; } // else fall through to text decoding } } if (md->hasText()) { const QString text = md->text(); interface()->openTodoEditor(text); return; } if (KPIM::MailList::canDecode(md)) { KPIM::MailList mails = KPIM::MailList::fromMimeData(md); event->accept(); if (mails.count() != 1) { KMessageBox::sorry( core(), i18nc("@info", "Dropping multiple mails is not supported.")); } else { KPIM::MailSummary mail = mails.at(0); QString txt = i18nc("@item", "From: %1\nTo: %2\nSubject: %3", mail.from(), mail.to(), mail.subject()); QString uri = QStringLiteral("kmail:") +QString::number(mail.serialNumber()) + QLatin1Char('/') +mail.messageId(); QTemporaryFile tf; tf.setAutoRemove(true); tf.write(event->mimeData()->data(QStringLiteral("message/rfc822"))); interface()->openTodoEditor( i18nc("@item", "Mail: %1", mail.subject()), txt, uri, tf.fileName(), QStringList(), QStringLiteral("message/rfc822")); tf.close(); } return; } qCWarning(KORGANIZERPLUGIN_LOG) << QStringLiteral("Cannot handle drop events of type '%1'.").arg( event->mimeData()->formats().join(QLatin1Char(';'))); } #include "todoplugin.moc" diff --git a/src/kontactplugin/korganizer/todoplugin.desktop b/src/kontactplugin/korganizer/todoplugin.desktop index 48bf5c12..c03a827d 100644 --- a/src/kontactplugin/korganizer/todoplugin.desktop +++ b/src/kontactplugin/korganizer/todoplugin.desktop @@ -1,142 +1,142 @@ [Desktop Entry] Type=Service Icon=view-pim-tasks X-KDE-ServiceTypes=Kontact/Plugin -X-KDE-Library=kontact_todoplugin +X-KDE-Library=kontact5/kontact_todoplugin X-KDE-KontactPluginVersion=10 X-KDE-KontactPartLibraryName=korganizerpart X-KDE-KontactPartExecutableName=korganizer X-KDE-KontactPluginHasSummary=true X-KDE-PluginInfo-Website=https://kontact.kde.org/components/korganizer.html X-KDE-PluginInfo-Name=kontact_todoplugin X-KDE-PluginInfo-Version=0.1 X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-EnabledByDefault=true Comment=Kontact KOrganizer To-do List Plugin Comment[af]=Kontact KOrganizer te-doen lys inprop module Comment[ar]=ملحقة قوائم مهامّ «منظّمك» لِ‍«متراسلك» Comment[bg]=Приставка за списък със задачи и връзка с KOrganizer Comment[bs]=Kontakt KOrganizer liste zadataka Dodatak Comment[ca]=Connector de la llista de tasques pendents del KOrganizer per al Kontact Comment[ca@valencia]=Connector de la llista de tasques pendents del KOrganizer per al Kontact Comment[cs]=Modul úkolů KOrganizeru pro aplikaci Kontact Comment[da]=Kontact KOrganizer gøremålsliste-plugin Comment[de]=Kontact KOrganizer-Aufgabenlisten-Modul Comment[el]=Πρόσθετο του Kontact για την λίστα προς υλοποίηση του KOrganizer Comment[en_GB]=Kontact KOrganizer To-do List Plugin Comment[eo]=Kontact-KOrganizilo-farendaĵlistkromaĵo Comment[es]=Complemento de tareas pendientes de KOrganizer para Kontact Comment[et]=Kontacti KOrganizeri ülesannete nimekirja plugin Comment[eu]=Kontact-en KOrganizer-en egitekoen plugin-a Comment[fa]=وصله فهرست کارهای انجامی Kontact KOrganizer Comment[fi]=Tehtäväluetteloliitännäinen Comment[fr]=Module de liste des tâches de KOrganizer pour Kontact Comment[fy]=Kontact KOrganizer takenlijstplugin Comment[ga]=Breiseán Tascliosta KOrganizer le haghaidh Kontact Comment[gl]=Complemento de tarefas pendentes para KOrganizer de Kontact Comment[hu]=Kontact-bővítőmodul a KOrganizer feladatlistához Comment[ia]=Plug-in del lista de cargas de Kontact KOrganizer Comment[is]=Kontact KOrganizer verkþátta íforrit Comment[it]=Estensione per Kontact della lista delle cose da fare di KOrganizer Comment[ja]=Kontact KOrganizer To-Do リストプラグイン Comment[ka]=Kontact KOrganizer დავალებათა მოდული Comment[kk]=Kontact-тың KOrganizer істер тізімінің плагині Comment[km]=កម្មវិធី​ជំនួយ​បញ្ជី​ការងារ​ត្រូវ​ធ្វើ​របស់ KOrganizer ក្នុង Kontact Comment[ko]=Kontact KOrganizer 할 일 목록 플러그인 Comment[lt]=Kontact KOrganizer darbų sąrašo papildinys Comment[lv]=Kontact KOrganizer darbu saraksta spraudnis Comment[mr]=कॉन्टेक्ट के-ऑर्गनायझर कार्य यादी प्लगइन Comment[ms]=Plugin Senarai Tugasan KOrganizer Kontact Comment[nb]=Kontact programtillegg for KOrganizer gjøreliste Comment[nds]=KOrganizer-Opgavenlistmoduul för Kontact Comment[ne]=गर्नुपर्ने कार्यसूची प्लगइन गर्न केडीई आयोजकलाई सम्पर्क गर्नुहोस् Comment[nl]=Kontact KOrganizer takenlijstplug-in Comment[nn]=Kontakt-programtillegg for KOrganizer-hugselister Comment[pl]=Wtyczka Kontact do współpracy z listą zadań KOrganizera Comment[pt]='Plugin' de Itens Por-Fazer do KOrganizer para o Kontact Comment[pt_BR]=Plugin de lista de tarefas do KOrganizer para o Kontact Comment[ru]=Задачи Comment[sk]=KOrganizer modul zoznamu úloh pre Kontact Comment[sl]=Vstavek opravil KOrganizerja za Kontact Comment[sr]=Прикључак Контакта за К‑организаторову списак обавеза Comment[sr@ijekavian]=Прикључак Контакта за К‑организаторову списак обавеза Comment[sr@ijekavianlatin]=Priključak Kontacta za K‑organizatorovu spisak obaveza Comment[sr@latin]=Priključak Kontacta za K‑organizatorovu spisak obaveza Comment[sv]=Kontact-insticksprogram för Korganizers uppgiftslista Comment[ta]=கேஅமைப்பாளர் செய்யவேண்டிய பட்டியல் சொருகுப்பொருளை தொடர்புகொள் Comment[tr]=Kontact KOrganizer Yapılacaklar Listesi Eklentisi Comment[uk]=Додаток списку завдань KOrganizer для Kontact Comment[wa]=Module Djivêye des afés KOrganizer di Kontact Comment[x-test]=xxKontact KOrganizer To-do List Pluginxx Comment[zh_CN]=Kontact KOrganizer 待办清单插件 Comment[zh_TW]=Kontact KOrganizer 待辦事項外掛程式 Name=To-do List Name[af]=Te-doen lys Name[ar]=قائمة المهامّ Name[bg]=To-do List Name[br]=Roll an traoù d'ober Name[bs]=Lista zadataka Name[ca]=Llista de tasques pendents Name[ca@valencia]=Llista de tasques pendents Name[cs]=Seznam úkolů Name[cy]=Rhestr I'w-Wneud Name[da]=Gøremålsliste Name[de]=Aufgaben Name[el]=Λίστα προς υλοποίηση Name[en_GB]=To-do List Name[eo]=Farendaĵlisto Name[es]=Lista de tareas pendientes Name[et]=Ülesanded Name[eu]=Egitekoen zerrenda Name[fa]=فهرست کارهای انجامی Name[fi]=Tehtäväluettelo Name[fr]=Tâches Name[fy]=Takenlist Name[ga]=Tascliosta Name[gl]=Lista de tarefas pendentes Name[he]=רשימת מטלות Name[hu]=Feladatok Name[ia]=Lista de cargas Name[is]=Verkþættir Name[it]=Lista cose da fare Name[ja]=To-Do リスト Name[ka]=დავალებანი Name[kk]=Істер тізімі Name[km]=បញ្ជី​ការងារ​ត្រូវ​ធ្វើ Name[ko]=할 일 목록 Name[lt]=Darbai Name[lv]=Darbu saraksts Name[mr]=कार्य यादी Name[ms]=Senarai Tugasan Name[nb]=Gjøreliste Name[nds]=Opgavenlist Name[ne]=गर्नुपर्ने कार्य सूची Name[nl]=Takenlijst Name[nn]=Hugseliste Name[pa]=ਟੂ-ਡੂ ਲਿਸਟ Name[pl]=Lista zadań Name[pt]=Lista de Itens Por-Fazer Name[pt_BR]=Lista de tarefas Name[ro]=Listă de activități Name[ru]=Задачи Name[sk]=Zoznam úloh Name[sl]=Seznam opravil Name[sr]=Списак обавеза Name[sr@ijekavian]=Списак обавеза Name[sr@ijekavianlatin]=Spisak obaveza Name[sr@latin]=Spisak obaveza Name[sv]=Uppgiftslista Name[ta]=செய்யவேண்டிய பட்டியல் Name[th]=รายการสิ่งที่จะทำ Name[tr]=Yapılacaklar Listesi Name[ug]=قىلىدىغان ئىش تىزىمى Name[uk]=Список завдань Name[uz]=Vazifalar Name[uz@cyrillic]=Вазифалар Name[wa]=Djivêye des afés Name[x-test]=xxTo-do Listxx Name[zh_CN]=待办事项列表 Name[zh_TW]=待辦事項清單 diff --git a/src/kontactplugin/specialdates/CMakeLists.txt b/src/kontactplugin/specialdates/CMakeLists.txt index de8a0bd2..7b0896a9 100644 --- a/src/kontactplugin/specialdates/CMakeLists.txt +++ b/src/kontactplugin/specialdates/CMakeLists.txt @@ -1,46 +1,48 @@ ########### next target ############### set(kontact_specialdatesplugin_PART_SRCS specialdates_plugin.cpp sdsummarywidget.cpp) ecm_qt_declare_logging_category(kontact_specialdatesplugin_PART_SRCS HEADER korganizer_kontactplugins_specialdates_debug.h IDENTIFIER KORGANIZER_KONTACTPLUGINS_SPECIALDATES_LOG CATEGORY_NAME org.kde.pim.korganizer_kontactplugins_specialdates DESCRIPTION "korganizer (kontactplugins korganizer special dates)" OLD_CATEGORY_NAMES log_korganizer_kontactplugins_specialdates EXPORT KORGANIZER ) add_library(kontact_specialdatesplugin MODULE ${kontact_specialdatesplugin_PART_SRCS}) set(_korganizerprivate_lib "korganizerprivate") target_link_libraries(kontact_specialdatesplugin KF5::Contacts KF5::CalendarCore KF5::Holidays KF5::KontactInterface KF5::AkonadiCore KF5::AkonadiContact KF5::CalendarSupport ) +kcoreaddons_desktop_to_json(kontact_specialdatesplugin specialdatesplugin.desktop) + ########### next target ############### set(kcm_sdsummary_PART_SRCS kcmsdsummary.cpp) ki18n_wrap_ui(kcm_sdsummary_PART_SRCS sdsummaryconfig_base.ui) add_library(kcm_sdsummary MODULE ${kcm_sdsummary_PART_SRCS}) target_link_libraries(kcm_sdsummary Qt5::Widgets KF5::KCMUtils KF5::I18n) ########### install files ############### -install(TARGETS kontact_specialdatesplugin DESTINATION ${KDE_INSTALL_PLUGINDIR}) +install(TARGETS kontact_specialdatesplugin DESTINATION ${KDE_INSTALL_PLUGINDIR}/kontact5) install(TARGETS kcm_sdsummary DESTINATION ${KDE_INSTALL_PLUGINDIR}) install(FILES specialdatesplugin.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}/kontact) install(FILES kcmsdsummary.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) install(FILES specialdates.setdlg DESTINATION ${KDE_INSTALL_DATADIR}/kontact/ksettingsdialog) diff --git a/src/kontactplugin/specialdates/specialdates_plugin.cpp b/src/kontactplugin/specialdates/specialdates_plugin.cpp index b8a80d8e..1cc64291 100644 --- a/src/kontactplugin/specialdates/specialdates_plugin.cpp +++ b/src/kontactplugin/specialdates/specialdates_plugin.cpp @@ -1,68 +1,68 @@ /* This file is part of Kontact. Copyright (c) 2003 Tobias Koenig Copyright (c) 2004-2005,2009 Allen Winter 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; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #include "specialdates_plugin.h" #include "sdsummarywidget.h" #include #include #include -EXPORT_KONTACT_PLUGIN(SpecialdatesPlugin, specialdates) +EXPORT_KONTACT_PLUGIN_WITH_JSON(SpecialdatesPlugin, "specialdatesplugin.json") SpecialdatesPlugin::SpecialdatesPlugin(KontactInterface::Core *core, const QVariantList &) : KontactInterface::Plugin(core, core, nullptr) { setComponentName(QStringLiteral("korganizer"), i18n("KOrganizer")); } SpecialdatesPlugin::~SpecialdatesPlugin() { } KontactInterface::Summary *SpecialdatesPlugin::createSummaryWidget(QWidget *parentWidget) { return new SDSummaryWidget(this, parentWidget); } const KAboutData SpecialdatesPlugin::aboutData() { KAboutData aboutData = KAboutData(QStringLiteral("specialdates"), i18n("Special Dates Summary"), QStringLiteral("1.0"), i18n("Kontact Special Dates Summary"), KAboutLicense::LGPL, i18n("Copyright © 2003 Tobias Koenig\n" "Copyright © 2004–2010 Allen Winter")); aboutData.addAuthor(i18n("Allen Winter"), i18n("Current Maintainer"), QStringLiteral("winter@kde.org")); aboutData.addAuthor(i18n("Tobias Koenig"), QString(), QStringLiteral("tokoe@kde.org")); aboutData.setProductName("kontact/specialdates"); return aboutData; } #include "specialdates_plugin.moc" diff --git a/src/kontactplugin/specialdates/specialdatesplugin.desktop b/src/kontactplugin/specialdates/specialdatesplugin.desktop index 912719a7..5850a8ed 100644 --- a/src/kontactplugin/specialdates/specialdatesplugin.desktop +++ b/src/kontactplugin/specialdates/specialdatesplugin.desktop @@ -1,145 +1,145 @@ [Desktop Entry] Type=Service Icon=view-calendar-special-occasion X-KDE-ServiceTypes=Kontact/Plugin,KPluginInfo -X-KDE-Library=kontact_specialdatesplugin +X-KDE-Library=kontact5/kontact_specialdatesplugin X-KDE-KontactPluginVersion=10 X-KDE-KontactPluginHasPart=false X-KDE-KontactPluginHasSummary=true X-KDE-PluginInfo-Name=kontact_specialdatesplugin X-KDE-PluginInfo-Version=0.1 X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-EnabledByDefault=true Name=Special Dates Name[af]=Spesiale datums Name[ar]=التّواريخ الخاصّة Name[bg]=Special Dates Name[br]=Deiziadoù dibar Name[bs]=Posebni datumi Name[ca]=Dates especials Name[ca@valencia]=Dates especials Name[cs]=Speciální data Name[da]=Særlige datoer Name[de]=Besondere Termine Name[el]=Σημαντικές ημερομηνίες Name[en_GB]=Special Dates Name[eo]=Specialaj Datoj Name[es]=Fechas especiales Name[et]=Tähtpäevad Name[eu]=Data bereziak Name[fa]=تاریخهای ویژه Name[fi]=Merkkipäivät Name[fr]=Dates particulières Name[fy]=Spesjale datums Name[ga]=Dátaí Speisialta Name[gl]=Datas especiais Name[he]=תאריכים מיוחדים Name[hu]=Fontos dátumok Name[ia]=Datas special Name[is]=Sérstakir dagar Name[it]=Date speciali Name[ja]=特別な日 Name[ka]=განსაკუტრებული თარიღები Name[kk]=Ерекше күндер Name[km]=ថ្ងៃ​ពិសេស Name[ko]=기념일 Name[lt]=Ypatingos datos Name[lv]=Īpašie datumi Name[mk]=Специјални датуми Name[mr]=विशिष्ठ दिनांक Name[ms]=Tarikh Khusus Name[nb]=Spesielle datoer Name[nds]=Besünner Daag Name[ne]=विशेष मिति Name[nl]=Speciale datums Name[nn]=Spesielle datoar Name[pa]=ਖਾਸ ਮਿਤੀ Name[pl]=Wyjątkowe daty Name[pt]=Datas Especiais Name[pt_BR]=Datas especiais Name[ro]=Zile speciale Name[ru]=Особые даты Name[sk]=Špeciálne dátumy Name[sl]=Posebni datumi Name[sr]=Посебни датуми Name[sr@ijekavian]=Посебни датуми Name[sr@ijekavianlatin]=Posebni datumi Name[sr@latin]=Posebni datumi Name[sv]=Speciella datum Name[ta]=விசேஷ தேதிகள் Name[th]=วันพิเศษ Name[tr]=Özel Tarihler Name[ug]=ئالاھىدە كۈنلەر Name[uk]=Особливі дати Name[uz]=Maxsus kunlar Name[uz@cyrillic]=Махсус кунлар Name[wa]=Sipeciålès dates Name[x-test]=xxSpecial Datesxx Name[zh_CN]=特殊日期 Name[zh_TW]=特殊日期 Comment=Special Dates Plugin Comment[af]=Spesiale datums inprop module Comment[ar]=ملحقة التّواريخ الخاصّة Comment[bg]=Приставка за специални случаи Comment[bs]=Dodaci za posebne datume Comment[ca]=Connector de dates especials Comment[ca@valencia]=Connector de dates especials Comment[cs]=Modul speciálních dat Comment[da]=Plugin for særlige datoer Comment[de]=Modul für besondere Termine Comment[el]=Πρόσθετο σημαντικών ημερομηνιών Comment[en_GB]=Special Dates Plugin Comment[eo]=Kromaĵo por specialaj datoj Comment[es]=Complemento de fechas especiales Comment[et]=Tähtpäevade plugin Comment[eu]=Data berezien plugin-a Comment[fa]=وصله تاریخهای ویژه Comment[fi]=Merkkipäiväliitännäinen Comment[fr]=Module de dates particulières Comment[fy]=Plugin foar spesjale datums Comment[ga]=Breiseán Dátaí Speisialta Comment[gl]=Complemento de datas especiais Comment[he]=תוסף תאריכים חשובים Comment[hu]=Fontos dátumok bővítőmodul Comment[ia]=Plug-in pro datas special Comment[is]=Sérstakir dagar íforrit Comment[it]=Estensione per le date speciali Comment[ja]=特別な日プラグイン Comment[ka]=განსაკუთრებულ თარიღთა მოდული Comment[kk]=Ерекше күндер плагині Comment[km]=កម្មវិធី​ជំនួយ​ថ្ងៃ​ពិសេស Comment[ko]=기념일 플러그인 Comment[lt]=Ypatingų dienų papildinys Comment[lv]=Īpašo datumu spraudnis Comment[mk]=Приклучок за специјални датуми Comment[mr]=विशिष्ठ दिनांक प्लगइन Comment[ms]=Plugin Tarikh Khusus Comment[nb]=Programtillegg for spesielle datoer Comment[nds]=Moduul för besünner Daag Comment[ne]=विशेष मिति प्लगइन Comment[nl]=Plug-in voor speciale datums Comment[nn]=Programtillegg for spesielle datoar Comment[pa]=ਖਾਸ ਮਿਤੀ ਪਲੱਗਇਨ Comment[pl]=Wtyczka wyjątkowych dat Comment[pt]='Plugin' de Datas Especiais Comment[pt_BR]=Plugin de Datas especiais Comment[ro]=Modul pentru zile speciale Comment[ru]=Особые даты Comment[sk]=Modul špeciálnych dátumov Comment[sl]=Vstavek za posebne datume Comment[sr]=Прикључак за посебне датуме Comment[sr@ijekavian]=Прикључак за посебне датуме Comment[sr@ijekavianlatin]=Priključak za posebne datume Comment[sr@latin]=Priključak za posebne datume Comment[sv]=Insticksprogram för speciella datum Comment[ta]=விசேஷ தேதிகள் சொருகுப்பொருள் Comment[th]=โปรแกรมเสริมวันพิเศษ Comment[tr]=Özel Tarihler Eklentisi Comment[uk]=Додаток особливих дат Comment[wa]=Module sipeciålès dates Comment[x-test]=xxSpecial Dates Pluginxx Comment[zh_CN]=特殊日期插件 Comment[zh_TW]=特殊日期外掛程式