]> git.lyx.org Git - features.git/commitdiff
make qt scrollbar behave as xforms one
authorAlfredo Braunstein <abraunst@lyx.org>
Mon, 24 Nov 2003 08:26:08 +0000 (08:26 +0000)
committerAlfredo Braunstein <abraunst@lyx.org>
Mon, 24 Nov 2003 08:26:08 +0000 (08:26 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8123 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt2/ChangeLog
src/frontends/qt2/QContentPane.C
src/frontends/qt2/QContentPane.h
src/frontends/qt2/QWorkArea.C

index 1e091c5e5dd9be62a7ccb04ac8b351b7dd679d58..a06944abbdc3d93bd9b7e5d5b8ac7b898a9ca409 100644 (file)
@@ -1,3 +1,9 @@
+2003-11-24  Alfredo Braunstein  <abraunst@lyx.org>
+
+       * QContentpane.[Ch] (trackScrollbar): add 
+       * QWorkarea.C (setScrollbarParams): do not track scrollbar signals
+       when manually setting the scrollbar position
+
 2003-11-14  Jean-Marc Lasgouttes  <lasgouttes@lyx.org>
 
        * ui/QMathDialogBase.ui: remove mention of \frac in tooltip, since
index 55125c7635a9bce62e68d0faec35b8eb56d39773..ad7d5b876c64b7eb257e7781c70ef12fdd3bb26e 100644 (file)
@@ -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;
+}
+
index 0d9ec895cfeff1d7ad0d6ecb3b4e392a350e5439..eb5f8e846db762733f4972a53606bef43f814186 100644 (file)
@@ -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_;
 
index ead7f478bf6811e66af082500cc370984578bcc8..5d70abb7795dd7275e6e3eefe23793135f2cad26 100644 (file)
@@ -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());
 }