File indexing completed on 2024-05-12 16:44:05

0001 /*
0002     SPDX-FileCopyrightText: 2017-2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef KMYMONEYVIEWBASE_H
0007 #define KMYMONEYVIEWBASE_H
0008 
0009 #include "kmm_widgets_export.h"
0010 
0011 // ----------------------------------------------------------------------------
0012 // QT Includes
0013 
0014 #include <QWidget>
0015 
0016 // ----------------------------------------------------------------------------
0017 // KDE Includes
0018 
0019 // ----------------------------------------------------------------------------
0020 // Project Includes
0021 
0022 #include "viewenums.h"
0023 
0024 class MyMoneyObject;
0025 
0026 /**
0027   * This class is an abstract base class that all specific views
0028   * should be based on.
0029   */
0030 class KMyMoneyViewBasePrivate;
0031 class KMM_WIDGETS_EXPORT KMyMoneyViewBase : public QWidget
0032 {
0033     Q_OBJECT
0034 
0035 public:
0036     explicit KMyMoneyViewBase(QWidget* parent = nullptr);
0037     virtual ~KMyMoneyViewBase();
0038 
0039     virtual void executeCustomAction(eView::Action) {}
0040 
0041 Q_SIGNALS:
0042     void selectByObject(const MyMoneyObject&, eView::Intent);
0043     void selectByVariant(const QVariantList&, eView::Intent);
0044     void customActionRequested(View, eView::Action);
0045 
0046 public slots:
0047     virtual void slotSelectByObject(const MyMoneyObject&, eView::Intent) {}
0048     virtual void slotSelectByVariant(const QVariantList&, eView::Intent) {}
0049 
0050 protected:
0051     const QScopedPointer<KMyMoneyViewBasePrivate> d_ptr;
0052     KMyMoneyViewBase(KMyMoneyViewBasePrivate &dd, QWidget *parent);
0053 
0054 private:
0055     Q_DECLARE_PRIVATE(KMyMoneyViewBase)
0056 };
0057 
0058 #endif