#include "gtl_gui_scr_specs_widget.h" #include "ui_gtl_gui_scr_specs_widget.h" #include "gtl_gui_chart_widget.h" #include "script/gtl_scr_specs_model.h" namespace gtl { namespace gui { scr_specs_widget::scr_specs_widget(gtl::scr::engine *engine, QWidget *parent) : QWidget(parent), ui(new Ui::scr_specs_widget) { ui->setupUi(this); gtl::scr::specs_model* model = new gtl::scr::specs_model(this); ui->series->setModel(model); connect(engine, >l::scr::engine::spec_created, model, >l::scr::specs_model::add_spec); _chart = new scr_specs_chart(this); gtl::gui::chart_widget *chart_widget = new gtl::gui::chart_widget(_chart, this); connect(model, >l::scr::specs_model::show_spec, _chart, >l::gui::scr_specs_chart::add_spec); connect(model, >l::scr::specs_model::hide_spec, _chart, >l::gui::scr_specs_chart::remove_spec); ui->splitter->insertWidget(0, chart_widget); ui->y_mode->setChecked(_chart->is_axis_y_multi()); connect(ui->y_mode, &QCheckBox::toggled, _chart, >l::gui::chart::set_axis_y_mode); connect(_chart, >l::gui::chart::axis_y_mode_changed, ui->y_mode, &QCheckBox::setChecked); } scr_specs_widget::~scr_specs_widget() { delete ui; } void scr_specs_widget::save(QDomElement &root_element) { QDomElement options_element = root_element.ownerDocument().createElement("options"); root_element.appendChild(options_element); _chart->save(options_element); QDomElement splitter_element = root_element.ownerDocument().createElement("splitter"); root_element.appendChild(splitter_element); splitter_element.setAttribute("state", QString(ui->splitter->saveState().toBase64())); } void scr_specs_widget::load(const QDomElement &root_element) { QDomElement options_element = root_element.firstChildElement("options"); _chart->load(options_element); QDomElement splitter_element = root_element.firstChildElement("splitter"); ui->splitter->restoreState(QByteArray::fromBase64(splitter_element.attribute("state", "").toUtf8())); } } }