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

Method typeChanged

src/frontend/spreadsheet/AddSubtractValueDialog.cpp:409–472  ·  view source on GitHub ↗

############################################################################## ############################ Slots ######################################### ##############################################################################

Source from the content-addressed store, hash-verified

407// ############################ Slots #########################################
408// ##############################################################################
409void AddSubtractValueDialog::typeChanged(int index) {
410 auto type = static_cast<ValueType>(ui.cbType->itemData(index).toInt());
411 bool diff = (type == ValueType::Difference);
412 bool baseline = false;
413 if (m_numeric) {
414 ui.lValue->setVisible(!diff);
415 ui.leValue->setVisible(!diff);
416 ui.lValueStart->setVisible(diff);
417 ui.leValueStart->setVisible(diff);
418 ui.lValueEnd->setVisible(diff);
419 ui.leValueEnd->setVisible(diff);
420
421 if (type == ValueType::Minimum || type == ValueType::Maximum || type == ValueType::Median || type == ValueType::Mean) {
422 if (m_columns.count() > 1) {
423 ui.lValue->hide();
424 ui.leValue->hide();
425 } else {
426 // one single column was selected, show the actual minimum value of it, etc.
427 const auto& statistics = m_columns.constFirst()->statistics();
428 double value = 0.;
429 if (type == ValueType::Minimum)
430 value = statistics.minimum;
431 else if (type == ValueType::Maximum)
432 value = statistics.maximum;
433 else if (type == ValueType::Median)
434 value = statistics.median;
435 else if (type == ValueType::Mean)
436 value = statistics.arithmeticMean;
437
438 const auto numberLocale = QLocale();
439 ui.leValue->setText(numberLocale.toString(value));
440 ui.leValue->setEnabled(false);
441 }
442 } else if (type == ValueType::Baseline) {
443 ui.lValue->hide();
444 ui.leValue->hide();
445 baseline = true;
446 } else // custom value or difference -> enable the value field
447 ui.leValue->setEnabled(true);
448 } else { // datetime
449 ui.lTimeValue->setVisible(!diff);
450 ui.leTimeValue->setVisible(!diff);
451 ui.cbTimeUnits->setVisible(!diff);
452 ui.lTimeValueStart->setVisible(diff);
453 ui.dteTimeValueStart->setVisible(diff);
454 ui.lTimeValueEnd->setVisible(diff);
455 ui.dteTimeValueEnd->setVisible(diff);
456 }
457
458 ui.lBaselineParameter1->setVisible(baseline);
459 ui.sbBaselineParameter1->setVisible(baseline);
460 ui.lBaselineParameter2->setVisible(baseline);
461 ui.leBaselineParameter2->setVisible(baseline);
462 ui.lBaselineParameter3->setVisible(baseline);
463 ui.sbBaselineParameter3->setVisible(baseline);
464
465 if (m_spreadsheet && (m_operation == Add || m_operation == Subtract || m_operation == SubtractBaseline)) {
466 // we changed maybe from "Minimum" to "Baseline", etc. and need

Callers

nothing calls this directly

Calls 6

statisticsMethod · 0.80
setVisibleMethod · 0.45
countMethod · 0.45
setTextMethod · 0.45
toStringMethod · 0.45
setEnabledMethod · 0.45

Tested by

no test coverage detected