File indexing completed on 2024-05-12 16:42:09
0001 /* 0002 SPDX-FileCopyrightText: 2002 Michael Edwardes <mte@users.sourceforge.net> 0003 SPDX-FileCopyrightText: 2002-2004 Kevin Tambascio <ktambascio@users.sourceforge.net> 0004 SPDX-FileCopyrightText: 2004-2011 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 "knewequityentrydlg.h" 0010 0011 // ---------------------------------------------------------------------------- 0012 // QT Includes 0013 0014 #include <QPushButton> 0015 0016 // ---------------------------------------------------------------------------- 0017 // KDE Includes 0018 0019 // ---------------------------------------------------------------------------- 0020 // Project Includes 0021 0022 #include "ui_knewequityentrydlg.h" 0023 0024 #include "mymoneymoney.h" 0025 0026 class KNewEquityEntryDlgPrivate 0027 { 0028 Q_DISABLE_COPY(KNewEquityEntryDlgPrivate) 0029 0030 public: 0031 KNewEquityEntryDlgPrivate() : 0032 ui(new Ui::KNewEquityEntryDlg), 0033 m_fraction(2) 0034 { 0035 } 0036 0037 ~KNewEquityEntryDlgPrivate() 0038 { 0039 delete ui; 0040 } 0041 0042 Ui::KNewEquityEntryDlg *ui; 0043 QString m_strSymbolName; 0044 QString m_strName; 0045 int m_fraction; 0046 }; 0047 0048 KNewEquityEntryDlg::KNewEquityEntryDlg(QWidget *parent) : 0049 QDialog(parent), 0050 d_ptr(new KNewEquityEntryDlgPrivate) 0051 { 0052 Q_D(KNewEquityEntryDlg); 0053 d->m_fraction = 0; 0054 d->ui->setupUi(this); 0055 setModal(true); 0056 d->ui->edtFraction->setCalculatorButtonVisible(true); 0057 d->ui->edtFraction->setPrecision(0); 0058 d->ui->edtFraction->setText(QLatin1String("100")); 0059 0060 connect(d->ui->buttonBox->button(QDialogButtonBox::Ok), &QAbstractButton::clicked, this, &KNewEquityEntryDlg::onOKClicked); 0061 0062 connect(d->ui->edtFraction, &AmountEdit::textChanged, this, &KNewEquityEntryDlg::slotDataChanged); 0063 connect(d->ui->edtMarketSymbol, &QLineEdit::textChanged, this, &KNewEquityEntryDlg::slotDataChanged); 0064 connect(d->ui->edtEquityName, &QLineEdit::textChanged, this, &KNewEquityEntryDlg::slotDataChanged); 0065 0066 // add icons to buttons 0067 0068 slotDataChanged(); 0069 0070 d->ui->edtEquityName->setFocus(); 0071 } 0072 0073 KNewEquityEntryDlg::~KNewEquityEntryDlg() 0074 { 0075 Q_D(KNewEquityEntryDlg); 0076 delete d; 0077 } 0078 0079 /** No descriptions */ 0080 void KNewEquityEntryDlg::onOKClicked() 0081 { 0082 Q_D(KNewEquityEntryDlg); 0083 d->m_strSymbolName = d->ui->edtMarketSymbol->text(); 0084 d->m_strName = d->ui->edtEquityName->text(); 0085 d->m_fraction = d->ui->edtFraction->value().abs().formatMoney("", 0, false).toUInt(); 0086 accept(); 0087 } 0088 0089 void KNewEquityEntryDlg::setSymbolName(const QString& str) 0090 { 0091 Q_D(KNewEquityEntryDlg); 0092 d->m_strSymbolName = str; 0093 d->ui->edtMarketSymbol->setText(d->m_strSymbolName); 0094 } 0095 0096 QString KNewEquityEntryDlg::symbolName() const 0097 { 0098 Q_D(const KNewEquityEntryDlg); 0099 return d->m_strSymbolName; 0100 } 0101 0102 void KNewEquityEntryDlg::setName(const QString& str) 0103 { 0104 Q_D(KNewEquityEntryDlg); 0105 d->m_strName = str; 0106 d->ui->edtEquityName->setText(d->m_strName); 0107 } 0108 0109 QString KNewEquityEntryDlg::name() const 0110 { 0111 Q_D(const KNewEquityEntryDlg); 0112 return d->m_strName; 0113 } 0114 0115 int KNewEquityEntryDlg::fraction() const 0116 { 0117 Q_D(const KNewEquityEntryDlg); 0118 return d->m_fraction; 0119 } 0120 0121 void KNewEquityEntryDlg::slotDataChanged() 0122 { 0123 Q_D(KNewEquityEntryDlg); 0124 auto okEnabled = true; 0125 0126 if (!d->ui->edtFraction->value().isPositive() // 0127 || d->ui->edtMarketSymbol->text().isEmpty() // 0128 || d->ui->edtEquityName->text().isEmpty()) // 0129 okEnabled = false; 0130 0131 d->ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(okEnabled); 0132 }