File indexing completed on 2024-04-28 05:11:32
0001 /* 0002 SPDX-FileCopyrightText: 2010 Bertjan Broeksema <broeksema@kde.org> 0003 SPDX-FileCopyrightText: 2010 Klaralvdalens Datakonsult AB, a KDAB Group company <info@kdab.net> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #pragma once 0009 0010 #include "incidenceeditor-ng.h" 0011 0012 namespace Ui 0013 { 0014 class EventOrTodoDesktop; 0015 } 0016 0017 namespace IncidenceEditorNG 0018 { 0019 class IncidenceDateTime; 0020 0021 class IncidenceAlarm : public IncidenceEditor 0022 { 0023 Q_OBJECT 0024 public: 0025 using IncidenceEditorNG::IncidenceEditor::load; // So we don't trigger -Woverloaded-virtual 0026 using IncidenceEditorNG::IncidenceEditor::save; // So we don't trigger -Woverloaded-virtual 0027 IncidenceAlarm(IncidenceDateTime *dateTime, Ui::EventOrTodoDesktop *ui); 0028 0029 void load(const KCalendarCore::Incidence::Ptr &incidence) override; 0030 void save(const KCalendarCore::Incidence::Ptr &incidence) override; 0031 [[nodiscard]] bool isDirty() const override; 0032 0033 Q_SIGNALS: 0034 void alarmCountChanged(int newCount); 0035 0036 private: 0037 void editCurrentAlarm(); 0038 void handleDateTimeToggle(); 0039 void newAlarm(); 0040 void newAlarmFromPreset(); 0041 void removeCurrentAlarm(); 0042 void toggleCurrentAlarm(); 0043 void updateAlarmList(); 0044 void updateButtons(); 0045 QString stringForAlarm(const KCalendarCore::Alarm::Ptr &alarm); 0046 0047 private: 0048 Ui::EventOrTodoDesktop *const mUi; 0049 0050 KCalendarCore::Alarm::List mAlarms; 0051 IncidenceDateTime *const mDateTime; 0052 int mEnabledAlarmCount = 0; 0053 bool mIsTodo = false; 0054 }; 0055 }