63 lines
2.3 KiB
C++
63 lines
2.3 KiB
C++
#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()));
|
|
}
|
|
}
|
|
}
|