kmymoneyaccountselector.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef KMYMONEYACCOUNTSELECTOR_H
00019 #define KMYMONEYACCOUNTSELECTOR_H
00020
00021
00022
00023
00024
00025
00026
00027 class KPushButton;
00028
00029
00030
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