Change int in double for Search

Add SearchBanner & Search Pannel
Enable MassUpdate
This commit is contained in:
2011-12-03 11:23:55 +01:00
parent 7b8f6edff5
commit 9b0222323a
11 changed files with 647 additions and 48 deletions

View File

@@ -1321,6 +1321,22 @@ void GridAccount::Group()
InsertIntoGrid(op);
}
void GridAccount::GetSelectedOperations(std::vector<int>* rows)
{
Operation op;
rows->clear();
QModelIndexList selected = selectedIndexes();
for (int i = 0; i < selected.size(); ++i)
{
op = _displayedOperations[selected[i].row()] ;
if (op.id)
rows->push_back(selected[i].row());
}
}
void GridAccount::UnGroup()
{
@@ -1436,56 +1452,62 @@ removeLastGroup:
ComputeWeeks();
}
void GridAccount::MassUpdate(std::vector<int>& rows, updateOperationFunc func, void** params)
void GridAccount::MassUpdate(std::vector<int>& rows, bool do_childs, updateOperationFunc func, void** params)
{
// int i, b;
// std::vector<Operation>::iterator it;
// Operation op, op2;
int i, b;
std::vector<Operation>::iterator it;
Operation op, op2;
// _parent->Disable();
_parent->setEnabled(false);
// _parent->SetCursor(wxCursor(wxCURSOR_WAIT));
_parent->setCursor(Qt::BusyCursor);
// _parent->Update();
if (rows.size())
{
for(i=0; i<(int)rows.size(); i++)
{
op = _displayedOperations[rows[i]];
// if (rows.size())
// {
// for(i=0; i<(int)rows.size(); i++)
// {
// op = _displayedOperations[rows[i]];
func (&op, params);
// func (&op, params);
UpdateOperation(op);
// UpdateOperation(op);
if (op.meta && do_childs)
{
for(b=0; b<(int)op.childs.size(); b++)
{
op2 = GetOperation(op.childs[b]);
func (&op2, params);
UpdateOperation(op2);
}
}
}
}
else
{
for(it=_operations->begin(); it!=_operations->end(); it++)
{
func (&(*it), params);
if (_databaseSynchronization)
_kiss->UpdateOperation(*it);
// if (op.meta)
// {
// for(b=0; b<(int)op.childs.size(); b++)
// {
// op2 = GetOperation(op.childs[b]);
// func (&op2, params);
// UpdateOperation(op2);
// }
// }
// }
// }
// else
// {
// for(it=_operations->begin(); it!=_operations->end(); it++)
// {
// func (&(*it), params);
// if (_databaseSynchronization)
// _kiss->UpdateOperation(*it);
// }
// }
if (it->meta && do_childs)
{
for(b=0; b<(int)it->childs.size(); b++)
{
op2 = GetOperation(it->childs[b]);
func (&op2, params);
UpdateOperation(op2);
}
}
}
}
// ClearGrid();
LoadOperations(_operations, 0, 0);
// LoadOperations(_operations, 0, 0);
layout();
// Layout();
_parent->setEnabled(true);
// _parent->Enable();
// _parent->SetCursor(wxNullCursor);
_parent->setCursor(Qt::ArrowCursor);
}

View File

@@ -50,7 +50,9 @@ public:
void InsertOperationWithWeek(User* user, Operation& op, int line, bool fix, int month, int year) ;
void InsertOperation(User* user, Operation& op, int line, bool fix, int month, int year) ;
void MassUpdate(std::vector<int>& rows, updateOperationFunc func, void** params);
void GetSelectedOperations(std::vector<int>* rows);
void MassUpdate(std::vector<int>& rows, bool do_childs, updateOperationFunc func, void** params);
void Group();
void UnGroup();