- RowList::const_iterator cit = rowlist.begin();
- RowList::const_iterator end = rowlist.end();
- for (; cit != end; ++cit) {
- if ((*cit).rownumber() == row) break;
- }
- if (cit != end) {
- RowList::iterator kit = rowlist.begin();
- // Increase the pos of all rows with the
- // same id (and where the pos is larger)
- // to avoid putting errorinsets at the
- // same pos.
- for(; kit != end; ++kit) {
- if (&(*kit) != &(*cit)
- && (*kit).id() == (*cit).id()
- && (*kit).pos() >= (*cit).pos())
- (*kit).pos((*kit).pos() + 1);
- }
- id = (*cit).id();
- pos = (*cit).pos();
- } else {
- id = -1;
- pos = 0;
+ RowList::const_iterator cit =
+ find_if(rowlist.begin(), rowlist.end(),
+ same_rownumber(row));
+
+ if (cit != rowlist.end()) {
+ id = cit->id();
+ pos = cit->pos();
+ return true;