| 2047 | } |
| 2048 | |
| 2049 | void SpreadsheetView::maskSelection() { |
| 2050 | int first = firstSelectedRow(); |
| 2051 | if (first < 0) |
| 2052 | return; |
| 2053 | int last = lastSelectedRow(); |
| 2054 | |
| 2055 | WAIT_CURSOR; |
| 2056 | m_spreadsheet->beginMacro(i18n("%1: mask selected cells", m_spreadsheet->name())); |
| 2057 | |
| 2058 | // suppress the data changed signal in all selected columns, will be emitted once per column at the end |
| 2059 | const auto& columns = selectedColumns(false); |
| 2060 | for (auto* column : columns) |
| 2061 | column->setSuppressDataChangedSignal(true); |
| 2062 | |
| 2063 | // mask the selected cells |
| 2064 | for (auto* column : columns) { |
| 2065 | int col = m_spreadsheet->indexOfChild<Column>(column); |
| 2066 | for (int row = first; row <= last; row++) |
| 2067 | if (isCellSelected(row, col)) |
| 2068 | column->setMasked(row); |
| 2069 | |
| 2070 | column->setSuppressDataChangedSignal(false); |
| 2071 | column->setChanged(); |
| 2072 | } |
| 2073 | |
| 2074 | // some cells were masked, enable the "clear masks" action |
| 2075 | action_clear_masks->setEnabled(true); |
| 2076 | |
| 2077 | m_spreadsheet->endMacro(); |
| 2078 | RESET_CURSOR; |
| 2079 | } |
| 2080 | |
| 2081 | void SpreadsheetView::unmaskSelection() { |
| 2082 | int first = firstSelectedRow(); |
nothing calls this directly
no test coverage detected