PartDesign: Change preview parameter to opacity from transparency

This commit is contained in:
Kacper Donat
2025-08-13 14:43:08 +02:00
parent 1c54b97d7f
commit 332ba3854a
4 changed files with 20 additions and 13 deletions

View File

@@ -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));
}

View File

@@ -221,10 +221,13 @@ void ViewProvider::attachPreview()
auto* styleParameterManager = Base::provideService<Gui::StyleParameters::ParameterManager>();
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<float>(lineWidth);
pcToolPreview = new PartGui::SoPreviewShape;
pcToolPreview->transparency = styleParameterManager->resolve(StyleParameters::PreviewToolTransparency).value;
pcToolPreview->transparency = 1.0F - static_cast<float>(opacity);
pcToolPreview->color.connectFrom(&pcPreviewShape->color);
pcPreviewRoot->addChild(pcToolPreview);

View File

@@ -153,7 +153,9 @@ void ViewProviderBoolean::attachPreview()
void ViewProviderBoolean::updatePreview()
{
const auto* styleParameterManager = Base::provideService<Gui::StyleParameters::ParameterManager>();
const float toolTransparency = static_cast<float>(styleParameterManager->resolve(StyleParameters::PreviewToolTransparency).value);
const double toolOpacity = styleParameterManager->resolve(StyleParameters::PreviewToolOpacity).value;
const double toolTransparency = 1.0 - toolOpacity;
auto boolean = getObject<PartDesign::Boolean>();
@@ -173,7 +175,7 @@ void ViewProviderBoolean::updatePreview()
auto pcToolPreview = new PartGui::SoPreviewShape;
updatePreviewShape(toolShape, pcToolPreview);
pcToolPreview->transparency.setValue(toolTransparency);
pcToolPreview->transparency.setValue(static_cast<float>(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<float>(toolTransparency));
pcBaseShapePreview->color.setValue(baseFeatureViewProvider->ShapeAppearance.getDiffuseColor().asValue<SbColor>());
pcBaseShapePreview->lineWidth.connectFrom(&pcPreviewShape->lineWidth);

View File

@@ -140,12 +140,14 @@ void ViewProviderDressUp::setErrorState(bool error)
{
auto* styleParameterManager = Base::provideService<Gui::StyleParameters::ParameterManager>();
pcPreviewShape->transparency = styleParameterManager
->resolve(error ? StyleParameters::PreviewErrorTransparency
: StyleParameters::PreviewShapeTransparency)
.value;
const float opacity =
static_cast<float>(styleParameterManager
->resolve(error ? StyleParameters::PreviewErrorOpacity
: StyleParameters::PreviewShapeOpacity)
.value);
pcPreviewShape->transparency = 1.0F - opacity;
pcPreviewShape->color = error
? styleParameterManager->resolve(StyleParameters::PreviewErrorColor).asValue<SbColor>()
: PreviewColor.getValue().asValue<SbColor>();
}