+ _trigger_none = new QAction(QIcon(":/icons/trigger-none.svg"),
+ tr("No trigger"), parent);
+ _trigger_none->setCheckable(true);
+ connect(_trigger_none, SIGNAL(triggered()), this, SLOT(on_trigger()));
+
+ _trigger_rising = new QAction(QIcon(":/icons/trigger-rising.svg"),
+ tr("Trigger on rising edge"), parent);
+ _trigger_rising->setCheckable(true);
+ connect(_trigger_rising, SIGNAL(triggered()), this, SLOT(on_trigger()));
+
+ _trigger_high = new QAction(QIcon(":/icons/trigger-high.svg"),
+ tr("Trigger on high level"), parent);
+ _trigger_high->setCheckable(true);
+ connect(_trigger_high, SIGNAL(triggered()), this, SLOT(on_trigger()));
+
+ _trigger_falling = new QAction(QIcon(":/icons/trigger-falling.svg"),
+ tr("Trigger on falling edge"), parent);
+ _trigger_falling->setCheckable(true);
+ connect(_trigger_falling, SIGNAL(triggered()), this, SLOT(on_trigger()));
+
+ _trigger_low = new QAction(QIcon(":/icons/trigger-low.svg"),
+ tr("Trigger on low level"), parent);
+ _trigger_low->setCheckable(true);
+ connect(_trigger_low, SIGNAL(triggered()), this, SLOT(on_trigger()));
+
+ _trigger_change = new QAction(QIcon(":/icons/trigger-change.svg"),
+ tr("Trigger on rising or falling edge"), parent);
+ _trigger_change->setCheckable(true);
+ connect(_trigger_change, SIGNAL(triggered()), this, SLOT(on_trigger()));
+}
+
+QAction* LogicSignal::match_action(const TriggerMatchType *type)
+{
+ QAction *action;
+
+ action = _trigger_none;
+ if (type) {
+ switch (type->id()) {
+ case SR_TRIGGER_ZERO:
+ action = _trigger_low;
+ break;
+ case SR_TRIGGER_ONE:
+ action = _trigger_high;
+ break;
+ case SR_TRIGGER_RISING:
+ action = _trigger_rising;
+ break;
+ case SR_TRIGGER_FALLING:
+ action = _trigger_falling;