kmymoneyaccountselector.h

Go to the documentation of this file.
00001 /***************************************************************************
00002                              kmymoneyaccountselector.h
00003                              -------------------
00004     begin                : Thu Sep 18 2003
00005     copyright            : (C) 2003 by Thomas Baumgart
00006     email                : Thomas Baumgart <ipwizard@users.sourceforge.net>
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #ifndef KMYMONEYACCOUNTSELECTOR_H
00019 #define KMYMONEYACCOUNTSELECTOR_H
00020 
00021 // ----------------------------------------------------------------------------
00022 // QT Includes
00023 
00024 // ----------------------------------------------------------------------------
00025 // KDE Includes
00026 
00027 class KPushButton;
00028 
00029 // ----------------------------------------------------------------------------
00030 // Project Includes
00031 
00032 #include <kmymoney/kmymoneyselector.h>
00033 #include <kmymoney/kmymoneyutils.h>
00034 #include <kmymoney/mymoneyaccount.h>
00035 
00036 class kMyMoneyAccountCompletion;
00037 class AccountSet;
00038 class MyMoneyFile;
00039 
00056 class kMyMoneyAccountSelector : public KMyMoneySelector
00057 {
00058   Q_OBJECT
00059 public:
00060   friend class AccountSet;
00061 
00062   kMyMoneyAccountSelector(QWidget *parent=0, const char *name=0, QWidget::WFlags flags = 0, const bool createButtons = true);
00063   virtual ~kMyMoneyAccountSelector();
00064 
00076   QStringList accountList(const QValueList<MyMoneyAccount::accountTypeE>& list = QValueList<MyMoneyAccount::accountTypeE>()) const;
00077 
00078   void setSelectionMode(QListView::SelectionMode mode);
00079 
00089   virtual bool match(const QRegExp& exp, QListViewItem* item) const;
00090 
00099   virtual bool contains(const QString& txt) const;
00100 
00104   void removeButtons(void);
00105 
00106 public slots:
00111   void slotSelectAllAccounts(void) { selectAllItems(true); };
00112 
00117   void slotDeselectAllAccounts(void) { selectAllItems(false); };
00118 
00119 protected:
00128   int loadSubAccounts(QListViewItem* parent, const QStringList& list);
00129 
00134   void selectCategories(const bool income, const bool expense);
00135 
00136 protected slots:
00140   void slotSelectIncomeCategories(void) { selectCategories(true, false); };
00141 
00145   void slotSelectExpenseCategories(void) { selectCategories(false, true); };
00146 
00147 protected:
00148   KPushButton*              m_allAccountsButton;
00149   KPushButton*              m_noAccountButton;
00150   KPushButton*              m_incomeCategoriesButton;
00151   KPushButton*              m_expenseCategoriesButton;
00152   QValueList<int>           m_typeList;
00153   QStringList               m_accountList;
00154 };
00155 
00156 
00157 class AccountSet
00158 {
00159 public:
00160   AccountSet();
00161 
00162   void addAccountType(MyMoneyAccount::accountTypeE type);
00163   void addAccountGroup(MyMoneyAccount::accountTypeE type);
00164   void removeAccountType(MyMoneyAccount::accountTypeE type);
00165 
00166   void clear(void);
00167 
00168   int load(kMyMoneyAccountSelector* selector);
00169   int load(kMyMoneyAccountSelector* selector, const QString& baseName, const QValueList<QString>& accountIdList, const bool clear = false);
00170 
00171   int count(void) const { return m_count; }
00172 
00173   void setHideClosedAccounts (bool _bool) { m_hideClosedAccounts = _bool; }
00174   bool isHidingClosedAccounts (void) { return m_hideClosedAccounts; }
00175 
00176 protected:
00177   int loadSubAccounts(kMyMoneyAccountSelector* selector, QListViewItem* parent, const QString& key, const QStringList& list);
00178   bool includeAccount(const MyMoneyAccount& acc);
00179 
00180 private:
00181   int                                      m_count;
00182   MyMoneyFile*                             m_file;
00183   QValueList<MyMoneyAccount::accountTypeE> m_typeList;
00184   QListViewItem*                           m_favorites;
00185   bool                                     m_hideClosedAccounts;
00186 };
00187 #endif

Generated on Wed Jan 26 13:03:17 2011 for KMyMoney by  doxygen 1.5.6