From 411cdadf49a5a051d4eee74e7bd804e29ba1e579 Mon Sep 17 00:00:00 2001 From: Andrew Shkolik Date: Thu, 27 Feb 2025 00:28:20 -0600 Subject: [PATCH 1/4] Sketcher: Preference color added for External defining geometry --- .../Sketcher_Colors.cfg | 1 + src/Mod/Sketcher/Gui/EditModeCoinManager.cpp | 4 ++ .../Gui/EditModeCoinManagerParameters.cpp | 1 + .../Gui/EditModeCoinManagerParameters.h | 1 + .../Gui/EditModeGeometryCoinManager.cpp | 18 +++++++- src/Mod/Sketcher/Gui/SketcherSettings.cpp | 2 + .../Gui/SketcherSettingsAppearance.ui | 41 +++++++++++++++++-- 7 files changed, 62 insertions(+), 6 deletions(-) diff --git a/src/Gui/PreferencePackTemplates/Sketcher_Colors.cfg b/src/Gui/PreferencePackTemplates/Sketcher_Colors.cfg index 47b0f20ecd..34146e780d 100644 --- a/src/Gui/PreferencePackTemplates/Sketcher_Colors.cfg +++ b/src/Gui/PreferencePackTemplates/Sketcher_Colors.cfg @@ -9,6 +9,7 @@ + diff --git a/src/Mod/Sketcher/Gui/EditModeCoinManager.cpp b/src/Mod/Sketcher/Gui/EditModeCoinManager.cpp index 98b81d0623..9888733500 100644 --- a/src/Mod/Sketcher/Gui/EditModeCoinManager.cpp +++ b/src/Mod/Sketcher/Gui/EditModeCoinManager.cpp @@ -241,6 +241,10 @@ void EditModeCoinManager::ParameterObserver::initParameters() [this, drawingParameters = Client.drawingParameters](const std::string& param) { updateColor(drawingParameters.CurveExternalColor, param); }}, + {"ExternalDefiningColor", + [this, drawingParameters = Client.drawingParameters](const std::string& param) { + updateColor(drawingParameters.CurveExternalDefiningColor, param); + }}, {"HighlightColor", [this, drawingParameters = Client.drawingParameters](const std::string& param) { updateColor(drawingParameters.PreselectColor, param); diff --git a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp index 9710afacf6..1573d2a16d 100644 --- a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp +++ b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp @@ -82,6 +82,7 @@ SbColor DrawingParameters::PreselectColor(0.88f, 0.88f, 0.0f); // #E1E SbColor DrawingParameters::SelectColor(0.11f, 0.68f, 0.11f); // #1CAD1C -> ( 28,173, 28) SbColor DrawingParameters::PreselectSelectedColor(0.36f, 0.48f, 0.11f); // #5D7B1C -> ( 93,123, 28) SbColor DrawingParameters::CurveExternalColor(0.8f, 0.2f, 0.6f); // #CC3399 -> (204, 51,153) +SbColor DrawingParameters::CurveExternalDefiningColor(1.0f, 0.5f, 0.69f); // #FF7FAF -> (255,127,175) SbColor DrawingParameters::CurveDraftColor(0.0f, 0.0f, 0.86f); // #0000DC -> ( 0, 0,220) SbColor DrawingParameters::FullyConstraintConstructionElementColor(0.56f, diff --git a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h index 0e1082f417..2033cf7885 100644 --- a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h +++ b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h @@ -117,6 +117,7 @@ struct DrawingParameters PreselectSelectedColor; // Color used for pre-selection when geometry is already selected static SbColor SelectColor; // Color used for selected geometry static SbColor CurveExternalColor; // Color used for external geometry + static SbColor CurveExternalDefiningColor; // Color used for external defining geometry static SbColor CurveDraftColor; // Color used for construction geometry static SbColor FullyConstraintConstructionElementColor; // Color used for a fully constrained // construction element diff --git a/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp b/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp index b215874e0d..7afe5688e6 100644 --- a/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp +++ b/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp @@ -135,6 +135,16 @@ void EditModeGeometryCoinManager::updateGeometryColor(const GeoListFacade& geoli return false; }; + auto isExternalDefiningGeomPoint = [&geolistfacade](int GeoId) { + auto geom = geolistfacade.getGeometryFacadeFromGeoId(GeoId); + if (geom) { + auto egf = ExternalGeometryFacade::getFacade(geom->clone()); + auto ref = egf->getRef(); + return egf->testFlag(ExternalGeometryExtension::Defining); + } + return false; + }; + auto isCoincident = [&](int GeoId, Sketcher::PointPos PosId) { const std::vector& constraints = ViewProviderSketchCoinAttorney::getConstraints(viewProvider); @@ -202,7 +212,9 @@ void EditModeGeometryCoinManager::updateGeometryColor(const GeoListFacade& geoli pcolor[i] = drawingParameters.ConstrIcoColor; } else { - pcolor[i] = drawingParameters.CurveExternalColor; + pcolor[i] = isExternalDefiningGeomPoint(GeoId) + ? drawingParameters.CurveExternalDefiningColor + : drawingParameters.CurveExternalColor; } } else if (issketchinvalid) { @@ -423,7 +435,9 @@ void EditModeGeometryCoinManager::updateGeometryColor(const GeoListFacade& geoli color[i] = drawingParameters.InvalidSketchColor; } else { - color[i] = drawingParameters.CurveExternalColor; + color[i] = egf->testFlag(ExternalGeometryExtension::Defining) + ? drawingParameters.CurveExternalDefiningColor + : drawingParameters.CurveExternalColor; } for (int k = j; j < k + indexes; j++) { verts[j].getValue(x, y, z); diff --git a/src/Mod/Sketcher/Gui/SketcherSettings.cpp b/src/Mod/Sketcher/Gui/SketcherSettings.cpp index 0696f76b7d..7cb8fe1c8b 100644 --- a/src/Mod/Sketcher/Gui/SketcherSettings.cpp +++ b/src/Mod/Sketcher/Gui/SketcherSettings.cpp @@ -550,6 +550,7 @@ void SketcherSettingsAppearance::saveSettings() ui->EditedEdgeColor->onSave(); ui->ConstructionColor->onSave(); ui->ExternalColor->onSave(); + ui->ExternalDefiningColor->onSave(); ui->InvalidSketchColor->onSave(); ui->FullyConstrainedColor->onSave(); ui->InternalAlignedGeoColor->onSave(); @@ -599,6 +600,7 @@ void SketcherSettingsAppearance::loadSettings() ui->EditedEdgeColor->onRestore(); ui->ConstructionColor->onRestore(); ui->ExternalColor->onRestore(); + ui->ExternalDefiningColor->onRestore(); ui->InvalidSketchColor->onRestore(); ui->FullyConstrainedColor->onRestore(); ui->InternalAlignedGeoColor->onRestore(); diff --git a/src/Mod/Sketcher/Gui/SketcherSettingsAppearance.ui b/src/Mod/Sketcher/Gui/SketcherSettingsAppearance.ui index 2d6052949a..b1bb992cdb 100644 --- a/src/Mod/Sketcher/Gui/SketcherSettingsAppearance.ui +++ b/src/Mod/Sketcher/Gui/SketcherSettingsAppearance.ui @@ -555,7 +555,40 @@ - + + + + External defining geometry + + + + + + + + 0 + 0 + + + + Color of external defining geometry in edit mode + + + + 255 + 114 + 243 + + + + ExternalDefiningColor + + + View + + + + @@ -568,7 +601,7 @@ - + @@ -594,14 +627,14 @@ - + Invalid sketch - + From f7c1e7f8a5f6ff3d8742bea34fafb06da90954c6 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 27 Feb 2025 06:42:37 +0000 Subject: [PATCH 2/4] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp | 5 +++-- src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h | 6 +++--- src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp index 1573d2a16d..c5a61ecf6f 100644 --- a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp +++ b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp @@ -82,8 +82,9 @@ SbColor DrawingParameters::PreselectColor(0.88f, 0.88f, 0.0f); // #E1E SbColor DrawingParameters::SelectColor(0.11f, 0.68f, 0.11f); // #1CAD1C -> ( 28,173, 28) SbColor DrawingParameters::PreselectSelectedColor(0.36f, 0.48f, 0.11f); // #5D7B1C -> ( 93,123, 28) SbColor DrawingParameters::CurveExternalColor(0.8f, 0.2f, 0.6f); // #CC3399 -> (204, 51,153) -SbColor DrawingParameters::CurveExternalDefiningColor(1.0f, 0.5f, 0.69f); // #FF7FAF -> (255,127,175) -SbColor DrawingParameters::CurveDraftColor(0.0f, 0.0f, 0.86f); // #0000DC -> ( 0, 0,220) +SbColor + DrawingParameters::CurveExternalDefiningColor(1.0f, 0.5f, 0.69f); // #FF7FAF -> (255,127,175) +SbColor DrawingParameters::CurveDraftColor(0.0f, 0.0f, 0.86f); // #0000DC -> ( 0, 0,220) SbColor DrawingParameters::FullyConstraintConstructionElementColor(0.56f, 0.66f, diff --git a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h index 2033cf7885..b5013f4b74 100644 --- a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h +++ b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h @@ -116,9 +116,9 @@ struct DrawingParameters static SbColor PreselectSelectedColor; // Color used for pre-selection when geometry is already selected static SbColor SelectColor; // Color used for selected geometry - static SbColor CurveExternalColor; // Color used for external geometry - static SbColor CurveExternalDefiningColor; // Color used for external defining geometry - static SbColor CurveDraftColor; // Color used for construction geometry + static SbColor CurveExternalColor; // Color used for external geometry + static SbColor CurveExternalDefiningColor; // Color used for external defining geometry + static SbColor CurveDraftColor; // Color used for construction geometry static SbColor FullyConstraintConstructionElementColor; // Color used for a fully constrained // construction element static SbColor ConstrDimColor; // Color used for a dimensional constraints diff --git a/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp b/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp index 7afe5688e6..8f50b6aa8d 100644 --- a/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp +++ b/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp @@ -136,7 +136,7 @@ void EditModeGeometryCoinManager::updateGeometryColor(const GeoListFacade& geoli }; auto isExternalDefiningGeomPoint = [&geolistfacade](int GeoId) { - auto geom = geolistfacade.getGeometryFacadeFromGeoId(GeoId); + auto geom = geolistfacade.getGeometryFacadeFromGeoId(GeoId); if (geom) { auto egf = ExternalGeometryFacade::getFacade(geom->clone()); auto ref = egf->getRef(); From 1155182ac3e97020618f3e06d4d377212658a304 Mon Sep 17 00:00:00 2001 From: Andrew Shkolik Date: Mon, 3 Mar 2025 23:51:26 -0600 Subject: [PATCH 3/4] Sketcher: Preference pattern and width added for External defining geometry --- src/Mod/Sketcher/Gui/EditModeCoinManager.cpp | 12 +++++ .../Gui/EditModeCoinManagerParameters.cpp | 8 ++-- .../Gui/EditModeCoinManagerParameters.h | 12 ++++- .../Gui/EditModeGeometryCoinManager.cpp | 11 +++++ src/Mod/Sketcher/Gui/SketcherSettings.cpp | 15 ++++++ .../Gui/SketcherSettingsAppearance.ui | 46 +++++++++++++++++-- 6 files changed, 94 insertions(+), 10 deletions(-) diff --git a/src/Mod/Sketcher/Gui/EditModeCoinManager.cpp b/src/Mod/Sketcher/Gui/EditModeCoinManager.cpp index 9888733500..008930cd6c 100644 --- a/src/Mod/Sketcher/Gui/EditModeCoinManager.cpp +++ b/src/Mod/Sketcher/Gui/EditModeCoinManager.cpp @@ -161,6 +161,10 @@ void EditModeCoinManager::ParameterObserver::initParameters() [this, &drawingParameters = Client.drawingParameters](const std::string& param) { updateWidth(drawingParameters.ExternalWidth, param, 2); }}, + {"ExternalDefiningWidth", + [this, &drawingParameters = Client.drawingParameters](const std::string& param) { + updateWidth(drawingParameters.ExternalDefiningWidth, param, 2); + }}, {"EdgePattern", [this, &drawingParameters = Client.drawingParameters](const std::string& param) { updatePattern(drawingParameters.CurvePattern, param, 0b1111111111111111); @@ -177,6 +181,10 @@ void EditModeCoinManager::ParameterObserver::initParameters() [this, &drawingParameters = Client.drawingParameters](const std::string& param) { updatePattern(drawingParameters.ExternalPattern, param, 0b1111110011111100); }}, + {"ExternalDefiningPattern", + [this, &drawingParameters = Client.drawingParameters](const std::string& param) { + updatePattern(drawingParameters.ExternalDefiningPattern, param, 0b1111111111111111); + }}, {"CreateLineColor", [this, drawingParameters = Client.drawingParameters](const std::string& param) { updateColor(drawingParameters.CreateCurveColor, param); @@ -1123,6 +1131,8 @@ void EditModeCoinManager::updateInventorWidths() drawingParameters.InternalWidth * drawingParameters.pixelScalingFactor; editModeScenegraphNodes.CurvesExternalDrawStyle->lineWidth = drawingParameters.ExternalWidth * drawingParameters.pixelScalingFactor; + editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->lineWidth = + drawingParameters.ExternalDefiningWidth * drawingParameters.pixelScalingFactor; } void EditModeCoinManager::updateInventorPatterns() @@ -1134,6 +1144,8 @@ void EditModeCoinManager::updateInventorPatterns() drawingParameters.InternalPattern; editModeScenegraphNodes.CurvesExternalDrawStyle->linePattern = drawingParameters.ExternalPattern; + editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->linePattern = + drawingParameters.ExternalDefiningPattern; } void EditModeCoinManager::updateInventorColors() diff --git a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp index c5a61ecf6f..42d7923739 100644 --- a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp +++ b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp @@ -40,10 +40,8 @@ int GeometryLayerParameters::getSubLayerIndex(const int geoId, bool isExternal = geoId <= Sketcher::GeoEnum::RefExt; if (isExternal) { auto egf = Sketcher::ExternalGeometryFacade::getFacade(geom->clone()); - if (egf->testFlag(Sketcher::ExternalGeometryExtension::Defining)) { - // Defining external are added to the Normal sublayers because they - // share the same line style. - return static_cast(SubLayer::Normal); + if (egf->testFlag(Sketcher::ExternalGeometryExtension::Defining)) { + return static_cast(SubLayer::ExternalDefining); } } @@ -83,7 +81,7 @@ SbColor DrawingParameters::SelectColor(0.11f, 0.68f, 0.11f); // #1CA SbColor DrawingParameters::PreselectSelectedColor(0.36f, 0.48f, 0.11f); // #5D7B1C -> ( 93,123, 28) SbColor DrawingParameters::CurveExternalColor(0.8f, 0.2f, 0.6f); // #CC3399 -> (204, 51,153) SbColor - DrawingParameters::CurveExternalDefiningColor(1.0f, 0.5f, 0.69f); // #FF7FAF -> (255,127,175) + DrawingParameters::CurveExternalDefiningColor(0.8f, 0.2f, 0.6f); // #CC3399 -> (204, 51,153) SbColor DrawingParameters::CurveDraftColor(0.0f, 0.0f, 0.86f); // #0000DC -> ( 0, 0,220) SbColor DrawingParameters::FullyConstraintConstructionElementColor(0.56f, diff --git a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h index b5013f4b74..3d33fa0326 100644 --- a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h +++ b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h @@ -144,11 +144,13 @@ struct DrawingParameters int ConstructionWidth = 1; // width of construction edges int InternalWidth = 1; // width of internal edges int ExternalWidth = 1; // width of external edges + int ExternalDefiningWidth = 1; // width of external defining edges unsigned int CurvePattern = 0b1111111111111111; // pattern of normal edges unsigned int ConstructionPattern = 0b1111110011111100; // pattern of construction edges unsigned int InternalPattern = 0b1111110011111100; // pattern of internal edges unsigned int ExternalPattern = 0b1111110011111100; // pattern of external edges + unsigned int ExternalDefiningPattern = 0b1111111111111111; // pattern of external defining edges //@} DrawingParameters() @@ -290,6 +292,7 @@ public: Construction = 1, Internal = 2, External = 3, + ExternalDefining = 4 }; void reset() @@ -343,9 +346,15 @@ public: return t == static_cast(SubLayer::External); } + bool isExternalDefiningSubLayer(int t) const + { + return t == static_cast(SubLayer::ExternalDefining); + } + + private: int CoinLayers = 1; // defaults to a single Coin Geometry Layer. - int SubLayers = 4; // Normal, Construction, Internal, External. + int SubLayers = 5; // Normal, Construction, Internal, External. }; /** @brief Struct to hold the results of analysis performed on geometry @@ -411,6 +420,7 @@ struct EditModeScenegraphNodes SoDrawStyle* CurvesConstructionDrawStyle; SoDrawStyle* CurvesInternalDrawStyle; SoDrawStyle* CurvesExternalDrawStyle; + SoDrawStyle* CurvesExternalDefiningDrawStyle; SoDrawStyle* HiddenCurvesDrawStyle; //@} diff --git a/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp b/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp index 8f50b6aa8d..592b3a418e 100644 --- a/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp +++ b/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp @@ -656,6 +656,14 @@ void EditModeGeometryCoinManager::createEditModeCurveInventorNodes() drawingParameters.ExternalPattern; editModeScenegraphNodes.CurvesExternalDrawStyle->linePatternScaleFactor = 2; + editModeScenegraphNodes.CurvesExternalDefiningDrawStyle = new SoDrawStyle; + editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->setName("CurvesExternalDefiningDrawStyle"); + editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->lineWidth = + drawingParameters.ExternalDefiningWidth * drawingParameters.pixelScalingFactor; + editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->linePattern = + drawingParameters.ExternalDefiningPattern; + editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->linePatternScaleFactor = 2; + for (int i = 0; i < geometryLayerParameters.getCoinLayerCount(); i++) { editModeScenegraphNodes.CurvesMaterials.emplace_back(); editModeScenegraphNodes.CurvesCoordinate.emplace_back(); @@ -688,6 +696,9 @@ void EditModeGeometryCoinManager::createEditModeCurveInventorNodes() else if (geometryLayerParameters.isExternalSubLayer(t)) { sep->addChild(editModeScenegraphNodes.CurvesExternalDrawStyle); } + else if (geometryLayerParameters.isExternalDefiningSubLayer(t)) { + sep->addChild(editModeScenegraphNodes.CurvesExternalDefiningDrawStyle); + } else { sep->addChild(editModeScenegraphNodes.CurvesDrawStyle); } diff --git a/src/Mod/Sketcher/Gui/SketcherSettings.cpp b/src/Mod/Sketcher/Gui/SketcherSettings.cpp index 7cb8fe1c8b..9150b7aba1 100644 --- a/src/Mod/Sketcher/Gui/SketcherSettings.cpp +++ b/src/Mod/Sketcher/Gui/SketcherSettings.cpp @@ -512,6 +512,7 @@ SketcherSettingsAppearance::SketcherSettingsAppearance(QWidget* parent) ui->ConstructionPattern->setIconSize(QSize(70, 12)); ui->InternalPattern->setIconSize(QSize(70, 12)); ui->ExternalPattern->setIconSize(QSize(70, 12)); + ui->ExternalDefiningPattern->setIconSize(QSize(70, 12)); for (auto& style : styles) { QPixmap px(ui->EdgePattern->iconSize()); px.fill(Qt::transparent); @@ -531,6 +532,7 @@ SketcherSettingsAppearance::SketcherSettingsAppearance(QWidget* parent) ui->ConstructionPattern->addItem(QIcon(px), QString(), QVariant(style)); ui->InternalPattern->addItem(QIcon(px), QString(), QVariant(style)); ui->ExternalPattern->addItem(QIcon(px), QString(), QVariant(style)); + ui->ExternalDefiningPattern->addItem(QIcon(px), QString(), QVariant(style)); } } @@ -572,6 +574,7 @@ void SketcherSettingsAppearance::saveSettings() ui->ConstructionWidth->onSave(); ui->InternalWidth->onSave(); ui->ExternalWidth->onSave(); + ui->ExternalDefiningWidth->onSave(); ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath( "User parameter:BaseApp/Preferences/Mod/Sketcher/View"); @@ -590,6 +593,10 @@ void SketcherSettingsAppearance::saveSettings() data = ui->ExternalPattern->itemData(ui->ExternalPattern->currentIndex()); pattern = data.toInt(); hGrp->SetInt("ExternalPattern", pattern); + + data = ui->ExternalDefiningPattern->itemData(ui->ExternalDefiningPattern->currentIndex()); + pattern = data.toInt(); + hGrp->SetInt("ExternalDefiningPattern", pattern); } void SketcherSettingsAppearance::loadSettings() @@ -622,6 +629,7 @@ void SketcherSettingsAppearance::loadSettings() ui->ConstructionWidth->onRestore(); ui->InternalWidth->onRestore(); ui->ExternalWidth->onRestore(); + ui->ExternalDefiningWidth->onRestore(); ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath( "User parameter:BaseApp/Preferences/Mod/Sketcher/View"); @@ -652,6 +660,13 @@ void SketcherSettingsAppearance::loadSettings() index = 0; } ui->ExternalPattern->setCurrentIndex(index); + + pattern = hGrp->GetInt("ExternalDefiningPattern", 0b1111111111111111); + index = ui->ExternalDefiningPattern->findData(QVariant(pattern)); + if (index < 0) { + index = 0; + } + ui->ExternalDefiningPattern->setCurrentIndex(index); } /** diff --git a/src/Mod/Sketcher/Gui/SketcherSettingsAppearance.ui b/src/Mod/Sketcher/Gui/SketcherSettingsAppearance.ui index b1bb992cdb..f279c9ee5c 100644 --- a/src/Mod/Sketcher/Gui/SketcherSettingsAppearance.ui +++ b/src/Mod/Sketcher/Gui/SketcherSettingsAppearance.ui @@ -487,7 +487,7 @@ - External geometry + External reference geometry @@ -575,9 +575,9 @@ - 255 - 114 - 243 + 204 + 51 + 153 @@ -587,6 +587,44 @@ View + + + + + Line pattern of external defining edges. + + + -1 + + + + + + + Width of external defining edges. + + + px + + + px + + + 1 + + + 99 + + + 2 + + + ExternalDefiningWidth + + + Mod/Sketcher/View + + From 400863889b2cd2852e56cabdab97282188e444b2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 4 Mar 2025 16:22:17 +0000 Subject: [PATCH 4/4] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../Sketcher/Gui/EditModeCoinManagerParameters.cpp | 6 +++--- src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h | 11 ++++++----- src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp | 3 ++- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp index 42d7923739..4cfc678c74 100644 --- a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp +++ b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.cpp @@ -40,7 +40,7 @@ int GeometryLayerParameters::getSubLayerIndex(const int geoId, bool isExternal = geoId <= Sketcher::GeoEnum::RefExt; if (isExternal) { auto egf = Sketcher::ExternalGeometryFacade::getFacade(geom->clone()); - if (egf->testFlag(Sketcher::ExternalGeometryExtension::Defining)) { + if (egf->testFlag(Sketcher::ExternalGeometryExtension::Defining)) { return static_cast(SubLayer::ExternalDefining); } } @@ -81,8 +81,8 @@ SbColor DrawingParameters::SelectColor(0.11f, 0.68f, 0.11f); // #1CA SbColor DrawingParameters::PreselectSelectedColor(0.36f, 0.48f, 0.11f); // #5D7B1C -> ( 93,123, 28) SbColor DrawingParameters::CurveExternalColor(0.8f, 0.2f, 0.6f); // #CC3399 -> (204, 51,153) SbColor - DrawingParameters::CurveExternalDefiningColor(0.8f, 0.2f, 0.6f); // #CC3399 -> (204, 51,153) -SbColor DrawingParameters::CurveDraftColor(0.0f, 0.0f, 0.86f); // #0000DC -> ( 0, 0,220) + DrawingParameters::CurveExternalDefiningColor(0.8f, 0.2f, 0.6f); // #CC3399 -> (204, 51,153) +SbColor DrawingParameters::CurveDraftColor(0.0f, 0.0f, 0.86f); // #0000DC -> ( 0, 0,220) SbColor DrawingParameters::FullyConstraintConstructionElementColor(0.56f, 0.66f, diff --git a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h index 3d33fa0326..a3f0849b86 100644 --- a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h +++ b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h @@ -140,17 +140,18 @@ struct DrawingParameters int constraintIconSize = 15; // Size of constraint icons int markerSize = 7; // Size used for markers - int CurveWidth = 2; // width of normal edges - int ConstructionWidth = 1; // width of construction edges - int InternalWidth = 1; // width of internal edges - int ExternalWidth = 1; // width of external edges + int CurveWidth = 2; // width of normal edges + int ConstructionWidth = 1; // width of construction edges + int InternalWidth = 1; // width of internal edges + int ExternalWidth = 1; // width of external edges int ExternalDefiningWidth = 1; // width of external defining edges unsigned int CurvePattern = 0b1111111111111111; // pattern of normal edges unsigned int ConstructionPattern = 0b1111110011111100; // pattern of construction edges unsigned int InternalPattern = 0b1111110011111100; // pattern of internal edges unsigned int ExternalPattern = 0b1111110011111100; // pattern of external edges - unsigned int ExternalDefiningPattern = 0b1111111111111111; // pattern of external defining edges + unsigned int ExternalDefiningPattern = + 0b1111111111111111; // pattern of external defining edges //@} DrawingParameters() diff --git a/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp b/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp index 592b3a418e..63ae303c5f 100644 --- a/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp +++ b/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp @@ -657,7 +657,8 @@ void EditModeGeometryCoinManager::createEditModeCurveInventorNodes() editModeScenegraphNodes.CurvesExternalDrawStyle->linePatternScaleFactor = 2; editModeScenegraphNodes.CurvesExternalDefiningDrawStyle = new SoDrawStyle; - editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->setName("CurvesExternalDefiningDrawStyle"); + editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->setName( + "CurvesExternalDefiningDrawStyle"); editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->lineWidth = drawingParameters.ExternalDefiningWidth * drawingParameters.pixelScalingFactor; editModeScenegraphNodes.CurvesExternalDefiningDrawStyle->linePattern =