diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-07-04 22:38:03 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-07-04 22:38:03 +0000 |
commit | dadc34655c3ab961b0b0b94a10eaaba710f0b5e8 (patch) | |
tree | 99e72842fe687baea16376a147619b6048d7e441 /kmymoney2/views/kcategoriesview.h | |
download | kmymoney-dadc34655c3ab961b0b0b94a10eaaba710f0b5e8.tar.gz kmymoney-dadc34655c3ab961b0b0b94a10eaaba710f0b5e8.zip |
Added kmymoney
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kmymoney@1239792 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kmymoney2/views/kcategoriesview.h')
-rw-r--r-- | kmymoney2/views/kcategoriesview.h | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/kmymoney2/views/kcategoriesview.h b/kmymoney2/views/kcategoriesview.h new file mode 100644 index 0000000..4a6ad3c --- /dev/null +++ b/kmymoney2/views/kcategoriesview.h @@ -0,0 +1,147 @@ +/*************************************************************************** + kcategoriesview.h - description + ------------------- + begin : Sun Jan 20 2002 + copyright : (C) 2000-2002 by Michael Edwardes + (C) 2005 by Thomas Baumgart + email : mte@users.sourceforge.net + Javier Campos Morales <javi_c@users.sourceforge.net> + Felix Rodriguez <frodriguez@users.sourceforge.net> + John C <thetacoturtle@users.sourceforge.net> + Thomas Baumgart <ipwizard@users.sourceforge.net> + Kevin Tambascio <ktambascio@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 KCATEGORIESVIEW_H +#define KCATEGORIESVIEW_H + +// ---------------------------------------------------------------------------- +// QT Includes + +// ---------------------------------------------------------------------------- +// KDE Includes + +// ---------------------------------------------------------------------------- +// Project Includes + +#include <kmymoney/mymoneyaccount.h> +#include <kmymoney/kmymoneyaccounttree.h> +#include <kmymoney/mymoneyutils.h> +class KListViewSearchLineWidget; + +#include "kcategoriesviewdecl.h" + +/** + * @brief This class contains the implementation of the categories view. + * @author Michael Edwardes, Thomas Baumgart + * + * While named "categories view", this view actually displays all accounts + * that are children of the global "Income" and "Expense" accounts. Even though + * categories are internally just accounts as well, the distinction between + * categories and accounts in the user interface is done for better + * usability and clarity. + * + * The main functionality in the categories view is actually implemented + * in the KMyMoneyAccountTree. Signals from user actions are connect to + * other signals/slots in KCategoriesView and relayed to KMyMoneyView. + * A typical example is the selectObject() signal that eventually results + * in enabling/disabling the user actions for the categories view. + * + * For the categories view three user actions are important (all created in + * kmymoney2.cpp): category_new, category_edit and category_delete. They are + * accessible from either the main menu or the context menu. + */ +class KCategoriesView : public KCategoriesViewDecl +{ + Q_OBJECT +public: + KCategoriesView(QWidget *parent=0, const char *name=0); + virtual ~KCategoriesView(); + + +public slots: + void slotLoadAccounts(void); + + /** + * Override the base class behaviour to include all updates that + * happened in the meantime. + */ + void show(void); + + /** + * Override the base class behaviour to restore the layout. Do not + * do this in show() because show() itself may change the layout + * in undesired ways. + */ + void polish(void); + +protected: + void loadAccounts(void); + bool loadSubAccounts(KMyMoneyAccountTreeItem* parent, const QStringList& accountList); + +protected slots: + void slotUpdateProfit(void); + void slotExpandCollapse(void); + +private: + /** + * This method returns an icon according to the account type + * passed in the argument @p type. + * + * @param type account type as defined in MyMoneyAccount::accountTypeE + */ + const QPixmap accountImage(const MyMoneyAccount::accountTypeE type) const; + +signals: + /** + * This signal serves as proxy for KMyMoneyAccountTree::selectObject() + */ + void selectObject(const MyMoneyObject&); + + /** + * This signal serves as proxy for + * KMyMoneyAccountTree::openContextMenu(const MyMoneyObject&) + */ + void openContextMenu(const MyMoneyObject& obj); + + /** + * This signal will be emitted when the left mouse button is double + * clicked (actually the KDE executed setting is used) on an account. + */ + void openObject(const MyMoneyObject& obj); + + /** + * This signal is emitted, when the user selected to reparent the + * account @p acc to be a subordinate account of @p parent. + * + * @param acc const reference to account to be reparented + * @param parent const reference to new parent account + */ + void reparent(const MyMoneyAccount& acc, const MyMoneyAccount& parent); + +private: + QMap<QString, MyMoneySecurity> m_securityMap; + QMap<QString, unsigned long> m_transactionCountMap; + + KMyMoneyAccountTreeItem* m_incomeItem; + KMyMoneyAccountTreeItem* m_expenseItem; + + /** + * Search widget for the list + */ + KListViewSearchLineWidget* m_searchWidget; + + /// set if a view needs to be reloaded during show() + bool m_needReload; +}; + +#endif |