X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Fview.cpp;h=b0e97cb8e04e7df2d5ae558fe92ddcac0ed6c7f7;hb=8a290daf90a91c998217f34a695a2dad41ea73e1;hp=a437918d9f2a88f3001f35ae9eb33b854530924c;hpb=1bc6525bd6274b7f06f5fa8355b539dd9307f599;p=pulseview.git diff --git a/pv/view/view.cpp b/pv/view/view.cpp index a437918..b0e97cb 100644 --- a/pv/view/view.cpp +++ b/pv/view/view.cpp @@ -154,9 +154,7 @@ void View::zoom(double steps) void View::zoom(double steps, int offset) { - const double new_scale = max(min(_scale * pow(3.0/2.0, -steps), - MaxScale), MinScale); - set_zoom(new_scale, offset); + set_zoom(_scale * pow(3.0/2.0, -steps), offset); } void View::zoom_fit() @@ -171,7 +169,8 @@ void View::zoom_fit() if (w <= 0) return; - set_scale_offset(delta / w, extents.first); + const double scale = max(min(delta / w, MaxScale), MinScale); + set_scale_offset(scale, extents.first); } void View::zoom_one_to_one() @@ -286,9 +285,12 @@ pair View::get_time_extents() const BOOST_FOREACH(const shared_ptr d, visible_data) { const double start_time = d->get_start_time(); + double samplerate = d->samplerate(); + samplerate = (samplerate <= 0.0) ? 1.0 : samplerate; + left_time = min(left_time, start_time); right_time = max(right_time, start_time + - d->get_max_sample_count() / d->samplerate()); + d->get_max_sample_count() / samplerate); } assert(left_time < right_time);