From 9c423efd834f42fa8c9acec1e4e3cfe581005d0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Sat, 29 Jan 2011 11:41:14 +0100 Subject: [PATCH] Fix a bug in search engine and enhance grouped operations displays --- ChangeLog | 4 +++- src/model/Database.cpp | 6 ++++-- src/view/grid/GridAccount.cpp | 5 +++-- src/view/grid/GridAccount.h | 1 + 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 422cb9e..1455602 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,10 @@ -v0.2_dev (23/01/2011) +v0.2_dev (29/01/2011) ** User ** Better use of sizers (so better interface!) No further problems with scrollbar in AccountPanel when there is a lot of operations + Better fit of interface when displaying grouped operations ** Dev ** Use a factory to create panels (prepare for plug-in) @@ -15,3 +16,4 @@ v0.2_dev (23/01/2011) Bad year range check Unordered accounts (makes account selection points to bad indexes on account graph) Bug in account creation (readonly fields) + Bug in search bad computation of month with start_date and end_date diff --git a/src/model/Database.cpp b/src/model/Database.cpp index 3b6b754..ea9b9d0 100644 --- a/src/model/Database.cpp +++ b/src/model/Database.cpp @@ -1291,7 +1291,8 @@ std::vector* Database::Search(User* user, wxString* description, wxDa if (firstCond) req += wxT(" AND ") ; else firstCond = true; req += wxT("("); req += wxT("year >= ") + yearFrom ; - req += wxT(" AND (month > '") + monthFrom + wxT("' OR (month == '") + monthFrom + wxT("' AND day >= '") + dayFrom + wxT("'))"); + req += wxT(" AND (month > '") + monthFrom + wxT("' OR (month == '") + monthFrom + wxT("' AND day >= '") + dayFrom + wxT("')"); + req += wxT(" OR (month < '") + monthFrom + wxT("' AND year > '") + yearFrom + wxT("'))"); req += wxT(")"); } @@ -1300,7 +1301,8 @@ std::vector* Database::Search(User* user, wxString* description, wxDa if (firstCond) req += wxT(" AND ") ; else firstCond = true; req += wxT("("); req += wxT("year <= ") + yearTo ; - req += wxT(" AND (month < '") + monthTo + wxT("' OR (month == '") + monthTo + wxT("' AND day <= '") + dayTo + wxT("'))"); + req += wxT(" AND (month < '") + monthTo + wxT("' OR (month == '") + monthTo + wxT("' AND day <= '") + dayTo + wxT("')"); + req += wxT(" OR (month > '") + monthTo + wxT("' AND year < '") + yearTo + wxT("'))"); req += wxT(")"); } diff --git a/src/view/grid/GridAccount.cpp b/src/view/grid/GridAccount.cpp index 95595f9..832ba9f 100644 --- a/src/view/grid/GridAccount.cpp +++ b/src/view/grid/GridAccount.cpp @@ -40,8 +40,8 @@ EVT_GRID_CELL_LEFT_CLICK(GridAccount::OnCellLeftClick ) END_EVENT_TABLE() enum {GRID_ID}; -GridAccount::GridAccount(KissCount* kiss, wxWindow *parent, wxWindowID id) : wxGrid(parent, id), _fixCosts(0), _week1(0), - _week2(0), _week3(0), _week4(0), _kiss(kiss), +GridAccount::GridAccount(KissCount* kiss, wxWindow *parent, wxWindowID id) : wxGrid(parent, id), _fixCosts(0), _week1(0), + _week2(0), _week3(0), _week4(0), _parent(parent), _kiss(kiss), _loadOperations(false), _curMonth(0), _curYear(0) { @@ -676,6 +676,7 @@ void GridAccount::OnOperationModified(wxGridEvent& event) ComputeWeeks(); inModification = false; + _parent->Fit(); return; } diff --git a/src/view/grid/GridAccount.h b/src/view/grid/GridAccount.h index c943922..c1856a8 100644 --- a/src/view/grid/GridAccount.h +++ b/src/view/grid/GridAccount.h @@ -61,6 +61,7 @@ public: std::vector _displayedOperations; private: + wxWindow* _parent; KissCount* _kiss; bool _displayLines; wxString* _categories, *_accounts;