File indexing completed on 2024-05-12 05:14:41

0001 /*
0002  *  deferdlg.h  -  dialog to defer an alarm
0003  *  Program:  kalarm
0004  *  SPDX-FileCopyrightText: 2002-2022 David Jarvie <djarvie@kde.org>
0005  *
0006  *  SPDX-License-Identifier: GPL-2.0-or-later
0007  */
0008 
0009 #pragma once
0010 
0011 #include "eventid.h"
0012 #include "kalarmcalendar/datetime.h"
0013 
0014 #include <QDialog>
0015 
0016 class AlarmTimeWidget;
0017 class QDialogButtonBox;
0018 namespace KAlarmCal { class KAEvent; }
0019 
0020 using namespace KAlarmCal;
0021 
0022 
0023 class DeferAlarmDlg : public QDialog
0024 {
0025     Q_OBJECT
0026 public:
0027     DeferAlarmDlg(const DateTime& initialDT, bool anyTimeOption, bool cancelButton, QWidget* parent = nullptr);
0028     void             setLimit(const DateTime&);
0029     DateTime         setLimit(const KAEvent& event);
0030     const DateTime&  getDateTime() const   { return mAlarmDateTime; }
0031     void             setDeferMinutes(int mins);
0032     int              deferMinutes() const  { return mDeferMinutes; }
0033 
0034 protected Q_SLOTS:
0035     virtual void     slotOk();
0036     virtual void     slotCancelDeferral();
0037 
0038 private Q_SLOTS:
0039     void             slotPastLimit();
0040 
0041 private:
0042     AlarmTimeWidget* mTimeWidget;
0043     QDialogButtonBox* mButtonBox;
0044     DateTime         mAlarmDateTime;
0045     DateTime         mLimitDateTime;   // latest date/time allowed for deferral
0046     EventId          mLimitEventId;    // event IDs from whose recurrences to derive the limit date/time for deferral
0047     int              mDeferMinutes;    // number of minutes deferral selected, or 0 if date/time entered
0048 };
0049 
0050 // vim: et sw=4: