File indexing completed on 2024-05-05 05:28:20
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Dimitris Kardarakos <dimkard@posteo.net> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #ifndef MOBILECALENDARCONFIG_H 0008 #define MOBILECALENDARCONFIG_H 0009 0010 #include <QObject> 0011 #include <QVariantMap> 0012 0013 #include <memory> 0014 0015 class CalindoriConfig : public QObject 0016 { 0017 Q_OBJECT 0018 Q_PROPERTY(QStringList internalCalendars READ internalCalendars NOTIFY internalCalendarsChanged) 0019 Q_PROPERTY(QStringList externalCalendars READ externalCalendars NOTIFY externalCalendarsChanged) 0020 Q_PROPERTY(QString activeCalendar READ activeCalendar WRITE setActiveCalendar NOTIFY activeCalendarChanged) 0021 Q_PROPERTY(int eventsDuration READ eventsDuration WRITE setEventsDuration NOTIFY eventsDurationChanged) 0022 Q_PROPERTY(int preEventRemindTime READ preEventRemindTime WRITE setPreEventRemindTime NOTIFY preEventRemindTimeChanged) 0023 Q_PROPERTY(bool alwaysRemind READ alwaysRemind WRITE setAlwaysRemind NOTIFY alwaysRemindChanged) 0024 0025 public: 0026 0027 static CalindoriConfig &instance(); 0028 0029 QStringList internalCalendars() const; 0030 Q_SIGNAL void internalCalendarsChanged(); 0031 0032 QStringList externalCalendars() const; 0033 Q_SIGNAL void externalCalendarsChanged(); 0034 0035 QString activeCalendar() const; 0036 void setActiveCalendar(const QString &calendar); 0037 Q_SIGNAL void activeCalendarChanged(); 0038 0039 int eventsDuration() const; 0040 void setEventsDuration(int duration); 0041 Q_SIGNAL void eventsDurationChanged(); 0042 0043 int preEventRemindTime() const; 0044 void setPreEventRemindTime(int remindBefore); 0045 Q_SIGNAL void preEventRemindTimeChanged(); 0046 0047 bool alwaysRemind() const; 0048 void setAlwaysRemind(bool remind); 0049 Q_SIGNAL void alwaysRemindChanged(); 0050 0051 QString calendarFile(const QString &calendarName); 0052 void setOwnerName(const QString &calendar, const QString &ownerName); 0053 void setOwnerEmail(const QString &calendar, const QString &ownerEmail); 0054 0055 Q_INVOKABLE bool isExternal(const QString &calendarName); 0056 Q_INVOKABLE void setOwnerInfo(const QString &calendar, const QString &ownerName, const QString &ownerEmail); 0057 Q_INVOKABLE QString ownerName(const QString &calendarName); 0058 Q_INVOKABLE QString ownerEmail(const QString &calendarName); 0059 0060 public Q_SLOTS: 0061 QVariantMap canAddCalendar(const QString &calendar); 0062 QVariantMap addInternalCalendar(const QString &calendar, const QString &ownerName = QString(), const QString &ownerEmail = QString()); 0063 QVariantMap addExternalCalendar(const QString &calendar, const QString &ownerName, const QString &ownerEmail, const QUrl &calendarPathUrl); 0064 void removeCalendar(const QString &calendar); 0065 0066 private: 0067 explicit CalindoriConfig(QObject *parent = nullptr); 0068 ~CalindoriConfig() override; 0069 static QString filenameToPath(const QString &calendarName); 0070 0071 class Private; 0072 std::unique_ptr<Private> d; 0073 }; 0074 0075 #endif