############################################################################## ############################ Slots ######################################### ##############################################################################
| 407 | // ############################ Slots ######################################### |
| 408 | // ############################################################################## |
| 409 | void 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 |
nothing calls this directly
no test coverage detected