You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kmymoney/kmymoney2/dialogs/kfindtransactiondlg.h

205 lines
5.7 KiB

/***************************************************************************
kfindtransactiondlg.h
-------------------
copyright : (C) 2003 by Thomas Baumgart
email : ipwizard@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 KFINDTRANSACTIONDLG_H
#define KFINDTRANSACTIONDLG_H
// ----------------------------------------------------------------------------
// QT Includes
#include <tqlistview.h>
#include <tqdatetime.h>
#include <tqmap.h>
// ----------------------------------------------------------------------------
// KDE Includes
// ----------------------------------------------------------------------------
// Project Includes
// #include "../views/kledgerview.h"
#include <kmymoney/mymoneyutils.h>
#include <kmymoney/mymoneytransactionfilter.h>
#include "../dialogs/kfindtransactiondlgdecl.h"
class TQListView;
class TQListViewItem;
/**
* @author Thomas Baumgart
*/
class KFindTransactionDlg : public KFindTransactionDlgDecl
{
Q_OBJECT
public:
/*
// Make sure to keep the following enum valus in sync with the values
// used by the GUI in kfindtransactiondlgdecl.ui
enum dateOptionE {
allDates = 0,
asOfToday,
currentMonth,
currentYear,
monthToDate,
yearToDate,
yearToMonth,
lastMonth,
lastYear,
last7Days,
last30Days,
last3Months,
last6Months,
last12Months,
next7Days,
next30Days,
next3Months,
next6Months,
next12Months,
userDefined,
last3ToNext3Months,
last11Months,
// insert new constants above of this line
dateOptionCount
};
*/
KFindTransactionDlg(TQWidget *parent=0, const char *name=0);
~KFindTransactionDlg() {}
virtual bool eventFilter( TQObject *o, TQEvent *e );
public slots:
void show(void);
protected:
void resizeEvent(TQResizeEvent*);
protected slots:
virtual void slotReset(void);
virtual void slotSearch(void);
/**
* This slot opens the detailed help page in khelpcenter. The
* anchor for the information is taken from m_helpAnchor.
*/
virtual void slotShowHelp(void);
void slotUpdateSelections(void);
virtual void slotDateRangeChanged(int);
virtual void slotDateChanged(void);
virtual void slotAmountSelected(void);
virtual void slotAmountRangeSelected(void);
virtual void slotSelectAllPayees(void);
virtual void slotDeselectAllPayees(void);
virtual void slotNrSelected(void);
virtual void slotNrRangeSelected(void);
void slotRefreshView(void);
/**
* This slot selects the current selected transaction/split and emits
* the signal @a transactionSelected(const TQString& accountId, const TQString& transactionId)
*/
void slotSelectTransaction(void);
void slotRightSize(void);
void slotSortOptions(void);
signals:
void transactionSelected(const TQString& accountId, const TQString& transactionId);
/**
* This signal is sent out when no selection has been made. It is
* used to control the state of the Search button.
*/
void selectionEmpty(bool);
protected:
enum opTypeE {
addAccountToFilter = 0,
addCategoryToFilter,
addPayeeToFilter
};
void setupCategoriesPage(void);
void setupDatePage(void);
void setupAccountsPage(void);
void setupAmountPage(void);
void setupPayeesPage(void);
void setupDetailsPage(void);
void setupFilter(void);
void selectAllItems(TQListView* view, const bool state);
void selectAllSubItems(TQListViewItem* item, const bool state);
void selectItems(TQListView* view, const TQStringList& list, const bool state);
void selectSubItems(TQListViewItem* item, const TQStringList& list, const bool state);
/**
* This method loads the m_payeesView with the payees name
* found in the engine.
*/
void loadPayees(void);
/**
* This method loads the register with the matching transactions
*/
void loadView(void);
/**
* This method returns information about the selection state
* of the items in the m_accountsView.
*
* @param view pointer to the listview to scan
*
* @retval true if all items in the view are marked
* @retval false if at least one item is not marked
*
* @note If the view contains no items the method returns @p true.
*/
bool allItemsSelected(const TQListView* view) const;
bool allItemsSelected(const TQListViewItem *item) const;
void scanCheckListItems(const TQListView* view, const opTypeE op);
void scanCheckListItems(const TQListViewItem* item, const opTypeE op);
void addItemToFilter(const opTypeE op, const TQString& id);
protected:
TQDate m_startDates[MyMoneyTransactionFilter::dateOptionCount];
TQDate m_endDates[MyMoneyTransactionFilter::dateOptionCount];
/**
* This member holds a list of all transactions matching the filter criteria
*/
TQValueList<TQPair<MyMoneyTransaction, MyMoneySplit> > m_transactionList;
MyMoneyTransactionFilter m_filter;
TQMap<TQWidget*, TQString> m_helpAnchor;
bool m_needReload;
};
#endif