Gitweb links:

...log 
http://git.netsurf-browser.org/netsurf.git/shortlog/8b2c3de940f2b2c2532243dee6a26af9a237bbe5
...commit 
http://git.netsurf-browser.org/netsurf.git/commit/8b2c3de940f2b2c2532243dee6a26af9a237bbe5
...tree 
http://git.netsurf-browser.org/netsurf.git/tree/8b2c3de940f2b2c2532243dee6a26af9a237bbe5

The branch, vince/qt6 has been updated
       via  8b2c3de940f2b2c2532243dee6a26af9a237bbe5 (commit)
      from  b5ad19c17326da02c1c94cc50714ecadb70cbc1c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commitdiff 
http://git.netsurf-browser.org/netsurf.git/commit/?id=8b2c3de940f2b2c2532243dee6a26af9a237bbe5
commit 8b2c3de940f2b2c2532243dee6a26af9a237bbe5
Author: Vincent Sanders <[email protected]>
Commit: Vincent Sanders <[email protected]>

    make scrollbars work

diff --git a/frontends/qt/widget.cls.h b/frontends/qt/widget.cls.h
index d709afd..f97da76 100644
--- a/frontends/qt/widget.cls.h
+++ b/frontends/qt/widget.cls.h
@@ -39,7 +39,8 @@ private:
 protected:
        void paintEvent(QPaintEvent *event);
        void resizeEvent(QResizeEvent *event);
-       int handle(int event);
+       void mousePressEvent(QMouseEvent *event);
+       void mouseReleaseEvent(QMouseEvent *event);
 
 public:
        NS_Widget(QWidget *parent, struct browser_window *bw)
@@ -49,8 +50,8 @@ public:
        nserror get_dimensions(int *width, int *height);
 
        nserror invalidate(const struct rect *rect);
-/*
-  void vscroll_callback(Fl_Scrollbar *w);
-       void hscroll_callback(Fl_Scrollbar *w);
-*/
+public slots:
+       void setHorizontalScroll(int value);
+       void setVerticalScroll(int value);
+
 };
diff --git a/frontends/qt/widget.cpp b/frontends/qt/widget.cpp
index e69d799..0980244 100644
--- a/frontends/qt/widget.cpp
+++ b/frontends/qt/widget.cpp
@@ -73,6 +73,34 @@ void NS_Widget::paintEvent(QPaintEvent *event)
        delete painter;
 }
 
+void NS_Widget::mousePressEvent(QMouseEvent *event)
+{
+       const QPointF pos = event->position();
+       Qt::MouseButton button = event->button();
+       int bms = BROWSER_MOUSE_HOVER; /* empty state */
+       if ((button & Qt::LeftButton) == Qt::LeftButton) {
+               bms |=BROWSER_MOUSE_PRESS_1;
+       }
+       if ((button & Qt::MiddleButton) == Qt::MiddleButton) {
+               bms |=BROWSER_MOUSE_PRESS_2;
+       }
+       browser_window_mouse_click(m_bw, (browser_mouse_state)bms, pos.x(), 
pos.y());
+}
+
+void NS_Widget::mouseReleaseEvent(QMouseEvent *event)
+{
+       const QPointF pos = event->position();
+       Qt::MouseButton button = event->button();
+       int bms = BROWSER_MOUSE_HOVER; /* empty state */
+       if ((button & Qt::LeftButton) == Qt::LeftButton) {
+               bms |=BROWSER_MOUSE_CLICK_1;
+       }
+       if ((button & Qt::MiddleButton) == Qt::MiddleButton) {
+               bms |=BROWSER_MOUSE_CLICK_2;
+       }
+       browser_window_mouse_click(m_bw, (browser_mouse_state)bms, pos.x(), 
pos.y());
+}
+
 /**
  * get the current scroll offsets
  */
@@ -102,7 +130,7 @@ nserror NS_Widget::get_dimensions(int *width, int *height)
  */
 nserror NS_Widget::invalidate(const struct rect *rect)
 {
-       
+
        if (rect == NULL) {
                update();
        } else {
@@ -116,67 +144,20 @@ nserror NS_Widget::invalidate(const struct rect *rect)
 }
 
 
-#if 0
-/**
- * handle events on the netsurf browsing widget
- */
-int NS_Widget::handle(int event)
-{
-       int state = BROWSER_MOUSE_HOVER;
-       int button;
-
-       switch (event) {
-               
-       case FL_PUSH:
-               button = Fl::event_button();
-               if (button == FL_LEFT_MOUSE) {
-                       state |= BROWSER_MOUSE_PRESS_1;
-               }
-               browser_window_mouse_click(m_bw,
-                                          (browser_mouse_state)state,
-                                          Fl::event_x() - x() + m_xoffset,
-                                          Fl::event_y() - y() + m_yoffset);
-               return 1;
-
-       case FL_RELEASE:
-               button = Fl::event_button();
-               if (button == FL_LEFT_MOUSE) {
-                       state |= BROWSER_MOUSE_CLICK_1;
-
-               }
-               browser_window_mouse_click(m_bw,
-                                          (browser_mouse_state)state,
-                                          Fl::event_x() - x() + m_xoffset,
-                                          Fl::event_y() - y() + m_yoffset);
-
-               return 1;
-       default:
-               return Fl_Widget::handle(event);
-               
-       }
-               
-}
-#endif
-
-
-
-#if 0
 /**
- * vertical scrollbar position has been changed
+ * slot to recive horizontal scroll signal
  */
-void NS_Widget::vscroll_callback(Fl_Scrollbar *sb)
+void NS_Widget::setHorizontalScroll(int value)
 {
-       m_yoffset = sb->value();
-       //damage(FL_DAMAGE_SCROLL);
+       m_xoffset = value;
+       update();
 }
 
-
 /**
- * horizontal scrollbar position has been changed
+ * slot to recive vertical scroll signal
  */
-void NS_Widget::hscroll_callback(Fl_Scrollbar *sb)
+void NS_Widget::setVerticalScroll(int value)
 {
-       m_xoffset = sb->value();
-       //damage(FL_DAMAGE_SCROLL);
+       m_yoffset = value;
+       update();
 }
-#endif
diff --git a/frontends/qt/window.cls.h b/frontends/qt/window.cls.h
index 6de6c6d..ef0f94b 100644
--- a/frontends/qt/window.cls.h
+++ b/frontends/qt/window.cls.h
@@ -22,6 +22,7 @@
  */
 
 #include <QWidget>
+#include <QScrollBar>
 
 extern "C" {
 #include "utils/errors.h"
@@ -43,8 +44,8 @@ private:
 
        NS_URLBar *m_nsurlbar;
        NS_Widget *m_nswidget;
-       //Fl_Scrollbar *m_vscrollbar;
-       //Fl_Scrollbar *m_hscrollbar;
+       QScrollBar *m_vscrollbar;
+       QScrollBar *m_hscrollbar;
        //Fl_Output *m_status;
 
        nserror set_scroll(const struct rect *rect);
diff --git a/frontends/qt/window.cpp b/frontends/qt/window.cpp
index 7cefadd..51c8e00 100644
--- a/frontends/qt/window.cpp
+++ b/frontends/qt/window.cpp
@@ -21,13 +21,7 @@
  * Implementation of netsurf window (widget) for qt.
  */
 
-#include <stddef.h>
-#include <QWidget>
 #include <QGridLayout>
-#include <QHBoxLayout>
-#include <QPushButton>
-#include <QScrollBar>
-#include <QToolBar>
 
 extern "C" {
 
@@ -70,40 +64,40 @@ NS_Window::NS_Window(QWidget *parent, struct browser_window 
*bw)
        // url bar
        m_nsurlbar = new NS_URLBar(nullptr, m_bw);
 
-       QScrollBar *vscrollbar= new QScrollBar(Qt::Vertical);
-
        // browser drawing canvas widget
-       m_nswidget = new NS_Widget(this,  bw);
+       m_nswidget = new NS_Widget(this, bw);
+
+       // horizontal scrollbar
+       m_hscrollbar = new QScrollBar(Qt::Horizontal);
+       m_hscrollbar->setMinimum(0);
+       m_hscrollbar->setMaximum(1);
+       m_hscrollbar->setPageStep(1);
+       connect(m_hscrollbar, &QScrollBar::valueChanged,
+               m_nswidget, &NS_Widget::setHorizontalScroll);
+
+       // vertical scrollbar
+       m_vscrollbar = new QScrollBar(Qt::Vertical);
+       m_vscrollbar->setMinimum(0);
+       m_vscrollbar->setMaximum(1);
+       m_vscrollbar->setPageStep(1);
+       connect(m_vscrollbar, &QScrollBar::valueChanged,
+               m_nswidget, &NS_Widget::setVerticalScroll);
+
+       // Build browser window grid layout
        QGridLayout *layout = new QGridLayout(this);
        layout->setContentsMargins(0,0,0,0);
        layout->addWidget(m_nsurlbar, 0, 0, 1, 2);
        layout->addWidget(m_nswidget,1,0);
-       layout->addWidget(vscrollbar, 1,1);
+       layout->addWidget(m_vscrollbar, 1,1);
        layout->setRowStretch(1,1);
+       layout->addWidget(m_hscrollbar, 2,0);
 
-#if 0
-       // vertical scrollbar
-       m_vscrollbar = new Fl_Scrollbar(m_nswidget->w(),
-                                       m_nsurlbar->h(),
-                                       scrlsize,
-                                       m_nswidget->h());
-       m_vscrollbar->callback(static_vscroll_callback, (void *)m_nswidget);
-       m_vscrollbar->value(0, m_nswidget->h(), 0, m_nswidget->h());
 
-       // horizontal scrollbar
-       m_hscrollbar = new Fl_Scrollbar(splitx,
-                                       m_nswidget->y() + m_nswidget->h(),
-                                       m_nswidget->w() - splitx,
-                                       scrlsize);
-       m_hscrollbar->type(FL_HORIZONTAL);
-       m_hscrollbar->callback(static_hscroll_callback, (void *)m_nswidget);
-       m_hscrollbar->value(0, m_nswidget->w(), 0, m_nswidget->w());
+#if 0
 
        // status text
        m_status = new Fl_Output(0, m_hscrollbar->y(), splitx, scrlsize);
-       end();
 
-       resizable(m_nswidget);
 #endif
 }
 
@@ -131,7 +125,7 @@ void NS_Window::set_status(const char *text)
  */
 void NS_Window::set_title(const char *text)
 {
-       //label(text);
+       setWindowTitle(text);
 }
 
 
@@ -140,11 +134,8 @@ void NS_Window::set_title(const char *text)
  */
 nserror NS_Window::set_scroll(const struct rect *rect)
 {
-       //m_vscrollbar->value(rect->y0);
-       //m_hscrollbar->value(rect->x0);
-
-       //m_nswidget->vscroll_callback(m_vscrollbar);
-       //m_nswidget->hscroll_callback(m_hscrollbar);
+       m_hscrollbar->setValue(rect->x0);
+       m_vscrollbar->setValue(rect->y0);
 
        return NSERROR_OK;
 }
@@ -155,8 +146,12 @@ nserror NS_Window::set_scroll(const struct rect *rect)
  */
 nserror NS_Window::set_extent(int ew, int eh)
 {
-       //m_hscrollbar->value(0, w(), 0, ew);
-       //m_vscrollbar->value(0, h(), 0, eh);
+       int width = m_nswidget->size().width();
+       m_hscrollbar->setMaximum(ew - width);
+       m_hscrollbar->setPageStep(width);
+       int height = m_nswidget->size().height();
+       m_vscrollbar->setMaximum(eh - height);
+       m_vscrollbar->setPageStep(height);
 
        return NSERROR_OK;
 }


-----------------------------------------------------------------------

Summary of changes:
 frontends/qt/widget.cls.h |   11 +++---
 frontends/qt/widget.cpp   |   93 ++++++++++++++++++---------------------------
 frontends/qt/window.cls.h |    5 ++-
 frontends/qt/window.cpp   |   67 +++++++++++++++-----------------
 4 files changed, 77 insertions(+), 99 deletions(-)

diff --git a/frontends/qt/widget.cls.h b/frontends/qt/widget.cls.h
index d709afd..f97da76 100644
--- a/frontends/qt/widget.cls.h
+++ b/frontends/qt/widget.cls.h
@@ -39,7 +39,8 @@ private:
 protected:
        void paintEvent(QPaintEvent *event);
        void resizeEvent(QResizeEvent *event);
-       int handle(int event);
+       void mousePressEvent(QMouseEvent *event);
+       void mouseReleaseEvent(QMouseEvent *event);
 
 public:
        NS_Widget(QWidget *parent, struct browser_window *bw)
@@ -49,8 +50,8 @@ public:
        nserror get_dimensions(int *width, int *height);
 
        nserror invalidate(const struct rect *rect);
-/*
-  void vscroll_callback(Fl_Scrollbar *w);
-       void hscroll_callback(Fl_Scrollbar *w);
-*/
+public slots:
+       void setHorizontalScroll(int value);
+       void setVerticalScroll(int value);
+
 };
diff --git a/frontends/qt/widget.cpp b/frontends/qt/widget.cpp
index e69d799..0980244 100644
--- a/frontends/qt/widget.cpp
+++ b/frontends/qt/widget.cpp
@@ -73,6 +73,34 @@ void NS_Widget::paintEvent(QPaintEvent *event)
        delete painter;
 }
 
+void NS_Widget::mousePressEvent(QMouseEvent *event)
+{
+       const QPointF pos = event->position();
+       Qt::MouseButton button = event->button();
+       int bms = BROWSER_MOUSE_HOVER; /* empty state */
+       if ((button & Qt::LeftButton) == Qt::LeftButton) {
+               bms |=BROWSER_MOUSE_PRESS_1;
+       }
+       if ((button & Qt::MiddleButton) == Qt::MiddleButton) {
+               bms |=BROWSER_MOUSE_PRESS_2;
+       }
+       browser_window_mouse_click(m_bw, (browser_mouse_state)bms, pos.x(), 
pos.y());
+}
+
+void NS_Widget::mouseReleaseEvent(QMouseEvent *event)
+{
+       const QPointF pos = event->position();
+       Qt::MouseButton button = event->button();
+       int bms = BROWSER_MOUSE_HOVER; /* empty state */
+       if ((button & Qt::LeftButton) == Qt::LeftButton) {
+               bms |=BROWSER_MOUSE_CLICK_1;
+       }
+       if ((button & Qt::MiddleButton) == Qt::MiddleButton) {
+               bms |=BROWSER_MOUSE_CLICK_2;
+       }
+       browser_window_mouse_click(m_bw, (browser_mouse_state)bms, pos.x(), 
pos.y());
+}
+
 /**
  * get the current scroll offsets
  */
@@ -102,7 +130,7 @@ nserror NS_Widget::get_dimensions(int *width, int *height)
  */
 nserror NS_Widget::invalidate(const struct rect *rect)
 {
-       
+
        if (rect == NULL) {
                update();
        } else {
@@ -116,67 +144,20 @@ nserror NS_Widget::invalidate(const struct rect *rect)
 }
 
 
-#if 0
-/**
- * handle events on the netsurf browsing widget
- */
-int NS_Widget::handle(int event)
-{
-       int state = BROWSER_MOUSE_HOVER;
-       int button;
-
-       switch (event) {
-               
-       case FL_PUSH:
-               button = Fl::event_button();
-               if (button == FL_LEFT_MOUSE) {
-                       state |= BROWSER_MOUSE_PRESS_1;
-               }
-               browser_window_mouse_click(m_bw,
-                                          (browser_mouse_state)state,
-                                          Fl::event_x() - x() + m_xoffset,
-                                          Fl::event_y() - y() + m_yoffset);
-               return 1;
-
-       case FL_RELEASE:
-               button = Fl::event_button();
-               if (button == FL_LEFT_MOUSE) {
-                       state |= BROWSER_MOUSE_CLICK_1;
-
-               }
-               browser_window_mouse_click(m_bw,
-                                          (browser_mouse_state)state,
-                                          Fl::event_x() - x() + m_xoffset,
-                                          Fl::event_y() - y() + m_yoffset);
-
-               return 1;
-       default:
-               return Fl_Widget::handle(event);
-               
-       }
-               
-}
-#endif
-
-
-
-#if 0
 /**
- * vertical scrollbar position has been changed
+ * slot to recive horizontal scroll signal
  */
-void NS_Widget::vscroll_callback(Fl_Scrollbar *sb)
+void NS_Widget::setHorizontalScroll(int value)
 {
-       m_yoffset = sb->value();
-       //damage(FL_DAMAGE_SCROLL);
+       m_xoffset = value;
+       update();
 }
 
-
 /**
- * horizontal scrollbar position has been changed
+ * slot to recive vertical scroll signal
  */
-void NS_Widget::hscroll_callback(Fl_Scrollbar *sb)
+void NS_Widget::setVerticalScroll(int value)
 {
-       m_xoffset = sb->value();
-       //damage(FL_DAMAGE_SCROLL);
+       m_yoffset = value;
+       update();
 }
-#endif
diff --git a/frontends/qt/window.cls.h b/frontends/qt/window.cls.h
index 6de6c6d..ef0f94b 100644
--- a/frontends/qt/window.cls.h
+++ b/frontends/qt/window.cls.h
@@ -22,6 +22,7 @@
  */
 
 #include <QWidget>
+#include <QScrollBar>
 
 extern "C" {
 #include "utils/errors.h"
@@ -43,8 +44,8 @@ private:
 
        NS_URLBar *m_nsurlbar;
        NS_Widget *m_nswidget;
-       //Fl_Scrollbar *m_vscrollbar;
-       //Fl_Scrollbar *m_hscrollbar;
+       QScrollBar *m_vscrollbar;
+       QScrollBar *m_hscrollbar;
        //Fl_Output *m_status;
 
        nserror set_scroll(const struct rect *rect);
diff --git a/frontends/qt/window.cpp b/frontends/qt/window.cpp
index 7cefadd..51c8e00 100644
--- a/frontends/qt/window.cpp
+++ b/frontends/qt/window.cpp
@@ -21,13 +21,7 @@
  * Implementation of netsurf window (widget) for qt.
  */
 
-#include <stddef.h>
-#include <QWidget>
 #include <QGridLayout>
-#include <QHBoxLayout>
-#include <QPushButton>
-#include <QScrollBar>
-#include <QToolBar>
 
 extern "C" {
 
@@ -70,40 +64,40 @@ NS_Window::NS_Window(QWidget *parent, struct browser_window 
*bw)
        // url bar
        m_nsurlbar = new NS_URLBar(nullptr, m_bw);
 
-       QScrollBar *vscrollbar= new QScrollBar(Qt::Vertical);
-
        // browser drawing canvas widget
-       m_nswidget = new NS_Widget(this,  bw);
+       m_nswidget = new NS_Widget(this, bw);
+
+       // horizontal scrollbar
+       m_hscrollbar = new QScrollBar(Qt::Horizontal);
+       m_hscrollbar->setMinimum(0);
+       m_hscrollbar->setMaximum(1);
+       m_hscrollbar->setPageStep(1);
+       connect(m_hscrollbar, &QScrollBar::valueChanged,
+               m_nswidget, &NS_Widget::setHorizontalScroll);
+
+       // vertical scrollbar
+       m_vscrollbar = new QScrollBar(Qt::Vertical);
+       m_vscrollbar->setMinimum(0);
+       m_vscrollbar->setMaximum(1);
+       m_vscrollbar->setPageStep(1);
+       connect(m_vscrollbar, &QScrollBar::valueChanged,
+               m_nswidget, &NS_Widget::setVerticalScroll);
+
+       // Build browser window grid layout
        QGridLayout *layout = new QGridLayout(this);
        layout->setContentsMargins(0,0,0,0);
        layout->addWidget(m_nsurlbar, 0, 0, 1, 2);
        layout->addWidget(m_nswidget,1,0);
-       layout->addWidget(vscrollbar, 1,1);
+       layout->addWidget(m_vscrollbar, 1,1);
        layout->setRowStretch(1,1);
+       layout->addWidget(m_hscrollbar, 2,0);
 
-#if 0
-       // vertical scrollbar
-       m_vscrollbar = new Fl_Scrollbar(m_nswidget->w(),
-                                       m_nsurlbar->h(),
-                                       scrlsize,
-                                       m_nswidget->h());
-       m_vscrollbar->callback(static_vscroll_callback, (void *)m_nswidget);
-       m_vscrollbar->value(0, m_nswidget->h(), 0, m_nswidget->h());
 
-       // horizontal scrollbar
-       m_hscrollbar = new Fl_Scrollbar(splitx,
-                                       m_nswidget->y() + m_nswidget->h(),
-                                       m_nswidget->w() - splitx,
-                                       scrlsize);
-       m_hscrollbar->type(FL_HORIZONTAL);
-       m_hscrollbar->callback(static_hscroll_callback, (void *)m_nswidget);
-       m_hscrollbar->value(0, m_nswidget->w(), 0, m_nswidget->w());
+#if 0
 
        // status text
        m_status = new Fl_Output(0, m_hscrollbar->y(), splitx, scrlsize);
-       end();
 
-       resizable(m_nswidget);
 #endif
 }
 
@@ -131,7 +125,7 @@ void NS_Window::set_status(const char *text)
  */
 void NS_Window::set_title(const char *text)
 {
-       //label(text);
+       setWindowTitle(text);
 }
 
 
@@ -140,11 +134,8 @@ void NS_Window::set_title(const char *text)
  */
 nserror NS_Window::set_scroll(const struct rect *rect)
 {
-       //m_vscrollbar->value(rect->y0);
-       //m_hscrollbar->value(rect->x0);
-
-       //m_nswidget->vscroll_callback(m_vscrollbar);
-       //m_nswidget->hscroll_callback(m_hscrollbar);
+       m_hscrollbar->setValue(rect->x0);
+       m_vscrollbar->setValue(rect->y0);
 
        return NSERROR_OK;
 }
@@ -155,8 +146,12 @@ nserror NS_Window::set_scroll(const struct rect *rect)
  */
 nserror NS_Window::set_extent(int ew, int eh)
 {
-       //m_hscrollbar->value(0, w(), 0, ew);
-       //m_vscrollbar->value(0, h(), 0, eh);
+       int width = m_nswidget->size().width();
+       m_hscrollbar->setMaximum(ew - width);
+       m_hscrollbar->setPageStep(width);
+       int height = m_nswidget->size().height();
+       m_vscrollbar->setMaximum(eh - height);
+       m_vscrollbar->setPageStep(height);
 
        return NSERROR_OK;
 }


-- 
NetSurf Browser
_______________________________________________
netsurf-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to