This commit is contained in:
maliakal_d 2021-06-10 18:27:42 +02:00
parent f01e5fd5ec
commit b4d2f2ee1c
2 changed files with 12 additions and 12 deletions

View File

@ -1,6 +1,7 @@
#pragma once
#include "sls/Detector.h"
#include "ui_form_tab_settings.h"
#include <QCheckBox>
class qTabSettings : public QWidget, private Ui::TabSettingsObject {
Q_OBJECT
@ -29,6 +30,8 @@ class qTabSettings : public QWidget, private Ui::TabSettingsObject {
void GetCounterMask();
sls::Detector *det;
std::vector<QCheckBox *> counters;
enum {
STANDARD,
FAST,

View File

@ -2,7 +2,6 @@
#include "qDefs.h"
#include "sls/ToString.h"
#include "sls/bit_utils.h"
#include <QCheckBox>
#include <QStandardItemModel>
qTabSettings::qTabSettings(QWidget *parent, sls::Detector *detector)
@ -16,6 +15,8 @@ qTabSettings::~qTabSettings() {}
void qTabSettings::SetupWidgetWindow() {
counters = std::vector<QCheckBox *>{chkCounter1, chkCounter2, chkCounter3};
spinThreshold2->hide();
spinThreshold3->hide();
btnSetThreshold->hide();
@ -359,20 +360,17 @@ void qTabSettings::GetCounterMask() {
try {
auto retval = sls::getSetBits(det->getCounterMask().tsquash(
"Counter mask is inconsistent for all detectors."));
std::vector<QCheckBox *> counters = {chkCounter1, chkCounter2,
chkCounter3};
// default to unchecked
for (unsigned int i = 0; i < counters.size(); ++i) {
counters[i]->setChecked(false);
}
// if retva[i] = 2, chkCounter2 is checked
for (unsigned int i = 0; i < retval.size(); ++i) {
if (retval[i] > 3) {
std::for_each(counters, [](auto &i) { i.setChecked(false); });
// std::for_each(counters.begin(), counters.end(), )
// if retval[i] = 2, chkCounter2 is checked
for (auto i : retval) {
if (i > 3) {
throw sls::RuntimeError(
std::string("Unknown counter index : ") +
std::to_string(static_cast<int>(retval[i])));
std::to_string(static_cast<int>(i)));
}
counters[retval[i]]->setChecked(true);
counters[i]->setChecked(true);
}
}
CATCH_DISPLAY("Could not get counter mask.", "qTabSettings::GetCounterMask")
@ -382,7 +380,6 @@ void qTabSettings::GetCounterMask() {
}
void qTabSettings::SetCounterMask() {
std::vector<QCheckBox *> counters = {chkCounter1, chkCounter2, chkCounter3};
uint32_t mask = 0;
for (unsigned int i = 0; i < counters.size(); ++i) {
if (counters[i]->isChecked()) {