Gui: Do not show overlay panels in Start

This commit is contained in:
Kacper Donat
2024-08-03 17:15:03 +02:00
committed by Chris Hennes
parent 5b174a048e
commit 082b5edf29
10 changed files with 66 additions and 16 deletions

View File

@@ -516,6 +516,8 @@ bool GraphvizView::onHasMsg(const char* pMsg) const
return true;
else if (strcmp("PrintPdf",pMsg) == 0)
return true;
else if (strcmp("AllowsOverlayOnHover", pMsg) == 0)
return true;
return false;
}

View File

@@ -370,6 +370,9 @@ bool ImageView::onHasMsg(const char* pMsg) const
if (strcmp("PrintPdf", pMsg) == 0) {
return true;
}
else if (strcmp("AllowsOverlayOnHover", pMsg) == 0) {
return true;
}
return false;
}

View File

@@ -169,8 +169,13 @@ OverlayProxyWidget::HitTest OverlayProxyWidget::hitTest(const QPoint &globalPt,
drawLine = true;
update();
}
auto view = getMainWindow()->activeWindow();
auto overlayOnHoverAllowed = view && view->onHasMsg("AllowsOverlayOnHover");
if(owner->getState() != OverlayTabWidget::State::Hidden
&& hit == HitTest::HitOuter
&& overlayOnHoverAllowed
&& OverlayParams::getDockOverlayActivateOnHover()) {
if (owner->isVisible() && owner->tabBar()->isVisible()) {
QSize size = owner->tabBar()->size();
@@ -494,8 +499,10 @@ void OverlayTabWidget::setAnimation(qreal t)
void OverlayTabWidget::startShow()
{
if (isVisible() || _state > State::Normal)
if (isVisible() || _state > State::Normal) {
return;
}
int duration = OverlayParams::getDockOverlayAnimationDuration();
bool setmode = _state != State::Showing;
if (duration) {
@@ -1129,25 +1136,36 @@ void OverlayTabWidget::setState(State state)
bool OverlayTabWidget::checkAutoHide() const
{
if(autoMode == AutoMode::AutoHide)
if (autoMode == AutoMode::AutoHide) {
return true;
if(OverlayParams::getDockOverlayAutoView()) {
auto view = getMainWindow()->activeWindow();
if (!view) return true;
if(!view->onHasMsg("CanPan")
&& view->parentWidget()
&& view->parentWidget()->isMaximized())
return true;
}
if(autoMode == AutoMode::EditShow) {
if (OverlayParams::getDockOverlayAutoView()) {
auto view = getMainWindow()->activeWindow();
if (!view) {
return true;
}
if (!view->onHasMsg("AllowsOverlayOnHover")) {
return true;
}
if (!view->onHasMsg("CanPan")
&& view->parentWidget()
&& view->parentWidget()->isMaximized()) {
return true;
}
}
if (autoMode == AutoMode::EditShow) {
return !Application::Instance->editDocument()
&& (!Control().taskPanel() || Control().taskPanel()->isEmpty(false));
}
if(autoMode == AutoMode::EditHide && Application::Instance->editDocument())
if (autoMode == AutoMode::EditHide && Application::Instance->editDocument()) {
return true;
}
return false;
}
@@ -1548,7 +1566,7 @@ void OverlayTabWidget::setRect(QRect rect)
break;
}
if(hGrp && rect.size() != rectOverlay.size()) {
if (hGrp && rect.size() != rectOverlay.size()) {
Base::StateLocker lock(_saving);
hGrp->SetInt("Width", rect.width());
hGrp->SetInt("Height", rect.height());
@@ -1557,7 +1575,7 @@ void OverlayTabWidget::setRect(QRect rect)
QPoint offset = getMainWindow()->getMdiArea()->pos();
if(getAutoHideRect(rect) || _state == State::Hint || _state == State::Hidden) {
if (getAutoHideRect(rect) || _state == State::Hint || _state == State::Hidden) {
QRect rectHint = rect;
if (_state != State::Hint && _state != State::Hidden)
startHide();
@@ -1597,10 +1615,11 @@ void OverlayTabWidget::setRect(QRect rect)
} else {
setGeometry(rectOverlay.translated(offset));
for(int i=0, count=splitter->count(); i<count; ++i)
for (int i = 0, count = splitter->count(); i < count; ++i) {
splitter->widget(i)->show();
}
if(!isVisible() && count()) {
if (!isVisible() && count()) {
proxyWidget->hide();
startShow();
}

View File

@@ -235,6 +235,9 @@ bool AbstractSplitView::onHasMsg(const char* pMsg) const
else if (strcmp("ViewAxo",pMsg) == 0) {
return true;
}
else if (strcmp("AllowsOverlayOnHover", pMsg) == 0) {
return true;
}
return false;
}

View File

@@ -524,6 +524,9 @@ bool View3DInventor::onHasMsg(const char* pMsg) const
if (strcmp("ZoomOut", pMsg) == 0) {
return true;
}
if (strcmp("AllowsOverlayOnHover", pMsg) == 0) {
return true;
}
return false;
}

View File

@@ -461,6 +461,9 @@ bool DrawingView::onHasMsg(const char* pMsg) const
else if (strcmp("PrintPdf", pMsg) == 0) {
return true;
}
else if (strcmp("AllowsOverlayOnHover", pMsg) == 0) {
return true;
}
return false;
}

View File

@@ -244,6 +244,9 @@ bool SheetView::onHasMsg(const char* pMsg) const
if (strcmp(pMsg, "PrintPdf") == 0) {
return true;
}
else if (strcmp("AllowsOverlayOnHover", pMsg) == 0) {
return true;
}
return false;
}

View File

@@ -392,6 +392,15 @@ void StartView::newArchFile() const
postStart(PostStartBehavior::doNotSwitchWorkbench);
}
bool StartView::onHasMsg(const char* pMsg) const
{
if (strcmp("AllowsOverlayOnHover", pMsg) == 0) {
return false;
}
return MDIView::onHasMsg(pMsg);
}
void StartView::postStart(PostStartBehavior behavior) const
{
auto hGrp = App::GetApplication().GetParameterGroupByPath(

View File

@@ -70,6 +70,8 @@ public:
void newDraftFile() const;
void newArchFile() const;
bool onHasMsg(const char* pMsg) const override;
public:
enum class PostStartBehavior
{

View File

@@ -232,6 +232,9 @@ bool MDIViewPage::onHasMsg(const char* pMsg) const
if (strcmp("ViewFit", pMsg) == 0) {
return true;
}
else if (strcmp("AllowsOverlayOnHover", pMsg) == 0) {
return true;
}
else if (strcmp("CanPan",pMsg) == 0) {
return true;
}