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 }