Warning, file /plasma/kdeplasma-addons/plasmacalendarplugins/alternatecalendar/calendarsystem.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2022 Fushan Wen <qydwhotmail@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <map> 0010 0011 #include <QCalendar> 0012 #include <QMetaType> 0013 0014 #include <KLocalizedString> 0015 0016 class CalendarSystem 0017 { 0018 Q_GADGET 0019 0020 public: 0021 /** 0022 * @note When adding a new calendar system, \s_calendarMap should also be updated. 0023 */ 0024 enum System { 0025 Gregorian = static_cast<int>(QCalendar::System::Gregorian), 0026 #ifndef QT_BOOTSTRAPPED 0027 Julian = static_cast<int>(QCalendar::System::Julian), 0028 Milankovic = static_cast<int>(QCalendar::System::Milankovic), 0029 #endif 0030 #if QT_CONFIG(jalalicalendar) 0031 Jalali = static_cast<int>(QCalendar::System::Jalali), 0032 #endif 0033 #if QT_CONFIG(islamiccivilcalendar) 0034 IslamicCivil = static_cast<int>(QCalendar::System::IslamicCivil), 0035 #endif 0036 Chinese = static_cast<int>(QCalendar::System::Last) + 1, // QTBUG-89824: QCalendar doesn't support Chinese calendar system 0037 Indian, // QCalendar doesn't support India calendar system 0038 Hebrew, 0039 }; 0040 Q_ENUM(System) 0041 }; 0042 Q_DECLARE_METATYPE(CalendarSystem) 0043 0044 struct CalendarSystemItem { 0045 CalendarSystem::System system; 0046 QString id; 0047 QString text; 0048 }; 0049 0050 // clang-format off 0051 static const std::map<QString /* id */, CalendarSystemItem> s_calendarMap{ 0052 { 0053 QStringLiteral("Julian"), 0054 {CalendarSystem::Julian, QStringLiteral("Julian"), i18ndc("plasma_calendar_alternatecalendar", "@item:inlist", "Julian")} 0055 }, 0056 { 0057 QStringLiteral("Milankovic"), 0058 {CalendarSystem::Milankovic, QStringLiteral("Milankovic"), i18ndc("plasma_calendar_alternatecalendar", "@item:inlist", "Milankovic")} 0059 }, 0060 { 0061 QStringLiteral("Jalali"), 0062 {CalendarSystem::Jalali, QStringLiteral("Jalali"), i18ndc("plasma_calendar_alternatecalendar", "@item:inlist", "The Solar Hijri Calendar (Persian)")} 0063 }, 0064 { 0065 QStringLiteral("IslamicCivil"), 0066 {CalendarSystem::IslamicCivil, QStringLiteral("IslamicCivil"), i18ndc("plasma_calendar_alternatecalendar", "@item:inlist", "The Islamic Civil Calendar")} 0067 }, 0068 { 0069 QStringLiteral("Chinese"), 0070 {CalendarSystem::Chinese, QStringLiteral("Chinese"), i18ndc("plasma_calendar_alternatecalendar", "@item:inlist", "Chinese Lunar Calendar")} 0071 }, 0072 { 0073 QStringLiteral("Indian"), 0074 {CalendarSystem::Indian, QStringLiteral("Indian"), i18ndc("plasma_calendar_alternatecalendar", "@item:inlist", "Indian National Calendar")} 0075 }, 0076 { 0077 QStringLiteral("Hebrew"), 0078 {CalendarSystem::Hebrew, QStringLiteral("Hebrew"), i18ndc("plasma_calendar_alternatecalendar", "@item:inlist", "Hebrew Calendar")} 0079 }, 0080 }; 0081 // clang-format on