-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathConfigDialog.cpp
More file actions
81 lines (67 loc) · 2.27 KB
/
ConfigDialog.cpp
File metadata and controls
81 lines (67 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include "ConfigDialog.h"
#include "QtSerialConfigBox.h"
#include "StateConfigBox.h"
#include "OdorantConfigBox.h"
#include "ConfigManager.h"
#include <QtWidgets>
ConfigDialog::ConfigDialog(std::vector<std::string> imMng, std::vector<std::string> cmMng, std::vector<std::string> srMng, std::vector<std::string> ports, QWidget* parent)
: QDialog(parent),
ports_(ports)
{
ui.setupUi(this);
for (std::string i : imMng)
{
ui.imageManagerComboBox->addItem(i.c_str());
}
for (std::string c : cmMng)
{
ui.cameraManagerComboBox->addItem(c.c_str());
}
for (std::string s : srMng)
{
ui.serialManagerComboBox->addItem(s.c_str());
}
ui.stateScrollChild->setLayout(new QVBoxLayout(ui.stateScrollChild));
ui.serialScrollChild->setLayout(new QVBoxLayout(ui.serialScrollChild));
ui.odorantScrollChild->setLayout(new QVBoxLayout(ui.odorantScrollChild));
ui.stateScrollParent->setWidgetResizable(true);
ui.stateScrollParent->setWidget(ui.stateScrollChild);
ui.serialScrollParent->setWidgetResizable(true);
ui.serialScrollParent->setWidget(ui.serialScrollChild);
connect(ui.addSerialDevice, &QToolButton::clicked, this, &ConfigDialog::newSerial);
connect(ui.addState, &QToolButton::clicked, this, &ConfigDialog::newState);
connect(ui.addOdorant, &QToolButton::clicked, this, &ConfigDialog::newOdorant);
connect(ui.configButtonBox->button(QDialogButtonBox::StandardButton::Ok), &QPushButton::clicked, this, &ConfigDialog::writeConfig);
connect(ui.configButtonBox->button(QDialogButtonBox::StandardButton::Cancel), &QPushButton::clicked, this, &ConfigDialog::close);
}
ConfigDialog::~ConfigDialog()
{
}
void ConfigDialog::writeConfig()
{
std::string filename = QFileDialog::getSaveFileName().toUtf8().constData();
if (filename != "")
{
ConfigManager cfg;
cfg.WriteConfigFile(filename, &ui);
close();
}
}
void ConfigDialog::newSerial()
{
QtSerialConfigBox* s = new QtSerialConfigBox(ports_, ui.serialScrollChild);
ui.serialScrollChild->layout()->addWidget(s);
s->show();
}
void ConfigDialog::newState()
{
StateConfigBox* s = new StateConfigBox(ui.stateScrollChild);
ui.stateScrollChild->layout()->addWidget(s);
s->show();
}
void ConfigDialog::newOdorant()
{
OdorantConfigBox* o = new OdorantConfigBox(ui.odorantScrollChild);
ui.odorantScrollChild->layout()->addWidget(o);
o->show();
}