settings.setValue("splitter_state", splitter_->saveState());
settings.setValue("segment_display_mode", segment_display_mode_);
- {
- stringstream ss;
- boost::archive::text_oarchive oa(ss);
- oa << boost::serialization::make_nvp("ruler_shift", ruler_shift_);
- settings.setValue("ruler_shift", QString::fromStdString(ss.str()));
- }
{
stringstream ss;
boost::archive::text_oarchive oa(ss);
if (settings.contains("scale"))
set_scale(settings.value("scale").toDouble());
- if (settings.contains("ruler_shift")) {
- util::Timestamp shift;
- stringstream ss;
- ss << settings.value("ruler_shift").toString().toStdString();
-
- 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")) {
util::Timestamp offset;
stringstream ss;
{
if ((offset_ != offset) || force_update) {
offset_ = offset;
- ruler_offset_ = offset_ + ruler_shift_;
+ ruler_offset_ = offset_ + zero_offset_;
offset_changed();
}
}
void View::set_zero_position(const pv::util::Timestamp& position)
{
- // ruler shift is a negative offset and the new zero position is relative
- // to the current offset. Hence, we adjust the ruler shift only by the
- // difference.
- ruler_shift_ = -(position + (-ruler_shift_));
+ zero_offset_ = -position;
// Force an immediate update of the offsets
set_offset(offset_, true);
void View::reset_zero_position()
{
- ruler_shift_ = 0;
+ zero_offset_ = 0;
// Force an immediate update of the offsets
set_offset(offset_, true);
set_time_unit(util::TimeUnit::Samples);
trigger_markers_.clear();
+ set_zero_position(0);
scale_at_acq_start_ = scale_;
offset_at_acq_start_ = offset_;