]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/view.cpp
DecodeTrace: Use qreal instead of int for annotation drawing
[pulseview.git] / pv / views / trace / view.cpp
index 35b6807dfc75c11ba825831c1552ee17fe490f5a..861eac0f6065e7f4ef93c7e14039173dd9ad0235 100644 (file)
@@ -79,7 +79,6 @@ using std::make_pair;
 using std::make_shared;
 using std::min;
 using std::pair;
-using std::placeholders::_1;
 using std::set;
 using std::set_difference;
 using std::shared_ptr;
@@ -197,10 +196,9 @@ View::View(Session &session, bool is_main_view, QWidget *parent) :
 
        // Set up settings and event handlers
        GlobalSettings settings;
-       coloured_bg_ = settings.value(GlobalSettings::Key_View_ColouredBG).toBool();
+       colored_bg_ = settings.value(GlobalSettings::Key_View_ColoredBG).toBool();
 
-       GlobalSettings::register_change_handler(GlobalSettings::Key_View_TriggerIsZeroTime,
-               bind(&View::on_settingViewTriggerIsZeroTime_changed, this, _1));
+       GlobalSettings::add_change_handler(this);
 
        connect(scrollarea_->horizontalScrollBar(), SIGNAL(valueChanged(int)),
                this, SLOT(h_scroll_value_changed(int)));
@@ -239,6 +237,11 @@ View::View(Session &session, bool is_main_view, QWidget *parent) :
        set_segment_display_mode(segment_display_mode_);
 }
 
+View::~View()
+{
+       GlobalSettings::remove_change_handler(this);
+}
+
 Session& View::session()
 {
        return session_;
@@ -558,8 +561,10 @@ void View::set_current_segment(uint32_t segment_id)
 
        for (shared_ptr<Signal> signal : signals_)
                signal->set_current_segment(current_segment_);
+#ifdef ENABLE_DECODE
        for (shared_ptr<DecodeTrace> dt : decode_traces_)
                dt->set_current_segment(current_segment_);
+#endif
 
        vector<util::Timestamp> triggers = session_.get_triggers(current_segment_);
 
@@ -769,15 +774,15 @@ void View::enable_show_analog_minor_grid(bool state)
        viewport_->update();
 }
 
-void View::enable_coloured_bg(bool state)
+void View::enable_colored_bg(bool state)
 {
-       coloured_bg_ = state;
+       colored_bg_ = state;
        viewport_->update();
 }
 
-bool View::coloured_bg() const
+bool View::colored_bg() const
 {
-       return coloured_bg_;
+       return colored_bg_;
 }
 
 bool View::cursors_shown() const
@@ -861,6 +866,12 @@ void View::restack_all_trace_tree_items()
                i->animate_to_layout_v_offset();
 }
 
+void View::on_setting_changed(const QString &key, const QVariant &value)
+{
+       if (key == GlobalSettings::Key_View_TriggerIsZeroTime)
+               on_settingViewTriggerIsZeroTime_changed(value);
+}
+
 void View::trigger_event(int segment_id, util::Timestamp location)
 {
        // TODO This doesn't work if we're showing multiple segments at once
@@ -941,7 +952,7 @@ void View::calculate_tick_spacing()
                                (ScaleUnits[unit++] + tp_margin);
                } while (tp_with_margin < min_period && unit < countof(ScaleUnits));
 
-               minor_tick_count_ = (unit == 2) ? (4) : (5);
+               minor_tick_count_ = (unit == 2) ? 4 : 5;
                tick_period = order_decimal * ScaleUnits[unit - 1];
                tick_prefix = static_cast<pv::util::SIPrefix>(
                        (order - pv::util::exponent(pv::util::SIPrefix::yocto)) / 3);