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

0001 /*
0002     SPDX-FileCopyrightText: 2019 Thomas Baumgart <tbaumgart@kde.org>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 
0007 #ifndef ONLINEBALANCEPROXYMODEL_H
0008 #define ONLINEBALANCEPROXYMODEL_H
0009 
0010 #include "kmm_models_export.h"
0011 
0012 // ----------------------------------------------------------------------------
0013 // QT Includes
0014 
0015 #include <QSortFilterProxyModel>
0016 
0017 // ----------------------------------------------------------------------------
0018 // KDE Includes
0019 
0020 
0021 // ----------------------------------------------------------------------------
0022 // Project Includes
0023 
0024 class OnlineBalanceProxyModelPrivate;
0025 class KMM_MODELS_EXPORT OnlineBalanceProxyModel : public QSortFilterProxyModel
0026 {
0027     Q_OBJECT
0028 public:
0029     enum Column {
0030         Symbol = 0,
0031         Quantity,
0032         Price,
0033         Value,
0034     };
0035 
0036     OnlineBalanceProxyModel(QObject *parent = nullptr);
0037     ~OnlineBalanceProxyModel();
0038 
0039     void setSourceModel ( QAbstractItemModel* sourceModel ) override;
0040 
0041     QVariant data(const QModelIndex& idx, int role) const override;
0042 
0043     int columnCount ( const QModelIndex& parent = QModelIndex() ) const override;
0044 
0045     Qt::ItemFlags flags(const QModelIndex& idx) const override;
0046 
0047     QModelIndex index ( int row, int column, const QModelIndex & parent ) const override;
0048 
0049 protected:
0050     bool filterAcceptsRow ( int source_row, const QModelIndex& source_parent ) const override;
0051 
0052 private:
0053     void init();
0054     void load();
0055 
0056 private:
0057     OnlineBalanceProxyModelPrivate* d_ptr;
0058     Q_DECLARE_PRIVATE(OnlineBalanceProxyModel);
0059 };
0060 
0061 #endif // ONLINEBALANCEPROXYMODEL_H