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 }