File indexing completed on 2024-05-12 16:59:37
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 "../alternatecalendarplugin.h" 0010 0011 /** 0012 * @short An abstract base class for alternate calendar providers. 0013 * 0014 * This class serves as abstract base class for alternate calendar 0015 * provider implementations. 0016 */ 0017 class AbstractCalendarProvider : public QObject 0018 { 0019 Q_OBJECT 0020 0021 public: 0022 explicit AbstractCalendarProvider(QObject *parent, CalendarSystem::System calendarSystem); 0023 ~AbstractCalendarProvider() override; 0024 0025 /** 0026 * Converts Gregorian date to alternate calendar date 0027 * 0028 * @param date Gregorian date 0029 * @return Alternate calendar date 0030 */ 0031 virtual QCalendar::YearMonthDay fromGregorian(const QDate &date) const; 0032 0033 /** 0034 * Gets the sub-labels for the specific Gregorian date 0035 * 0036 * @param date Gregorian date 0037 * @return Sub-labels for the specific Gregorian date 0038 */ 0039 virtual CalendarEvents::CalendarEventsPlugin::SubLabel subLabels(const QDate &date) const; 0040 0041 protected: 0042 const CalendarSystem::System m_calendarSystem; 0043 };