MCPcopy Create free account
hub / github.com/KDE/labplot / fillSelectedCellsWithRowNumbers

Method fillSelectedCellsWithRowNumbers

src/frontend/spreadsheet/SpreadsheetView.cpp:2235–2303  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2233}
2234
2235void SpreadsheetView::fillSelectedCellsWithRowNumbers() {
2236 const auto& columns = selectedColumns(false);
2237 if (columns.isEmpty())
2238 return;
2239
2240 int first = firstSelectedRow();
2241 if (first < 0)
2242 return;
2243 int last = lastSelectedRow();
2244
2245 WAIT_CURSOR;
2246 m_spreadsheet->beginMacro(i18n("%1: fill cells with row numbers", m_spreadsheet->name()));
2247 for (auto* col_ptr : columns) {
2248 int col = m_spreadsheet->indexOfChild<Column>(col_ptr);
2249 col_ptr->setSuppressDataChangedSignal(true);
2250 switch (col_ptr->columnMode()) {
2251 case AbstractColumn::ColumnMode::Double: {
2252 QVector<double> results(last - first + 1);
2253 for (int row = first; row <= last; row++)
2254 if (isCellSelected(row, col))
2255 results[row - first] = row + 1;
2256 else
2257 results[row - first] = col_ptr->valueAt(row);
2258 col_ptr->replaceValues(first, results);
2259 break;
2260 }
2261 case AbstractColumn::ColumnMode::Integer: {
2262 QVector<int> results(last - first + 1);
2263 for (int row = first; row <= last; row++)
2264 if (isCellSelected(row, col))
2265 results[row - first] = row + 1;
2266 else
2267 results[row - first] = col_ptr->integerAt(row);
2268 col_ptr->replaceInteger(first, results);
2269 break;
2270 }
2271 case AbstractColumn::ColumnMode::BigInt: {
2272 QVector<qint64> results(last - first + 1);
2273 for (int row = first; row <= last; row++)
2274 if (isCellSelected(row, col))
2275 results[row - first] = row + 1;
2276 else
2277 results[row - first] = col_ptr->bigIntAt(row);
2278 col_ptr->replaceBigInt(first, results);
2279 break;
2280 }
2281 case AbstractColumn::ColumnMode::Text: {
2282 QVector<QString> results;
2283 for (int row = first; row <= last; row++)
2284 if (isCellSelected(row, col))
2285 results << QString::number(row + 1);
2286 else
2287 results << col_ptr->textAt(row);
2288 col_ptr->replaceTexts(first, results);
2289 break;
2290 }
2291 // TODO: handle other modes
2292 case AbstractColumn::ColumnMode::DateTime:

Callers

nothing calls this directly

Calls 15

beginMacroMethod · 0.80
endMacroMethod · 0.80
isEmptyMethod · 0.45
nameMethod · 0.45
columnModeMethod · 0.45
valueAtMethod · 0.45
replaceValuesMethod · 0.45
integerAtMethod · 0.45
replaceIntegerMethod · 0.45
bigIntAtMethod · 0.45
replaceBigIntMethod · 0.45

Tested by

no test coverage detected