Fixed some bugs that caused problems when calling toggleView() with the same state, some refactorings to improve code

This commit is contained in:
Uwe Kindler
2018-09-26 09:57:36 +02:00
parent fcb1846bf5
commit b9b72df9d4
14 changed files with 193 additions and 98 deletions

View File

@@ -43,6 +43,7 @@
#include "DockWidget.h"
#include "DockOverlay.h"
namespace ads
{
static unsigned int zOrderCounter = 0;
@@ -190,7 +191,7 @@ void FloatingDockContainerPrivate::updateDropOverlays(const QPoint& GlobalPos)
ContainerOverlay->setAllowedAreas(VisibleDockAreas > 1 ?
OuterDockAreas : AllDockAreas);
DockWidgetArea ContainerArea = ContainerOverlay->showOverlay(TopContainer);
ContainerOverlay->enableDropPreview(ContainerArea != InvalidDockWidgetArea);
auto DockArea = TopContainer->dockAreaAt(GlobalPos);
if (DockArea && DockArea->isVisible() && VisibleDockAreas > 0)
{
@@ -520,21 +521,16 @@ bool CFloatingDockContainer::restoreState(QXmlStreamReader& Stream, bool Testing
//============================================================================
bool CFloatingDockContainer::hasSingleDockWidget() const
bool CFloatingDockContainer::hasTopLevelDockWidget() const
{
if (d->DockContainer->dockAreaCount() != 1)
{
return false;
}
return d->DockContainer->dockArea(0)->dockWidgetsCount() == 1;
return d->DockContainer->hasTopLevelDockWidget();
}
//============================================================================
CDockWidget* CFloatingDockContainer::firstDockWidget() const
CDockWidget* CFloatingDockContainer::topLevelDockWidget() const
{
return d->DockContainer->dockArea(0)->dockWidget(0);
return d->DockContainer->topLevelDockWidget();
}