From 6bd42b26a8d601413acbb047b9a9eb1333db0aa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Sat, 2 Oct 2010 10:25:40 +0200 Subject: [PATCH] Fix nasty inverted Grid Tree bug --- src/view/grid/GridAccount.cpp | 5 ++--- src/view/grid/wxGridCellTreeButtonEditor.cpp | 6 ++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/view/grid/GridAccount.cpp b/src/view/grid/GridAccount.cpp index 4f6fa51..1674225 100644 --- a/src/view/grid/GridAccount.cpp +++ b/src/view/grid/GridAccount.cpp @@ -239,7 +239,7 @@ void GridAccount::InsertOperation(User* user, Operation* op, int line, bool fix, if (op && op->meta) { - SetCellRenderer(line, TREE, new wxGridCellTreeButtonRenderer(true)); + SetCellRenderer(line, TREE, new wxGridCellTreeButtonRenderer()); SetCellEditor(line, TREE, new wxGridCellTreeButtonEditor()); SetReadOnly(line, DATE, true); @@ -377,7 +377,7 @@ void GridAccount::OnCellLeftClick(wxGridEvent& evt) #endif } // hack to prevent selection from being lost when click combobox - if (evt.GetCol() == 0 && IsInSelection(evt.GetRow(), evt.GetCol())) + if (/*evt.GetCol() == 0 && */IsInSelection(evt.GetRow(), evt.GetCol())) { //m_selTemp = m_selection; m_selection = NULL; @@ -503,7 +503,6 @@ void GridAccount::OnOperationModified(wxGridEvent& event) op = _displayedOperations[row]; - // Invert not already applied if (!treeRenderer->IsCollapsed()) { for (i=1, it=op->childs.begin(); it!=op->childs.end(); it++, i++) diff --git a/src/view/grid/wxGridCellTreeButtonEditor.cpp b/src/view/grid/wxGridCellTreeButtonEditor.cpp index 37394e0..4fb6215 100644 --- a/src/view/grid/wxGridCellTreeButtonEditor.cpp +++ b/src/view/grid/wxGridCellTreeButtonEditor.cpp @@ -33,13 +33,15 @@ void wxGridCellTreeButtonEditor::BeginEdit (int row, int col, wxGrid *grid) _grid = grid; wxGridCellRenderer* pRenderer = _grid->GetCellRenderer(_row, _col); + + ((GridAccount*)_grid)->OnCellLeftClick(evt); + ((wxGridCellTreeButtonRenderer*) pRenderer)->Invert(); pRenderer->DecRef(); - - ((GridAccount*)_grid)->OnCellLeftClick(evt); } + void wxGridCellTreeButtonEditor::Create (wxWindow *parent, wxWindowID id, wxEvtHandler *evtHandler) { }