From 1b689441076dfec0df1a1b41617351ecc6bb5cfd Mon Sep 17 00:00:00 2001 From: cg2121 Date: Fri, 3 Mar 2023 05:03:40 -0600 Subject: [PATCH] UI: Fix transform dialog not being closable If the user clicked away from the source, while the transform dialog is open, the whole dialog would be disabled. The user then couldn't click close or press escape to close the dialog. The only way for them to close it was to click on another source to re-enable it. --- UI/forms/OBSBasicTransform.ui | 1462 +++++++++++++++++---------------- UI/window-basic-transform.cpp | 4 +- 2 files changed, 744 insertions(+), 722 deletions(-) diff --git a/UI/forms/OBSBasicTransform.ui b/UI/forms/OBSBasicTransform.ui index 92839b16b..37be8b269 100644 --- a/UI/forms/OBSBasicTransform.ui +++ b/UI/forms/OBSBasicTransform.ui @@ -15,510 +15,628 @@ - - - QFormLayout::AllNonFixedFieldsGrow - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 0 - 0 - - - - - 170 - 0 - - - - Basic.TransformWindow.Position - - - Basic.TransformWindow.Position - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 0 + + + + QFormLayout::AllNonFixedFieldsGrow + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 4 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + - - 0 + + + 170 + 0 + - - 0 + + Basic.TransformWindow.Position - - 0 - - - - - - 120 - 0 - - - - - 100 - 16777215 - - - - Basic.TransformWindow.PositionX - - - px - - - 4 - - - -90001.000000000000000 - - - 90001.000000000000000 - - - - - - - - 120 - 0 - - - - - 100 - 16777215 - - - - Basic.TransformWindow.PositionY - - - px - - - 4 - - - -90001.000000000000000 - - - 90001.000000000000000 - - - - - - - - - - Basic.TransformWindow.Rotation - - - Basic.TransformWindow.Rotation - - - - - - - - 0 - 0 - - - - - 120 - 0 - - - - - 100 - 16777215 - - - - Basic.TransformWindow.Rotation - - - ° - - - -360.000000000000000 - - - 360.000000000000000 - - - 0.100000000000000 - - - - - - - Basic.TransformWindow.Size - - - Basic.TransformWindow.Size - - - - - - - - 0 - 0 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 120 - 0 - - - - - 100 - 16777215 - - - - Basic.TransformWindow.Width - - - px - - - 4 - - - -90001.000000000000000 - - - 90001.000000000000000 - - - 1.000000000000000 - - - - - - - - 120 - 0 - - - - - 100 - 16777215 - - - - Basic.TransformWindow.Height - - - px - - - 4 - - - -90001.000000000000000 - - - 90001.000000000000000 - - - 1.000000000000000 - - - - - - - - - - Basic.TransformWindow.Alignment - - - Basic.TransformWindow.Alignment - - - - - - - Basic.TransformWindow.Alignment - - - Basic.TransformWindow.Alignment.TopLeft - - + Basic.TransformWindow.Position + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 120 + 0 + + + + + 100 + 16777215 + + + + Basic.TransformWindow.PositionX + + + px + + + 4 + + + -90001.000000000000000 + + + 90001.000000000000000 + + + + + + + + 120 + 0 + + + + + 100 + 16777215 + + + + Basic.TransformWindow.PositionY + + + px + + + 4 + + + -90001.000000000000000 + + + 90001.000000000000000 + + + + + + + + + + Basic.TransformWindow.Rotation + + + Basic.TransformWindow.Rotation + + + + + + + + 0 + 0 + + + + + 120 + 0 + + + + + 100 + 16777215 + + + + Basic.TransformWindow.Rotation + + + ° + + + -360.000000000000000 + + + 360.000000000000000 + + + 0.100000000000000 + + + + + + + Basic.TransformWindow.Size + + + Basic.TransformWindow.Size + + + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 120 + 0 + + + + + 100 + 16777215 + + + + Basic.TransformWindow.Width + + + px + + + 4 + + + -90001.000000000000000 + + + 90001.000000000000000 + + + 1.000000000000000 + + + + + + + + 120 + 0 + + + + + 100 + 16777215 + + + + Basic.TransformWindow.Height + + + px + + + 4 + + + -90001.000000000000000 + + + 90001.000000000000000 + + + 1.000000000000000 + + + + + + + + + + Basic.TransformWindow.Alignment + + + Basic.TransformWindow.Alignment + + + + + + + Basic.TransformWindow.Alignment + + Basic.TransformWindow.Alignment.TopLeft - - - - Basic.TransformWindow.Alignment.TopCenter + + + Basic.TransformWindow.Alignment.TopLeft + + + + + Basic.TransformWindow.Alignment.TopCenter + + + + + Basic.TransformWindow.Alignment.TopRight + + + + + Basic.TransformWindow.Alignment.CenterLeft + + + + + Basic.TransformWindow.Alignment.Center + + + + + Basic.TransformWindow.Alignment.CenterRight + + + + + Basic.TransformWindow.Alignment.BottomLeft + + + + + Basic.TransformWindow.Alignment.BottomCenter + + + + + Basic.TransformWindow.Alignment.BottomRight + + + + + + + + Qt::Vertical - - - - Basic.TransformWindow.Alignment.TopRight + + + 10 + 10 + - - - - Basic.TransformWindow.Alignment.CenterLeft + + + + + + Basic.TransformWindow.BoundsType - - - Basic.TransformWindow.Alignment.Center + Basic.TransformWindow.BoundsType - - - - Basic.TransformWindow.Alignment.CenterRight + + + + + + Basic.TransformWindow.BoundsType - - - - Basic.TransformWindow.Alignment.BottomLeft + + + Basic.TransformWindow.BoundsType.None + + + + + Basic.TransformWindow.BoundsType.Stretch + + + + + Basic.TransformWindow.BoundsType.ScaleInner + + + + + Basic.TransformWindow.BoundsType.ScaleOuter + + + + + Basic.TransformWindow.BoundsType.ScaleToWidth + + + + + Basic.TransformWindow.BoundsType.ScaleToHeight + + + + + Basic.TransformWindow.BoundsType.MaxOnly + + + + + + + + Basic.TransformWindow.BoundsAlignment - - - Basic.TransformWindow.Alignment.BottomCenter + Basic.TransformWindow.BoundsAlignment - - - - Basic.TransformWindow.Alignment.BottomRight + + + + + + false - - - - - - - Qt::Vertical - - - - 10 - 10 - - - - - - - - Basic.TransformWindow.BoundsType - - - Basic.TransformWindow.BoundsType - - - - - - - Basic.TransformWindow.BoundsType - - - - Basic.TransformWindow.BoundsType.None + + Basic.TransformWindow.BoundsAlignment - - - - Basic.TransformWindow.BoundsType.Stretch - - - - - Basic.TransformWindow.BoundsType.ScaleInner - - - - - Basic.TransformWindow.BoundsType.ScaleOuter - - - - - Basic.TransformWindow.BoundsType.ScaleToWidth - - - - - Basic.TransformWindow.BoundsType.ScaleToHeight - - - - - Basic.TransformWindow.BoundsType.MaxOnly - - - - - - - - Basic.TransformWindow.BoundsAlignment - - - Basic.TransformWindow.BoundsAlignment - - - - - - - false - - - Basic.TransformWindow.BoundsAlignment - - - Basic.TransformWindow.Alignment.TopLeft - - - + Basic.TransformWindow.Alignment.TopLeft - - - - Basic.TransformWindow.Alignment.TopCenter - - - - - Basic.TransformWindow.Alignment.TopRight - - - - - Basic.TransformWindow.Alignment.CenterLeft - - - - - Basic.TransformWindow.Alignment.Center - - - - - Basic.TransformWindow.Alignment.CenterRight - - - - - Basic.TransformWindow.Alignment.BottomLeft - - - - - Basic.TransformWindow.Alignment.BottomCenter - - - - - Basic.TransformWindow.Alignment.BottomRight - - - - - - - - Basic.TransformWindow.Bounds - - - Basic.TransformWindow.Bounds - - - - - - - - 0 - 0 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - false + + Basic.TransformWindow.Alignment.TopLeft + + + + + Basic.TransformWindow.Alignment.TopCenter + + + + + Basic.TransformWindow.Alignment.TopRight + + + + + Basic.TransformWindow.Alignment.CenterLeft + + + + + Basic.TransformWindow.Alignment.Center + + + + + Basic.TransformWindow.Alignment.CenterRight + + + + + Basic.TransformWindow.Alignment.BottomLeft + + + + + Basic.TransformWindow.Alignment.BottomCenter + + + + + Basic.TransformWindow.Alignment.BottomRight + + + + + + + + Basic.TransformWindow.Bounds + + + Basic.TransformWindow.Bounds + + + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + false + + + + 120 + 0 + + + + + 100 + 16777215 + + + + Basic.TransformWindow.BoundsWidth + + + px + + + 4 + + + 1.000000000000000 + + + 90001.000000000000000 + + + + + + + false + + + + 120 + 0 + + + + + 100 + 16777215 + + + + Basic.TransformWindow.BoundsHeight + + + px + + + 4 + + + 1.000000000000000 + + + 90001.000000000000000 + + + + + + + + + + Qt::Vertical + + + + 10 + 10 + + + + + + + + Basic.TransformWindow.Crop + + + Basic.TransformWindow.Crop + + + + + + + + + + 0 + 0 + - 120 + 100 0 @@ -529,30 +647,27 @@ - Basic.TransformWindow.BoundsWidth + Basic.TransformWindow.CropLeft px - - 4 - - - 1.000000000000000 - - 90001.000000000000000 + 100000 - - - - false + + + + + 0 + 0 + - 120 + 100 0 @@ -563,242 +678,147 @@ - Basic.TransformWindow.BoundsHeight + Basic.TransformWindow.CropRight px - - 4 - - - 1.000000000000000 - - 90001.000000000000000 + 100000 + + + + Left + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + cropLeft + + + + + + + Bottom + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + cropBottom + + + + + + + + 0 + 0 + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + Basic.TransformWindow.CropTop + + + px + + + 100000 + + + + + + + + 0 + 0 + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + Basic.TransformWindow.CropBottom + + + px + + + 100000 + + + + + + + Top + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + cropTop + + + + + + + Right + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + cropRight + + + + + + + Qt::Horizontal + + + + 0 + 0 + + + + - - - - - - Qt::Vertical - - - - 10 - 10 - - - - - - - - Basic.TransformWindow.Crop - - - Basic.TransformWindow.Crop - - - - - - - - - - 0 - 0 - - - - - 100 - 0 - - - - - 100 - 16777215 - - - - Basic.TransformWindow.CropLeft - - - px - - - 100000 - - - - - - - - 0 - 0 - - - - - 100 - 0 - - - - - 100 - 16777215 - - - - Basic.TransformWindow.CropRight - - - px - - - 100000 - - - - - - - Left - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - cropLeft - - - - - - - Bottom - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - cropBottom - - - - - - - - 0 - 0 - - - - - 100 - 0 - - - - - 100 - 16777215 - - - - Basic.TransformWindow.CropTop - - - px - - - 100000 - - - - - - - - 0 - 0 - - - - - 100 - 0 - - - - - 100 - 16777215 - - - - Basic.TransformWindow.CropBottom - - - px - - - 100000 - - - - - - - Top - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - cropTop - - - - - - - Right - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - cropRight - - - - - - - Qt::Horizontal - - - - 0 - 0 - - - - - - - + + + diff --git a/UI/window-basic-transform.cpp b/UI/window-basic-transform.cpp index 830b9d012..c77b93b73 100644 --- a/UI/window-basic-transform.cpp +++ b/UI/window-basic-transform.cpp @@ -144,7 +144,9 @@ void OBSBasicTransform::SetItemQt(OBSSceneItem newItem) if (item) RefreshControls(); - setEnabled(!!item); + bool enable = !!item; + ui->container->setEnabled(enable); + ui->buttonBox->button(QDialogButtonBox::Reset)->setEnabled(enable); } void OBSBasicTransform::OBSChannelChanged(void *param, calldata_t *data)