File indexing completed on 2024-05-19 05:08:24
0001 /* 0002 SPDX-FileCopyrightText: 2023 Thomas Baumgart <tbaumgart@kde.org> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #ifndef MULTITRANSACTIONEDITOR_H 0007 #define MULTITRANSACTIONEDITOR_H 0008 0009 // ---------------------------------------------------------------------------- 0010 // QT Includes 0011 0012 #include <QFrame> 0013 class QWidget; 0014 0015 // ---------------------------------------------------------------------------- 0016 // Project Includes 0017 0018 #include "mymoneymoney.h" 0019 #include "mymoneytransaction.h" 0020 #include "tabordereditor.h" 0021 #include "transactioneditorbase.h" 0022 0023 class MyMoneySchedule; 0024 0025 class MultiTransactionEditor : public TransactionEditorBase, TabOrderEditorInterface 0026 { 0027 Q_OBJECT 0028 0029 public: 0030 explicit MultiTransactionEditor(QWidget* parent = nullptr, const QString& accountId = QString()); 0031 virtual ~MultiTransactionEditor(); 0032 0033 /** 0034 */ 0035 void loadTransaction(const QModelIndex& index) override; 0036 QStringList saveTransaction(const QStringList& selectedJournalEntries) override; 0037 0038 void setAmountPlaceHolderText(const QAbstractItemModel* model) override; 0039 0040 /** 0041 * Reimplemented to suppress some events in certain conditions 0042 */ 0043 bool eventFilter(QObject* o, QEvent* e) override; 0044 0045 void setShowAccountCombo(bool show) const; 0046 void setShowNumberWidget(bool show) const; 0047 void setShowButtons(bool show) const; 0048 void setAccountId(const QString& accountId); 0049 0050 QDate postDate() const; 0051 0052 /// overridden for internal reasons 0053 void setReadOnly(bool readOnly) override; 0054 0055 // Implement TabOrderEditorInterface methods 0056 void setupUi(QWidget* parent) override; 0057 void storeTabOrder(const QStringList& tabOrder) override; 0058 0059 /** 0060 * @copydoc TransactionEditorBase::setSelectedJournalEntryIds 0061 */ 0062 virtual bool setSelectedJournalEntryIds(const QStringList& selectedJournalEntryIds) override; 0063 0064 /** 0065 * @copydoc TransactionEditorBase::errorMessage 0066 */ 0067 virtual QString errorMessage() const override; 0068 0069 protected: 0070 bool isTransactionDataValid() const override; 0071 0072 public Q_SLOTS: 0073 void slotSettingsChanged() override; 0074 0075 Q_SIGNALS: 0076 void postDateChanged(const QDate& date); 0077 0078 private: 0079 class Private; 0080 QScopedPointer<Private> const d; 0081 }; 0082 0083 #endif // MULTITRANSACTIONEDITOR_H