08 clearSelection;
09 setCurrentCell(row, column);
10 activateWindow;
11 return;
12 }
13 ++column;
14 }
15 column = 0;
16 ++row;
17 }
18 QApplication::beep;
19 }
Слот
01 void Spreadsheet::findPrevious(const QString &str, Qt::CaseSensitivity cs)
02 {
03 int row = currentRow;
04 int column = currentColumn - 1;
05 while (row>= 0) {
06 while (column >= 0) {
07 if (text(row, column).contains(str, cs)) {
08 clearSelection;
09 setCurrentCell(row, column);
10 activateWindow;
11 return;
12 }
13 --column;
14 }
15 column = ColumnCount - 1;
16 --row;
17 }
18 QApplication::beep;
19 }
Слот
Реализация других меню
Теперь мы реализуем слоты для пунктов меню Tools и Options.
01 void Spreadsheet::recalculate
02 {
03 for (int row = 0; row < RowCount; ++row) {
04 for (int column = 0; column < ColumnCount; ++column) {
05 if (cell(row, column))
06 cell(row, column)->setDirty;
07 }
08 }
09 viewport->update;
10 }
Слот
Мы выполняем цикл по всем ячейкам и вызываем функцию
Затем мы вызываем для области отображения функцию
01 void Spreadsheet::setAutoRecalculate(bool recalc)
02 {
03 autoRecalc = recalc;
04 if (autoRecalc)