1 /*
2  *  deferdlg.h  -  dialog to defer an alarm
3  *  Program:  kalarm
4  *  SPDX-FileCopyrightText: 2002-2019 David Jarvie <djarvie@kde.org>
5  *
6  *  SPDX-License-Identifier: GPL-2.0-or-later
7  */
8 
9 #pragma once
10 
11 #include "eventid.h"
12 
13 #include <KAlarmCal/DateTime>
14 
15 #include <QDialog>
16 
17 class AlarmTimeWidget;
18 class QDialogButtonBox;
19 namespace KAlarmCal { class KAEvent; }
20 
21 using namespace KAlarmCal;
22 
23 
24 class DeferAlarmDlg : public QDialog
25 {
26         Q_OBJECT
27     public:
28         DeferAlarmDlg(const DateTime& initialDT, bool anyTimeOption, bool cancelButton, QWidget* parent = nullptr);
29         void             setLimit(const DateTime&);
30         DateTime         setLimit(const KAEvent& event);
getDateTime()31         const DateTime&  getDateTime() const   { return mAlarmDateTime; }
32         void             setDeferMinutes(int mins);
deferMinutes()33         int              deferMinutes() const  { return mDeferMinutes; }
34 
35     protected Q_SLOTS:
36         virtual void     slotOk();
37         virtual void     slotCancelDeferral();
38 
39     private Q_SLOTS:
40         void             slotPastLimit();
41 
42     private:
43         AlarmTimeWidget* mTimeWidget;
44         QDialogButtonBox* mButtonBox;
45         DateTime         mAlarmDateTime;
46         DateTime         mLimitDateTime;   // latest date/time allowed for deferral
47         EventId          mLimitEventId;    // event IDs from whose recurrences to derive the limit date/time for deferral
48         int              mDeferMinutes;    // number of minutes deferral selected, or 0 if date/time entered
49 };
50 
51 
52 // vim: et sw=4:
53