[education/rkward] rkward/windows: Do not set parent during QQuickWidget construction:
Thomas Friedrichsmeier
null at kde.org
Thu Apr 9 20:44:24 BST 2026
Git commit 9abcc543dee56e6f3eeb76ec05585d9ea151ac4f by Thomas Friedrichsmeier.
Committed on 09/04/2026 at 19:44.
Pushed by tfry into branch 'master'.
Do not set parent during QQuickWidget construction:
It will force a premature showEvent on the parent
M +1 -1 rkward/windows/rkhtmlviewer.h
M +1 -1 rkward/windows/rkhtmlwindow.cpp
M +2 -2 rkward/windows/rkqwebenginewidget.cpp
M +1 -1 rkward/windows/rkqwebenginewidget.h
M +2 -2 rkward/windows/rkqwebview.cpp
M +1 -1 rkward/windows/rkqwebview.h
https://invent.kde.org/education/rkward/-/commit/9abcc543dee56e6f3eeb76ec05585d9ea151ac4f
diff --git a/rkward/windows/rkhtmlviewer.h b/rkward/windows/rkhtmlviewer.h
index ea4270fc8..00fdc4c23 100644
--- a/rkward/windows/rkhtmlviewer.h
+++ b/rkward/windows/rkhtmlviewer.h
@@ -22,7 +22,7 @@ class RKHTMLViewer : public QObject {
Q_OBJECT
public:
static RKHTMLViewer *getNew(RKHTMLWindow *parent);
- virtual QWidget *createWidget(QWidget *parent) = 0;
+ virtual QWidget *createWidget() = 0;
virtual void reload() {
load(url());
}
diff --git a/rkward/windows/rkhtmlwindow.cpp b/rkward/windows/rkhtmlwindow.cpp
index 3e88a2a33..a6d5d3984 100644
--- a/rkward/windows/rkhtmlwindow.cpp
+++ b/rkward/windows/rkhtmlwindow.cpp
@@ -71,7 +71,7 @@ RKHTMLWindow::RKHTMLWindow(QWidget *parent, WindowMode mode) : RKMDIWindow(paren
QVBoxLayout *layout = new QVBoxLayout(this);
layout->setContentsMargins(0, 0, 0, 0);
page = RKHTMLViewer::getNew(this);
- auto view = page->createWidget(this);
+ auto view = page->createWidget();
view->setContextMenuPolicy(Qt::CustomContextMenu);
layout->addWidget(view, 1);
findbar = new RKFindBar(this, true);
diff --git a/rkward/windows/rkqwebenginewidget.cpp b/rkward/windows/rkqwebenginewidget.cpp
index 29c2795a8..e345f2915 100644
--- a/rkward/windows/rkqwebenginewidget.cpp
+++ b/rkward/windows/rkqwebenginewidget.cpp
@@ -215,7 +215,7 @@ RKQWebEngineWidget::RKQWebEngineWidget(RKHTMLWindow *parent) : RKHTMLViewer(pare
}
}
-QWidget *RKQWebEngineWidget::createWidget(QWidget *parent) {
+QWidget *RKQWebEngineWidget::createWidget() {
RK_TRACE(APP);
// We keep our own history.
@@ -245,7 +245,7 @@ QWidget *RKQWebEngineWidget::createWidget(QWidget *parent) {
});
RK_ASSERT(!view);
- view = new QWebEngineView(page, parent);
+ view = new QWebEngineView(page);
connect(view, &QWebEngineView::selectionChanged, this, [this]() {
Q_EMIT selectionChanged(view->hasSelection());
});
diff --git a/rkward/windows/rkqwebenginewidget.h b/rkward/windows/rkqwebenginewidget.h
index 297eba049..205cc6308 100644
--- a/rkward/windows/rkqwebenginewidget.h
+++ b/rkward/windows/rkqwebenginewidget.h
@@ -17,7 +17,7 @@ class QWebEngineView;
class RKQWebEngineWidget : public RKHTMLViewer {
public:
- QWidget *createWidget(QWidget *parent) override;
+ QWidget *createWidget() override;
void reload() override;
QUrl url() const override;
void load(const QUrl &url) override;
diff --git a/rkward/windows/rkqwebview.cpp b/rkward/windows/rkqwebview.cpp
index 2c2f80ee8..1d40cd158 100644
--- a/rkward/windows/rkqwebview.cpp
+++ b/rkward/windows/rkqwebview.cpp
@@ -39,9 +39,9 @@ void RKQWebView::onPageLoad(const QUrl &_url, const QString &error, int status)
}
}
-QWidget *RKQWebView::createWidget(QWidget *parent) {
+QWidget *RKQWebView::createWidget() {
RK_TRACE(APP);
- view = new QQuickWidget(parent);
+ view = new QQuickWidget();
view->setSource(QUrl(QStringLiteral("qrc:/qml/rkqwebview.qml")));
view->setResizeMode(QQuickWidget::SizeRootObjectToView);
connect(webView(), SIGNAL(loaded(const QUrl &, const QString &, int)), this, SLOT(onPageLoad(const QUrl &, const QString &, int)));
diff --git a/rkward/windows/rkqwebview.h b/rkward/windows/rkqwebview.h
index e18780ac7..48511ed09 100644
--- a/rkward/windows/rkqwebview.h
+++ b/rkward/windows/rkqwebview.h
@@ -18,7 +18,7 @@ class QQuickItem;
class RKQWebView : public RKHTMLViewer {
Q_OBJECT
public:
- QWidget *createWidget(QWidget *parent) override;
+ QWidget *createWidget() override;
QUrl url() const override;
void load(const QUrl &url) override;
void print() override;
More information about the rkward-tracker
mailing list