diff --git a/src/Gui/ViewProvider.cpp b/src/Gui/ViewProvider.cpp index 06c4bad5a4..d8895df849 100644 --- a/src/Gui/ViewProvider.cpp +++ b/src/Gui/ViewProvider.cpp @@ -312,7 +312,8 @@ QIcon ViewProvider::mergeOverlayIcons (const QIcon & orig) const QIcon overlayedIcon = orig; for (Gui::ViewProviderExtension* ext : vector) { - overlayedIcon = ext->extensionMergeOverlayIcons(overlayedIcon); + if (!ext->ignoreOverlayIcon()) + overlayedIcon = ext->extensionMergeOverlayIcons(overlayedIcon); } return overlayedIcon; diff --git a/src/Gui/ViewProviderExtension.h b/src/Gui/ViewProviderExtension.h index f57359ae51..b88221e4e6 100644 --- a/src/Gui/ViewProviderExtension.h +++ b/src/Gui/ViewProviderExtension.h @@ -94,6 +94,12 @@ public: //update data of extended opject virtual void extensionUpdateData(const App::Property*); + void setIgnoreOverlayIcon(bool on) { + m_ignoreOverlayIcon = on; + } + bool ignoreOverlayIcon() const { + return m_ignoreOverlayIcon; + } virtual QIcon extensionMergeOverlayIcons(const QIcon & orig) const {return orig;} virtual void extensionStartRestoring() {} @@ -103,6 +109,7 @@ public: virtual bool extensionGetDetailPath(const char *, SoFullPath *, SoDetail *&) const {return false;} private: + bool m_ignoreOverlayIcon = false; //Gui::ViewProviderDocumentObject* m_viewBase = nullptr; }; diff --git a/src/Mod/Part/Gui/ViewProviderPrimitive.cpp b/src/Mod/Part/Gui/ViewProviderPrimitive.cpp index 8da229f1b6..4057f190ee 100644 --- a/src/Mod/Part/Gui/ViewProviderPrimitive.cpp +++ b/src/Mod/Part/Gui/ViewProviderPrimitive.cpp @@ -52,6 +52,7 @@ PROPERTY_SOURCE(PartGui::ViewProviderPrimitive, PartGui::ViewProviderPart) ViewProviderPrimitive::ViewProviderPrimitive() { extension.initExtension(this); + extension.setIgnoreOverlayIcon(true); } ViewProviderPrimitive::~ViewProviderPrimitive()