File indexing completed on 2024-05-05 05:28:18

0001 /*
0002  * SPDX-FileCopyrightText: 2019 Dimitris Kardarakos <dimkard@posteo.net>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 #include "alarmnotification.h"
0008 #include "notificationhandler.h"
0009 #include <KLocalizedString>
0010 #include <QDebug>
0011 
0012 AlarmNotification::AlarmNotification(NotificationHandler *handler, const QString &uid) : m_uid {uid}, m_remind_at {QDateTime()}, m_notification_handler {handler}
0013 {
0014     m_notification = new KNotification(QStringLiteral("alarm"));
0015 
0016 #if QT_VERSION_MAJOR == 6
0017     auto suspendAction = m_notification->addAction(i18n("Suspend"));
0018     connect(suspendAction, &KNotificationAction::activated, this, &AlarmNotification::suspend);
0019 
0020     auto dismissAction = m_notification->addAction(i18n("Dismiss"));
0021     connect(dismissAction, &KNotificationAction::activated, this, &AlarmNotification::dismiss);
0022 #else
0023     m_notification->setActions({i18n("Suspend"), i18n("Dismiss")});
0024 
0025     connect(m_notification, &KNotification::action1Activated, this, &AlarmNotification::suspend);
0026     connect(m_notification, &KNotification::action2Activated, this, &AlarmNotification::dismiss);
0027 #endif
0028 
0029     connect(this, &AlarmNotification::suspend, m_notification_handler, [this]() {
0030         m_notification_handler->suspend(this);
0031     });
0032     connect(this, &AlarmNotification::dismiss, m_notification_handler, [this]() {
0033         m_notification_handler->dismiss(this);
0034     });
0035 }
0036 
0037 AlarmNotification::~AlarmNotification()
0038 {
0039     delete m_notification;
0040 }
0041 
0042 void AlarmNotification::send() const
0043 {
0044     m_notification->sendEvent();
0045 }
0046 
0047 QString AlarmNotification::uid() const
0048 {
0049     return m_uid;
0050 }
0051 
0052 QString AlarmNotification::text() const
0053 {
0054     return m_notification->text();
0055 }
0056 
0057 void AlarmNotification::setText(const QString &alarmText)
0058 {
0059     m_notification->setText(alarmText);
0060 }
0061 
0062 QDateTime AlarmNotification::remindAt() const
0063 {
0064     return m_remind_at;
0065 }
0066 
0067 void AlarmNotification::setRemindAt(const QDateTime &remindAtDt)
0068 {
0069     m_remind_at = remindAtDt;
0070 }