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 }