File indexing completed on 2024-04-14 05:43:45

0001 /*
0002  * SPDX-FileCopyrightText: 2020 David Barchiesi <david@barchie.si>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 #include "settingscontroller.h"
0008 #include "alarmchecker.h"
0009 #include <KConfig>
0010 #include <KConfigGroup>
0011 
0012 class SettingsController::Private
0013 {
0014 public:
0015     Private()
0016         : config("kongressrc")
0017     {};
0018     KConfig config;
0019 };
0020 
0021 SettingsController::SettingsController(QObject *parent)
0022     : QObject {parent}, d {new Private}, m_alarm_checker {new AlarmChecker {this}}
0023 {
0024 }
0025 
0026 QObject *SettingsController::qmlInstance(QQmlEngine *engine, QJSEngine *scriptEngine)
0027 {
0028     Q_UNUSED(engine);
0029     Q_UNUSED(scriptEngine);
0030 
0031     return new SettingsController;
0032 }
0033 
0034 bool SettingsController::displayInLocalTimezone() const
0035 {
0036     return d->config.group("general").readEntry("displayInLocalTimezone", false);
0037 }
0038 
0039 void SettingsController::setDisplayInLocalTimezone(const bool displayInLocalTimezone)
0040 {
0041     d->config.group("general").writeEntry("displayInLocalTimezone", displayInLocalTimezone);
0042     d->config.sync();
0043 
0044     Q_EMIT displayInLocalTimezoneChanged();
0045 }
0046 
0047 bool SettingsController::remindFavorites() const
0048 {
0049     return d->config.group("notifications").readEntry("remindFavorites", true);
0050 }
0051 
0052 void SettingsController::setRemindFavorites(const bool remind)
0053 {
0054     d->config.group("notifications").writeEntry("remindFavorites", remind);
0055     d->config.sync();
0056 
0057     Q_EMIT remindFavoritesChanged();
0058 }
0059 
0060 int SettingsController::remindBeforeStart() const
0061 {
0062     return d->config.group("notifications").readEntry("remindBeforeStart", 5);
0063 }
0064 
0065 void SettingsController::setRemindBeforeStart(const int remindBeforeStart)
0066 {
0067     d->config.group("notifications").writeEntry("remindBeforeStart", remindBeforeStart);
0068     d->config.sync();
0069 
0070     Q_EMIT remindBeforeStartChanged();
0071 }
0072 
0073 bool SettingsController::canAddReminder() const
0074 {
0075     if (m_alarm_checker != nullptr) {
0076         return m_alarm_checker->active();
0077     }
0078 
0079     return false;
0080 }
0081 
0082 #include "moc_settingscontroller.cpp"