/*************************************************************************** knewaccountdlg.h ------------------- copyright : (C) 2000 by Michael Edwardes email : mte@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef KNEWACCOUNTDLG_H #define KNEWACCOUNTDLG_H // ---------------------------------------------------------------------------- // QT Includes // ---------------------------------------------------------------------------- // KDE Headers #ifdef HAVE_KDCHART #include <KDChartWidget.h> #include <KDChartTable.h> #include <KDChartParams.h> #endif // ---------------------------------------------------------------------------- // Project Includes #include <kmymoney/mymoneyaccount.h> #include <kmymoney/mymoneymoney.h> #include <kmymoney/kmymoneyedit.h> #include "../dialogs/knewaccountdlgdecl.h" class KMyMoneyAccountTreeBaseItem; namespace reports { class KReportChartView; }; /** * This dialog lets you create/edit an account. */ class KNewAccountDlg : public KNewAccountDlgDecl { Q_OBJECT private: MyMoneyAccount m_account; MyMoneyAccount m_parentAccount; bool m_bSelectedParentAccount; KMyMoneyAccountTreeBaseItem *m_parentItem; KMyMoneyAccountTreeBaseItem *m_accountItem; bool m_categoryEditor; bool m_isEditing; int m_idPropFutureValue; int m_idPropLastValue; int m_idPropMaxCredit; int m_idPropMinBalance; void initParentWidget(TQString parentId, const TQString& accountId); void showSubAccounts(TQStringList accounts, KMyMoneyAccountTreeBaseItem *parentItem, const TQString& parentId, const TQString& accountId); void loadVatAccounts(void); void storeKVP(const TQString& key, kMyMoneyEdit* widget); void storeKVP(const TQString& key, KLineEdit* widget); void storeKVP(const TQString& key, const TQString& text, const TQString& value); void loadKVP(const TQString& key, kMyMoneyEdit* widget); void loadKVP(const TQString& key, KLineEdit* widget); public: /** * This is the constructor of the dialog. The parameters define the environment * in which the dialog will be used. Depending on the environment, certain rules * apply and will be handled by the dialog. * * @param account The original data to be used to create the account. In case * of @p isEditing is false, the account id, the parent account id * and the list of all child accounts will be cleared. * @param isEditing If @p false, rules for new account creation apply. * If @p true, rules for account editing apply * @param categoryEditor If @p false, rules for asset/liability accounts apply. * If @p true, rules for income/expense account apply. * @param parent Pointer to parent object (passed to TQDialog). Default is 0. * @param name Name of the object (passed to TQDialog). Default is 0. * @param title Caption of the object (passed to TQDialog). Default is empty string. */ KNewAccountDlg(const MyMoneyAccount& account, bool isEditing, bool categoryEditor, TQWidget *parent=0, const char *name=0, const TQString& title=TQString()); /** * This method returns the edited account object. */ const MyMoneyAccount& account(void); /** * This method returns the parent account of the edited account object. */ const MyMoneyAccount& parentAccount(void); void setOpeningBalance(const MyMoneyMoney& balance); const MyMoneyMoney openingBalance(void) const { return m_openingBalanceEdit->value(); }; void setOpeningBalanceShown(bool shown); /** * This method adds an additional tab pointed to with @a w to the tab widget. * This tab is usually defined by a plugin (eg. online banking). If @a w is * zero, this is a NOP. @a name is used as the text to be placed on the tab. */ void addTab(TQWidget* w, const TQString& name); protected: void resizeEvent(TQResizeEvent* e); void displayOnlineBankingStatus(void); void adjustEditWidgets(kMyMoneyEdit* dst, kMyMoneyEdit* src, char mode, int corr); protected slots: void okClicked(); void slotSelectionChanged(TQListViewItem *item); void slotAccountTypeChanged(const TQString& type); void slotVatChanged(bool); void slotVatAssignmentChanged(bool); void slotNewClicked(void); void slotCheckFinished(void); void slotLoadInstitutions(const TQString&); void slotAdjustMinBalanceAbsoluteEdit(const TQString&); void slotAdjustMinBalanceEarlyEdit(const TQString&); void slotAdjustMaxCreditAbsoluteEdit(const TQString&); void slotAdjustMaxCreditEarlyEdit(const TQString&); private slots: void timerDone(void); }; #endif