File indexing completed on 2024-05-12 05:02:10

0001 /*
0002    SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "libruqolacore_export.h"
0010 #include <QObject>
0011 
0012 class NotificationPreferenceModel;
0013 class NotificationDesktopDurationPreferenceModel;
0014 class NotificationDesktopSoundPreferenceModel;
0015 class LIBRUQOLACORE_EXPORT NotificationPreferences : public QObject
0016 {
0017     Q_OBJECT
0018 public:
0019     explicit NotificationPreferences(QObject *parent = nullptr);
0020     ~NotificationPreferences() override;
0021 
0022     [[nodiscard]] NotificationPreferenceModel *emailNotificationModel() const;
0023 
0024     [[nodiscard]] NotificationPreferenceModel *mobileNotificationModel() const;
0025 
0026     [[nodiscard]] NotificationPreferenceModel *desktopNotificationModel() const;
0027 
0028     [[nodiscard]] NotificationDesktopDurationPreferenceModel *desktopDurationNotificationModel() const;
0029 
0030     [[nodiscard]] NotificationDesktopSoundPreferenceModel *desktopSoundNotificationModel() const;
0031     static NotificationPreferences *self();
0032 
0033 private:
0034     NotificationPreferenceModel *const mEmailNotificationModel;
0035     NotificationPreferenceModel *const mMobileNotificationModel;
0036     NotificationPreferenceModel *const mDesktopNotificationModel;
0037     NotificationDesktopDurationPreferenceModel *const mDesktopDurationNotificationModel;
0038     NotificationDesktopSoundPreferenceModel *const mDesktopSoundNotificationModel;
0039 };