diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp index f9510e0cd..19aa42bf7 100644 --- a/slsDetectorGui/src/qTabMeasurement.cpp +++ b/slsDetectorGui/src/qTabMeasurement.cpp @@ -213,23 +213,16 @@ void qTabMeasurement::SetupTimingMode() { index[i] = model->index(i, comboTimingMode->modelColumn(), comboTimingMode->rootModelIndex()); item[i] = model->itemFromIndex(index[i]); + item[i]->setEnabled(false); } - - item[(int)GATED]->setEnabled(false); - item[(int)BURST_TRIGGER]->setEnabled(false); - item[(int)TRIGGER_GATED]->setEnabled(false); - switch (det->getDetectorType().squash()) { - case slsDetectorDefs::EIGER: - item[(int)GATED]->setEnabled(true); - item[(int)BURST_TRIGGER]->setEnabled(true); - break; - case slsDetectorDefs::MYTHEN3: - item[(int)GATED]->setEnabled(true); - item[(int)TRIGGER_GATED]->setEnabled(true); - break; - default: - break; + try { + auto res = det->getTimingModeList(); + for (auto it : res) { + item[(int)it]->setEnabled(true); + } } + CATCH_DISPLAY(std::string("Could not setup timing mode"), + "qTabMeasurement::SetupTimingMode") } } diff --git a/slsDetectorGui/src/qTabSettings.cpp b/slsDetectorGui/src/qTabSettings.cpp index 26e163356..33234fe96 100644 --- a/slsDetectorGui/src/qTabSettings.cpp +++ b/slsDetectorGui/src/qTabSettings.cpp @@ -101,52 +101,14 @@ void qTabSettings::SetupDetectorSettings() { item[i] = model->itemFromIndex(index[i]); item[i]->setEnabled(false); } - switch (det->getDetectorType().squash()) { - case slsDetectorDefs::EIGER: - item[(int)STANDARD]->setEnabled(true); - item[(int)HIGHGAIN]->setEnabled(true); - item[(int)LOWGAIN]->setEnabled(true); - item[(int)VERYHIGHGAIN]->setEnabled(true); - item[(int)VERLOWGAIN]->setEnabled(true); - break; - case slsDetectorDefs::GOTTHARD: - item[(int)HIGHGAIN]->setEnabled(true); - item[(int)DYNAMICGAIN]->setEnabled(true); - item[(int)LOWGAIN]->setEnabled(true); - item[(int)MEDIUMGAIN]->setEnabled(true); - item[(int)VERYHIGHGAIN]->setEnabled(true); - break; - case slsDetectorDefs::JUNGFRAU: - item[(int)DYNAMICGAIN]->setEnabled(true); - item[(int)DYNAMICHG0]->setEnabled(true); - break; - case slsDetectorDefs::GOTTHARD2: - item[(int)DYNAMICGAIN]->setEnabled(true); - item[(int)FIXGAIN1]->setEnabled(true); - item[(int)FIXGAIN2]->setEnabled(true); - break; - case slsDetectorDefs::MOENCH: - item[(int)G1_HIGHGAIN]->setEnabled(true); - item[(int)G1_LOWGAIN]->setEnabled(true); - item[(int)G2_HIGHCAP_HIGHGAIN]->setEnabled(true); - item[(int)G2_HIGHCAP_LOWGAIN]->setEnabled(true); - item[(int)G2_LOWCAP_HIGHGAIN]->setEnabled(true); - item[(int)G2_LOWCAP_LOWGAIN]->setEnabled(true); - item[(int)G4_HIGHGAIN]->setEnabled(true); - item[(int)G4_LOWGAIN]->setEnabled(true); - break; - case slsDetectorDefs::MYTHEN3: - item[(int)STANDARD]->setEnabled(true); - item[(int)FAST]->setEnabled(true); - item[(int)HIGHGAIN]->setEnabled(true); - break; - default: - LOG(logDEBUG) << "Unknown detector type. Exiting GUI."; - qDefs::Message(qDefs::CRITICAL, - "Unknown detector type. Exiting GUI.", - "qTabSettings::SetupDetectorSettings"); - exit(-1); + try { + auto res = det->getSettingsList(); + for (auto it : res) { + item[(int)it]->setEnabled(true); + } } + CATCH_DISPLAY(std::string("Could not setup settings"), + "qTabSettings::SetupDetectorSettings") } }