Skip to content

Commit f6ccaba

Browse files
Added dropIntoAutoHideSideBar() function
1 parent 2118975 commit f6ccaba

File tree

3 files changed

+47
-40
lines changed

3 files changed

+47
-40
lines changed

src/DockContainerWidget.cpp

Lines changed: 43 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,11 @@ class DockContainerWidgetPrivate
181181
*/
182182
void dropIntoContainer(CFloatingDockContainer* FloatingWidget, DockWidgetArea area);
183183

184+
/**
185+
* Drop floating widget into auto hide side bar
186+
*/
187+
void dropIntoAutoHideSideBar(CFloatingDockContainer* FloatingWidget, DockWidgetArea area);
188+
184189
/**
185190
* Drop floating widget into dock area
186191
*/
@@ -505,6 +510,23 @@ void DockContainerWidgetPrivate::dropIntoContainer(CFloatingDockContainer* Float
505510
}
506511

507512

513+
//============================================================================
514+
void DockContainerWidgetPrivate::dropIntoAutoHideSideBar(CFloatingDockContainer* FloatingWidget, DockWidgetArea area)
515+
{
516+
auto SideBarLocation = internal::toSideBarLocation(area);
517+
auto NewDockAreas = FloatingWidget->findChildren<CDockAreaWidget*>(
518+
QString(), Qt::FindChildrenRecursively);
519+
for (auto DockArea : NewDockAreas)
520+
{
521+
auto DockWidgets = DockArea->dockWidgets();
522+
for (auto DockWidget : DockWidgets)
523+
{
524+
_this->createAndSetupAutoHideContainer(SideBarLocation, DockWidget);
525+
}
526+
}
527+
}
528+
529+
508530
//============================================================================
509531
void DockContainerWidgetPrivate::dropIntoCenterOfSection(
510532
CFloatingDockContainer* FloatingWidget, CDockAreaWidget* TargetArea)
@@ -1661,18 +1683,8 @@ void CDockContainerWidget::dropFloatingWidget(CFloatingDockContainer* FloatingWi
16611683
{
16621684
if (internal::isSideBarArea(ContainerDropArea))
16631685
{
1664-
auto SideBarLocation = internal::toSideBarLocation(ContainerDropArea);
1665-
std::cout << "Drop into sidebar " << std::endl;
1666-
auto NewDockAreas = FloatingWidget->findChildren<CDockAreaWidget*>(
1667-
QString(), Qt::FindChildrenRecursively);
1668-
for (auto DockArea : NewDockAreas)
1669-
{
1670-
auto DockWidgets = DockArea->dockWidgets();
1671-
for (auto DockWidget : DockWidgets)
1672-
{
1673-
createAndSetupAutoHideContainer(SideBarLocation, DockWidget);
1674-
}
1675-
}
1686+
ADS_PRINT("Container Drop Content: " << ContainerDropArea);
1687+
d->dropIntoAutoHideSideBar(FloatingWidget, ContainerDropArea);
16761688
}
16771689
else
16781690
{
@@ -1712,10 +1724,29 @@ void CDockContainerWidget::dropFloatingWidget(CFloatingDockContainer* FloatingWi
17121724
d->DockManager->notifyFloatingWidgetDrop(FloatingWidget);
17131725
}
17141726

1727+
/*
1728+
* else if (internal::isSideBarArea(ContainerDropArea))
1729+
{
1730+
// Drop into AutoHideArea
1731+
auto DockWidget = qobject_cast<CDockWidget*>(d->Content);
1732+
auto DockArea = qobject_cast<CDockAreaWidget*>(d->Content);
1733+
auto SideBarLocation = internal::toSideBarLocation(ContainerDropArea);
1734+
if (DockWidget)
1735+
{
1736+
DockWidget->toggleAutoHide(SideBarLocation);
1737+
}
1738+
else if (DockArea)
1739+
{
1740+
DockArea->toggleAutoHide(SideBarLocation);
1741+
}
1742+
}
1743+
*/
1744+
17151745

17161746
//============================================================================
17171747
void CDockContainerWidget::dropWidget(QWidget* Widget, DockWidgetArea DropArea, CDockAreaWidget* TargetAreaWidget)
17181748
{
1749+
std::cout << "CDockContainerWidget::dropWidget" << std::endl;
17191750
CDockWidget* SingleDockWidget = topLevelDockWidget();
17201751
if (TargetAreaWidget)
17211752
{

src/DockOverlay.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
#include <QDebug>
3636
#include <QMap>
3737
#include <QWindow>
38-
#include <QSvgRenderer>
3938

4039
#include "DockAreaWidget.h"
4140
#include "DockAreaTitleBar.h"
@@ -459,8 +458,6 @@ DockWidgetArea CDockOverlay::dropAreaUnderCursor() const
459458
{
460459
auto Rect = rect();
461460
const QPoint pos = mapFromGlobal(QCursor::pos());
462-
463-
std::cout << "pos.y: " << pos.y() << " d->sideBarMouseZone(SideBarTop) " << d->sideBarMouseZone(SideBarTop) << std::endl;
464461
if (pos.x() < d->sideBarMouseZone(SideBarLeft))
465462
{
466463
return LeftAutoHideArea;
@@ -584,7 +581,6 @@ void CDockOverlay::paintEvent(QPaintEvent* event)
584581
double Factor = (CDockOverlay::ModeContainerOverlay == d->Mode) ?
585582
3 : 2;
586583

587-
std::cout << "paint: da: " << da << std::endl;
588584
switch (da)
589585
{
590586
case TopDockWidgetArea: r.setHeight(r.height() / Factor); break;

src/FloatingDragPreview.cpp

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,6 @@ void FloatingDragPreviewPrivate::updateDropOverlays(const QPoint &GlobalPos)
128128
auto DockAreaOverlay = DockManager->dockAreaOverlay();
129129
auto DockDropArea = DockAreaOverlay->dropAreaUnderCursor();
130130
auto ContainerDropArea = ContainerOverlay->dropAreaUnderCursor();
131-
std::cout << "ContainerDropArea " << ContainerDropArea << std::endl;
132-
std::cout << "DockDropArea " << DockDropArea << std::endl;
133131

134132
if (!TopContainer)
135133
{
@@ -349,7 +347,6 @@ void CFloatingDragPreview::startFloating(const QPoint &DragStartMousePos,
349347
void CFloatingDragPreview::finishDragging()
350348
{
351349
ADS_PRINT("CFloatingDragPreview::finishDragging");
352-
std::cout << "CFloatingDragPreview::finishDragging" << std::endl;
353350

354351
auto DockDropArea = d->DockManager->dockAreaOverlay()->visibleDropAreaUnderCursor();
355352
auto ContainerDropArea = d->DockManager->containerOverlay()->visibleDropAreaUnderCursor();
@@ -372,32 +369,15 @@ void CFloatingDragPreview::finishDragging()
372369
}
373370
else if (ContainerDropArea != InvalidDockWidgetArea)
374371
{
375-
std::cout << "ContainerDropArea != InvalidDockWidgetArea " << ContainerDropArea << std::endl;
372+
CDockAreaWidget* DockArea = nullptr;
376373
// If there is only one single dock area, and we drop into the center
377374
// then we tabify the dropped widget into the only visible dock area
378375
if (d->DropContainer->visibleDockAreaCount() <= 1 && CenterDockWidgetArea == ContainerDropArea)
379376
{
380-
d->DropContainer->dropWidget(d->Content, ContainerDropArea, d->DropContainer->dockAreaAt(QCursor::pos()));
381-
}
382-
else if (internal::isSideBarArea(ContainerDropArea))
383-
{
384-
// Drop into AutoHideArea
385-
auto DockWidget = qobject_cast<CDockWidget*>(d->Content);
386-
auto DockArea = qobject_cast<CDockAreaWidget*>(d->Content);
387-
auto SideBarLocation = internal::toSideBarLocation(ContainerDropArea);
388-
if (DockWidget)
389-
{
390-
DockWidget->toggleAutoHide(SideBarLocation);
391-
}
392-
else if (DockArea)
393-
{
394-
DockArea->toggleAutoHide(SideBarLocation);
395-
}
396-
}
397-
else
398-
{
399-
d->DropContainer->dropWidget(d->Content, ContainerDropArea, nullptr);
377+
DockArea = d->DropContainer->dockAreaAt(QCursor::pos());
400378
}
379+
380+
d->DropContainer->dropWidget(d->Content, ContainerDropArea, DockArea);
401381
}
402382
else
403383
{

0 commit comments

Comments
 (0)