File indexing completed on 2024-05-12 05:07:44
0001 /* 0002 SPDX-FileCopyrightText: 2021 Thomas Baumgart <tbaumgart@kde.org> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "ledgerjournalidfilter.h" 0007 #include "ledgerfilterbase_p.h" 0008 0009 // ---------------------------------------------------------------------------- 0010 // QT Includes 0011 0012 // ---------------------------------------------------------------------------- 0013 // KDE Includes 0014 0015 // ---------------------------------------------------------------------------- 0016 // Project Includes 0017 0018 #include "journalmodel.h" 0019 #include "mymoneyfile.h" 0020 0021 class LedgerJournalIdFilterPrivate : public LedgerFilterBasePrivate 0022 { 0023 public: 0024 explicit LedgerJournalIdFilterPrivate(LedgerJournalIdFilter* qq) 0025 : LedgerFilterBasePrivate(qq) 0026 { 0027 } 0028 0029 ~LedgerJournalIdFilterPrivate() 0030 { 0031 } 0032 }; 0033 0034 LedgerJournalIdFilter::LedgerJournalIdFilter(QObject* parent, QVector<QAbstractItemModel*> specialJournalModels) 0035 : LedgerFilterBase(new LedgerJournalIdFilterPrivate(this), parent) 0036 { 0037 Q_D(LedgerJournalIdFilter); 0038 0039 setFilterRole(eMyMoney::Model::IdRole); 0040 setObjectName("LedgerJournalIdFilter"); 0041 setFilterKeyColumn(0); 0042 0043 d->concatModel->setObjectName("LedgerView concatModel"); 0044 d->concatModel->addSourceModel(MyMoneyFile::instance()->journalModel()); 0045 0046 for (const auto model : specialJournalModels) { 0047 d->concatModel->addSourceModel(model); 0048 } 0049 0050 setSourceModel(d->concatModel); 0051 } 0052 0053 LedgerJournalIdFilter::~LedgerJournalIdFilter() 0054 { 0055 } 0056 0057 bool LedgerJournalIdFilter::lessThan(const QModelIndex& left, const QModelIndex& right) const 0058 { 0059 const auto leftPos = filterFixedStrings().indexOf(left.data(eMyMoney::Model::IdRole).toString()); 0060 const auto rightPos = filterFixedStrings().indexOf(right.data(eMyMoney::Model::IdRole).toString()); 0061 0062 return leftPos < rightPos; 0063 }