@@ -209,6 +209,11 @@ struct DockOverlayCrossPrivate
209209 CDockOverlay::eMode Mode)
210210 {
211211 QColor borderColor = iconColor (CDockOverlayCross::FrameColor);
212+ // TODO: remove, this is just for debugging
213+ if (Mode == CDockOverlay::ModeContainerOverlay)
214+ {
215+ borderColor = Qt::red;
216+ }
212217 QColor backgroundColor = iconColor (CDockOverlayCross::WindowBackgroundColor);
213218 QColor overlayColor = iconColor (CDockOverlayCross::OverlayColor);
214219 if (overlayColor.alpha () == 255 )
@@ -426,12 +431,26 @@ CDockOverlay::~CDockOverlay()
426431void CDockOverlay::setAllowedAreas (DockWidgetAreas areas)
427432{
428433 if (areas == d->AllowedAreas )
434+ {
429435 return ;
436+ }
430437 d->AllowedAreas = areas;
431438 d->Cross ->reset ();
432439}
433440
434441
442+ // ============================================================================
443+ void CDockOverlay::setAllowedArea (DockWidgetArea area, bool Enable)
444+ {
445+ auto AreasOld = d->AllowedAreas ;
446+ d->AllowedAreas .setFlag (area, Enable);
447+ if (AreasOld != d->AllowedAreas )
448+ {
449+ d->Cross ->reset ();
450+ }
451+ }
452+
453+
435454// ============================================================================
436455DockWidgetAreas CDockOverlay::allowedAreas () const
437456{
@@ -456,6 +475,7 @@ DockWidgetArea CDockOverlay::dropAreaUnderCursor() const
456475 auto DockArea = qobject_cast<CDockAreaWidget*>(d->TargetWidget .data ());
457476 if (!DockArea && CDockManager::autoHideConfigFlags ().testFlag (CDockManager::AutoHideFeatureEnabled))
458477 {
478+ std::cout << d->Mode << " Find out side bar area " << std::endl;
459479 auto Rect = rect ();
460480 const QPoint pos = mapFromGlobal (QCursor::pos ());
461481 if (pos.x () < d->sideBarMouseZone (SideBarLeft))
@@ -468,6 +488,7 @@ DockWidgetArea CDockOverlay::dropAreaUnderCursor() const
468488 }
469489 else if (pos.y () < d->sideBarMouseZone (SideBarTop))
470490 {
491+ std::cout << d->Mode << " TopAutoHideArea " << std::endl;
471492 return TopAutoHideArea;
472493 }
473494 else if (pos.y () > (Rect.height () - d->sideBarMouseZone (SideBarBottom)))
@@ -513,12 +534,14 @@ DockWidgetArea CDockOverlay::visibleDropAreaUnderCursor() const
513534// ============================================================================
514535DockWidgetArea CDockOverlay::showOverlay (QWidget* target)
515536{
537+ std::cout << d->Mode << " CDockOverlay::showOverlay()" << target << " " << target->objectName ().toStdString () << std::endl;
516538 if (d->TargetWidget == target)
517539 {
518540 // Hint: We could update geometry of overlay here.
519541 DockWidgetArea da = dropAreaUnderCursor ();
520542 if (da != d->LastLocation )
521543 {
544+ std::cout << d->Mode << " repaint()" << std::endl;
522545 repaint ();
523546 d->LastLocation = da;
524547 }
@@ -543,6 +566,7 @@ DockWidgetArea CDockOverlay::showOverlay(QWidget* target)
543566// ============================================================================
544567void CDockOverlay::hideOverlay ()
545568{
569+ std::cout << d->Mode << " CDockOverlay::hideOverlay()" << std::endl;
546570 hide ();
547571 d->TargetWidget .clear ();
548572 d->LastLocation = InvalidDockWidgetArea;
@@ -554,6 +578,7 @@ void CDockOverlay::hideOverlay()
554578void CDockOverlay::enableDropPreview (bool Enable)
555579{
556580 d->DropPreviewEnabled = Enable;
581+ std::cout << d->Mode << " update() " << Enable << std::endl;
557582 update ();
558583}
559584
@@ -581,6 +606,7 @@ void CDockOverlay::paintEvent(QPaintEvent* event)
581606 double Factor = (CDockOverlay::ModeContainerOverlay == d->Mode ) ?
582607 3 : 2 ;
583608
609+ std::cout << " CDockOverlay::paintEvent da: " << da << std::endl;
584610 switch (da)
585611 {
586612 case TopDockWidgetArea: r.setHeight (r.height () / Factor); break ;
@@ -596,6 +622,11 @@ void CDockOverlay::paintEvent(QPaintEvent* event)
596622 }
597623 QPainter painter (this );
598624 QColor Color = palette ().color (QPalette::Active, QPalette::Highlight);
625+ // TODO: This is just for debugging - remove later
626+ if (d->Mode == CDockOverlay::ModeContainerOverlay)
627+ {
628+ Color = Qt::red;
629+ }
599630 QPen Pen = painter.pen ();
600631 Pen.setColor (Color.darker (120 ));
601632 Pen.setStyle (Qt::SolidLine);
0 commit comments