mirror of
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
synced 2024-12-25 07:31:33 +08:00
Fixed debug output, moved all calls to FloatingWidget->deleteLater() to a centra place in CDockContainerWidget::dropFloatingWidget
This commit is contained in:
parent
8e522ce311
commit
45af8867b2
@ -172,7 +172,7 @@ void CDockAreaTabBar::mouseReleaseEvent(QMouseEvent* ev)
|
|||||||
{
|
{
|
||||||
if (ev->button() == Qt::LeftButton)
|
if (ev->button() == Qt::LeftButton)
|
||||||
{
|
{
|
||||||
ADS_PRINT("CTabsScrollArea::mouseReleaseEvent");
|
ADS_PRINT("CDockAreaTabBar::mouseReleaseEvent");
|
||||||
ev->accept();
|
ev->accept();
|
||||||
d->FloatingWidget = nullptr;
|
d->FloatingWidget = nullptr;
|
||||||
d->DragStartMousePos = QPoint();
|
d->DragStartMousePos = QPoint();
|
||||||
|
@ -427,7 +427,6 @@ void DockContainerWidgetPrivate::dropIntoContainer(CFloatingDockContainer* Float
|
|||||||
|
|
||||||
RootSplitter = Splitter;
|
RootSplitter = Splitter;
|
||||||
addDockAreasToList(NewDockAreas);
|
addDockAreasToList(NewDockAreas);
|
||||||
FloatingWidget->deleteLater();
|
|
||||||
|
|
||||||
// If we dropped the floating widget into the main dock container that does
|
// If we dropped the floating widget into the main dock container that does
|
||||||
// not contain any dock widgets, then splitter is invisible and we need to
|
// not contain any dock widgets, then splitter is invisible and we need to
|
||||||
@ -470,7 +469,6 @@ void DockContainerWidgetPrivate::dropIntoCenterOfSection(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
TargetArea->setCurrentIndex(NewCurrentIndex);
|
TargetArea->setCurrentIndex(NewCurrentIndex);
|
||||||
FloatingWidget->deleteLater();
|
|
||||||
TargetArea->updateTitleBarVisibility();
|
TargetArea->updateTitleBarVisibility();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -563,7 +561,6 @@ void DockContainerWidgetPrivate::dropIntoSection(CFloatingDockContainer* Floatin
|
|||||||
TargetAreaSplitter->setSizes(Sizes);
|
TargetAreaSplitter->setSizes(Sizes);
|
||||||
}
|
}
|
||||||
|
|
||||||
FloatingWidget->deleteLater();
|
|
||||||
addDockAreasToList(NewDockAreas);
|
addDockAreasToList(NewDockAreas);
|
||||||
_this->dumpLayout();
|
_this->dumpLayout();
|
||||||
}
|
}
|
||||||
@ -1390,6 +1387,7 @@ void CDockContainerWidget::dropFloatingWidget(CFloatingDockContainer* FloatingWi
|
|||||||
CDockAreaWidget* DockArea = dockAreaAt(TargetPos);
|
CDockAreaWidget* DockArea = dockAreaAt(TargetPos);
|
||||||
auto dropArea = InvalidDockWidgetArea;
|
auto dropArea = InvalidDockWidgetArea;
|
||||||
auto ContainerDropArea = d->DockManager->containerOverlay()->dropAreaUnderCursor();
|
auto ContainerDropArea = d->DockManager->containerOverlay()->dropAreaUnderCursor();
|
||||||
|
bool Dropped = false;
|
||||||
|
|
||||||
if (DockArea)
|
if (DockArea)
|
||||||
{
|
{
|
||||||
@ -1406,6 +1404,7 @@ void CDockContainerWidget::dropFloatingWidget(CFloatingDockContainer* FloatingWi
|
|||||||
{
|
{
|
||||||
ADS_PRINT("Dock Area Drop Content: " << dropArea);
|
ADS_PRINT("Dock Area Drop Content: " << dropArea);
|
||||||
d->dropIntoSection(FloatingWidget, DockArea, dropArea);
|
d->dropIntoSection(FloatingWidget, DockArea, dropArea);
|
||||||
|
Dropped = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1417,16 +1416,22 @@ void CDockContainerWidget::dropFloatingWidget(CFloatingDockContainer* FloatingWi
|
|||||||
if (dropArea != InvalidDockWidgetArea)
|
if (dropArea != InvalidDockWidgetArea)
|
||||||
{
|
{
|
||||||
d->dropIntoContainer(FloatingWidget, dropArea);
|
d->dropIntoContainer(FloatingWidget, dropArea);
|
||||||
|
Dropped = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we dropped a floating widget with only one single dock widget, then we
|
if (Dropped)
|
||||||
// drop a top level widget that changes from floating to docked now
|
{
|
||||||
CDockWidget::emitTopLevelEventForWidget(SingleDroppedDockWidget, false);
|
FloatingWidget->deleteLater();
|
||||||
|
|
||||||
// If there was a top level widget before the drop, then it is not top
|
// If we dropped a floating widget with only one single dock widget, then we
|
||||||
// level widget anymore
|
// drop a top level widget that changes from floating to docked now
|
||||||
CDockWidget::emitTopLevelEventForWidget(SingleDockWidget, false);
|
CDockWidget::emitTopLevelEventForWidget(SingleDroppedDockWidget, false);
|
||||||
|
|
||||||
|
// If there was a top level widget before the drop, then it is not top
|
||||||
|
// level widget anymore
|
||||||
|
CDockWidget::emitTopLevelEventForWidget(SingleDockWidget, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user