|
|
|
/***************************************************************************
|
|
|
|
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
|
|
|
|
|