More user friendly time gate with filter in time domain

This commit is contained in:
Jan Käberich 2021-04-25 15:46:34 +02:00
parent bb18dffb55
commit 4f4b2db549
18 changed files with 914 additions and 54 deletions

View file

@ -7,6 +7,8 @@
#include <QDebug>
#include "tracemarkermodel.h"
#include "unit.h"
#include <QMenu>
#include <QActionGroup>
using namespace std;
@ -19,13 +21,16 @@ TraceMarker::TraceMarker(TraceMarkerModel *model, int number, TraceMarker *paren
data(0),
type(Type::Manual),
description(descr),
contextmenu(nullptr),
delta(nullptr),
parent(parent),
cutoffAmplitude(-3.0),
peakThreshold(-40.0),
offset(10000)
{
connect(this, &TraceMarker::traceChanged, this, &TraceMarker::updateContextmenu);
connect(this, &TraceMarker::typeChanged, this, &TraceMarker::updateContextmenu);
updateContextmenu();
}
TraceMarker::~TraceMarker()
@ -363,6 +368,29 @@ void TraceMarker::deltaDeleted()
update();
}
void TraceMarker::updateContextmenu()
{
if(contextmenu) {
delete contextmenu;
}
contextmenu = new QMenu();
auto typemenu = new QMenu("Type");
auto typegroup = new QActionGroup(contextmenu);
for(auto t : getSupportedTypes()) {
auto setTypeAction = new QAction(typeToString(t));
setTypeAction->setCheckable(true);
if(t == type) {
setTypeAction->setChecked(true);
}
connect(setTypeAction, &QAction::triggered, [=](){
setType(t);
});
typegroup->addAction(setTypeAction);
typemenu->addAction(setTypeAction);
}
contextmenu->addMenu(typemenu);
}
std::set<TraceMarker::Type> TraceMarker::getSupportedTypes()
{
set<TraceMarker::Type> supported;