{
shared_ptr<Trigger> trigger;
- colour_ = SignalColours[channel->index() % countof(SignalColours)];
+ set_colour(SignalColours[channel->index() % countof(SignalColours)]);
/* Populate this channel's trigger setting with whatever we
* find in the current session trigger, if anything. */
signal_height_ = ((units < 1) ? 1 : units) * font_height;
}
-void LogicSignal::paint_back(QPainter &p, const ViewItemPaintParams &pp)
-{
- if (channel_->enabled())
- paint_axis(p, pp, get_visual_y());
-}
-
void LogicSignal::paint_mid(QPainter &p, const ViewItemPaintParams &pp)
{
QLineF *line;
void LogicSignal::paint_fore(QPainter &p, const ViewItemPaintParams &pp)
{
// Draw the trigger marker
- if (!trigger_match_)
+ if (!trigger_match_ || !channel_->enabled())
return;
const int y = get_visual_y();
}
}
- if (trigger_match_)
- new_trigger->add_stage()->add_match(channel_, trigger_match_);
+ if (trigger_match_) {
+ // Until we can let the user decide how to group trigger matches
+ // into stages, put all of the matches into a single stage --
+ // most devices only support a single trigger stage.
+ if (new_trigger->stages().empty())
+ new_trigger->add_stage();
+
+ new_trigger->stages().back()->add_match(channel_, trigger_match_);
+ }
session_.session()->set_trigger(
new_trigger->stages().empty() ? nullptr : new_trigger);