File indexing completed on 2024-05-26 05:10:17

0001 /*
0002     SPDX-FileCopyrightText: 2006 Thomas Baumgart <ipwizard@users.sourceforge.net>
0003     SPDX-FileCopyrightText: 2017 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "knewuserwizard.h"
0008 #include "knewuserwizard_p.h"
0009 
0010 // ----------------------------------------------------------------------------
0011 // QT Includes
0012 
0013 #include <QCheckBox>
0014 #include <QList>
0015 
0016 // ----------------------------------------------------------------------------
0017 // KDE Includes
0018 
0019 #include <KLocalizedString>
0020 
0021 // ----------------------------------------------------------------------------
0022 // Project Includes
0023 
0024 #include "kaccountpage.h"
0025 #include "kaccountpage_p.h"
0026 #include "kcategoriespage.h"
0027 #include "kcurrencypage.h"
0028 #include "kgeneralpage.h"
0029 #include "kintropage.h"
0030 #include "kpreferencepage.h"
0031 #include "kpreferencepage_p.h"
0032 
0033 #include "mymoneysecurity.h"
0034 #include "mymoneypayee.h"
0035 #include "mymoneymoney.h"
0036 #include "mymoneyinstitution.h"
0037 #include "mymoneyaccount.h"
0038 #include "kmymoneysettings.h"
0039 #include "mymoneytemplate.h"
0040 #include "mymoneyenums.h"
0041 
0042 namespace NewUserWizard
0043 {
0044 int stepCount = 0;
0045 
0046 Wizard::Wizard(QWidget *parent, bool modal, Qt::WindowFlags flags) :
0047     KMyMoneyWizard(*new WizardPrivate(this), parent, modal, flags)
0048 {
0049     Q_D(Wizard);
0050     bool isFirstTime = KMyMoneySettings::firstTimeRun();
0051 
0052     stepCount = 1;
0053 
0054     setTitle(i18n("KMyMoney New File Setup"));
0055     if (isFirstTime)
0056         addStep(i18nc("New file wizard introduction", "Introduction"));
0057     addStep(i18n("Personal Data"));
0058     addStep(i18n("Select Currency"));
0059     addStep(i18n("Select Accounts"));
0060     addStep(i18nc("Finish the wizard", "Finish"));
0061 
0062     if (isFirstTime)
0063         d->m_introPage = new IntroPage(this);
0064     d->m_generalPage = new GeneralPage(this);
0065     d->m_currencyPage = new CurrencyPage(this);
0066     d->m_accountPage = new AccountPage(this);
0067     d->m_categoriesPage = new CategoriesPage(this);
0068     d->m_preferencePage = new PreferencePage(this);
0069 
0070     d->m_accountPage->d_func()->ui->m_haveCheckingAccountButton->setChecked(true);
0071     if (isFirstTime)
0072         d->setFirstPage(d->m_introPage);
0073     else
0074         d->setFirstPage(d->m_generalPage);
0075 
0076     setHelpContext("firsttime");
0077 }
0078 
0079 Wizard::~Wizard()
0080 {
0081 }
0082 
0083 MyMoneyPayee Wizard::user() const
0084 {
0085     Q_D(const Wizard);
0086     return d->m_generalPage->user();
0087 }
0088 
0089 MyMoneyInstitution Wizard::institution() const
0090 {
0091     Q_D(const Wizard);
0092     MyMoneyInstitution inst;
0093     if (d->m_accountPage->d_func()->ui->m_haveCheckingAccountButton->isChecked()) {
0094         if (d->m_accountPage->d_func()->ui->m_institutionNameEdit->text().length()) {
0095             inst.setName(d->m_accountPage->d_func()->ui->m_institutionNameEdit->text());
0096             if (d->m_accountPage->d_func()->ui->m_institutionNumberEdit->text().length())
0097                 inst.setBankCode(d->m_accountPage->d_func()->ui->m_institutionNumberEdit->text());
0098         }
0099     }
0100     return inst;
0101 }
0102 
0103 MyMoneyAccount Wizard::account() const
0104 {
0105     Q_D(const Wizard);
0106     MyMoneyAccount acc;
0107     if (d->m_accountPage->d_func()->ui->m_haveCheckingAccountButton->isChecked()) {
0108         acc.setName(d->m_accountPage->d_func()->ui->m_accountNameEdit->text());
0109         if (d->m_accountPage->d_func()->ui->m_accountNumberEdit->text().length())
0110             acc.setNumber(d->m_accountPage->d_func()->ui->m_accountNumberEdit->text());
0111         acc.setOpeningDate(d->m_accountPage->d_func()->ui->m_openingDateEdit->date());
0112         acc.setCurrencyId(d->m_baseCurrency.id());
0113         acc.setAccountType(eMyMoney::Account::Type::Checkings);
0114     }
0115     return acc;
0116 }
0117 
0118 MyMoneyMoney Wizard::openingBalance() const
0119 {
0120     Q_D(const Wizard);
0121     return d->m_accountPage->d_func()->ui->m_openingBalanceEdit->value();
0122 }
0123 
0124 MyMoneySecurity Wizard::baseCurrency() const
0125 {
0126     Q_D(const Wizard);
0127     return d->m_baseCurrency;
0128 }
0129 
0130 QList<MyMoneyTemplate> Wizard::templates() const
0131 {
0132     Q_D(const Wizard);
0133     return d->m_categoriesPage->selectedTemplates();
0134 }
0135 
0136 bool Wizard::startSettingsAfterFinished() const
0137 {
0138     Q_D(const Wizard);
0139     return d->m_preferencePage->d_func()->ui->m_openConfigAfterFinished->checkState() == Qt::Checked;
0140 }
0141 }