LibreVNA/Software/PC_Application/Calibration/frequencycaldialog.cpp
Kiara Navarro 2fbe6e84be
mode: move responsabilities from mode to modehandler
- Pass the following responsabilities from mode to mode handler:
   - active / deactive target mode
   - get active mode
   - create new modes

- Move back setting averaging mode when settings are
updated using getModes() method instead of handling
logic in mode handler.
2022-07-11 19:33:28 -05:00

41 lines
1.2 KiB
C++

#include "frequencycaldialog.h"
#include "ui_frequencycaldialog.h"
FrequencyCalDialog::FrequencyCalDialog(Device *dev, ModeHandler *handler, QWidget *parent) :
QDialog(parent),
ui(new Ui::FrequencyCalDialog),
dev(dev)
{
ui->setupUi(this);
ui->ppm->setUnit("ppm");
ui->ppm->setPrefixes(" ");
ui->ppm->setPrecision(4);
ui->ppm->setValue(0.0);
connect(dev, &Device::FrequencyCorrectionReceived, ui->ppm, &SIUnitEdit::setValueQuiet);
connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
connect(ui->buttonBox, &QDialogButtonBox::accepted, [=](){
// get value and transfer to device
Protocol::PacketInfo p;
p.type = Protocol::PacketType::FrequencyCorrection;
p.frequencyCorrection.ppm = ui->ppm->value();
dev->SendPacket(p);
// force restart of current mode for setting to take effect
auto activeMode = handler->getActiveMode();
handler->deactivate(activeMode);
handler->activate(activeMode);
accept();
delete this;
});
// request setting from device
dev->SendCommandWithoutPayload(Protocol::PacketType::RequestFrequencyCorrection);
}
FrequencyCalDialog::~FrequencyCalDialog()
{
delete ui;
}