File indexing completed on 2024-04-28 05:11:37

0001 /*
0002   SPDX-FileCopyrightText: 2010 Kevin Ottens <ervin@kde.org>
0003 
0004   SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "korganizereditorconfig.h"
0008 
0009 #include <CalendarSupport/KCalPrefs>
0010 
0011 #include <KIdentityManagementCore/Identity>
0012 #include <KIdentityManagementCore/IdentityManager>
0013 
0014 using namespace IncidenceEditorNG;
0015 
0016 KOrganizerEditorConfig::KOrganizerEditorConfig()
0017     : EditorConfig()
0018 {
0019 }
0020 
0021 KOrganizerEditorConfig::~KOrganizerEditorConfig() = default;
0022 
0023 KConfigSkeleton *KOrganizerEditorConfig::config() const
0024 {
0025     return CalendarSupport::KCalPrefs::instance();
0026 }
0027 
0028 QString KOrganizerEditorConfig::fullName() const
0029 {
0030     return CalendarSupport::KCalPrefs::instance()->fullName();
0031 }
0032 
0033 QString KOrganizerEditorConfig::email() const
0034 {
0035     return CalendarSupport::KCalPrefs::instance()->email();
0036 }
0037 
0038 bool KOrganizerEditorConfig::thatIsMe(const QString &email) const
0039 {
0040     return CalendarSupport::KCalPrefs::instance()->thatIsMe(email);
0041 }
0042 
0043 QStringList KOrganizerEditorConfig::allEmails() const
0044 {
0045     return CalendarSupport::KCalPrefs::instance()->allEmails();
0046 }
0047 
0048 QList<EditorConfig::Organizer> KOrganizerEditorConfig::allOrganizers() const
0049 {
0050     const auto *manager = KIdentityManagementCore::IdentityManager::self();
0051     QList<EditorConfig::Organizer> organizers;
0052     std::transform(manager->begin(), manager->end(), std::back_inserter(organizers), [](const auto &identity) {
0053         return EditorConfig::Organizer{identity.fullName(), identity.fullEmailAddr(), identity.pgpAutoSign(), identity.pgpAutoEncrypt()};
0054     });
0055     return organizers;
0056 }
0057 
0058 bool KOrganizerEditorConfig::showTimeZoneSelectorInIncidenceEditor() const
0059 {
0060     return CalendarSupport::KCalPrefs::instance()->showTimeZoneSelectorInIncidenceEditor();
0061 }
0062 
0063 QDateTime KOrganizerEditorConfig::defaultDuration() const
0064 {
0065     return CalendarSupport::KCalPrefs::instance()->defaultDuration();
0066 }
0067 
0068 QDateTime KOrganizerEditorConfig::startTime() const
0069 {
0070     return CalendarSupport::KCalPrefs::instance()->startTime();
0071 }
0072 
0073 bool KOrganizerEditorConfig::defaultAudioFileReminders() const
0074 {
0075     return CalendarSupport::KCalPrefs::instance()->defaultAudioFileReminders();
0076 }
0077 
0078 QUrl KOrganizerEditorConfig::audioFilePath() const
0079 {
0080     return QUrl::fromLocalFile(CalendarSupport::KCalPrefs::instance()->audioFilePath());
0081 }
0082 
0083 int KOrganizerEditorConfig::reminderTime() const
0084 {
0085     return CalendarSupport::KCalPrefs::instance()->reminderTime();
0086 }
0087 
0088 int KOrganizerEditorConfig::reminderTimeUnits() const
0089 {
0090     return CalendarSupport::KCalPrefs::instance()->reminderTimeUnits();
0091 }
0092 
0093 bool KOrganizerEditorConfig::defaultTodoReminders() const
0094 {
0095     return CalendarSupport::KCalPrefs::instance()->defaultTodoReminders();
0096 }
0097 
0098 bool KOrganizerEditorConfig::defaultEventReminders() const
0099 {
0100     return CalendarSupport::KCalPrefs::instance()->defaultEventReminders();
0101 }
0102 
0103 QStringList KOrganizerEditorConfig::activeDesignerFields() const
0104 {
0105     return CalendarSupport::KCalPrefs::instance()->activeDesignerFields();
0106 }
0107 
0108 QStringList &KOrganizerEditorConfig::templates(KCalendarCore::IncidenceBase::IncidenceType type)
0109 {
0110     if (type == KCalendarCore::IncidenceBase::TypeEvent) {
0111         // TODO remove mEventTemplates+etc from Prefs::instance()
0112         return CalendarSupport::KCalPrefs::instance()->mEventTemplates;
0113     }
0114     if (type == KCalendarCore::IncidenceBase::TypeTodo) {
0115         return CalendarSupport::KCalPrefs::instance()->mTodoTemplates;
0116     }
0117     if (type == KCalendarCore::IncidenceBase::TypeJournal) {
0118         return CalendarSupport::KCalPrefs::instance()->mJournalTemplates;
0119     }
0120     return EditorConfig::templates(type);
0121 }