From 1da447e8fd29a4374224a6083868e76f43003877 Mon Sep 17 00:00:00 2001 From: Alfredo Braunstein Date: Mon, 24 Nov 2003 08:26:08 +0000 Subject: [PATCH] make qt scrollbar behave as xforms one git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8123 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt2/ChangeLog | 6 ++++++ src/frontends/qt2/QContentPane.C | 12 ++++++++++-- src/frontends/qt2/QContentPane.h | 5 +++++ src/frontends/qt2/QWorkArea.C | 2 ++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/frontends/qt2/ChangeLog b/src/frontends/qt2/ChangeLog index 1e091c5e5d..a06944abbd 100644 --- a/src/frontends/qt2/ChangeLog +++ b/src/frontends/qt2/ChangeLog @@ -1,3 +1,9 @@ +2003-11-24 Alfredo Braunstein + + * QContentpane.[Ch] (trackScrollbar): add + * QWorkarea.C (setScrollbarParams): do not track scrollbar signals + when manually setting the scrollbar position + 2003-11-14 Jean-Marc Lasgouttes * ui/QMathDialogBase.ui: remove mention of \frac in tooltip, since diff --git a/src/frontends/qt2/QContentPane.C b/src/frontends/qt2/QContentPane.C index 55125c7635..ad7d5b876c 100644 --- a/src/frontends/qt2/QContentPane.C +++ b/src/frontends/qt2/QContentPane.C @@ -76,7 +76,7 @@ mouse_button::state q_motion_state(Qt::ButtonState state) QContentPane::QContentPane(QWorkArea * parent) : QWidget(parent, "content_pane", WRepaintNoErase), - wa_(parent) + wa_(parent), track_scrollbar_(true) { setFocusPolicy(QWidget::WheelFocus); setFocus(); @@ -91,7 +91,8 @@ QContentPane::QContentPane(QWorkArea * parent) void QContentPane::scrollBarChanged(int val) { - wa_->scrollDocView(val); + if (track_scrollbar_) + wa_->scrollDocView(val); } @@ -193,3 +194,10 @@ void QContentPane::paintEvent(QPaintEvent * e) q.drawPixmap(QPoint(r.x(), r.y()), *pixmap_.get(), r); } + + +void QContentPane::trackScrollbar(bool track_on) +{ + track_scrollbar_ = track_on; +} + diff --git a/src/frontends/qt2/QContentPane.h b/src/frontends/qt2/QContentPane.h index 0d9ec895cf..eb5f8e846d 100644 --- a/src/frontends/qt2/QContentPane.h +++ b/src/frontends/qt2/QContentPane.h @@ -50,6 +50,9 @@ public: /// return the backing pixmap QPixmap * pixmap() const { return pixmap_.get(); } + /// track scrollbar signals? + void trackScrollbar(bool track_on); + protected: /// repaint part of the widget void paintEvent(QPaintEvent * e); @@ -73,6 +76,8 @@ public slots: void scrollBarChanged(int); private: + /// + bool track_scrollbar_; /// owning widget QWorkArea * wa_; diff --git a/src/frontends/qt2/QWorkArea.C b/src/frontends/qt2/QWorkArea.C index ead7f478bf..5d70abb779 100644 --- a/src/frontends/qt2/QWorkArea.C +++ b/src/frontends/qt2/QWorkArea.C @@ -68,7 +68,9 @@ void QWorkArea::setScrollbarParams(int h, int pos, int line_h) int max = std::max(0, h - height()); scrollbar_->setRange(0, max); + content_->trackScrollbar(false); scrollbar_->setValue(pos); + content_->trackScrollbar(true); scrollbar_->setLineStep(line_h); scrollbar_->setPageStep(height()); } -- 2.39.2