From 2837ebf11ab53f642a86b964dfbf741f411fd1f2 Mon Sep 17 00:00:00 2001 From: Pier-Yves Lessard Date: Sun, 28 Jun 2026 17:27:18 -0400 Subject: [PATCH 1/5] Attempt to fix --- src/DockWidget.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/DockWidget.cpp b/src/DockWidget.cpp index 97011247b..06b85738b 100644 --- a/src/DockWidget.cpp +++ b/src/DockWidget.cpp @@ -53,6 +53,8 @@ #include #include +#include + #include "DockContainerWidget.h" #include "DockAreaWidget.h" #include "DockManager.h" @@ -385,7 +387,7 @@ CDockWidget::CDockWidget(CDockManager *manager, const QString &title, QWidget* p setWindowTitle(title); setObjectName(title); - d->TabWidget = d->componentsFactory()->createDockWidgetTab(this); + //d->TabWidget = d->componentsFactory()->createDockWidgetTab(this); d->ToggleViewAction = new QAction(title, this); d->ToggleViewAction->setCheckable(true); @@ -513,6 +515,10 @@ QWidget* CDockWidget::widget() const //============================================================================ CDockWidgetTab* CDockWidget::tabWidget() const { + if (!d->TabWidget) + { + d->TabWidget = d->componentsFactory()->createDockWidgetTab(const_cast(this)); + } return d->TabWidget; } @@ -545,7 +551,7 @@ void CDockWidget::setFeatures(DockWidgetFeatures features) void CDockWidget::notifyFeaturesChanged() { Q_EMIT featuresChanged(d->Features); - d->TabWidget->onDockWidgetFeaturesChanged(); + tabWidget()->onDockWidgetFeaturesChanged(); if(CDockAreaWidget* DockArea = dockAreaWidget()) { DockArea->onDockWidgetFeaturesChanged(); @@ -724,7 +730,7 @@ void CDockWidget::setToggleViewActionMode(eToggleViewActionMode Mode) else { d->ToggleViewAction->setCheckable(false); - d->ToggleViewAction->setIcon(d->TabWidget->icon()); + d->ToggleViewAction->setIcon(tabWidget()->icon()); } } @@ -941,7 +947,7 @@ void CDockWidget::setTabToolTip(const QString &text) //============================================================================ void CDockWidget::setIcon(const QIcon& Icon) { - d->TabWidget->setIcon(Icon); + tabWidget()->setIcon(Icon); if (d->SideTabWidget) { @@ -958,7 +964,7 @@ void CDockWidget::setIcon(const QIcon& Icon) //============================================================================ QIcon CDockWidget::icon() const { - return d->TabWidget->icon(); + return tabWidget()->icon(); } @@ -1141,7 +1147,7 @@ void CDockWidget::setFloating() } else { - d->TabWidget->detachDockWidget(); + tabWidget()->detachDockWidget(); } } From eed25b00a24a3269066f53fff2b7d00eb5062811 Mon Sep 17 00:00:00 2001 From: Pier-Yves Lessard Date: Sun, 28 Jun 2026 17:29:16 -0400 Subject: [PATCH 2/5] Removed debug --- src/DockWidget.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/DockWidget.cpp b/src/DockWidget.cpp index 06b85738b..25d28b969 100644 --- a/src/DockWidget.cpp +++ b/src/DockWidget.cpp @@ -34,8 +34,6 @@ #include "DockWidgetTab.h" #include "DockWidget.h" -#include - #include #include #include @@ -387,7 +385,6 @@ CDockWidget::CDockWidget(CDockManager *manager, const QString &title, QWidget* p setWindowTitle(title); setObjectName(title); - //d->TabWidget = d->componentsFactory()->createDockWidgetTab(this); d->ToggleViewAction = new QAction(title, this); d->ToggleViewAction->setCheckable(true); From c56ca9c9494bae4a99bfd06fc776dd8b0c2af52b Mon Sep 17 00:00:00 2001 From: Pier-Yves Lessard Date: Sun, 28 Jun 2026 17:30:05 -0400 Subject: [PATCH 3/5] whoopsie --- src/DockWidget.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/DockWidget.cpp b/src/DockWidget.cpp index 25d28b969..4b7fae1b6 100644 --- a/src/DockWidget.cpp +++ b/src/DockWidget.cpp @@ -34,6 +34,8 @@ #include "DockWidgetTab.h" #include "DockWidget.h" +#include + #include #include #include @@ -51,8 +53,6 @@ #include #include -#include - #include "DockContainerWidget.h" #include "DockAreaWidget.h" #include "DockManager.h" @@ -385,7 +385,6 @@ CDockWidget::CDockWidget(CDockManager *manager, const QString &title, QWidget* p setWindowTitle(title); setObjectName(title); - d->ToggleViewAction = new QAction(title, this); d->ToggleViewAction->setCheckable(true); connect(d->ToggleViewAction, SIGNAL(triggered(bool)), this, From 364a83c853040465a188de32b6a9774fe115391e Mon Sep 17 00:00:00 2001 From: Pier-Yves Lessard Date: Mon, 29 Jun 2026 07:48:02 -0400 Subject: [PATCH 4/5] Const qualifiers --- src/DockWidget.cpp | 6 +++--- src/DockWidget.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/DockWidget.cpp b/src/DockWidget.cpp index 4b7fae1b6..83d88c7f3 100644 --- a/src/DockWidget.cpp +++ b/src/DockWidget.cpp @@ -509,11 +509,11 @@ QWidget* CDockWidget::widget() const //============================================================================ -CDockWidgetTab* CDockWidget::tabWidget() const +CDockWidgetTab* CDockWidget::tabWidget() { if (!d->TabWidget) { - d->TabWidget = d->componentsFactory()->createDockWidgetTab(const_cast(this)); + d->TabWidget = d->componentsFactory()->createDockWidgetTab(this); } return d->TabWidget; } @@ -958,7 +958,7 @@ void CDockWidget::setIcon(const QIcon& Icon) //============================================================================ -QIcon CDockWidget::icon() const +QIcon CDockWidget::icon() { return tabWidget()->icon(); } diff --git a/src/DockWidget.h b/src/DockWidget.h index 04bec3477..f87ec8f50 100644 --- a/src/DockWidget.h +++ b/src/DockWidget.h @@ -341,9 +341,9 @@ private Q_SLOTS: /** * Returns the tab widget of this dock widget that is shown in the dock - * area title bar + * area title bar. Create it if needed */ - CDockWidgetTab* tabWidget() const; + CDockWidgetTab* tabWidget(); /** * Sets, whether the dock widget is movable, closable, and floatable. @@ -502,7 +502,7 @@ private Q_SLOTS: /** * Returns the icon that has been assigned to the dock widget */ - QIcon icon() const; + QIcon icon(); /** * This function returns the dock widget top tool bar. From b0c4e7346b6a0bece78618c52282e2408a8f19ef Mon Sep 17 00:00:00 2001 From: Pier-Yves Lessard Date: Mon, 29 Jun 2026 10:57:29 -0400 Subject: [PATCH 5/5] rEVERt "Const qualifiers" This reverts commit 364a83c853040465a188de32b6a9774fe115391e. --- src/DockWidget.cpp | 6 +++--- src/DockWidget.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/DockWidget.cpp b/src/DockWidget.cpp index 83d88c7f3..4b7fae1b6 100644 --- a/src/DockWidget.cpp +++ b/src/DockWidget.cpp @@ -509,11 +509,11 @@ QWidget* CDockWidget::widget() const //============================================================================ -CDockWidgetTab* CDockWidget::tabWidget() +CDockWidgetTab* CDockWidget::tabWidget() const { if (!d->TabWidget) { - d->TabWidget = d->componentsFactory()->createDockWidgetTab(this); + d->TabWidget = d->componentsFactory()->createDockWidgetTab(const_cast(this)); } return d->TabWidget; } @@ -958,7 +958,7 @@ void CDockWidget::setIcon(const QIcon& Icon) //============================================================================ -QIcon CDockWidget::icon() +QIcon CDockWidget::icon() const { return tabWidget()->icon(); } diff --git a/src/DockWidget.h b/src/DockWidget.h index f87ec8f50..04bec3477 100644 --- a/src/DockWidget.h +++ b/src/DockWidget.h @@ -341,9 +341,9 @@ private Q_SLOTS: /** * Returns the tab widget of this dock widget that is shown in the dock - * area title bar. Create it if needed + * area title bar */ - CDockWidgetTab* tabWidget(); + CDockWidgetTab* tabWidget() const; /** * Sets, whether the dock widget is movable, closable, and floatable. @@ -502,7 +502,7 @@ private Q_SLOTS: /** * Returns the icon that has been assigned to the dock widget */ - QIcon icon(); + QIcon icon() const; /** * This function returns the dock widget top tool bar.