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 }