Added option ShowAutoHideOnMouseOver that enables showing of auto hide widgets by hovering over auto hide tab

This commit is contained in:
Uwe Kindler
2022-11-04 08:51:17 +01:00
parent 27d71eecac
commit c0247fc02a
7 changed files with 202 additions and 15 deletions

View File

@@ -30,6 +30,7 @@
#include "AutoHideTab.h"
#include <QBoxLayout>
#include <QApplication>
#include "AutoHideDockContainer.h"
#include "AutoHideSideBar.h"
@@ -59,6 +60,26 @@ struct AutoHideTabPrivate
* the side bar
*/
void updateOrientation();
/**
* Convenience function to ease dock container access
*/
CDockContainerWidget* dockContainer() const
{
return DockWidget ? DockWidget->dockContainer() : nullptr;
}
/**
* Forward this event to the dock container
*/
void forwardEventToDockContainer(QEvent* event)
{
auto DockContainer = dockContainer();
if (DockContainer)
{
DockContainer->handleAutoHideWidgetEvent(event, _this);
}
}
}; // struct DockWidgetTabPrivate
@@ -228,4 +249,28 @@ void CAutoHideTab::setDockWidget(CDockWidget* DockWidget)
setIcon(d->DockWidget->icon());
}
//============================================================================
void CAutoHideTab::enterEvent(QEvent *event)
{
d->forwardEventToDockContainer(event);
Super::enterEvent(event);
}
//============================================================================
void CAutoHideTab::leaveEvent(QEvent *event)
{
d->forwardEventToDockContainer(event);
Super::leaveEvent(event);
}
//============================================================================
void CAutoHideTab::mousePressEvent(QMouseEvent* event)
{
d->forwardEventToDockContainer(event);
Super::mousePressEvent(event);
}
}