File indexing completed on 2024-04-21 05:50:57
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Dimitris Kardarakos <dimkard@posteo.net> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #ifndef LOCALCALENDAR_H 0008 #define LOCALCALENDAR_H 0009 0010 #include <QSharedPointer> 0011 #include <KCalendarCore/MemoryCalendar> 0012 0013 class CalendarController; 0014 class AlarmChecker; 0015 0016 class LocalCalendar : public QObject 0017 { 0018 Q_OBJECT 0019 0020 Q_PROPERTY(QString calendarId READ calendarId WRITE setCalendarId NOTIFY calendarIdChanged) 0021 Q_PROPERTY(QString calendarTzId READ calendarTzId WRITE setCalendarTzId NOTIFY calendarTzIdChanged) 0022 Q_PROPERTY(QString calendarUrl READ calendarUrl WRITE setCalendarUrl NOTIFY calendarUrlChanged) 0023 Q_PROPERTY(int calendarType READ calendarType WRITE setCalendarType NOTIFY calendarTypeChanged) 0024 Q_PROPERTY(QSharedPointer<KCalendarCore::MemoryCalendar> memorycalendar READ memorycalendar NOTIFY memorycalendarChanged) 0025 Q_PROPERTY(QStringList categories READ categories NOTIFY categoriesChanged) 0026 Q_PROPERTY(CalendarController *calendarController READ calendarController WRITE setCalendarController NOTIFY calendarControllerChanged) 0027 Q_PROPERTY(bool busyDownlading READ busyDownlading NOTIFY busyDownladingChanged) 0028 0029 public: 0030 enum CalendarType { 0031 None = 0, 0032 Conference = 1, 0033 Favorites = 2 0034 }; 0035 0036 explicit LocalCalendar(QObject *parent = nullptr); 0037 0038 QString calendarId() const; 0039 void setCalendarId(const QString &calendarId); 0040 0041 QString calendarTzId() const; 0042 void setCalendarTzId(const QString &tzId); 0043 0044 QString calendarUrl() const; 0045 void setCalendarUrl(const QString &url); 0046 0047 int calendarType() const; 0048 void setCalendarType(const int type); 0049 0050 KCalendarCore::MemoryCalendar::Ptr memorycalendar() const; 0051 QStringList categories() const; 0052 0053 bool busyDownlading() const; 0054 0055 CalendarController *calendarController() const; 0056 void setCalendarController(CalendarController *const controller); 0057 0058 Q_INVOKABLE void loadOnlineCalendar(); 0059 0060 public Q_SLOTS: 0061 void onlineCalendarReady(const QString &calendarId); 0062 void setBusyStatus(const QString &calendarId, const bool downlading); 0063 0064 Q_SIGNALS: 0065 void memorycalendarChanged(); 0066 void calendarIdChanged(); 0067 void calendarTzIdChanged(); 0068 void calendarUrlChanged(); 0069 void calendarTypeChanged(); 0070 void categoriesChanged(); 0071 void eventsChanged(); 0072 void calendarControllerChanged(); 0073 void busyDownladingChanged(); 0074 0075 private Q_SLOTS: 0076 void createCalendar(); 0077 0078 private: 0079 QString m_calendar_id; 0080 QString m_calendar_tz_id; 0081 QString m_calendar_url; 0082 int m_calendar_type; 0083 KCalendarCore::MemoryCalendar::Ptr m_calendar; 0084 CalendarController *m_cal_controller; 0085 AlarmChecker *m_alarm_checker; 0086 bool m_busy_downloading; 0087 }; 0088 #endif // LOCALCALENDAR_H