File indexing completed on 2024-05-19 05:08:16

0001 /*
0002     SPDX-FileCopyrightText: 2021 Thomas Baumgart <tbaumgart@kde.org>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef KEDITSCHEDULEDLG_H
0007 #define KEDITSCHEDULEDLG_H
0008 
0009 // ----------------------------------------------------------------------------
0010 // QT Includes
0011 
0012 #include <QDialog>
0013 
0014 // ----------------------------------------------------------------------------
0015 // KDE Includes
0016 
0017 // ----------------------------------------------------------------------------
0018 // Project Includes
0019 
0020 class MyMoneySchedule;
0021 class MyMoneyAccount;
0022 class MyMoneyTransaction;
0023 class TransactionEditor;
0024 #include "tabordereditor.h"
0025 
0026 namespace eMyMoney { namespace Schedule {
0027 enum class Occurrence;
0028 }}
0029 
0030 /**
0031  * @author Thomas Baumgart
0032  */
0033 
0034 class KEditScheduleDlgPrivate;
0035 class KEditScheduleDlg : public QDialog, TabOrderEditorInterface
0036 {
0037     Q_OBJECT
0038     Q_DISABLE_COPY(KEditScheduleDlg)
0039 
0040 public:
0041     explicit KEditScheduleDlg(const MyMoneySchedule& schedule, QWidget* parent = nullptr);
0042     ~KEditScheduleDlg();
0043 
0044     /**
0045      * Returns the edited schedule.
0046      *
0047      * @return MyMoneySchedule The schedule details.
0048      **/
0049     const MyMoneySchedule& schedule();
0050 
0051     static void newSchedule(const MyMoneyTransaction& _t, eMyMoney::Schedule::Occurrence occurrence);
0052     static void editSchedule(const MyMoneySchedule& inputSchedule);
0053 
0054     // Implement TabOrderEditorInterface methods
0055     void setupUi(QWidget* parent) override;
0056     void storeTabOrder(const QStringList& tabOrder) override;
0057 
0058 protected:
0059     void keyPressEvent(QKeyEvent* event) override;
0060     bool focusNextPrevChild(bool next) override;
0061 
0062 private Q_SLOTS:
0063     /// Overridden for internal reasons. No API changes.
0064     void accept() override;
0065 
0066 private:
0067     KEditScheduleDlgPrivate* const d_ptr;
0068     Q_DECLARE_PRIVATE(KEditScheduleDlg)
0069 };
0070 
0071 #endif