File indexing completed on 2024-04-28 05:11:31
0001 /* 0002 SPDX-FileCopyrightText: 2009 Sebastian Sauer <sebsauer@kdab.net> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0 0005 */ 0006 0007 #include "editorconfig.h" 0008 #include "korganizereditorconfig.h" 0009 0010 #include <QCoreApplication> 0011 0012 using namespace IncidenceEditorNG; 0013 0014 class IncidenceEditorNG::EditorConfigPrivate 0015 { 0016 public: 0017 static EditorConfig *config; 0018 static void cleanup_config() 0019 { 0020 delete config; 0021 config = nullptr; 0022 } 0023 0024 QHash<KCalendarCore::IncidenceBase::IncidenceType, QStringList> mTemplates; 0025 }; 0026 0027 EditorConfig *EditorConfigPrivate::config = nullptr; 0028 0029 EditorConfig::EditorConfig() 0030 : d(new EditorConfigPrivate) 0031 { 0032 } 0033 0034 EditorConfig::~EditorConfig() = default; 0035 0036 EditorConfig *EditorConfig::instance() 0037 { 0038 if (!EditorConfigPrivate::config) { 0039 // No one called setEditorConfig(), so we default to a KorganizerEditorConfig. 0040 EditorConfig::setEditorConfig(new IncidenceEditorNG::KOrganizerEditorConfig); 0041 } 0042 0043 return EditorConfigPrivate::config; 0044 } 0045 0046 void EditorConfig::setEditorConfig(EditorConfig *config) 0047 { 0048 delete EditorConfigPrivate::config; 0049 EditorConfigPrivate::config = config; 0050 qAddPostRoutine(EditorConfigPrivate::cleanup_config); 0051 } 0052 0053 QString EditorConfig::fullName() const 0054 { 0055 if (EditorConfigPrivate::config != this) { 0056 return EditorConfigPrivate::config->fullName(); 0057 } 0058 return {}; 0059 } 0060 0061 QString EditorConfig::email() const 0062 { 0063 if (EditorConfigPrivate::config != this) { 0064 return EditorConfigPrivate::config->email(); 0065 } 0066 return {}; 0067 } 0068 0069 bool EditorConfig::thatIsMe(const QString &mail) const 0070 { 0071 if (EditorConfigPrivate::config != this) { 0072 return EditorConfigPrivate::config->thatIsMe(mail); 0073 } 0074 return false; 0075 } 0076 0077 QStringList EditorConfig::allEmails() const 0078 { 0079 if (EditorConfigPrivate::config != this) { 0080 return EditorConfigPrivate::config->allEmails(); 0081 } 0082 0083 QStringList mails; 0084 const QString m = email(); 0085 if (!m.isEmpty()) { 0086 mails << m; 0087 } 0088 return mails; 0089 } 0090 0091 QList<EditorConfig::Organizer> EditorConfig::allOrganizers() const 0092 { 0093 if (EditorConfigPrivate::config != this) { 0094 return EditorConfigPrivate::config->allOrganizers(); 0095 } 0096 return {}; 0097 } 0098 0099 bool EditorConfig::showTimeZoneSelectorInIncidenceEditor() const 0100 { 0101 if (EditorConfigPrivate::config != this) { 0102 return EditorConfigPrivate::config->showTimeZoneSelectorInIncidenceEditor(); 0103 } 0104 return true; 0105 } 0106 0107 QStringList &EditorConfig::templates(KCalendarCore::IncidenceBase::IncidenceType type) 0108 { 0109 return d->mTemplates[type]; 0110 }