diff --git a/src/Mod/PartDesign/Gui/StyleParameters.h b/src/Mod/PartDesign/Gui/StyleParameters.h index 8e35383d01..38dbededff 100644 --- a/src/Mod/PartDesign/Gui/StyleParameters.h +++ b/src/Mod/PartDesign/Gui/StyleParameters.h @@ -33,10 +33,10 @@ namespace PartDesignGui::StyleParameters { DEFINE_STYLE_PARAMETER(PreviewDressUpColor, Base::Color(1.0F, 0.0F, 1.0F)); DEFINE_STYLE_PARAMETER(PreviewErrorColor, Base::Color(1.0F, 0.0F, 0.0F)); - DEFINE_STYLE_PARAMETER(PreviewErrorTransparency, Gui::StyleParameters::Numeric(0.95)); + DEFINE_STYLE_PARAMETER(PreviewErrorOpacity, Gui::StyleParameters::Numeric(0.05)); - DEFINE_STYLE_PARAMETER(PreviewToolTransparency, Gui::StyleParameters::Numeric(0.95)); - DEFINE_STYLE_PARAMETER(PreviewShapeTransparency, Gui::StyleParameters::Numeric(0.8)); + DEFINE_STYLE_PARAMETER(PreviewToolOpacity, Gui::StyleParameters::Numeric(0.05)); + DEFINE_STYLE_PARAMETER(PreviewShapeOpacity, Gui::StyleParameters::Numeric(0.2)); DEFINE_STYLE_PARAMETER(PreviewLineWidth, Gui::StyleParameters::Numeric(2)); } diff --git a/src/Mod/PartDesign/Gui/ViewProvider.cpp b/src/Mod/PartDesign/Gui/ViewProvider.cpp index bd976a8b64..09e040a4f7 100644 --- a/src/Mod/PartDesign/Gui/ViewProvider.cpp +++ b/src/Mod/PartDesign/Gui/ViewProvider.cpp @@ -221,10 +221,13 @@ void ViewProvider::attachPreview() auto* styleParameterManager = Base::provideService(); - pcPreviewShape->lineWidth = styleParameterManager->resolve(StyleParameters::PreviewLineWidth).value; + const double opacity = styleParameterManager->resolve(StyleParameters::PreviewToolOpacity).value; + const double lineWidth = styleParameterManager->resolve(StyleParameters::PreviewLineWidth).value; + + pcPreviewShape->lineWidth = static_cast(lineWidth); pcToolPreview = new PartGui::SoPreviewShape; - pcToolPreview->transparency = styleParameterManager->resolve(StyleParameters::PreviewToolTransparency).value; + pcToolPreview->transparency = 1.0F - static_cast(opacity); pcToolPreview->color.connectFrom(&pcPreviewShape->color); pcPreviewRoot->addChild(pcToolPreview); diff --git a/src/Mod/PartDesign/Gui/ViewProviderBoolean.cpp b/src/Mod/PartDesign/Gui/ViewProviderBoolean.cpp index 7346f45e42..c6ad95eaa0 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBoolean.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderBoolean.cpp @@ -153,7 +153,9 @@ void ViewProviderBoolean::attachPreview() void ViewProviderBoolean::updatePreview() { const auto* styleParameterManager = Base::provideService(); - const float toolTransparency = static_cast(styleParameterManager->resolve(StyleParameters::PreviewToolTransparency).value); + + const double toolOpacity = styleParameterManager->resolve(StyleParameters::PreviewToolOpacity).value; + const double toolTransparency = 1.0 - toolOpacity; auto boolean = getObject(); @@ -173,7 +175,7 @@ void ViewProviderBoolean::updatePreview() auto pcToolPreview = new PartGui::SoPreviewShape; updatePreviewShape(toolShape, pcToolPreview); - pcToolPreview->transparency.setValue(toolTransparency); + pcToolPreview->transparency.setValue(static_cast(toolTransparency)); pcToolPreview->color.connectFrom(&pcPreviewShape->color); pcToolPreview->lineWidth.connectFrom(&pcPreviewShape->lineWidth); @@ -194,7 +196,7 @@ void ViewProviderBoolean::updatePreview() auto pcBaseShapePreview = new PartGui::SoPreviewShape; updatePreviewShape(baseFeature->Shape.getShape(), pcBaseShapePreview); - pcBaseShapePreview->transparency.setValue(toolTransparency); + pcBaseShapePreview->transparency.setValue(static_cast(toolTransparency)); pcBaseShapePreview->color.setValue(baseFeatureViewProvider->ShapeAppearance.getDiffuseColor().asValue()); pcBaseShapePreview->lineWidth.connectFrom(&pcPreviewShape->lineWidth); diff --git a/src/Mod/PartDesign/Gui/ViewProviderDressUp.cpp b/src/Mod/PartDesign/Gui/ViewProviderDressUp.cpp index d6a25dc858..8420adbf15 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderDressUp.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderDressUp.cpp @@ -140,12 +140,14 @@ void ViewProviderDressUp::setErrorState(bool error) { auto* styleParameterManager = Base::provideService(); - pcPreviewShape->transparency = styleParameterManager - ->resolve(error ? StyleParameters::PreviewErrorTransparency - : StyleParameters::PreviewShapeTransparency) - .value; + const float opacity = + static_cast(styleParameterManager + ->resolve(error ? StyleParameters::PreviewErrorOpacity + : StyleParameters::PreviewShapeOpacity) + .value); + + pcPreviewShape->transparency = 1.0F - opacity; pcPreviewShape->color = error ? styleParameterManager->resolve(StyleParameters::PreviewErrorColor).asValue() : PreviewColor.getValue().asValue(); } -