- int numRows = model()->rowCount();
- int row = -1;
- QModelIndex firstLineIdx;
- do {
- row++;
- firstLineIdx = model()->index(row, 0);
- } while((Message::Type)(model()->data(firstLineIdx, MessageModel::TypeRole).toInt()) == Message::DayChange && row < numRows);
+ if(_firstLineRow == -1) {
+ int numRows = model()->rowCount();
+ QModelIndex firstLineIdx;
+ do {
+ _firstLineRow++;
+ firstLineIdx = model()->index(_firstLineRow, 0);
+ } while((Message::Type)(model()->data(firstLineIdx, MessageModel::TypeRole).toInt()) == Message::DayChange && _firstLineRow < numRows);
+ }