diff --git a/kmymoney/wizards/newaccountwizard/kaccountsummarypage.cpp b/kmymoney/wizards/newaccountwizard/kaccountsummarypage.cpp --- a/kmymoney/wizards/newaccountwizard/kaccountsummarypage.cpp +++ b/kmymoney/wizards/newaccountwizard/kaccountsummarypage.cpp @@ -130,7 +130,7 @@ if (d->m_wizard->d_func()->currency().id() != MyMoneyFile::instance()->baseCurrency().id()) { d->ui->m_dataList->append(i18n("Conversion rate: %1", d->m_wizard->conversionRate().rate(QString()).formatMoney(QString(), d->m_wizard->d_func()->currency().pricePrecision()))); } - if (!acc.isLoan() || !d->m_wizard->openingBalance().isZero()) + if ((!acc.isLoan() && acc.accountType() != Account::Type::Investment) || !d->m_wizard->openingBalance().isZero()) d->ui->m_dataList->append(i18n("Opening balance: %1", MyMoneyUtils::formatMoney(d->m_wizard->openingBalance(), acc, sec))); if (!d->m_wizard->d_func()->m_institutionPage->institution().id().isEmpty()) { @@ -219,5 +219,5 @@ Q_D(const AccountSummaryPage); return d->ui->m_dataList; } - + } diff --git a/kmymoney/wizards/newaccountwizard/kaccounttypepage.h b/kmymoney/wizards/newaccountwizard/kaccounttypepage.h --- a/kmymoney/wizards/newaccountwizard/kaccounttypepage.h +++ b/kmymoney/wizards/newaccountwizard/kaccounttypepage.h @@ -58,6 +58,7 @@ eMyMoney::Account::Type accountType() const; MyMoneyAccount parentAccount(); bool allowsParentAccount() const; + bool accountTypeSupportsOpeningBalance(eMyMoney::Account::Type type) const; const MyMoneySecurity& currency() const; void setAccount(const MyMoneyAccount& acc); diff --git a/kmymoney/wizards/newaccountwizard/kaccounttypepage.cpp b/kmymoney/wizards/newaccountwizard/kaccounttypepage.cpp --- a/kmymoney/wizards/newaccountwizard/kaccounttypepage.cpp +++ b/kmymoney/wizards/newaccountwizard/kaccounttypepage.cpp @@ -110,7 +110,9 @@ { Q_D(AccountTypePage); hideShowPages(static_cast(i)); - d->ui->m_openingBalance->setDisabled(static_cast(i) == Account::Type::Equity); + const bool enabled = accountTypeSupportsOpeningBalance(static_cast(i)); + d->ui->m_openingBalance->setEnabled(enabled); + d->ui->m_openingBalanceLabel->setEnabled(enabled); } void AccountTypePage::hideShowPages(Account::Type accountType) const @@ -223,6 +225,18 @@ return rc; } + bool AccountTypePage::accountTypeSupportsOpeningBalance(Account::Type type) const + { + switch(type) { + case Account::Type::Equity: + case Account::Type::Investment: + return false; + default: + break; + } + return true; + } + Account::Type AccountTypePage::accountType() const { Q_D(const AccountTypePage); diff --git a/kmymoney/wizards/newaccountwizard/kaccounttypepage.ui b/kmymoney/wizards/newaccountwizard/kaccounttypepage.ui --- a/kmymoney/wizards/newaccountwizard/kaccounttypepage.ui +++ b/kmymoney/wizards/newaccountwizard/kaccounttypepage.ui @@ -159,7 +159,7 @@ - + Opening balance diff --git a/kmymoney/wizards/newaccountwizard/knewaccountwizard.cpp b/kmymoney/wizards/newaccountwizard/knewaccountwizard.cpp --- a/kmymoney/wizards/newaccountwizard/knewaccountwizard.cpp +++ b/kmymoney/wizards/newaccountwizard/knewaccountwizard.cpp @@ -346,8 +346,8 @@ MyMoneyMoney Wizard::openingBalance() const { Q_D(const Wizard); - // equity accounts don't have an opening balance - if (d->m_accountTypePage->accountType() == Account::Type::Equity) + // return 0 if account type does not support an opening balance + if (!d->m_accountTypePage->accountTypeSupportsOpeningBalance(d->m_accountTypePage->accountType())) return MyMoneyMoney(); if (d->m_accountTypePage->accountType() == Account::Type::Loan) {