Implemented proper updating of floating widget title

This commit is contained in:
Uwe Kindler
2018-10-30 23:45:59 +01:00
parent 81523b0346
commit 6617cf6f19
11 changed files with 67 additions and 31 deletions

View File

@@ -435,14 +435,16 @@ void CDockWidget::toggleViewInternal(bool Open)
{
CDockContainerWidget* DockContainer = dockContainer();
CDockWidget* TopLevelDockWidget = nullptr;
CDockWidget* TopLevelDockWidgetBefore = nullptr;
if (Open && DockContainer)
if (DockContainer)
{
TopLevelDockWidget = DockContainer->topLevelDockWidget();
TopLevelDockWidgetBefore = DockContainer->topLevelDockWidget();
}
if (Open)
{
TopLevelDockWidget = TopLevelDockWidgetBefore;
d->showDockWidget();
}
else
@@ -468,6 +470,22 @@ void CDockWidget::toggleViewInternal(bool Open)
CDockWidget::emitTopLevelEventForWidget(TopLevelDockWidget, !Open);
}
CDockWidget* TopLevelDockWidgetAfter = nullptr;
if (DockContainer)
{
TopLevelDockWidgetAfter = DockContainer->topLevelDockWidget();
}
if (TopLevelDockWidgetAfter != TopLevelDockWidgetBefore)
{
CFloatingDockContainer* FloatingContainer = qobject_cast<CFloatingDockContainer*>(DockContainer->parentWidget());
if (FloatingContainer)
{
FloatingContainer->updateWindowTitle(TopLevelDockWidgetAfter ? TopLevelDockWidgetAfter->windowTitle() : "");
}
}
if (!Open)
{
emit closed();