File indexing completed on 2024-05-19 05:06:53
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 Q_DISABLE_COPY_MOVE(Private) 0017 0018 Private() 0019 : ui(new Ui_SplitAdjustDialog), 0020 buttonGroup(nullptr) 0021 {} 0022 0023 ~Private() 0024 { 0025 delete ui; 0026 } 0027 Ui_SplitAdjustDialog* ui; 0028 QButtonGroup* buttonGroup; 0029 }; 0030 0031 SplitAdjustDialog::SplitAdjustDialog(QWidget* parent, Qt::WindowFlags f) 0032 : QDialog(parent, f) 0033 , d(new Private) 0034 { 0035 d->ui->setupUi(this); 0036 d->buttonGroup = new QButtonGroup(this); 0037 d->buttonGroup->addButton(d->ui->continueBtn, SplitAdjustContinue); 0038 d->buttonGroup->addButton(d->ui->changeBtn, SplitAdjustChange); 0039 d->buttonGroup->addButton(d->ui->distributeBtn, SplitAdjustDistribute); 0040 d->buttonGroup->addButton(d->ui->leaveBtn, SplitAdjustLeaveAsIs); 0041 } 0042 0043 SplitAdjustDialog::~SplitAdjustDialog() 0044 { 0045 } 0046 0047 SplitAdjustDialog::Options SplitAdjustDialog::selectedOption() const 0048 { 0049 return static_cast<Options>(d->buttonGroup->checkedId()); 0050 } 0051 0052 void SplitAdjustDialog::setValues(QString transactionSum, QString splitSum, QString diff, int splitCount) 0053 { 0054 // now modify the text items of the dialog to contain the correct values 0055 QString q = i18n("The total amount of this transaction is %1 while " 0056 "the sum of the splits is %2. The remaining %3 are " 0057 "unassigned.", transactionSum, splitSum, diff); 0058 d->ui->explanation->setText(q); 0059 0060 q = i18n("Change &total amount of transaction to %1.", splitSum); 0061 d->ui->changeBtn->setText(q); 0062 0063 q = i18n("&Distribute difference of %1 among all splits.", diff); 0064 d->ui->distributeBtn->setText(q); 0065 // FIXME remove the following line once distribution among 0066 // all splits is implemented 0067 d->ui->distributeBtn->hide(); 0068 0069 // if we have only two splits left, we don't allow leaving sth. unassigned. 0070 if (splitCount < 3) { 0071 q = i18n("&Leave total amount of transaction at %1.", transactionSum); 0072 } else { 0073 q = i18n("&Leave %1 unassigned.", diff); 0074 } 0075 d->ui->leaveBtn->setText(q); 0076 }