File indexing completed on 2024-05-19 16:14:59
0001 /* 0002 SPDX-FileCopyrightText: 2016-2017 Thomas Baumgart <tbaumgart@kde.org> 0003 SPDX-FileCopyrightText: 2017-2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "splitadjustdialog.h" 0008 #include "ui_splitadjustdialog.h" 0009 0010 #include <QButtonGroup> 0011 0012 #include <KLocalizedString> 0013 0014 class SplitAdjustDialog::Private { 0015 public: 0016 Private() 0017 : ui(new Ui_SplitAdjustDialog), 0018 buttonGroup(nullptr) 0019 {} 0020 0021 ~Private() 0022 { 0023 delete ui; 0024 } 0025 Ui_SplitAdjustDialog* ui; 0026 QButtonGroup* buttonGroup; 0027 }; 0028 0029 SplitAdjustDialog::SplitAdjustDialog(QWidget* parent, Qt::WindowFlags f) 0030 : QDialog(parent, f) 0031 , d(new Private) 0032 { 0033 d->ui->setupUi(this); 0034 d->buttonGroup = new QButtonGroup(this); 0035 d->buttonGroup->addButton(d->ui->continueBtn, SplitAdjustContinue); 0036 d->buttonGroup->addButton(d->ui->changeBtn, SplitAdjustChange); 0037 d->buttonGroup->addButton(d->ui->distributeBtn, SplitAdjustDistribute); 0038 d->buttonGroup->addButton(d->ui->leaveBtn, SplitAdjustLeaveAsIs); 0039 } 0040 0041 SplitAdjustDialog::~SplitAdjustDialog() 0042 { 0043 } 0044 0045 SplitAdjustDialog::Options SplitAdjustDialog::selectedOption() const 0046 { 0047 return static_cast<Options>(d->buttonGroup->checkedId()); 0048 } 0049 0050 void SplitAdjustDialog::setValues(QString transactionSum, QString splitSum, QString diff, int splitCount) 0051 { 0052 // now modify the text items of the dialog to contain the correct values 0053 QString q = i18n("The total amount of this transaction is %1 while " 0054 "the sum of the splits is %2. The remaining %3 are " 0055 "unassigned.", transactionSum, splitSum, diff); 0056 d->ui->explanation->setText(q); 0057 0058 q = i18n("Change &total amount of transaction to %1.", splitSum); 0059 d->ui->changeBtn->setText(q); 0060 0061 q = i18n("&Distribute difference of %1 among all splits.", diff); 0062 d->ui->distributeBtn->setText(q); 0063 // FIXME remove the following line once distribution among 0064 // all splits is implemented 0065 d->ui->distributeBtn->hide(); 0066 0067 // if we have only two splits left, we don't allow leaving sth. unassigned. 0068 if (splitCount < 3) { 0069 q = i18n("&Leave total amount of transaction at %1.", transactionSum); 0070 } else { 0071 q = i18n("&Leave %1 unassigned.", diff); 0072 } 0073 d->ui->leaveBtn->setText(q); 0074 }