| 2380 | } |
| 2381 | |
| 2382 | void SpreadsheetTest::testInsertRowsBegin() { |
| 2383 | Project project; |
| 2384 | auto* sheet = new Spreadsheet(QStringLiteral("test"), false); |
| 2385 | project.addChild(sheet); |
| 2386 | |
| 2387 | auto* model = new SpreadsheetModel(sheet); |
| 2388 | int rowsAboutToBeInsertedCounter = 0; |
| 2389 | connect(model, &SpreadsheetModel::rowsAboutToBeInserted, [&rowsAboutToBeInsertedCounter]() { |
| 2390 | rowsAboutToBeInsertedCounter++; |
| 2391 | }); |
| 2392 | int rowsInsertedCounter = 0; |
| 2393 | connect(model, &SpreadsheetModel::rowsInserted, [&rowsInsertedCounter]() { |
| 2394 | rowsInsertedCounter++; |
| 2395 | }); |
| 2396 | int rowsAboutToBeRemovedCounter = 0; |
| 2397 | connect(model, &SpreadsheetModel::rowsAboutToBeRemoved, [&rowsAboutToBeRemovedCounter]() { |
| 2398 | rowsAboutToBeRemovedCounter++; |
| 2399 | }); |
| 2400 | int rowsRemovedCounter = 0; |
| 2401 | connect(model, &SpreadsheetModel::rowsRemoved, [&rowsRemovedCounter]() { |
| 2402 | rowsRemovedCounter++; |
| 2403 | }); |
| 2404 | |
| 2405 | QCOMPARE(sheet->rowCount(), 100); |
| 2406 | QCOMPARE(model->rowCount(), 100); |
| 2407 | sheet->insertRows(0, 1); // No crash shall happen |
| 2408 | QCOMPARE(sheet->rowCount(), 101); |
| 2409 | QCOMPARE(model->rowCount(), 101); |
| 2410 | |
| 2411 | sheet->undoStack()->undo(); |
| 2412 | QCOMPARE(sheet->rowCount(), 100); |
| 2413 | QCOMPARE(model->rowCount(), 100); |
| 2414 | sheet->undoStack()->redo(); |
| 2415 | QCOMPARE(sheet->rowCount(), 101); |
| 2416 | QCOMPARE(model->rowCount(), 101); |
| 2417 | |
| 2418 | QCOMPARE(rowsAboutToBeInsertedCounter, 2); // set and redo() |
| 2419 | QCOMPARE(rowsInsertedCounter, 2); // set and redo() |
| 2420 | QCOMPARE(rowsAboutToBeRemovedCounter, 1); // undo() |
| 2421 | QCOMPARE(rowsRemovedCounter, 1); // undo() |
| 2422 | } |
| 2423 | void SpreadsheetTest::testRemoveRowsBegin() { |
| 2424 | Project project; |
| 2425 | auto* sheet = new Spreadsheet(QStringLiteral("test"), false); |