X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;ds=sidebyside;f=pv%2Fview%2Fdecodesignal.cpp;h=b151b3911d13ef6beb570cb092cefae115660ef1;hb=e2e2296c089d11390c056e3525fc42487abcbe3f;hp=514fbca339a0b07ca8f6349e0d1451b50c78647e;hpb=06bb4e6a55f5f6983d94fef2b25afc0a70f7b8d9;p=pulseview.git diff --git a/pv/view/decodesignal.cpp b/pv/view/decodesignal.cpp index 514fbca..b151b39 100644 --- a/pv/view/decodesignal.cpp +++ b/pv/view/decodesignal.cpp @@ -24,6 +24,8 @@ extern "C" { #include +#include + #include "decodesignal.h" #include @@ -52,6 +54,9 @@ DecodeSignal::DecodeSignal(pv::SigSession &session, assert(_decoder); _colour = DecodeColours[index % countof(DecodeColours)]; + + connect(_decoder.get(), SIGNAL(new_decode_data()), + this, SLOT(on_new_decode_data())); } void DecodeSignal::init_context_bar_actions(QWidget *parent) @@ -99,9 +104,8 @@ void DecodeSignal::paint_mid(QPainter &p, int left, int right) vector< shared_ptr > annotations(_decoder->annotations()); BOOST_FOREACH(shared_ptr a, annotations) { assert(a); - a->paint(p, _colour, _colour.darker(), get_text_colour(), - _text_size.height(), left, right, samples_per_pixel, - pixels_offset, y); + a->paint(p, get_text_colour(), _text_size.height(), + left, right, samples_per_pixel, pixels_offset, y); } } @@ -111,5 +115,29 @@ const list DecodeSignal::get_context_bar_actions() return actions; } +QMenu* DecodeSignal::create_context_menu(QWidget *parent) +{ + QMenu *const menu = Trace::create_context_menu(parent); + + menu->addSeparator(); + + QAction *const del = new QAction(tr("Delete"), this); + connect(del, SIGNAL(triggered()), this, SLOT(on_delete())); + menu->addAction(del); + + return menu; +} + +void DecodeSignal::on_new_decode_data() +{ + if (_view) + _view->update_viewport(); +} + +void DecodeSignal::on_delete() +{ + _session.remove_decode_signal(this); +} + } // namespace view } // namespace pv