From 83d039101c56f32e8e6451fd288d22518940dff6 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Sun, 3 Jan 2021 08:11:41 +0100 Subject: [PATCH] Sketcher: VP show overlay icon fully constrained status ======================================================= ViewProviderSketch relies on new property SketchObject::FullyConstraint to show status via overlay icon --- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 32 ++++++++++++++++++++- src/Mod/Sketcher/Gui/ViewProviderSketch.h | 3 ++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 5f56bb1cec..150f723645 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -289,7 +289,7 @@ const Part::Geometry* GeoById(const std::vector GeoList, int Id /* TRANSLATOR SketcherGui::ViewProviderSketch */ -PROPERTY_SOURCE(SketcherGui::ViewProviderSketch, PartGui::ViewProvider2DObjectGrid) +PROPERTY_SOURCE_WITH_EXTENSIONS(SketcherGui::ViewProviderSketch, PartGui::ViewProvider2DObjectGrid) ViewProviderSketch::ViewProviderSketch() @@ -7006,3 +7006,33 @@ void ViewProviderSketch::showRestoreInformationLayer() { visibleInformationChanged = true ; draw(false,false); } + +QIcon ViewProviderSketch::mergeColorfulOverlayIcons (const QIcon & orig) const +{ + QIcon mergedicon = orig; + + if(!getSketchObject()->FullyConstrained.getValue()) { + QPixmap px; + + static const char * const sketcher_notfullyconstrained_xpm[]={ + "9 9 3 1", + ". c None", + "# c #ff4500", + "a c #ffffff", + "##.....##", + "#a#...#a#", + "#aa#.#aa#", + ".#a#.#a#.", + ".#a#.#a#.", + ".#a#.#a#.", + "#aa#.#aa#", + "#a#...#a#", + "##.....##"}; + px = QPixmap( sketcher_notfullyconstrained_xpm ); + + mergedicon = Gui::BitmapFactoryInst::mergePixmap(mergedicon, px, Gui::BitmapFactoryInst::BottomRight); + + } + + return Gui::ViewProvider::mergeColorfulOverlayIcons (mergedicon); +} diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.h b/src/Mod/Sketcher/Gui/ViewProviderSketch.h index 284fa2d587..7a47ab8e3a 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.h +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.h @@ -254,6 +254,9 @@ public: void setIsShownVirtualSpace(bool isshownvirtualspace); bool getIsShownVirtualSpace(void) const; + /// Icons and Icon overlays + virtual QIcon mergeColorfulOverlayIcons (const QIcon & orig) const override; + friend class DrawSketchHandler; friend struct ::EditData;