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;
// 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)));
set_segment_display_mode(segment_display_mode_);
}
+View::~View()
+{
+ GlobalSettings::remove_change_handler(this);
+}
+
Session& View::session()
{
return session_;
stringstream ss;
ss << settings.value("ruler_shift").toString().toStdString();
- boost::archive::text_iarchive ia(ss);
- ia >> boost::serialization::make_nvp("ruler_shift", shift);
-
- ruler_shift_ = shift;
+ try {
+ boost::archive::text_iarchive ia(ss);
+ ia >> boost::serialization::make_nvp("ruler_shift", shift);
+ ruler_shift_ = shift;
+ } catch (boost::archive::archive_exception) {
+ qDebug() << "Could not restore the view ruler shift";
+ }
}
if (settings.contains("offset")) {
stringstream ss;
ss << settings.value("offset").toString().toStdString();
- boost::archive::text_iarchive ia(ss);
- ia >> boost::serialization::make_nvp("offset", offset);
-
- // This also updates ruler_offset_
- set_offset(offset);
+ try {
+ boost::archive::text_iarchive ia(ss);
+ ia >> boost::serialization::make_nvp("offset", offset);
+ // This also updates ruler_offset_
+ set_offset(offset);
+ } catch (boost::archive::archive_exception) {
+ qDebug() << "Could not restore the view offset";
+ }
}
if (settings.contains("splitter_state"))
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_);
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
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
(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);