X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_WidgetSketchLabel.cpp;h=54a8250ffa48340e52e0725b6c34df23700cce13;hb=3b02241a66e6be241eebbe70df42349293c5f4ab;hp=83b82a90449fa7f1fb4736a659c6da9da1511ede;hpb=a0fa395fd2a0ddb16cb9aed4dab180f2681b4447;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_WidgetSketchLabel.cpp b/src/PartSet/PartSet_WidgetSketchLabel.cpp index 83b82a904..54a8250ff 100644 --- a/src/PartSet/PartSet_WidgetSketchLabel.cpp +++ b/src/PartSet/PartSet_WidgetSketchLabel.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 CEA/DEN, EDF R&D +// Copyright (C) 2014-2022 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -63,7 +63,6 @@ #include #include #include -#include #include #include @@ -81,6 +80,10 @@ #include #include +#ifdef WIN32 +#pragma warning(disable : 4456) // for nested foreach +#endif + #ifndef DBL_MAX #define DBL_MAX 1.7976931348623158e+308 #endif @@ -163,8 +166,17 @@ myIsSelection(false) myViewInverted = new QCheckBox(tr("Reversed"), aViewBox); aViewLayout->addWidget(myViewInverted, 0, 0); + // Sketch plane visibility myViewVisible = new QCheckBox(tr("Visible"), aViewBox); - myViewVisible->setChecked(true); + PartSet_Module* aModule = dynamic_cast(myWorkshop->module()); + PartSet_PreviewSketchPlane* aPreviewPlane = aModule->sketchMgr()->previewSketchPlane(); + if (aPreviewPlane->isPlaneCreated()) + // init with current state + myViewVisible->setChecked(aPreviewPlane->isDisplayed()); + else + // true by default (at start of sketch creation) + myViewVisible->setChecked(true); + aViewLayout->addWidget(myViewVisible, 0, 1, Qt::AlignRight); connect(myViewVisible, SIGNAL(toggled(bool)), this, SLOT(onShowViewPlane(bool))); @@ -364,9 +376,10 @@ void PartSet_WidgetSketchLabel::updateByPlaneSelected(const ModuleBase_ViewerPrs if (aModule) { CompositeFeaturePtr aSketch = std::dynamic_pointer_cast(myFeature); aModule->sketchMgr()->previewSketchPlane()->setSizeOfView(aSizeOfView, isSetSizeOfView); - // Call of createSketchPlane is managed by events Loop - //if (myViewVisible->isChecked()) - // aModule->sketchMgr()->previewSketchPlane()->createSketchPlane(aSketch, myWorkshop); + if (myViewVisible->isChecked()) + aModule->sketchMgr()->previewSketchPlane()->createSketchPlane(aSketch, myWorkshop); + else + aModule->sketchMgr()->previewSketchPlane()->clearPlanePreview(); } // 2. if the planes were displayed, change the view projection @@ -890,12 +903,16 @@ bool PartSet_WidgetSketchLabel::eventFilter(QObject* theObj, QEvent* theEvent) void PartSet_WidgetSketchLabel::onShowViewPlane(bool toShow) { PartSet_Module* aModule = dynamic_cast(myWorkshop->module()); + PartSet_PreviewSketchPlane* aPreviewPlane = aModule->sketchMgr()->previewSketchPlane(); if (toShow) { CompositeFeaturePtr aSketch = std::dynamic_pointer_cast(myFeature); - aModule->sketchMgr()->previewSketchPlane()->createSketchPlane(aSketch, myWorkshop); + if (aPreviewPlane->isPlaneCreated()) + aPreviewPlane->displaySketchPlane(myWorkshop); + else + aPreviewPlane->createSketchPlane(aSketch, myWorkshop); } else { - aModule->sketchMgr()->previewSketchPlane()->eraseSketchPlane(myWorkshop, false); + aPreviewPlane->eraseSketchPlane(myWorkshop, false); } myWorkshop->viewer()->update(); }