X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Fview.cpp;h=2cb3f3ed9b6f3dd1f2591b94911b150004f4ba94;hb=0a47889b01386b1e55c7df73ca301046a195ff97;hp=af0892b81d1fb4d85003b179ce38f99d72369676;hpb=33c62f44b72abab27bc141d66712ff0d1a2e395f;p=pulseview.git diff --git a/pv/view/view.cpp b/pv/view/view.cpp index af0892b..2cb3f3e 100644 --- a/pv/view/view.cpp +++ b/pv/view/view.cpp @@ -43,6 +43,7 @@ #include "pv/data/logicsnapshot.h" using pv::data::SignalData; +using std::back_inserter; using std::deque; using std::list; using std::max; @@ -170,7 +171,7 @@ double View::offset() const int View::v_offset() const { - return _v_offset; + return -_v_offset; } void View::zoom(double steps) @@ -242,24 +243,22 @@ void View::set_scale_offset(double scale, double offset) vector< shared_ptr > View::get_traces() const { + vector< shared_ptr > traces; + const vector< shared_ptr > sigs( session().get_signals()); + copy(sigs.begin(), sigs.end(), back_inserter(traces)); + #ifdef ENABLE_DECODE const vector< shared_ptr > decode_sigs( session().get_decode_signals()); - vector< shared_ptr > traces( - sigs.size() + decode_sigs.size()); -#else - vector< shared_ptr > traces(sigs.size()); + copy(decode_sigs.begin(), decode_sigs.end(), back_inserter(traces)); #endif - auto i = traces.begin(); - i = copy(sigs.begin(), sigs.end(), i); -#ifdef ENABLE_DECODE - i = copy(decode_sigs.begin(), decode_sigs.end(), i); -#endif + stable_sort(traces.begin(), traces.end(), + [](const shared_ptr &a, const shared_ptr &b) { + return a->v_offset() < b->v_offset(); }); - stable_sort(traces.begin(), traces.end(), compare_trace_v_offsets); return traces; } @@ -362,11 +361,11 @@ void View::normalize_layout() int v_min = INT_MAX; for (const shared_ptr t : traces) - v_min = min(t->get_v_offset(), v_min); + v_min = min(t->v_offset(), v_min); const int delta = -min(v_min, 0); for (shared_ptr t : traces) - t->set_v_offset(t->get_v_offset() + delta); + t->set_v_offset(t->v_offset() + delta); verticalScrollBar()->setSliderPosition(_v_offset + delta); v_scroll_value_changed(verticalScrollBar()->sliderPosition()); @@ -442,14 +441,6 @@ void View::update_layout() update_scroll(); } -bool View::compare_trace_v_offsets(const shared_ptr &a, - const shared_ptr &b) -{ - assert(a); - assert(b); - return a->get_v_offset() < b->get_v_offset(); -} - bool View::eventFilter(QObject *object, QEvent *event) { const QEvent::Type type = event->type();