File indexing completed on 2024-05-12 05:07:58
0001 /* 0002 SPDX-FileCopyrightText: 2009-2010 Cristian Oneț <onet.cristian@gmail.com> 0003 SPDX-FileCopyrightText: 2009-2010 Alvaro Soliverez <asoliverez@gmail.com> 0004 SPDX-FileCopyrightText: 2011-2017 Thomas Baumgart <tbaumgart@kde.org> 0005 SPDX-FileCopyrightText: 2017-2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "kmymoneyreconcilecombo.h" 0010 0011 // ---------------------------------------------------------------------------- 0012 // QT Includes 0013 0014 #include <QDebug> 0015 0016 // ---------------------------------------------------------------------------- 0017 // KDE Includes 0018 0019 #include <KLocalizedString> 0020 0021 // ---------------------------------------------------------------------------- 0022 // Project Includes 0023 0024 #include "mymoneyenums.h" 0025 0026 using namespace eMyMoney; 0027 0028 KMyMoneyReconcileCombo::KMyMoneyReconcileCombo(QWidget* w) : 0029 KMyMoneyMVCCombo(false, w) 0030 { 0031 // add the items in reverse order of appearance (see KMyMoneySelector::newItem() for details) 0032 addItem(i18n("Reconciled"), QVariant("R")); 0033 addItem(i18nc("Reconciliation state 'Cleared'", "Cleared"), QVariant("C")); 0034 addItem(i18n("Not reconciled"), QVariant(" ")); 0035 addItem(" ", QVariant("U")); 0036 0037 connect(this, &KMyMoneyMVCCombo::itemSelected, this, &KMyMoneyReconcileCombo::slotSetState); 0038 } 0039 0040 KMyMoneyReconcileCombo::~KMyMoneyReconcileCombo() 0041 { 0042 } 0043 0044 void KMyMoneyReconcileCombo::slotSetState(const QString& state) 0045 { 0046 setSelectedItem(state); 0047 } 0048 0049 void KMyMoneyReconcileCombo::removeDontCare() 0050 { 0051 //Remove unknown state 0052 removeItem(3); 0053 } 0054 0055 void KMyMoneyReconcileCombo::setState(Split::State state) 0056 { 0057 QString id; 0058 0059 switch (state) { 0060 case Split::State::NotReconciled: 0061 id = ' '; 0062 break; 0063 case Split::State::Cleared: 0064 id = 'C'; 0065 break; 0066 case Split::State::Reconciled: 0067 id = 'R'; 0068 break; 0069 case Split::State::Frozen: 0070 id = 'F'; 0071 break; 0072 case Split::State::Unknown: 0073 id = 'U'; 0074 break; 0075 default: 0076 qDebug() << "Unknown reconcile state '" << (int)state << "' in KMyMoneyReconcileCombo::setState()\n"; 0077 break; 0078 } 0079 setSelectedItem(id); 0080 } 0081 0082 Split::State KMyMoneyReconcileCombo::state() const 0083 { 0084 Split::State state = Split::State::NotReconciled; 0085 0086 auto dataVariant = itemData(currentIndex()); 0087 QString dataVal; 0088 if (dataVariant.isValid()) 0089 dataVal = dataVariant.toString(); 0090 else 0091 return state; 0092 0093 if (!dataVal.isEmpty()) { 0094 if (dataVal == "C") 0095 state = Split::State::Cleared; 0096 if (dataVal == "R") 0097 state = Split::State::Reconciled; 0098 if (dataVal == "F") 0099 state = Split::State::Frozen; 0100 if (dataVal == "U") 0101 state = Split::State::Unknown; 0102 } 0103 return state; 0104 }