Remove some bugs :(

This commit is contained in:
Grégory Soutadé 2010-11-03 20:32:46 +01:00
parent c012ab042e
commit e97da06dd4
1 changed files with 18 additions and 29 deletions

View File

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