File indexing completed on 2024-04-28 13:44:15

0001 /*
0002  * SPDX-FileCopyrightText: 2020 David Barchiesi <david@barchie.si>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 #ifndef SETTINGS_CONTROLLER_H
0008 #define SETTINGS_CONTROLLER_H
0009 
0010 #include <QObject>
0011 #include <QQmlEngine>
0012 
0013 class AlarmChecker;
0014 
0015 class SettingsController : public QObject
0016 {
0017     Q_OBJECT
0018 
0019     Q_PROPERTY(bool displayInLocalTimezone READ displayInLocalTimezone WRITE setDisplayInLocalTimezone NOTIFY displayInLocalTimezoneChanged)
0020     Q_PROPERTY(bool remindFavorites READ remindFavorites WRITE setRemindFavorites NOTIFY remindFavoritesChanged)
0021     Q_PROPERTY(int remindBeforeStart READ remindBeforeStart WRITE setRemindBeforeStart  NOTIFY remindBeforeStartChanged)
0022     Q_PROPERTY(bool canAddReminder READ canAddReminder NOTIFY canAddReminderChanged)
0023 
0024 public:
0025     explicit SettingsController(QObject *parent = nullptr);
0026 
0027     static QObject *qmlInstance(QQmlEngine *engine, QJSEngine *scriptEngine);
0028 
0029     bool displayInLocalTimezone() const;
0030     void setDisplayInLocalTimezone(const bool displayInLocalTimezone);
0031 
0032     bool remindFavorites() const;
0033     void setRemindFavorites(const bool remind);
0034 
0035     int remindBeforeStart() const;
0036     void setRemindBeforeStart(const int remindBeforeStart);
0037 
0038     bool canAddReminder() const;
0039 
0040 Q_SIGNALS:
0041     void displayInLocalTimezoneChanged();
0042     void remindFavoritesChanged();
0043     void remindBeforeStartChanged();
0044     void canAddReminderChanged();
0045 
0046 private:
0047     class Private;
0048     Private *d;
0049 
0050     AlarmChecker *m_alarm_checker;
0051 };
0052 
0053 #endif