41 lines
1.5 KiB
C++
41 lines
1.5 KiB
C++
#include "manualdeembeddingdialog.h"
|
|
|
|
#include "ui_manualdeembeddingdialog.h"
|
|
#include "Traces/sparamtraceselector.h"
|
|
#include "CustomWidgets/informationbox.h"
|
|
|
|
ManualDeembeddingDialog::ManualDeembeddingDialog(const TraceModel &model, Deembedding *deemb) :
|
|
ui(new Ui::ManualDeembeddingDialog)
|
|
{
|
|
ui->setupUi(this);
|
|
auto traceSelector = new SparamTraceSelector(model, deemb->getAffectedPorts(), true, 8);
|
|
ui->verticalLayout->insertWidget(1, traceSelector, 1.0);
|
|
ui->buttonBox->setEnabled(false);
|
|
connect(traceSelector, &SparamTraceSelector::selectionValid, ui->buttonBox, &QDialogButtonBox::setEnabled);
|
|
connect(ui->buttonBox, &QDialogButtonBox::accepted, [=]() {
|
|
auto traces = traceSelector->getTraces();
|
|
bool clearDeembedding = false;
|
|
for(auto t : traces) {
|
|
if(t.second->deembeddingAvailable()) {
|
|
clearDeembedding = InformationBox::AskQuestion("Clear previous de-embedding data?", "At least one of the selected traces "
|
|
"has already been de-embedded. Do you want to clear the old de-embedding data before applying the new de-embedding?", true);
|
|
break;
|
|
}
|
|
}
|
|
if(clearDeembedding) {
|
|
for(auto t : traces) {
|
|
if(t.second->deembeddingAvailable()) {
|
|
t.second->clearDeembedding();
|
|
}
|
|
}
|
|
}
|
|
deemb->Deembed(traceSelector->getTraces());
|
|
accept();
|
|
});
|
|
}
|
|
|
|
ManualDeembeddingDialog::~ManualDeembeddingDialog()
|
|
{
|
|
delete ui;
|
|
}
|