diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index df2eefcb24..9cc8fb157d 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -223,6 +223,7 @@ public: Connection connectIcon; Connection connectTool; Connection connectStat; + Connection connectHl; DocumentObjectData(DocumentItem* docItem, ViewProviderDocumentObject* vpd) : docItem(docItem) @@ -236,6 +237,8 @@ public: std::bind(&DocumentObjectData::slotChangeToolTip, this, sp::_1)); connectStat = viewObject->signalChangeStatusTip.connect( std::bind(&DocumentObjectData::slotChangeStatusTip, this, sp::_1)); + connectHl = viewObject->signalChangeHighlight.connect( + std::bind(&DocumentObjectData::slotChangeHighlight, this, sp::_1, sp::_2)); //NOLINTEND removeChildrenFromRoot = viewObject->canRemoveChildrenFromRoot(); @@ -359,6 +362,11 @@ public: for (auto item : items) item->setStatusTip(0, tip); } + + void slotChangeHighlight(bool set, Gui::HighlightMode mode) { + for (auto item : items) + item->setHighlight(set, mode); + } }; // --------------------------------------------------------------------------- diff --git a/src/Gui/ViewProvider.h b/src/Gui/ViewProvider.h index 89529608d4..fce09375d2 100644 --- a/src/Gui/ViewProvider.h +++ b/src/Gui/ViewProvider.h @@ -36,6 +36,7 @@ #include #include +#include "TreeItemMode.h" class SbVec2s; class SbVec3f; @@ -359,6 +360,8 @@ public: boost::signals2::signal signalChangeToolTip; /// signal on status tip change boost::signals2::signal signalChangeStatusTip; + /// signal on highlight change + boost::signals2::signal signalChangeHighlight; //@} /** update the content of the ViewProvider diff --git a/src/Gui/ViewProviderSuppressibleExtension.cpp b/src/Gui/ViewProviderSuppressibleExtension.cpp index 9397bbce29..6c084775b8 100644 --- a/src/Gui/ViewProviderSuppressibleExtension.cpp +++ b/src/Gui/ViewProviderSuppressibleExtension.cpp @@ -62,7 +62,7 @@ void ViewProviderSuppressibleExtension::extensionUpdateData(const App::Property* //update the tree item bool suppressed = ext->Suppressed.getValue(); setSuppressedIcon(suppressed); - vp->getDocument()->signalHighlightObject(*vp, Gui::HighlightMode::StrikeOut, suppressed, owner, 0); + getExtendedViewProvider()->signalChangeHighlight(suppressed, Gui::HighlightMode::StrikeOut); } }