21 auto* vlayout =
new QVBoxLayout();
22 auto* hlayout =
new QHBoxLayout();
25 _availableMemoriesGroupBox =
new QGroupBox(
"Available memories");
26 auto vboxlayout =
new QVBoxLayout();
27 vboxlayout->setMargin(1);
28 vboxlayout->setSizeConstraint(QLayout::SizeConstraint::SetMinAndMaxSize);
29 vboxlayout->setAlignment(Qt::AlignTop);
30 _de_selectMemoryServers =
new QPushButton(_selectText);
31 _de_selectMemoryServers->setEnabled(
false);
32 vboxlayout->addWidget(_de_selectMemoryServers);
33 _availableMemoriesGroupBox->setLayout(vboxlayout);
36 _availableMemoriesScrollArea =
new QScrollArea();
37 _availableMemoriesScrollArea->setWidget(_availableMemoriesGroupBox);
38 _availableMemoriesScrollArea->setWidgetResizable(
true);
40 hlayout->addWidget(_availableMemoriesScrollArea, 1);
43 QFrame* vFrame =
new QFrame;
44 vFrame->setFrameShape(QFrame::VLine);
45 hlayout->addWidget(vFrame);
48 auto ltmButtonsGroupBox =
new QGroupBox(
"LTM recording");
49 auto ltmButtonsLayout =
new QVBoxLayout();
50 ltmButtonsLayout->setMargin(9);
51 ltmButtonsLayout->setSizeConstraint(QLayout::SizeConstraint::SetMinAndMaxSize);
52 ltmButtonsLayout->setAlignment(Qt::AlignTop);
53 ltmButtonsGroupBox->setLayout(ltmButtonsLayout);
55 _storeInLTMButton =
new QPushButton(
"Query and store in LTM");
56 ltmButtonsLayout->addWidget(_storeInLTMButton);
58 auto* ltmRecHLayout =
new QHBoxLayout();
59 _startLTMRecordingButton =
new QPushButton(
"Start LTM Recording");
60 _stopLTMRecordingButton =
new QPushButton(
"Stop LTM Recording");
61 ltmRecHLayout->addWidget(_startLTMRecordingButton);
62 ltmRecHLayout->addWidget(_stopLTMRecordingButton);
64 ltmButtonsLayout->addLayout(ltmRecHLayout);
66 hlayout->addWidget(ltmButtonsGroupBox, 1);
69 vlayout->addLayout(hlayout);
72 connect(_de_selectMemoryServers, &QPushButton::pressed,
this, &This::deSelectMemoryServers);
86 std::vector<std::string> alreadyPresentMemoryCheckboxes;
89 int maxIndex = _availableMemoriesGroupBox->layout()
92 for (
int i = 1; i < maxIndex; ++i)
94 auto w = _availableMemoriesGroupBox->layout()->itemAt(i)->widget();
95 QCheckBox* box =
static_cast<QCheckBox*
>(w);
96 std::string memoryName = box->text().toStdString();
97 if (box->isEnabled() &&
98 std::find(activeMemoryNames.begin(), activeMemoryNames.end(), memoryName) ==
99 activeMemoryNames.end())
102 box->setVisible(
false);
103 box->setChecked(
false);
104 box->setEnabled(
false);
106 if (not(box->isEnabled()) &&
107 std::find(activeMemoryNames.begin(), activeMemoryNames.end(), memoryName) !=
108 activeMemoryNames.end())
111 box->setVisible(
true);
112 box->setChecked(
false);
113 box->setEnabled(
true);
115 alreadyPresentMemoryCheckboxes.push_back(memoryName);
120 for (
const auto& memoryName : activeMemoryNames)
122 if (std::find(alreadyPresentMemoryCheckboxes.begin(),
123 alreadyPresentMemoryCheckboxes.end(),
124 memoryName) == alreadyPresentMemoryCheckboxes.end())
127 auto box =
new QCheckBox(QString::fromStdString(memoryName));
130 box->setVisible(
true);
131 box->setEnabled(
true);
132 _availableMemoriesGroupBox->layout()->addWidget(box);
135 connect(box, &QCheckBox::stateChanged,
this, &This::updateSelectAllButtonState);
140 _de_selectMemoryServers->setEnabled(!activeMemoryNames.empty());
147 int maxIndex = _availableMemoriesGroupBox->layout()->count();
148 std::vector<std::string> memoryNames;
149 memoryNames.reserve(maxIndex);
150 for (
int i = 1; i < maxIndex; ++i)
152 auto w = _availableMemoriesGroupBox->layout()->itemAt(i)->widget();
153 QCheckBox* box =
static_cast<QCheckBox*
>(w);
154 std::string memoryName = box->text().toStdString();
155 if (box->isEnabled() && box->isChecked())
157 memoryNames.push_back(memoryName);