From: <vo...@us...> - 2013-06-23 11:54:33
|
Revision: 4153 http://sourceforge.net/p/moneymanagerex/code/4153 Author: vomikan Date: 2013-06-23 11:54:29 +0000 (Sun, 23 Jun 2013) Log Message: ----------- transaction filter reorganization Modified Paths: -------------- trunk/src/constants.h trunk/src/filtertransdialog.cpp trunk/src/filtertransdialog.h trunk/src/guiid.h trunk/src/mmcheckingpanel.cpp trunk/src/mmcheckingpanel.h trunk/src/reports/mmDateRange.cpp Modified: trunk/src/constants.h =================================================================== --- trunk/src/constants.h 2013-06-23 06:30:57 UTC (rev 4152) +++ trunk/src/constants.h 2013-06-23 11:54:29 UTC (rev 4153) @@ -120,6 +120,18 @@ }; +static const wxString DATE_PRESETTINGS[] = { + VIEW_TRANS_ALL_STR, + VIEW_TRANS_TODAY_STR, + VIEW_TRANS_CURRENT_MONTH_STR, + VIEW_TRANS_LAST_30_DAYS_STR, + VIEW_TRANS_LAST_90_DAYS_STR, + VIEW_TRANS_LAST_MONTH_STR , + VIEW_TRANS_LAST_3MONTHS_STR, + VIEW_TRANS_LAST_365_DAYS, + VIEW_TRANS_CURRENT_YEAR_STR +}; + static const wxString TRANSACTION_STATUS[] = { wxTRANSLATE("None"), Modified: trunk/src/filtertransdialog.cpp =================================================================== --- trunk/src/filtertransdialog.cpp 2013-06-23 06:30:57 UTC (rev 4152) +++ trunk/src/filtertransdialog.cpp 2013-06-23 11:54:29 UTC (rev 4153) @@ -31,7 +31,8 @@ EVT_BUTTON (wxID_OK, mmFilterTransactionsDialog::OnButtonokClick ) EVT_BUTTON (wxID_CANCEL, mmFilterTransactionsDialog::OnButtoncancelClick ) EVT_BUTTON (wxID_SAVE, mmFilterTransactionsDialog::OnButtonSaveClick ) - EVT_BUTTON (wxID_CLEAR, mmFilterTransactionsDialog::OnButtonClearClick ) + EVT_BUTTON (wxID_CLEAR, mmFilterTransactionsDialog::OnButtonClearClick ) + EVT_MENU (wxID_ANY, mmFilterTransactionsDialog::datePresetMenuSelected ) END_EVENT_TABLE() @@ -170,7 +171,6 @@ itemPanel->SetSizer(itemBoxSizer4); itemBoxSizer4->Add(itemPanelSizer, flagsExpand); - //--Start of Row -------------------------------------------------------- accountCheckBox_ = new wxCheckBox( itemPanel, wxID_ANY, _("Account"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); @@ -191,6 +191,8 @@ wxDefaultPosition, wxDefaultSize, wxDP_DROPDOWN); toDateControl_ = new wxDatePickerCtrl( itemPanel, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DROPDOWN); + dateRangeCheckBox_->Connect(wxID_ANY, wxEVT_RIGHT_DOWN + , wxMouseEventHandler(mmFilterTransactionsDialog::datePresetMenu), NULL, this); wxBoxSizer* dateSizer = new wxBoxSizer(wxHORIZONTAL); dateSizer->Add(fromDateCtrl_, flagsExpand); @@ -668,12 +670,25 @@ settings_string_ = "0;;0;;0;;0;;0;;0;;0;;0;;0;;0;;0;;"; dataToControls(); } +void mmFilterTransactionsDialog::datePresetMenuSelected( wxCommandEvent& event ) +{ + int id = event.GetId(); + setPresettings(DATE_PRESETTINGS[id]); +} +void mmFilterTransactionsDialog::datePresetMenu( wxMouseEvent& event ) +{ + wxMenu menu; + int id = 0; + for (const auto& i : DATE_PRESETTINGS) + { + menu.Append(id++, wxGetTranslation(i)); + } + PopupMenu(&menu, event.GetPosition()); +} + void mmFilterTransactionsDialog::setPresettings(const wxString& view) { - - m_radio_box_->SetSelection(0); - clearSettings(); date_range_ = new mmCurrentMonth; dateRangeCheckBox_->SetValue(true); @@ -695,18 +710,6 @@ date_range_ = new mmCurrentYear; else if (view == VIEW_TRANS_LAST_365_DAYS)//ToDO: date_range_ = new mmLast12Months; - else if (view == VIEW_TRANS_RECONCILED_STR) - setReconciled(); - else if (view == "View UnReconciled") - setUnReconciled(); - else if (view == "View Not-Reconciled") - setAllExceptReconciled(); - else if (view == VIEW_TRANS_VOID) - setVoid(); - else if (view == VIEW_TRANS_FLAGGED) - setFlagged(); - else if (view == VIEW_TRANS_DUPLICATES) - setDuplicate(); if (dateRangeCheckBox_->IsChecked()) { @@ -715,46 +718,8 @@ fromDateCtrl_->Enable(); toDateControl_->Enable(); } - } -void mmFilterTransactionsDialog::setReconciled() -{ - statusCheckBox_->SetValue(true); - choiceStatus_->SetStringSelection(wxGetTranslation("Reconciled")); - choiceStatus_->Enable(); -} -void mmFilterTransactionsDialog::setUnReconciled() -{ - statusCheckBox_->SetValue(true); - choiceStatus_->SetStringSelection(wxGetTranslation("Un-Reconciled")); - choiceStatus_->Enable(); -} -void mmFilterTransactionsDialog::setAllExceptReconciled() -{ - statusCheckBox_->SetValue(true); - choiceStatus_->SetStringSelection(wxGetTranslation("All Except Reconciled")); - choiceStatus_->Enable(); -} -void mmFilterTransactionsDialog::setVoid() -{ - statusCheckBox_->SetValue(true); - choiceStatus_->SetStringSelection(wxGetTranslation("Void")); - choiceStatus_->Enable(); -} -void mmFilterTransactionsDialog::setFlagged() -{ - statusCheckBox_->SetValue(true); - choiceStatus_->SetStringSelection(wxGetTranslation("Follow up")); - choiceStatus_->Enable(); -} -void mmFilterTransactionsDialog::setDuplicate() -{ - statusCheckBox_->SetValue(true); - choiceStatus_->SetStringSelection(wxGetTranslation("Duplicate")); - choiceStatus_->Enable(); -} - void mmFilterTransactionsDialog::OnPayeeUpdated(wxCommandEvent& event) { wxString value = cbPayee_->GetValue().Lower(); Modified: trunk/src/filtertransdialog.h =================================================================== --- trunk/src/filtertransdialog.h 2013-06-23 06:30:57 UTC (rev 4152) +++ trunk/src/filtertransdialog.h 2013-06-23 11:54:29 UTC (rev 4153) @@ -118,17 +118,12 @@ void OnButtonSaveClick( wxCommandEvent& event ); void OnButtonClearClick( wxCommandEvent& event ); void OnSettingsSelected( wxCommandEvent& event ); + void datePresetMenu( wxMouseEvent& event ); + void datePresetMenuSelected( wxCommandEvent& event ); void OnPayeeUpdated(wxCommandEvent& event); bool get_next_value(wxStringTokenizer& tkz, wxString& value); void OnCategs(wxCommandEvent& event); - - void setReconciled(); - void setUnReconciled(); - void setAllExceptReconciled(); - void setVoid(); - void setFlagged(); - void setDuplicate(); /// Should we show tooltips? static bool ShowToolTips(); @@ -169,7 +164,6 @@ int payeeID_; int refAccountID_; wxString refAccountStr_; - }; #endif Modified: trunk/src/guiid.h =================================================================== --- trunk/src/guiid.h 2013-06-23 06:30:57 UTC (rev 4152) +++ trunk/src/guiid.h 2013-06-23 11:54:29 UTC (rev 4153) @@ -200,22 +200,17 @@ MENU_TREEPOPUP_VIEW_SPLIT_CATEGORIES, MENU_VIEW_ALLTRANSACTIONS, - MENU_VIEW_RECONCILED, - MENU_VIEW_UNRECONCILED, - MENU_VIEW_NOTRECONCILED, - MENU_VIEW_VOID, - MENU_VIEW_FLAGGED, - MENU_VIEW_DUPLICATE, MENU_VIEW_TODAY, + MENU_VIEW_CURRENTMONTH, MENU_VIEW_LAST30, + MENU_VIEW_LAST90, MENU_VIEW_LASTMONTH, - MENU_VIEW_LAST90, MENU_VIEW_LAST3MONTHS, + MENU_VIEW_LAST365, MENU_VIEW_CURRENTYEAR, - MENU_VIEW_LAST365, + MENU_VIEW_, MENU_VIEW_DELETE_TRANS, MENU_VIEW_DELETE_FLAGGED, - MENU_VIEW_CURRENTMONTH, MENU_ON_COPY_TRANSACTION, MENU_ON_PASTE_TRANSACTION, Modified: trunk/src/mmcheckingpanel.cpp =================================================================== --- trunk/src/mmcheckingpanel.cpp 2013-06-23 06:30:57 UTC (rev 4152) +++ trunk/src/mmcheckingpanel.cpp 2013-06-23 11:54:29 UTC (rev 4153) @@ -272,10 +272,11 @@ //TODO: Load currency settings for current account /* Set up the transaction filter. The transFilter dialog will be destroyed when the checking panel is destroyed. */ - transFilterActive_ = true; + transFilterActive_ = false; transFilterDlg_ = new mmFilterTransactionsDialog(core_, this); + initViewTransactionsHeader(); + initFilterSettings(); - initViewTransactionsHeader(); initVirtualListControl(); windowsFreezeThaw(this); @@ -348,14 +349,12 @@ std::vector<mmBankTransaction*> filtered_trans; bool toAdd = transFilterDlg_->somethingSelected(); - if (/*transFilterActive_ &&*/ toAdd) + if (transFilterActive_ && toAdd) { for (const auto& pBankTransaction: m_trans) { - mmBankTransaction* pTempTransaction = pBankTransaction; toAdd = true; - if (transFilterDlg_->getAccountCheckBox()) toAdd = toAdd && (transFilterDlg_->getAccountID() == pBankTransaction->toAccountID_); @@ -385,10 +384,21 @@ if (transFilterDlg_->getNotesCheckBox()) toAdd = toAdd && (pBankTransaction->notes_.Lower().Matches(transFilterDlg_->getNotes().Trim().Lower())); if (toAdd) - filtered_trans.push_back(pTempTransaction); + filtered_trans.push_back(pBankTransaction); } - this->m_trans = filtered_trans; } + else + { + for (const auto& pBankTransaction: m_trans) + { + if (quickFilterBeginDate_ <= pBankTransaction->date_.GetDateOnly() + && quickFilterEndDate_ >= pBankTransaction->date_.GetDateOnly()) + { + filtered_trans.push_back(pBankTransaction); + } + } + } + this->m_trans = filtered_trans; } void mmCheckingPanel::markSelectedTransaction(int trans_id) @@ -433,23 +443,11 @@ default: { wxMenu menu; - menu.Append(MENU_VIEW_ALLTRANSACTIONS, wxGetTranslation(VIEW_TRANS_ALL_STR)); - menu.Append(MENU_VIEW_RECONCILED, wxGetTranslation(VIEW_TRANS_RECONCILED_STR)); - menu.Append(MENU_VIEW_UNRECONCILED, wxGetTranslation(wxTRANSLATE("View Un-Reconciled"))); - menu.Append(MENU_VIEW_NOTRECONCILED, wxGetTranslation(wxTRANSLATE("View All Except Reconciled"))); - menu.Append(MENU_VIEW_VOID, wxGetTranslation(VIEW_TRANS_VOID)); - menu.Append(MENU_VIEW_FLAGGED, wxGetTranslation(VIEW_TRANS_FLAGGED)); - menu.Append(MENU_VIEW_DUPLICATE, wxGetTranslation(VIEW_TRANS_DUPLICATES)); - menu.AppendSeparator(); - menu.Append(MENU_VIEW_TODAY, wxGetTranslation(VIEW_TRANS_TODAY_STR)); - menu.Append(MENU_VIEW_CURRENTMONTH, wxGetTranslation(VIEW_TRANS_CURRENT_MONTH_STR)); - menu.Append(MENU_VIEW_LAST30, wxGetTranslation(VIEW_TRANS_LAST_30_DAYS_STR)); - menu.Append(MENU_VIEW_LAST90, wxGetTranslation(VIEW_TRANS_LAST_90_DAYS_STR)); - menu.Append(MENU_VIEW_LASTMONTH, wxGetTranslation(VIEW_TRANS_LAST_MONTH_STR)); - menu.Append(MENU_VIEW_LAST3MONTHS, wxGetTranslation(VIEW_TRANS_LAST_3MONTHS_STR)); - menu.Append(MENU_VIEW_CURRENTYEAR, wxGetTranslation(VIEW_TRANS_CURRENT_YEAR_STR)); - menu.Append(MENU_VIEW_LAST365, wxGetTranslation(VIEW_TRANS_LAST_365_DAYS)); - + int id = MENU_VIEW_ALLTRANSACTIONS; + for (const auto& i : DATE_PRESETTINGS) + { + menu.Append(id++, wxGetTranslation(i)); + } PopupMenu(&menu, event.GetPosition()); break; @@ -464,7 +462,6 @@ { //Initialization core_->bTransactionList_.LoadAccountTransactions(m_AccountID); - initFilterSettings(); filteredBalance_ = 0.0; // clear everything @@ -902,7 +899,29 @@ //---------------------------------------------------------------------------- void mmCheckingPanel::initFilterSettings() { - transFilterDlg_->setPresettings(currentView_); + date_range_ = new mmAllTime; + + if (currentView_ == VIEW_TRANS_ALL_STR) + date_range_ = new mmAllTime; + else if (currentView_ == VIEW_TRANS_TODAY_STR) + date_range_ = new mmToday; + else if (currentView_ == VIEW_TRANS_CURRENT_MONTH_STR) + date_range_ = new mmCurrentMonth; + else if (currentView_ == VIEW_TRANS_LAST_30_DAYS_STR) + date_range_ = new mmLast30Days; + else if (currentView_ == VIEW_TRANS_LAST_90_DAYS_STR) + date_range_ = new mmLast90Days; + else if (currentView_ == VIEW_TRANS_LAST_MONTH_STR) + date_range_ = new mmLastMonth; + else if (currentView_ == VIEW_TRANS_LAST_3MONTHS_STR) + date_range_ = new mmLastMonth;//ToDO: + else if (currentView_ == VIEW_TRANS_CURRENT_YEAR_STR) + date_range_ = new mmCurrentYear; + else if (currentView_ == VIEW_TRANS_LAST_365_DAYS)//ToDO: + date_range_ = new mmLast12Months; + + quickFilterBeginDate_ = date_range_->start_date(); + quickFilterEndDate_ = date_range_->end_date(); } void mmCheckingPanel::OnFilterResetToViewAll(wxMouseEvent& event) { @@ -915,6 +934,7 @@ stxtMainFilter_->SetLabel(_("View All transactions")); currentView_ = VIEW_TRANS_ALL_STR; SetTransactionFilterState(true); + initFilterSettings(); m_listCtrlAccount->m_selectedIndex = -1; m_listCtrlAccount->refreshVisualList(); @@ -930,18 +950,6 @@ currentView_ = VIEW_TRANS_ALL_STR; transFilterActive_ = false; } - else if (evt == MENU_VIEW_RECONCILED) - currentView_ = VIEW_TRANS_RECONCILED_STR; - else if (evt == MENU_VIEW_NOTRECONCILED) - currentView_ = VIEW_TRANS_NOT_RECONCILED_STR; - else if (evt == MENU_VIEW_UNRECONCILED) - currentView_ = VIEW_TRANS_UNRECONCILED_STR; - else if (evt == MENU_VIEW_FLAGGED) - currentView_ = VIEW_TRANS_FLAGGED; - else if (evt == MENU_VIEW_DUPLICATE) - currentView_ = VIEW_TRANS_DUPLICATES; - else if (evt == MENU_VIEW_VOID) - currentView_ = VIEW_TRANS_VOID; else if (evt == MENU_VIEW_TODAY) currentView_ = VIEW_TRANS_TODAY_STR; else if (evt == MENU_VIEW_CURRENTMONTH) Modified: trunk/src/mmcheckingpanel.h =================================================================== --- trunk/src/mmcheckingpanel.h 2013-06-23 06:30:57 UTC (rev 4152) +++ trunk/src/mmcheckingpanel.h 2013-06-23 11:54:29 UTC (rev 4153) @@ -21,11 +21,13 @@ //---------------------------------------------------------------------------- #include "filtertransdialog.h" #include "mmpanelbase.h" +#include "reports/mmDateRange.h" //---------------------------------------------------------------------------- class mmGUIFrame; class mmBankTransaction; class TransactionListCtrl; class mmFilterTransactionsDialog; +class mmDateRange; //---------------------------------------------------------------------------- class mmCheckingPanel : public mmPanelBase @@ -57,6 +59,7 @@ DECLARE_EVENT_TABLE() friend class TransactionListCtrl; // needs access to m_core, initdb_, ... + mmDateRange* date_range_; wxButton* btnNew_; wxButton* btnEdit_; wxButton* btnDuplicate_; @@ -71,6 +74,8 @@ mmFilterTransactionsDialog* transFilterDlg_; wxString currentView_; + wxDateTime quickFilterBeginDate_; + wxDateTime quickFilterEndDate_; mmGUIFrame* mainFrame_; bool transFilterActive_; double filteredBalance_; Modified: trunk/src/reports/mmDateRange.cpp =================================================================== --- trunk/src/reports/mmDateRange.cpp 2013-06-23 06:30:57 UTC (rev 4152) +++ trunk/src/reports/mmDateRange.cpp 2013-06-23 11:54:29 UTC (rev 4153) @@ -162,7 +162,8 @@ : mmDateRange() { this->title_ = _("Over Time"); - this->start_date_.Subtract(today_); + this->start_date_.Subtract(wxDateSpan::Years(today_.GetYear())) + .SetDay(1).SetMonth(wxDateTime::Jan); } const bool mmAllTime::is_with_date() const This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |