#include "gtl_gui_apfc_widget.h" #include "gui/ui_gtl_gui_apfc_widget.h" #include "gui/gtl_gui_chart_widget.h" namespace gtl { namespace gui { apfc_widget::apfc_widget(QWidget *parent, gtl::data_model* model) : QWidget(parent), ui(new Ui::apfc_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::apfc_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(); ui->afc->disconnect(); ui->afc->clear(); for(int i = 0; i < meta_enum.keyCount(); i++) { ui->afc->addItem(meta_enum.valueToKey(i)); } ui->afc->setCurrentIndex(_chart->afc()); connect(ui->afc, &QComboBox::currentIndexChanged, _chart, >l::gui::apfc_chart::set_afc); meta_enum = QMetaEnum::fromType(); ui->pfc->disconnect(); ui->pfc->clear(); for(int i = 0; i < meta_enum.keyCount(); i++) { ui->pfc->addItem(meta_enum.valueToKey(i)); } ui->pfc->setCurrentIndex(_chart->pfc()); connect(ui->pfc, &QComboBox::currentIndexChanged, _chart, >l::gui::apfc_chart::set_pfc); meta_enum = QMetaEnum::fromType(); 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::apfc_chart::set_window); ui->frequency->disconnect(); ui->frequency->setMaximum(100000); ui->frequency->setValue(_chart->frequency()); connect(ui->frequency, &QDoubleSpinBox::valueChanged, _chart, >l::gui::apfc_chart::set_frequency); ui->resolution->disconnect(); ui->resolution->setMaximum(100000); ui->resolution->setValue(_chart->resolution()); connect(ui->resolution, &QDoubleSpinBox::valueChanged, _chart, >l::gui::apfc_chart::set_resolution); ui->lines->disconnect(); ui->lines->setMaximum(100000); ui->lines->setValue(_chart->lines()); connect(ui->lines, &QDoubleSpinBox::valueChanged, _chart, >l::gui::apfc_chart::set_lines); ui->average->disconnect(); ui->average->setMaximum(100); ui->average->setValue(_chart->average()); connect(ui->average, &QDoubleSpinBox::valueChanged, _chart, >l::gui::apfc_chart::set_average); ui->overlap->disconnect(); ui->overlap->setMaximum(99); ui->overlap->setValue(_chart->overlap()); connect(ui->overlap, &QDoubleSpinBox::valueChanged, _chart, >l::gui::apfc_chart::set_overlap); ui->threshold->disconnect(); ui->threshold->setMaximum(99); ui->threshold->setValue(_chart->threshold()); connect(ui->threshold, &QDoubleSpinBox::valueChanged, _chart, >l::gui::apfc_chart::set_threshold); connect(_chart, >l::gui::apfc_chart::frequency_changed, this, >l::gui::apfc_widget::update_parameters); connect(_chart, >l::gui::apfc_chart::resolution_changed, this, >l::gui::apfc_widget::update_parameters); connect(_chart, >l::gui::apfc_chart::lines_changed, this, >l::gui::apfc_widget::update_parameters); ui->x_log->setVisible(false); connect(ui->x_log, &QCheckBox::toggled, _chart, >l::gui::apfc_chart::set_x_log); connect(_chart, >l::gui::apfc_chart::signals_changed, this, >l::gui::apfc_widget::handle_chart_signals_changed); } apfc_widget::~apfc_widget() { delete ui; } void apfc_widget::save(QDomElement &root_element) { } void apfc_widget::load(const QDomElement &root_element) { } void apfc_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::apfc_chart::set_frequency); connect(ui->resolution, &QDoubleSpinBox::valueChanged, _chart, >l::gui::apfc_chart::set_resolution); connect(ui->lines, &QDoubleSpinBox::valueChanged, _chart, >l::gui::apfc_chart::set_lines); } void apfc_widget::handle_chart_signals_changed(QList *sigs) { disconnect(ui->reference, &QComboBox::currentTextChanged, _chart, >l::gui::apfc_chart::set_ref); ui->reference->clear(); foreach (QString sig, *sigs) ui->reference->addItem(sig); connect(ui->reference, &QComboBox::currentTextChanged, _chart, >l::gui::apfc_chart::set_ref); } } // namespace gui } // namespace gtl