Remove some bugs :(

This commit is contained in:
Grégory Soutadé 2010-11-03 20:32:46 +01:00
parent c012ab042e
commit e97da06dd4

View File

@ -144,11 +144,12 @@ Operation& GridAccount::GetOperation(const wxString& id)
void GridAccount::UpdateOperation(Operation& op) void GridAccount::UpdateOperation(Operation& op)
{ {
std::vector<Operation>::iterator it; std::vector<Operation>::iterator it;
int i;
for(it=_operations->begin(); it!=_operations->end(); it++) for(i=0; i < (int)_operations->size(); i++)
if (it->id == op.id) if ((*_operations)[i].id == op.id)
{ {
*it = op; (*_operations)[i] = op;
_kiss->UpdateOperation(op); _kiss->UpdateOperation(op);
break; break;
} }
@ -525,12 +526,12 @@ void GridAccount::RemoveMeta(Operation& op, int line, bool removeRoot, bool dele
{ {
DeleteRows(line, 1); DeleteRows(line, 1);
_displayedOperations.erase(_displayedOperations.begin()+line); _displayedOperations.erase(_displayedOperations.begin()+line);
if (op.fix_cost) _fixCosts--;
if (deleteOp) if (deleteOp)
{ {
DeleteOperation(op); DeleteOperation(op);
_kiss->DeleteOperation(op); _kiss->DeleteOperation(op);
} }
if (op.fix_cost) _fixCosts--;
} }
treeRenderer->DecRef(); treeRenderer->DecRef();
@ -1117,7 +1118,7 @@ void GridAccount::Group()
std::vector<wxString>::iterator it3; std::vector<wxString>::iterator it3;
wxString parent = wxT(""); wxString parent = wxT("");
Operation op, op2; Operation op, op2;
int fix = -1, i, row; int fix = -1, i, a, row;
GetSelectedOperations(&selected); GetSelectedOperations(&selected);
@ -1197,27 +1198,17 @@ void GridAccount::Group()
for(i=0; i<(int)rows.size(); i++) for(i=0; i<(int)rows.size(); i++)
{ {
if (rows[i] >= i) if (ops[i].meta)
{ RemoveMeta(ops[i], rows[i], true, false);
if (ops[i].meta)
RemoveMeta(ops[i], rows[i]-i, true, false);
else
{
if (ops[i].fix_cost) _fixCosts--;
DeleteRows(rows[i]-i, 1);
_displayedOperations.erase(_displayedOperations.begin()+rows[i]-i);
}
}
else else
{ {
if (ops[i].meta) if (ops[i].fix_cost) _fixCosts--;
RemoveMeta(ops[i], rows[i], true, false); DeleteRows(rows[i], 1);
else _displayedOperations.erase(_displayedOperations.begin()+rows[i]);
{
if (ops[i].fix_cost) _fixCosts--; for(a=i+1; a<(int)rows.size(); a++)
DeleteRows(rows[i], 1); if (rows[a] >= rows[i])
_displayedOperations.erase(_displayedOperations.begin()+rows[i]); rows[a]--;
}
} }
} }
@ -1319,14 +1310,12 @@ removeLastGroup:
{ {
op2 = GetOperation(ops2[i]); op2 = GetOperation(ops2[i]);
op2.parent = wxT(""); op2.parent = wxT("");
_kiss->UpdateOperation(op2); UpdateOperation(op2);
if (op2.fix_cost) _fixCosts--;
InsertIntoGrid(op2); InsertIntoGrid(op2);
} }
_kiss->DeleteOperation(op); _kiss->DeleteOperation(op);
DeleteOperation(op); DeleteOperation(op);
if (op.fix_cost) _fixCosts--;
} }
else else
{ {
@ -1339,7 +1328,7 @@ removeLastGroup:
{ {
op = ops[i]; op = ops[i];
op.parent = wxT(""); op.parent = wxT("");
_kiss->UpdateOperation(op); UpdateOperation(op);
line = GetDisplayedRow(op.id); line = GetDisplayedRow(op.id);
DeleteRows(line, 1); DeleteRows(line, 1);
_displayedOperations.erase(_displayedOperations.begin()+line); _displayedOperations.erase(_displayedOperations.begin()+line);
@ -1363,6 +1352,6 @@ removeLastGroup:
goto removeLastGroup; goto removeLastGroup;
} }
_kiss->UpdateOperation(op2); UpdateOperation(op2);
} }
} }