108 lines
4.5 KiB
C++
108 lines
4.5 KiB
C++
|
#include "gtl_gui_cross_spec_widget.h"
|
||
|
#include "ui_gtl_gui_cross_spec_widget.h"
|
||
|
|
||
|
#include "gui/gtl_gui_chart_widget.h"
|
||
|
namespace gtl {
|
||
|
namespace gui {
|
||
|
|
||
|
cross_spec_widget::cross_spec_widget(QWidget *parent, gtl::data_model* model) :
|
||
|
QWidget(parent),
|
||
|
ui(new Ui::cross_spec_widget)
|
||
|
{
|
||
|
ui->setupUi(this);
|
||
|
|
||
|
_selection_data_model = new gtl::selection_data_model(this);
|
||
|
_selection_data_model->setSourceModel(model);
|
||
|
|
||
|
ui->signals_->setModel(_selection_data_model);
|
||
|
ui->signals_->expandAll();
|
||
|
|
||
|
_chart = new gtl::gui::cross_spec_chart(this);
|
||
|
gtl::gui::chart_widget *chart_widget = new gtl::gui::chart_widget(_chart, this);
|
||
|
ui->splitter->insertWidget(0, chart_widget);
|
||
|
|
||
|
connect(_selection_data_model, >l::selection_data_model::selected, _chart, >l::gui::chart::add_ad);
|
||
|
connect(_selection_data_model, >l::selection_data_model::deselected, _chart, >l::gui::chart::remove_ad);
|
||
|
|
||
|
QMetaEnum meta_enum = QMetaEnum::fromType<gtl::math::cross_spec::windows>();
|
||
|
ui->window->disconnect();
|
||
|
ui->window->clear();
|
||
|
for(int i = 0; i < meta_enum.keyCount(); i++)
|
||
|
{
|
||
|
ui->window->addItem(meta_enum.valueToKey(i));
|
||
|
}
|
||
|
ui->window->setCurrentIndex(_chart->window());
|
||
|
connect(ui->window, &QComboBox::currentIndexChanged, _chart, >l::gui::cross_spec_chart::set_window);
|
||
|
|
||
|
ui->frequency->disconnect();
|
||
|
ui->frequency->setMaximum(100000);
|
||
|
ui->frequency->setValue(_chart->frequency());
|
||
|
connect(ui->frequency, &QDoubleSpinBox::valueChanged, _chart, >l::gui::cross_spec_chart::set_frequency);
|
||
|
|
||
|
ui->resolution->disconnect();
|
||
|
ui->resolution->setMaximum(100000);
|
||
|
ui->resolution->setValue(_chart->resolution());
|
||
|
connect(ui->resolution, &QDoubleSpinBox::valueChanged, _chart, >l::gui::cross_spec_chart::set_resolution);
|
||
|
|
||
|
ui->lines->disconnect();
|
||
|
ui->lines->setMaximum(100000);
|
||
|
ui->lines->setValue(_chart->lines());
|
||
|
connect(ui->lines, &QDoubleSpinBox::valueChanged, _chart, >l::gui::cross_spec_chart::set_lines);
|
||
|
|
||
|
ui->average->disconnect();
|
||
|
ui->average->setMaximum(100);
|
||
|
ui->average->setValue(_chart->average());
|
||
|
connect(ui->average, &QDoubleSpinBox::valueChanged, _chart, >l::gui::cross_spec_chart::set_average);
|
||
|
|
||
|
ui->overlap->disconnect();
|
||
|
ui->overlap->setMaximum(99);
|
||
|
ui->overlap->setValue(_chart->overlap());
|
||
|
connect(ui->overlap, &QDoubleSpinBox::valueChanged, _chart, >l::gui::cross_spec_chart::set_overlap);
|
||
|
|
||
|
connect(_chart, >l::gui::cross_spec_chart::frequency_changed, this, >l::gui::cross_spec_widget::update_parameters);
|
||
|
connect(_chart, >l::gui::cross_spec_chart::resolution_changed, this, >l::gui::cross_spec_widget::update_parameters);
|
||
|
connect(_chart, >l::gui::cross_spec_chart::lines_changed, this, >l::gui::cross_spec_widget::update_parameters);
|
||
|
|
||
|
ui->x_log->setVisible(false);
|
||
|
connect(ui->x_log, &QCheckBox::toggled, _chart, >l::gui::cross_spec_chart::set_x_log);
|
||
|
|
||
|
}
|
||
|
|
||
|
cross_spec_widget::~cross_spec_widget()
|
||
|
{
|
||
|
delete ui;
|
||
|
}
|
||
|
|
||
|
void cross_spec_widget::save(QDomElement &root_element)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
void cross_spec_widget::load(const QDomElement &root_element)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
void cross_spec_widget::update_parameters()
|
||
|
{
|
||
|
ui->frequency->disconnect();
|
||
|
ui->resolution->disconnect();
|
||
|
ui->lines->disconnect();
|
||
|
|
||
|
if( ui->frequency->value() != _chart->frequency() )
|
||
|
ui->frequency->setValue(_chart->frequency());
|
||
|
|
||
|
if( ui->resolution->value() != _chart->resolution() )
|
||
|
ui->resolution->setValue(_chart->resolution());
|
||
|
|
||
|
if( ui->lines->value() != (int) _chart->lines() )
|
||
|
ui->lines->setValue(_chart->lines());
|
||
|
|
||
|
connect(ui->frequency, &QDoubleSpinBox::valueChanged, _chart, >l::gui::cross_spec_chart::set_frequency);
|
||
|
connect(ui->resolution, &QDoubleSpinBox::valueChanged, _chart, >l::gui::cross_spec_chart::set_resolution);
|
||
|
connect(ui->lines, &QDoubleSpinBox::valueChanged, _chart, >l::gui::cross_spec_chart::set_lines);
|
||
|
}
|
||
|
|
||
|
} // namespace gui
|
||
|
} // namespace gtl
|