Skip to content

Commit 29f9084

Browse files
authored
Lazy creation of CDockWidgetTab to accomodate a factory defined in Python (#848)
* Attempt to fix * Removed debug * whoopsie * Const qualifiers * rEVERt "Const qualifiers" This reverts commit 364a83c.
1 parent 0139097 commit 29f9084

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

src/DockWidget.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -385,8 +385,6 @@ CDockWidget::CDockWidget(CDockManager *manager, const QString &title, QWidget* p
385385
setWindowTitle(title);
386386
setObjectName(title);
387387

388-
d->TabWidget = d->componentsFactory()->createDockWidgetTab(this);
389-
390388
d->ToggleViewAction = new QAction(title, this);
391389
d->ToggleViewAction->setCheckable(true);
392390
connect(d->ToggleViewAction, SIGNAL(triggered(bool)), this,
@@ -513,6 +511,10 @@ QWidget* CDockWidget::widget() const
513511
//============================================================================
514512
CDockWidgetTab* CDockWidget::tabWidget() const
515513
{
514+
if (!d->TabWidget)
515+
{
516+
d->TabWidget = d->componentsFactory()->createDockWidgetTab(const_cast<CDockWidget*>(this));
517+
}
516518
return d->TabWidget;
517519
}
518520

@@ -545,7 +547,7 @@ void CDockWidget::setFeatures(DockWidgetFeatures features)
545547
void CDockWidget::notifyFeaturesChanged()
546548
{
547549
Q_EMIT featuresChanged(d->Features);
548-
d->TabWidget->onDockWidgetFeaturesChanged();
550+
tabWidget()->onDockWidgetFeaturesChanged();
549551
if(CDockAreaWidget* DockArea = dockAreaWidget())
550552
{
551553
DockArea->onDockWidgetFeaturesChanged();
@@ -724,7 +726,7 @@ void CDockWidget::setToggleViewActionMode(eToggleViewActionMode Mode)
724726
else
725727
{
726728
d->ToggleViewAction->setCheckable(false);
727-
d->ToggleViewAction->setIcon(d->TabWidget->icon());
729+
d->ToggleViewAction->setIcon(tabWidget()->icon());
728730
}
729731
}
730732

@@ -941,7 +943,7 @@ void CDockWidget::setTabToolTip(const QString &text)
941943
//============================================================================
942944
void CDockWidget::setIcon(const QIcon& Icon)
943945
{
944-
d->TabWidget->setIcon(Icon);
946+
tabWidget()->setIcon(Icon);
945947

946948
if (d->SideTabWidget)
947949
{
@@ -958,7 +960,7 @@ void CDockWidget::setIcon(const QIcon& Icon)
958960
//============================================================================
959961
QIcon CDockWidget::icon() const
960962
{
961-
return d->TabWidget->icon();
963+
return tabWidget()->icon();
962964
}
963965

964966

@@ -1141,7 +1143,7 @@ void CDockWidget::setFloating()
11411143
}
11421144
else
11431145
{
1144-
d->TabWidget->detachDockWidget();
1146+
tabWidget()->detachDockWidget();
11451147
}
11461148
}
11471149

0 commit comments

Comments
 (0)