X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fview%2Fview.cpp;h=f5f626b38a4be15bffaa84b13a187f8758dffdfb;hb=27e8df221014d1a8c7769866773e8dbb0486eea8;hp=3137dd0c6686b4b9a947e7a708ba14868c16d631;hpb=f3f98f8fade1cffb28161da2710dfc9def5e6d74;p=pulseview.git diff --git a/pv/view/view.cpp b/pv/view/view.cpp index 3137dd0c..f5f626b3 100644 --- a/pv/view/view.cpp +++ b/pv/view/view.cpp @@ -52,9 +52,6 @@ namespace view { const double View::MaxScale = 1e9; const double View::MinScale = 1e-15; -const int View::LabelMarginWidth = 70; -const int View::RulerHeight = 30; - const int View::MaxScrollValue = INT_MAX / 2; const int View::SignalHeight = 30; @@ -95,6 +92,8 @@ View::View(SigSession &session, QWidget *parent) : connect(_cursors.second().get(), SIGNAL(time_changed()), this, SLOT(marker_time_changed())); + connect(_header, SIGNAL(geometry_updated()), + this, SLOT(on_geometry_updated())); connect(_header, SIGNAL(signals_moved()), this, SLOT(on_signals_moved())); @@ -108,7 +107,6 @@ View::View(SigSession &session, QWidget *parent) : connect(_ruler, SIGNAL(selection_changed()), this, SIGNAL(selection_changed())); - setViewportMargins(LabelMarginWidth, RulerHeight, 0, 0); setViewport(_viewport); _viewport->installEventFilter(this); @@ -381,6 +379,17 @@ void View::update_scroll() areaSize.height()); } +void View::update_layout() +{ + setViewportMargins(_header->sizeHint().width(), + _ruler->sizeHint().height(), 0, 0); + _ruler->setGeometry(_viewport->x(), 0, + _viewport->width(), _viewport->y()); + _header->setGeometry(0, _viewport->y(), + _viewport->x(), _viewport->height()); + update_scroll(); +} + bool View::compare_trace_v_offsets(const shared_ptr &a, const shared_ptr &b) { @@ -432,11 +441,7 @@ bool View::viewportEvent(QEvent *e) void View::resizeEvent(QResizeEvent*) { - _ruler->setGeometry(_viewport->x(), 0, - _viewport->width(), _viewport->y()); - _header->setGeometry(0, _viewport->y(), - _viewport->x(), _viewport->height()); - update_scroll(); + update_layout(); } void View::h_scroll_value_changed(int value) @@ -474,6 +479,7 @@ void View::signals_changed() offset += SignalHeight + 2 * SignalMargin; } + update_layout(); normalize_layout(); } @@ -510,5 +516,10 @@ void View::on_signals_moved() signals_moved(); } +void View::on_geometry_updated() +{ + update_layout(); +} + } // namespace view } // namespace pv