File indexing completed on 2024-05-12 16:44:00
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 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "kmymoneyactivitycombo.h" 0010 #include "kmymoneymvccombo_p.h" 0011 0012 // ---------------------------------------------------------------------------- 0013 // QT Includes 0014 0015 // ---------------------------------------------------------------------------- 0016 // KDE Includes 0017 0018 #include <KLocalizedString> 0019 0020 // ---------------------------------------------------------------------------- 0021 // Project Includes 0022 0023 #include "mymoneyenums.h" 0024 0025 using namespace eMyMoney; 0026 0027 class KMyMoneyActivityComboPrivate : public KMyMoneyMVCComboPrivate 0028 { 0029 Q_DISABLE_COPY(KMyMoneyActivityComboPrivate) 0030 0031 public: 0032 KMyMoneyActivityComboPrivate() : 0033 m_activity(Split::InvestmentTransactionType::UnknownTransactionType) 0034 { 0035 } 0036 0037 eMyMoney::Split::InvestmentTransactionType m_activity; 0038 }; 0039 0040 KMyMoneyActivityCombo::KMyMoneyActivityCombo(QWidget* w) : 0041 KMyMoneyMVCCombo(*new KMyMoneyActivityComboPrivate, false, w) 0042 { 0043 addItem(i18n("Buy shares"), QVariant((int)Split::InvestmentTransactionType::BuyShares)); 0044 addItem(i18n("Sell shares"), QVariant((int)Split::InvestmentTransactionType::SellShares)); 0045 addItem(i18n("Dividend"), QVariant((int)Split::InvestmentTransactionType::Dividend)); 0046 addItem(i18n("Reinvest dividend"), QVariant((int)Split::InvestmentTransactionType::ReinvestDividend)); 0047 addItem(i18n("Yield"), QVariant((int)Split::InvestmentTransactionType::Yield)); 0048 addItem(i18n("Add shares"), QVariant((int)Split::InvestmentTransactionType::AddShares)); 0049 addItem(i18n("Remove shares"), QVariant((int)Split::InvestmentTransactionType::RemoveShares)); 0050 addItem(i18n("Split shares"), QVariant((int)Split::InvestmentTransactionType::SplitShares)); 0051 addItem(i18n("Interest Income"), QVariant((int)Split::InvestmentTransactionType::InterestIncome)); 0052 0053 connect(this, &KMyMoneyMVCCombo::itemSelected, this, &KMyMoneyActivityCombo::slotSetActivity); 0054 } 0055 0056 KMyMoneyActivityCombo::~KMyMoneyActivityCombo() 0057 { 0058 } 0059 0060 void KMyMoneyActivityCombo::setActivity(Split::InvestmentTransactionType activity) 0061 { 0062 Q_D(KMyMoneyActivityCombo); 0063 d->m_activity = activity; 0064 QString num; 0065 setSelectedItem(num.setNum((int)activity)); 0066 } 0067 0068 eMyMoney::Split::InvestmentTransactionType KMyMoneyActivityCombo::activity() const 0069 { 0070 Q_D(const KMyMoneyActivityCombo); 0071 return d->m_activity; 0072 } 0073 0074 void KMyMoneyActivityCombo::slotSetActivity(const QString& id) 0075 { 0076 Q_D(KMyMoneyActivityCombo); 0077 QString num; 0078 for (auto i = (int)Split::InvestmentTransactionType::BuyShares; i <= (int)Split::InvestmentTransactionType::InterestIncome; ++i) { 0079 num.setNum(i); 0080 if (num == id) { 0081 d->m_activity = static_cast<Split::InvestmentTransactionType>(i); 0082 break; 0083 } 0084 } 0085 emit activitySelected(d->m_activity); 0086 update(); 0087 }