9#include <QAbstractButton>
12#include "UserInterface.h"
14#include "GuiListParameter.h"
18 GuiListParameter::GuiListParameter(QGridLayout *grid,
UserInterface &ui,
19 int group,
int param) :
23 p_label->setAlignment(Qt::AlignRight | Qt::AlignTop);
28 QVBoxLayout *lo =
new QVBoxLayout;
29 grid->addLayout(lo, param, 2);
33 p_buttonGroup =
new QButtonGroup();
37 for(
int item = 0; item < ui.ParamListSize(group, param); item++) {
38 QString btext = ui.ParamListBrief(group, param, item);
40 btext += ui.ParamListValue(group, param, item);
45 if((item == 0) && (p_ui->HelpersSize(group, param) != 0)) {
47 QVBoxLayout *vlo =
new QVBoxLayout;
48 grid->addLayout(vlo, 0, 3);
51 QWidget *helper = AddHelpers(p_buttonGroup);
52 vlo->addWidget(helper, 0, Qt::AlignTop);
54 RememberWidget(helper);
57 QRadioButton *rb =
new QRadioButton(btext);
58 rb->setObjectName(ui.ParamListValue(group, param, item));
60 p_buttonGroup->addButton(rb);
63 connect(p_buttonGroup, SIGNAL(buttonClicked(QAbstractButton *)),
64 this, SIGNAL(ValueChanged()));
70 GuiListParameter::~GuiListParameter() {
75 void GuiListParameter::Set(QString newValue) {
76 QString value = newValue.toUpper();
78 int foundAtButton = -1;
79 for(
int i = 0; i < p_ui->ParamListSize(p_group, p_param); i++) {
80 QString option = p_ui->ParamListValue(p_group, p_param, i).toUpper();
82 if(option == value) foundAtButton = i;
85 if(foundAtButton != -1) {
86 p_buttonGroup->buttons()[foundAtButton]->setChecked(
true);
93 QString GuiListParameter::Value() {
94 if(p_buttonGroup->checkedButton() == 0) {
98 return p_ui->ParamListValue(p_group, p_param,
99 p_buttonGroup->buttons().indexOf(p_buttonGroup->checkedButton()));
103 std::vector<QString> list;
105 if(p_buttonGroup->checkedButton() == 0)
return list;
106 int index = p_buttonGroup->buttons().indexOf(p_buttonGroup->checkedButton());
108 for(
int i = 0; i < p_ui->ParamListExcludeSize(p_group, p_param, index); i++) {
109 QString s = p_ui->ParamListExclude(p_group, p_param, index, i);
virtual std::vector< QString > Exclusions()
Return list of current exclusions.
Command Line and Xml loader, validation, and access.
This is free and unencumbered software released into the public domain.