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]