File indexing completed on 2024-05-12 16:42:06
0001 /* 0002 SPDX-FileCopyrightText: 2017 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "kequitypriceupdateconfdlg.h" 0007 0008 #include "ui_kequitypriceupdateconfdlg.h" 0009 0010 #include "dialogenums.h" 0011 0012 class EquityPriceUpdateConfDlgPrivate 0013 { 0014 Q_DISABLE_COPY(EquityPriceUpdateConfDlgPrivate) 0015 0016 public: 0017 EquityPriceUpdateConfDlgPrivate() : 0018 ui(new Ui::EquityPriceUpdateConfDlg), 0019 m_updatingPricePolicy(eDialogs::UpdatePrice::All) 0020 { 0021 } 0022 0023 ~EquityPriceUpdateConfDlgPrivate() 0024 { 0025 delete ui; 0026 } 0027 0028 void updatingPricePolicyChanged(const eDialogs::UpdatePrice policy, bool toggled) 0029 { 0030 if (!toggled) 0031 return; 0032 0033 switch(policy) { 0034 case eDialogs::UpdatePrice::All: 0035 ui->m_updateMissing->setChecked(false); 0036 ui->m_updateDownloaded->setChecked(false); 0037 ui->m_updateSource->setChecked(false); 0038 ui->m_ask->setChecked(false); 0039 break; 0040 case eDialogs::UpdatePrice::Missing: 0041 ui->m_updateAll->setChecked(false); 0042 ui->m_updateDownloaded->setChecked(false); 0043 ui->m_updateSource->setChecked(false); 0044 ui->m_ask->setChecked(false); 0045 break; 0046 case eDialogs::UpdatePrice::Downloaded: 0047 ui->m_updateAll->setChecked(false); 0048 ui->m_updateMissing->setChecked(false); 0049 ui->m_updateSource->setChecked(false); 0050 ui->m_ask->setChecked(false); 0051 break; 0052 case eDialogs::UpdatePrice::SameSource: 0053 ui->m_updateAll->setChecked(false); 0054 ui->m_updateMissing->setChecked(false); 0055 ui->m_updateDownloaded->setChecked(false); 0056 ui->m_ask->setChecked(false); 0057 break; 0058 case eDialogs::UpdatePrice::Ask: 0059 ui->m_updateAll->setChecked(false); 0060 ui->m_updateDownloaded->setChecked(false); 0061 ui->m_updateSource->setChecked(false); 0062 ui->m_updateMissing->setChecked(false); 0063 break; 0064 } 0065 m_updatingPricePolicy = policy; 0066 } 0067 0068 Ui::EquityPriceUpdateConfDlg *ui; 0069 eDialogs::UpdatePrice m_updatingPricePolicy; 0070 }; 0071 0072 EquityPriceUpdateConfDlg::EquityPriceUpdateConfDlg(eDialogs::UpdatePrice policy) : 0073 QDialog(nullptr), 0074 d_ptr(new EquityPriceUpdateConfDlgPrivate) 0075 { 0076 Q_D(EquityPriceUpdateConfDlg); 0077 d->ui->setupUi(this); 0078 switch(policy) { 0079 case eDialogs::UpdatePrice::All: 0080 d->ui->m_updateAll->setChecked(true); 0081 break; 0082 case eDialogs::UpdatePrice::Missing: 0083 d->ui->m_updateMissing->setChecked(true); 0084 break; 0085 case eDialogs::UpdatePrice::Downloaded: 0086 d->ui->m_updateDownloaded->setChecked(true); 0087 break; 0088 case eDialogs::UpdatePrice::SameSource: 0089 d->ui->m_updateSource->setChecked(true); 0090 break; 0091 case eDialogs::UpdatePrice::Ask: 0092 d->ui->m_ask->setChecked(true); 0093 break; 0094 } 0095 0096 d->m_updatingPricePolicy = policy; 0097 connect(d->ui->m_updateAll, &QAbstractButton::toggled, this, &EquityPriceUpdateConfDlg::updateAllToggled); 0098 connect(d->ui->m_updateMissing, &QAbstractButton::toggled, this, &EquityPriceUpdateConfDlg::updateMissingToggled); 0099 connect(d->ui->m_updateDownloaded, &QAbstractButton::toggled, this, &EquityPriceUpdateConfDlg::updateDownloadedToggled); 0100 connect(d->ui->m_updateSource, &QAbstractButton::toggled, this, &EquityPriceUpdateConfDlg::updateSameSourceToggled); 0101 connect(d->ui->m_ask, &QAbstractButton::toggled, this, &EquityPriceUpdateConfDlg::askToggled); 0102 } 0103 0104 EquityPriceUpdateConfDlg::~EquityPriceUpdateConfDlg() 0105 { 0106 Q_D(EquityPriceUpdateConfDlg); 0107 delete d; 0108 } 0109 0110 void EquityPriceUpdateConfDlg::updateAllToggled(bool toggled) 0111 { 0112 Q_D(EquityPriceUpdateConfDlg); 0113 d->updatingPricePolicyChanged(eDialogs::UpdatePrice::All, toggled); 0114 } 0115 0116 void EquityPriceUpdateConfDlg::updateMissingToggled(bool toggled) 0117 { 0118 Q_D(EquityPriceUpdateConfDlg); 0119 d->updatingPricePolicyChanged(eDialogs::UpdatePrice::Missing, toggled); 0120 } 0121 0122 void EquityPriceUpdateConfDlg::updateDownloadedToggled(bool toggled) 0123 { 0124 Q_D(EquityPriceUpdateConfDlg); 0125 d->updatingPricePolicyChanged(eDialogs::UpdatePrice::Downloaded, toggled); 0126 } 0127 0128 void EquityPriceUpdateConfDlg::updateSameSourceToggled(bool toggled) 0129 { 0130 Q_D(EquityPriceUpdateConfDlg); 0131 d->updatingPricePolicyChanged(eDialogs::UpdatePrice::SameSource, toggled); 0132 } 0133 0134 void EquityPriceUpdateConfDlg::askToggled(bool toggled) 0135 { 0136 Q_D(EquityPriceUpdateConfDlg); 0137 d->updatingPricePolicyChanged(eDialogs::UpdatePrice::Ask, toggled); 0138 } 0139 0140 eDialogs::UpdatePrice EquityPriceUpdateConfDlg::policy() const 0141 { 0142 Q_D(const EquityPriceUpdateConfDlg); 0143 return d->m_updatingPricePolicy; 0144 }