#include "ExtractRuleView.h" #include "TranslateBasic.h" #include "extract_basic.h" #include "WrapConfigs.h" #include #include #include #include #include #include #include #include #include using namespace unit_configurations; using namespace size_provider; ExtractRuleView::ExtractRuleView(std::shared_ptr base, std::shared_ptr inst_r, QWidget* p /*= nullptr*/) : QWidget(p), _rule_base(inst_r), _member_units(new QTableView(this)), _member_model(new QStandardItemModel(this)), _configs_stack(new QStackedWidget(this)) { this->_current_fields_cache = std::make_shared("", nullptr); auto layout = new QVBoxLayout(this); auto split = new QSplitter(Qt::Horizontal, this); layout->addWidget(split); split->addWidget(_member_units); split->addWidget(_configs_stack); _configs_stack->addWidget(new configurations::EmptyConfiguration(this)); auto single_configs = new SingleBasedConfiguration(base, this); auto list_configs = new ListBasedConfiguration(base, this); auto union_configs = new UnionBasedConfiguration(base, this); } ListBasedConfiguration::ListBasedConfiguration( std::shared_ptr core, QWidget* p /*= nullptr*/) :QWidget(p), _bind_core(core), _bind_u(nullptr), _rule_select(new QComboBox(this)), _size_layout_select(new QComboBox(this)), _configs_stack(new QStackedWidget(this)), _const_number_input(new QSpinBox(this)), _prev_field_refer(new QComboBox(this)) { auto layout = new QGridLayout(this); layout->addWidget(new QLabel(tr("RuleAppoint:")), 0, 0); layout->addWidget(_rule_select, 0, 1, 1, 2); layout->addWidget(new QLabel(tr("SizeAppoint:")), 1, 0); layout->addWidget(_size_layout_select, 1, 1, 1, 2); layout->addWidget(_configs_stack, 2, 0, 2, 3); _configs_stack->addWidget(_const_number_input); _configs_stack->addWidget(_prev_field_refer); layout->setRowStretch(4, 1); layout->setColumnStretch(1, 1); } SingleBasedConfiguration::SingleBasedConfiguration(std::shared_ptr core, QWidget* p /*= nullptr*/) { } UnionBasedConfiguration::UnionBasedConfiguration(std::shared_ptr core, QWidget* p /*= nullptr*/) { }