X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Flogicsignal.cpp;h=c6b7cffa361253495c2a2d7c541de7920660a292;hb=08d9c3caec0a3ad1c624af685f948e17b91d278a;hp=4a8939d14eadaa6f298aa5f1e682c783685f9ffb;hpb=3b84fd6d59b10053d5ffba90f8e66324f49841a3;p=pulseview.git diff --git a/pv/view/logicsignal.cpp b/pv/view/logicsignal.cpp index 4a8939d..c6b7cff 100644 --- a/pv/view/logicsignal.cpp +++ b/pv/view/logicsignal.cpp @@ -37,7 +37,7 @@ #include #include -#include +#include using std::deque; using std::max; @@ -145,13 +145,13 @@ std::pair LogicSignal::v_extents() const return make_pair(-SignalHeight - SignalMargin, SignalMargin); } -void LogicSignal::paint_back(QPainter &p, const RowItemPaintParams &pp) +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 RowItemPaintParams &pp) +void LogicSignal::paint_mid(QPainter &p, const ViewItemPaintParams &pp) { QLineF *line; @@ -225,7 +225,7 @@ void LogicSignal::paint_mid(QPainter &p, const RowItemPaintParams &pp) delete[] cap_lines; } -void LogicSignal::paint_fore(QPainter &p, const RowItemPaintParams &pp) +void LogicSignal::paint_fore(QPainter &p, const ViewItemPaintParams &pp) { // Draw the trigger marker if (!trigger_match_) @@ -316,14 +316,22 @@ void LogicSignal::init_trigger_actions(QWidget *parent) const vector LogicSignal::get_trigger_types() const { - try { - const Glib::VariantContainerBase gvar = - device_->config_list(ConfigKey::TRIGGER_MATCH); - return Glib::VariantBase::cast_dynamic< - Glib::Variant>>(gvar).get(); - } catch (Error e) { - return vector(); + const auto keys = device_->config_keys(ConfigKey::DEVICE_OPTIONS); + const auto iter = keys.find(ConfigKey::TRIGGER_MATCH); + if (iter != keys.end() && + (*iter).second.find(sigrok::LIST) != (*iter).second.end()) { + try { + const Glib::VariantContainerBase gvar = + device_->config_list(ConfigKey::TRIGGER_MATCH); + return Glib::VariantBase::cast_dynamic< + Glib::Variant>>(gvar).get(); + } catch (Error e) { + // Failed to enumerate triggers + (void)e; + } } + + return vector(); } QAction* LogicSignal::action_from_trigger_type(const TriggerMatchType *type) @@ -422,7 +430,7 @@ void LogicSignal::modify_trigger() new_trigger->stages().empty() ? nullptr : new_trigger); if (owner_) - owner_->appearance_changed(false, true); + owner_->row_item_appearance_changed(false, true); } const QIcon* LogicSignal::get_icon(const char *path)