/*************************************************************************** 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 Felix Rodriguez John C Thomas Baumgart Kevin Tambascio ***************************************************************************/ /*************************************************************************** * * * 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 #include #include class TDEListViewSearchLineWidget; #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(TQWidget *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 TQStringList& 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 TQPixmap 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: TQMap m_securityMap; TQMap m_transactionCountMap; KMyMoneyAccountTreeItem* m_incomeItem; KMyMoneyAccountTreeItem* m_expenseItem; /** * Search widget for the list */ TDEListViewSearchLineWidget* m_searchWidget; /// set if a view needs to be reloaded during show() bool m_needReload; }; #endif