MCPcopy Create free account
hub / github.com/blizzard4591/openMittsu / OptionsDialog

Method OptionsDialog

src/dialogs/OptionsDialog.cpp:17–92  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15 namespace dialogs {
16
17 OptionsDialog::OptionsDialog(std::shared_ptr<openmittsu::options::OptionMaster> const& optionMaster, QWidget* parent) : QDialog(parent), m_ui(std::make_unique<Ui::OptionsDialog>()), m_optionMaster(optionMaster) {
18 m_ui->setupUi(this);
19
20 int nWidth = 300;
21 int nHeight = 400;
22 if (parent != nullptr) {
23 setGeometry(parent->x() + parent->width() / 2 - nWidth / 2, parent->y() + parent->height() / 2 - nHeight / 2, nWidth, nHeight);
24 } else {
25 resize(nWidth, nHeight);
26 }
27
28 // Generate UI
29
30 QList<openmittsu::options::OptionGroups> const groups = m_optionMaster->m_groupToOptionsMap.uniqueKeys();
31
32 // Groups
33 for (int i = 0, sizeKeys = groups.size(); i < sizeKeys; ++i) {
34 QList<openmittsu::options::Options> const values = optionMaster->m_groupToOptionsMap.values(groups.at(i));
35 if (!optionMaster->m_groupToNameMap.contains(groups.at(i))) {
36 continue;
37 }
38
39 QString const groupName = optionMaster->m_groupToNameMap.value(groups.at(i));
40 if (groupName.isEmpty()) {
41 continue;
42 }
43 LOGGER_DEBUG("Group: {}", groupName.toStdString());
44
45 int const sizeValues = values.size();
46 if (sizeValues < 1) {
47 continue;
48 }
49
50 QGroupBox* gbox = new QGroupBox();
51 gbox->setTitle(groupName);
52 QVBoxLayout* layout = new QVBoxLayout();
53
54
55 for (int j = 0; j < sizeValues; ++j) {
56 openmittsu::options::Options const option = values.at(j);
57 openmittsu::options::OptionContainer const optionData = optionMaster->m_optionToOptionContainerMap.value(option);
58 LOGGER_DEBUG("Option: {}", optionData.name.toStdString());
59
60 if (optionData.type == openmittsu::options::OptionTypes::TYPE_BOOL) {
61 QCheckBox* cbox = new QCheckBox();
62 cbox->setChecked(optionMaster->getOptionAsBool(option));
63 cbox->setText(optionData.description);
64
65 OptionWidget ow;
66 ow.type = optionData.type;
67 ow.cboxPtr = cbox;
68
69 optionToWidgetMap.insert(option, ow);
70 layout->addWidget(cbox);
71 } else if (optionData.type == openmittsu::options::OptionTypes::TYPE_FILEPATH) {
72 QLineEdit* edt = new QLineEdit();
73 edt->setText(optionMaster->getOptionAsQString(option));
74 edt->setToolTip(optionData.description);

Callers

nothing calls this directly

Calls 6

containsMethod · 0.80
valueMethod · 0.80
isEmptyMethod · 0.80
addWidgetMethod · 0.80
getOptionAsQStringMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected