From 58dd0de9bb702be6281815c5e7295e2743023e147f66f54c4fd4932de1fef9f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Fri, 15 Mar 2019 15:12:33 +0000 Subject: [PATCH] Accepting request 685411 from home:StefanBruens:branches:science - Add support for Boost::Signals2, Boost::Signals has been deprecated since Boost 1.54 and removed in 1.69: * 0001-Convert-deprecated-boost-signal-to-signals2.patch * 0002-move-from-deprecated-boost.signals-to-boost.signals2.patch * 0003-fix-blocking-of-SelectionObserver.patch - Add explicit double-conversion-devel BuildRequires OBS-URL: https://build.opensuse.org/request/show/685411 OBS-URL: https://build.opensuse.org/package/show/science/FreeCAD?expand=0&rev=70 --- ...-deprecated-boost-signal-to-signals2.patch | 133 + ...ated-boost.signals-to-boost.signals2.patch | 2155 +++++++++++++++++ 0003-fix-blocking-of-SelectionObserver.patch | 61 + FreeCAD.changes | 10 + FreeCAD.spec | 19 +- 5 files changed, 2377 insertions(+), 1 deletion(-) create mode 100644 0001-Convert-deprecated-boost-signal-to-signals2.patch create mode 100644 0002-move-from-deprecated-boost.signals-to-boost.signals2.patch create mode 100644 0003-fix-blocking-of-SelectionObserver.patch diff --git a/0001-Convert-deprecated-boost-signal-to-signals2.patch b/0001-Convert-deprecated-boost-signal-to-signals2.patch new file mode 100644 index 0000000..b5d2910 --- /dev/null +++ b/0001-Convert-deprecated-boost-signal-to-signals2.patch @@ -0,0 +1,133 @@ +From ca29d09d51f20d147c5377e66207a1c959698afd Mon Sep 17 00:00:00 2001 +From: wandererfan +Date: Thu, 10 May 2018 12:00:13 -0400 +Subject: [PATCH 1/3] Convert deprecated boost::signal to signals2 + +--- + src/Mod/TechDraw/App/DrawPage.h | 4 ++-- + src/Mod/TechDraw/App/DrawView.h | 4 ++-- + src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp | 3 ++- + src/Mod/TechDraw/Gui/ViewProviderDrawingView.h | 4 +++- + src/Mod/TechDraw/Gui/ViewProviderPage.cpp | 3 ++- + src/Mod/TechDraw/Gui/ViewProviderPage.h | 4 +++- + 6 files changed, 14 insertions(+), 8 deletions(-) + +diff --git a/src/Mod/TechDraw/App/DrawPage.h b/src/Mod/TechDraw/App/DrawPage.h +index 60df838b8..cfde590d0 100644 +--- a/src/Mod/TechDraw/App/DrawPage.h ++++ b/src/Mod/TechDraw/App/DrawPage.h +@@ -24,7 +24,7 @@ + #ifndef _DrawPage_h_ + #define _DrawPage_h_ + +-#include ++#include + + #include + #include +@@ -59,7 +59,7 @@ public: + int addView(App::DocumentObject *docObj); + int removeView(App::DocumentObject* docObj); + short mustExecute() const; +- boost::signal signalGuiPaint; ++ boost::signals2::signal signalGuiPaint; + + /// returns the type name of the ViewProvider + virtual const char* getViewProviderName(void) const { +diff --git a/src/Mod/TechDraw/App/DrawView.h b/src/Mod/TechDraw/App/DrawView.h +index dde8baa35..3f09a015f 100644 +--- a/src/Mod/TechDraw/App/DrawView.h ++++ b/src/Mod/TechDraw/App/DrawView.h +@@ -23,7 +23,7 @@ + #ifndef _DrawView_h_ + #define _DrawView_h_ + +-#include ++#include + + #include + +@@ -85,7 +85,7 @@ public: + virtual bool checkFit(DrawPage*) const; + virtual void setPosition(double x, double y); + bool keepUpdated(void); +- boost::signal signalGuiPaint; ++ boost::signals2::signal signalGuiPaint; + virtual double getScale(void) const; + void checkScale(void); + void requestPaint(void); +diff --git a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp +index 1175c1aff..32fe47afe 100644 +--- a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp ++++ b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp +@@ -25,7 +25,8 @@ + #include "PreCompiled.h" + + #ifndef _PreComp_ +-#include ++#include ++#include + #include + + #endif +diff --git a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h +index 679fc8413..31970b4a6 100644 +--- a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h ++++ b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h +@@ -25,6 +25,8 @@ + #ifndef DRAWINGGUI_VIEWPROVIDERVIEW_H + #define DRAWINGGUI_VIEWPROVIDERVIEW_H + ++#include ++ + #include + #include + +@@ -78,7 +80,7 @@ public: + virtual TechDraw::DrawView* getViewObject() const; + + void onGuiRepaint(const TechDraw::DrawView* dv); +- typedef boost::signals::scoped_connection Connection; ++ typedef boost::signals2::scoped_connection Connection; + Connection connectGuiRepaint; + + +diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp +index fd5903bc1..245e39a9b 100644 +--- a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp ++++ b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp +@@ -29,7 +29,8 @@ + # include + # include + #include +-#include ++#include ++#include + #include + + #endif +diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.h b/src/Mod/TechDraw/Gui/ViewProviderPage.h +index e12be67fb..73e41bdc7 100644 +--- a/src/Mod/TechDraw/Gui/ViewProviderPage.h ++++ b/src/Mod/TechDraw/Gui/ViewProviderPage.h +@@ -30,6 +30,8 @@ + #include + #include + ++#include ++ + namespace TechDraw{ + class DrawPage; + } +@@ -81,7 +83,7 @@ public: + + TechDraw::DrawPage* getDrawPage() const; + void onGuiRepaint(const TechDraw::DrawPage* dp); +- typedef boost::signals::scoped_connection Connection; ++ typedef boost::signals2::scoped_connection Connection; + Connection connectGuiRepaint; + + void unsetEdit(int ModNum); +-- +2.21.0 + diff --git a/0002-move-from-deprecated-boost.signals-to-boost.signals2.patch b/0002-move-from-deprecated-boost.signals-to-boost.signals2.patch new file mode 100644 index 0000000..fdb8f73 --- /dev/null +++ b/0002-move-from-deprecated-boost.signals-to-boost.signals2.patch @@ -0,0 +1,2155 @@ +From 54606c7d27836e2172d312597506309173f76d0d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Thu, 14 Mar 2019 04:20:08 +0100 +Subject: [PATCH 2/3] move from deprecated boost.signals to boost.signals2 + library + +--- + CMakeLists.txt | 3 +- + src/App/Application.cpp | 1 - + src/App/Application.h | 42 +++++++++--------- + src/App/Document.h | 44 +++++++++---------- + src/App/DocumentObject.cpp | 2 +- + src/App/DocumentObject.h | 8 ++-- + src/App/DocumentObserver.cpp | 1 - + src/App/DocumentObserver.h | 4 +- + src/App/DocumentObserverPython.h | 4 +- + src/App/MergeDocuments.h | 4 +- + src/App/PreCompiled.h | 2 +- + src/App/PropertyExpressionEngine.h | 4 +- + src/Base/Tools.h | 13 +++--- + src/Gui/Action.cpp | 2 +- + src/Gui/Application.cpp | 2 +- + src/Gui/Application.h | 28 ++++++------ + src/Gui/AutoSaver.h | 4 +- + src/Gui/DAGView/DAGModel.cpp | 1 - + src/Gui/DAGView/DAGModel.h | 4 +- + src/Gui/DlgDisplayPropertiesImp.h | 6 +-- + src/Gui/Document.cpp | 12 +++-- + src/Gui/Document.h | 32 +++++++------- + src/Gui/DocumentModel.cpp | 2 +- + src/Gui/DocumentObserver.cpp | 14 ------ + src/Gui/DocumentObserver.h | 23 +--------- + src/Gui/ExpressionBinding.h | 4 +- + src/Gui/GraphvizView.h | 4 +- + src/Gui/MDIView.cpp | 2 +- + src/Gui/MDIView.h | 2 +- + src/Gui/MainWindow.cpp | 1 - + src/Gui/ManualAlignment.cpp | 1 - + src/Gui/ManualAlignment.h | 4 +- + src/Gui/MergeDocuments.h | 4 +- + src/Gui/Placement.h | 4 +- + src/Gui/PreCompiled.h | 2 +- + src/Gui/ProjectView.cpp | 1 - + src/Gui/PropertyView.h | 14 +++--- + src/Gui/Selection.cpp | 7 ++- + src/Gui/Selection.h | 6 ++- + src/Gui/TaskView/TaskAppearance.h | 4 +- + src/Gui/TaskView/TaskSelectLinkProperty.h | 1 - + src/Gui/TaskView/TaskView.h | 4 +- + src/Gui/Tree.cpp | 1 - + src/Gui/Tree.h | 4 +- + src/Gui/ViewProvider.h | 8 ++-- + src/Gui/ViewProviderOriginGroup.h | 2 - + src/Gui/ViewProviderOriginGroupExtension.h | 4 +- + src/Gui/ViewProviderPythonFeature.cpp | 1 - + src/Mod/Drawing/Gui/TaskOrthoViews.cpp | 14 +++--- + src/Mod/Drawing/Gui/TaskOrthoViews.h | 8 ++-- + src/Mod/Fem/Gui/TaskPostBoxes.h | 13 +++--- + src/Mod/Fem/Gui/ViewProviderFemPostFunction.h | 37 ++++------------ + src/Mod/Inspection/App/InspectionFeature.cpp | 1 - + src/Mod/Mesh/Gui/DlgEvaluateMeshImp.cpp | 1 - + src/Mod/Mesh/Gui/MeshEditor.h | 4 +- + src/Mod/Part/App/PreCompiled.h | 10 ++--- + src/Mod/Part/Gui/DlgBooleanOperation.h | 4 +- + src/Mod/Part/Gui/DlgFilletEdges.cpp | 4 +- + src/Mod/Part/Gui/TaskAttacher.h | 2 +- + src/Mod/Part/Gui/TaskFaceColors.cpp | 4 +- + src/Mod/PartDesign/App/Body.h | 4 +- + .../PartDesign/Gui/TaskFeatureParameters.cpp | 1 - + src/Mod/PartDesign/Gui/TaskHoleParameters.h | 2 +- + .../Gui/TaskPrimitiveParameters.cpp | 1 - + .../PartDesign/Gui/TaskPrimitiveParameters.h | 2 - + .../PartDesign/Gui/TaskTransformedMessages.h | 4 +- + .../Gui/TaskTransformedParameters.cpp | 1 - + src/Mod/PartDesign/Gui/ViewProviderBody.h | 4 +- + .../PartDesign/Gui/ViewProviderTransformed.h | 2 +- + src/Mod/PartDesign/Gui/WorkflowManager.h | 8 ++-- + src/Mod/Sandbox/App/DocumentProtector.h | 17 ++++--- + src/Mod/Sketcher/App/PropertyConstraintList.h | 6 +-- + src/Mod/Sketcher/App/SketchObject.h | 6 +-- + src/Mod/Sketcher/Gui/TaskDlgEditSketch.h | 4 +- + src/Mod/Sketcher/Gui/TaskSketcherConstrains.h | 4 +- + src/Mod/Sketcher/Gui/TaskSketcherElements.h | 4 +- + src/Mod/Sketcher/Gui/TaskSketcherMessages.h | 4 +- + .../Sketcher/Gui/TaskSketcherSolverAdvanced.h | 1 - + src/Mod/Sketcher/Gui/ViewProviderSketch.h | 15 +++---- + src/Mod/Spreadsheet/App/Sheet.h | 12 ++--- + src/Mod/Spreadsheet/Gui/SheetModel.h | 4 +- + src/Mod/Spreadsheet/Gui/SheetTableView.h | 4 +- + src/Mod/Spreadsheet/Gui/SpreadsheetView.h | 6 +-- + src/Mod/TechDraw/Gui/MDIViewPage.cpp | 2 +- + src/Mod/TechDraw/Gui/MDIViewPage.h | 2 +- + 85 files changed, 247 insertions(+), 322 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3ecfe23a6..c552a4b4a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -594,7 +594,7 @@ endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + SET(_boost_TEST_VERSIONS ${Boost_ADDITIONAL_VERSIONS}) + + find_package(Boost ${BOOST_MIN_VERSION} +- COMPONENTS filesystem program_options regex signals system thread REQUIRED) ++ COMPONENTS filesystem program_options regex system thread REQUIRED) + + IF(NOT Boost_FOUND) + MESSAGE(FATAL_ERROR "========================================\n" +@@ -602,7 +602,6 @@ endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + " * filesystem\n" + " * program_options\n" + " * regex\n" +- " * signals\n" + " * system\n" + " * thread\n" + "========================================\n") +diff --git a/src/App/Application.cpp b/src/App/Application.cpp +index 8bc309bfe..c9f9ca13c 100644 +--- a/src/App/Application.cpp ++++ b/src/App/Application.cpp +@@ -120,7 +120,6 @@ + + #include + #include +-#include + #include + #include + #include +diff --git a/src/App/Application.h b/src/App/Application.h +index e3bbb8f12..2da9ea1a9 100644 +--- a/src/App/Application.h ++++ b/src/App/Application.h +@@ -25,7 +25,7 @@ + #ifndef APP_APPLICATION_H + #define APP_APPLICATION_H + +-#include ++#include + + #include + +@@ -99,27 +99,27 @@ public: + /** @name Signals of the Application */ + //@{ + /// signal on new Document +- boost::signal signalNewDocument; ++ boost::signals2::signal signalNewDocument; + /// signal on document getting deleted +- boost::signal signalDeleteDocument; ++ boost::signals2::signal signalDeleteDocument; + /// signal on already deleted Document +- boost::signal signalDeletedDocument; ++ boost::signals2::signal signalDeletedDocument; + /// signal on relabeling Document (user name) +- boost::signal signalRelabelDocument; ++ boost::signals2::signal signalRelabelDocument; + /// signal on renaming Document (internal name) +- boost::signal signalRenameDocument; ++ boost::signals2::signal signalRenameDocument; + /// signal on activating Document +- boost::signal signalActiveDocument; ++ boost::signals2::signal signalActiveDocument; + /// signal on saving Document +- boost::signal signalSaveDocument; ++ boost::signals2::signal signalSaveDocument; + /// signal on starting to restore Document +- boost::signal signalStartRestoreDocument; ++ boost::signals2::signal signalStartRestoreDocument; + /// signal on restoring Document +- boost::signal signalFinishRestoreDocument; ++ boost::signals2::signal signalFinishRestoreDocument; + /// signal on undo in document +- boost::signal signalUndoDocument; ++ boost::signals2::signal signalUndoDocument; + /// signal on redo in document +- boost::signal signalRedoDocument; ++ boost::signals2::signal signalRedoDocument; + //@} + + +@@ -129,16 +129,16 @@ public: + */ + //@{ + /// signal on new Object +- boost::signal signalNewObject; +- //boost::signal m_sig; ++ boost::signals2::signal signalNewObject; ++ //boost::signals2::signal m_sig; + /// signal on deleted Object +- boost::signal signalDeletedObject; ++ boost::signals2::signal signalDeletedObject; + /// signal on changed Object +- boost::signal signalChangedObject; ++ boost::signals2::signal signalChangedObject; + /// signal on relabeled Object +- boost::signal signalRelabelObject; ++ boost::signals2::signal signalRelabelObject; + /// signal on activated Object +- boost::signal signalActivatedObject; ++ boost::signals2::signal signalActivatedObject; + //@} + + /** @name Signals of property changes +@@ -147,11 +147,11 @@ public: + */ + //@{ + /// signal on adding a dynamic property +- boost::signal signalAppendDynamicProperty; ++ boost::signals2::signal signalAppendDynamicProperty; + /// signal on about removing a dynamic property +- boost::signal signalRemoveDynamicProperty; ++ boost::signals2::signal signalRemoveDynamicProperty; + /// signal on about changing the editor mode of a property +- boost::signal signalChangePropertyEditor; ++ boost::signals2::signal signalChangePropertyEditor; + //@} + + +diff --git a/src/App/Document.h b/src/App/Document.h +index 7f3235675..e5c9c1e9d 100644 +--- a/src/App/Document.h ++++ b/src/App/Document.h +@@ -37,7 +37,7 @@ + #include + #include + +-#include ++#include + + namespace Base { + class Writer; +@@ -113,40 +113,40 @@ public: + /** @name Signals of the document */ + //@{ + /// signal on new Object +- boost::signal signalNewObject; +- //boost::signal m_sig; ++ boost::signals2::signal signalNewObject; ++ //boost::signals2::signal m_sig; + /// signal on deleted Object +- boost::signal signalDeletedObject; ++ boost::signals2::signal signalDeletedObject; + /// signal on changed Object +- boost::signal signalChangedObject; ++ boost::signals2::signal signalChangedObject; + /// signal on relabeled Object +- boost::signal signalRelabelObject; ++ boost::signals2::signal signalRelabelObject; + /// signal on activated Object +- boost::signal signalActivatedObject; ++ boost::signals2::signal signalActivatedObject; + /// signal on created object +- boost::signal signalTransactionAppend; ++ boost::signals2::signal signalTransactionAppend; + /// signal on removed object +- boost::signal signalTransactionRemove; ++ boost::signals2::signal signalTransactionRemove; + /// signal on undo +- boost::signal signalUndo; ++ boost::signals2::signal signalUndo; + /// signal on redo +- boost::signal signalRedo; ++ boost::signals2::signal signalRedo; + /** signal on load/save document + * this signal is given when the document gets streamed. + * you can use this hook to write additional information in + * the file (like the Gui::Document it does). + */ +- boost::signal signalSaveDocument; +- boost::signal signalRestoreDocument; +- boost::signal&, +- Base::Writer &)> signalExportObjects; +- boost::signal&, +- Base::Writer &)> signalExportViewObjects; +- boost::signal&, +- Base::XMLReader&)> signalImportObjects; +- boost::signal&, Base::Reader&, +- const std::map&)> signalImportViewObjects; +- boost::signal signalRecomputed; ++ boost::signals2::signal signalSaveDocument; ++ boost::signals2::signal signalRestoreDocument; ++ boost::signals2::signal&, ++ Base::Writer &)> signalExportObjects; ++ boost::signals2::signal&, ++ Base::Writer &)> signalExportViewObjects; ++ boost::signals2::signal&, ++ Base::XMLReader&)> signalImportObjects; ++ boost::signals2::signal&, Base::Reader&, ++ const std::map&)> signalImportViewObjects; ++ boost::signals2::signal signalRecomputed; + //@} + + /** @name File handling of the document */ +diff --git a/src/App/DocumentObject.cpp b/src/App/DocumentObject.cpp +index d07ad1bb9..ea4e6658b 100644 +--- a/src/App/DocumentObject.cpp ++++ b/src/App/DocumentObject.cpp +@@ -38,7 +38,7 @@ + #include "DocumentObjectExtension.h" + #include "GeoFeatureGroupExtension.h" + #include +-#include ++#include + #include + + using namespace App; +diff --git a/src/App/DocumentObject.h b/src/App/DocumentObject.h +index 9b7265131..5eb69c44a 100644 +--- a/src/App/DocumentObject.h ++++ b/src/App/DocumentObject.h +@@ -33,7 +33,7 @@ + #include + + #include +-#include ++#include + + namespace App + { +@@ -282,9 +282,9 @@ protected: // attributes + App::Document* _pDoc; + + // Connections to track relabeling of document and document objects +- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection onRelabledDocumentConnection; +- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection onRelabledObjectConnection; +- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection onDeletedObjectConnection; ++ boost::signals2::scoped_connection onRelabledDocumentConnection; ++ boost::signals2::scoped_connection onRelabledObjectConnection; ++ boost::signals2::scoped_connection onDeletedObjectConnection; + + /// Old label; used for renaming expressions + std::string oldLabel; +diff --git a/src/App/DocumentObserver.cpp b/src/App/DocumentObserver.cpp +index 904292f0a..7f9c73d5d 100644 +--- a/src/App/DocumentObserver.cpp ++++ b/src/App/DocumentObserver.cpp +@@ -27,7 +27,6 @@ + # include + #endif + +-#include + #include + + #include "Application.h" +diff --git a/src/App/DocumentObserver.h b/src/App/DocumentObserver.h +index de5e37828..3bc6f24f8 100644 +--- a/src/App/DocumentObserver.h ++++ b/src/App/DocumentObserver.h +@@ -25,7 +25,7 @@ + #define APP_DOCUMENTOBSERVER_H + + #include +-#include ++#include + #include + + namespace App +@@ -157,7 +157,7 @@ protected: + + private: + App::Document* _document; +- typedef boost::signals::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectApplicationCreatedDocument; + Connection connectApplicationDeletedDocument; + Connection connectDocumentCreatedObject; +diff --git a/src/App/DocumentObserverPython.h b/src/App/DocumentObserverPython.h +index e83c220c2..fdfaa8687 100644 +--- a/src/App/DocumentObserverPython.h ++++ b/src/App/DocumentObserverPython.h +@@ -26,7 +26,7 @@ + + #include + +-#include ++#include + #include + + namespace App +@@ -74,7 +74,7 @@ private: + Py::Object inst; + static std::vector _instances; + +- typedef boost::signals::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectApplicationCreatedDocument; + Connection connectApplicationDeletedDocument; + Connection connectApplicationRelabelDocument; +diff --git a/src/App/MergeDocuments.h b/src/App/MergeDocuments.h +index cc9620eee..4e2249240 100644 +--- a/src/App/MergeDocuments.h ++++ b/src/App/MergeDocuments.h +@@ -24,7 +24,7 @@ + #ifndef APP_MERGEDOCUMENTS_H + #define APP_MERGEDOCUMENTS_H + +-#include ++#include + #include + + namespace zipios { +@@ -57,7 +57,7 @@ private: + App::Document* appdoc; + std::vector objects; + std::map nameMap; +- typedef boost::signals::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectExport; + Connection connectImport; + }; +diff --git a/src/App/PreCompiled.h b/src/App/PreCompiled.h +index 6cd3a881e..aeacc07b3 100644 +--- a/src/App/PreCompiled.h ++++ b/src/App/PreCompiled.h +@@ -71,7 +71,7 @@ + #include + + // Boost +-#include ++#include + #include + #include + +diff --git a/src/App/PropertyExpressionEngine.h b/src/App/PropertyExpressionEngine.h +index c07dbf175..4c7b0813f 100644 +--- a/src/App/PropertyExpressionEngine.h ++++ b/src/App/PropertyExpressionEngine.h +@@ -25,7 +25,7 @@ + + #include + #include +-#include ++#include + #include + #include + #include +@@ -125,7 +125,7 @@ public: + void slotObjectDeleted(const DocumentObject &obj); + + ///signal called when a expression was changed +- boost::signal expressionChanged; ++ boost::signals2::signal expressionChanged; + + void onDocumentRestored(); + +diff --git a/src/Base/Tools.h b/src/Base/Tools.h +index 158c7bb31..92d28b77f 100644 +--- a/src/Base/Tools.h ++++ b/src/Base/Tools.h +@@ -30,7 +30,7 @@ + #include + #include + #include +-#include ++#include + #include + + namespace Base +@@ -166,17 +166,14 @@ private: + // ---------------------------------------------------------------------------- + + class ConnectionBlocker { +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; +- bool b; +- Connection& c; ++ typedef boost::signals2::connection Connection; ++ typedef boost::signals2::shared_connection_block ConnectionBlock; ++ ConnectionBlock blocker; + + public: +- ConnectionBlocker(Connection& c) : c(c) { +- b = c.blocked(); +- c.block(true); ++ ConnectionBlocker(Connection& c) : blocker(c) { + } + ~ConnectionBlocker() { +- c.block(b); + } + }; + +diff --git a/src/Gui/Action.cpp b/src/Gui/Action.cpp +index 4b8e32674..4ba3c3f7a 100644 +--- a/src/Gui/Action.cpp ++++ b/src/Gui/Action.cpp +@@ -24,7 +24,7 @@ + #include "PreCompiled.h" + + #ifndef _PreComp_ +-# include ++# include + # include + # include + # include +diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp +index 1d968071a..5db68d065 100644 +--- a/src/Gui/Application.cpp ++++ b/src/Gui/Application.cpp +@@ -25,7 +25,7 @@ + + #ifndef _PreComp_ + # include "InventorAll.h" +-# include ++# include + # include + # include + # include +diff --git a/src/Gui/Application.h b/src/Gui/Application.h +index afb4c3c46..6fc446f8f 100644 +--- a/src/Gui/Application.h ++++ b/src/Gui/Application.h +@@ -88,33 +88,33 @@ public: + /** @name Signals of the Application */ + //@{ + /// signal on new Document +- boost::signal signalNewDocument; ++ boost::signals2::signal signalNewDocument; + /// signal on deleted Document +- boost::signal signalDeleteDocument; ++ boost::signals2::signal signalDeleteDocument; + /// signal on relabeling Document +- boost::signal signalRelabelDocument; ++ boost::signals2::signal signalRelabelDocument; + /// signal on renaming Document +- boost::signal signalRenameDocument; ++ boost::signals2::signal signalRenameDocument; + /// signal on activating Document +- boost::signal signalActiveDocument; ++ boost::signals2::signal signalActiveDocument; + /// signal on new Object +- boost::signal signalNewObject; ++ boost::signals2::signal signalNewObject; + /// signal on deleted Object +- boost::signal signalDeletedObject; ++ boost::signals2::signal signalDeletedObject; + /// signal on changed object property +- boost::signal signalChangedObject; ++ boost::signals2::signal signalChangedObject; + /// signal on renamed Object +- boost::signal signalRelabelObject; ++ boost::signals2::signal signalRelabelObject; + /// signal on activated Object +- boost::signal signalActivatedObject; ++ boost::signals2::signal signalActivatedObject; + /// signal on activated workbench +- boost::signal signalActivateWorkbench; ++ boost::signals2::signal signalActivateWorkbench; + /// signal on added workbench +- boost::signal signalAddWorkbench; ++ boost::signals2::signal signalAddWorkbench; + /// signal on removed workbench +- boost::signal signalRemoveWorkbench; ++ boost::signals2::signal signalRemoveWorkbench; + /// signal on activating view +- boost::signal signalActivateView; ++ boost::signals2::signal signalActivateView; + //@} + + /** @name methods for Document handling */ +diff --git a/src/Gui/AutoSaver.h b/src/Gui/AutoSaver.h +index 2b0ae0858..9e7d77d59 100644 +--- a/src/Gui/AutoSaver.h ++++ b/src/Gui/AutoSaver.h +@@ -29,7 +29,7 @@ + #include + #include + #include +-#include ++#include + + namespace App { + class Document; +@@ -53,7 +53,7 @@ public: + private: + void slotNewObject(const App::DocumentObject&); + void slotChangePropertyData(const App::Property&); +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection documentNew; + Connection documentMod; + }; +diff --git a/src/Gui/DAGView/DAGModel.cpp b/src/Gui/DAGView/DAGModel.cpp +index 73d3bf695..688460bea 100644 +--- a/src/Gui/DAGView/DAGModel.cpp ++++ b/src/Gui/DAGView/DAGModel.cpp +@@ -22,7 +22,6 @@ + + #include "PreCompiled.h" + #ifndef _PreComp_ +-#include + #include + #include + #include +diff --git a/src/Gui/DAGView/DAGModel.h b/src/Gui/DAGView/DAGModel.h +index f317500fe..6ae263b32 100644 +--- a/src/Gui/DAGView/DAGModel.h ++++ b/src/Gui/DAGView/DAGModel.h +@@ -26,7 +26,7 @@ + #include + #include + +-#include ++#include + + #include + #include +@@ -86,7 +86,7 @@ namespace Gui + private: + Model(){} + //documentObject slots. +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectNewObject; + Connection connectDelObject; + Connection connectChgObject; +diff --git a/src/Gui/DlgDisplayPropertiesImp.h b/src/Gui/DlgDisplayPropertiesImp.h +index 0bdda40b9..50e0b79ee 100644 +--- a/src/Gui/DlgDisplayPropertiesImp.h ++++ b/src/Gui/DlgDisplayPropertiesImp.h +@@ -25,7 +25,7 @@ + #define GUI_DIALOG_DLGDISPLAYPROPERTIES_IMP_H + + #include +-#include ++#include + + #include "ui_DlgDisplayProperties.h" + #include "Selection.h" +@@ -42,7 +42,7 @@ namespace Gui { + class Command; + + namespace Dialog { +-typedef boost::signals::connection DlgDisplayPropertiesImp_Connection; ++typedef boost::signals2::connection DlgDisplayPropertiesImp_Connection; + + /** + * The DlgDisplayPropertiesImp class implements a dialog containing all available document +@@ -79,7 +79,7 @@ protected: + + private: + void slotChangedObject(const Gui::ViewProvider&, const App::Property& Prop); +- void reject(); ++ void reject(); + void setDisplayModes(const std::vector&); + void setMaterial(const std::vector&); + void setColorPlot(const std::vector&); +diff --git a/src/Gui/Document.cpp b/src/Gui/Document.cpp +index 5d943c605..0db9ce0df 100644 +--- a/src/Gui/Document.cpp ++++ b/src/Gui/Document.cpp +@@ -31,7 +31,7 @@ + # include + # include + # include +-# include ++# include + # include + # include + # include +@@ -89,7 +89,7 @@ struct DocumentP + std::map _ViewProviderMap; + std::map _ViewProviderMapAnnotation; + +- typedef boost::signals::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectNewObject; + Connection connectDelObject; + Connection connectCngObject; +@@ -105,6 +105,8 @@ struct DocumentP + Connection connectRedoDocument; + Connection connectTransactionAppend; + Connection connectTransactionRemove; ++ typedef boost::signals2::shared_connection_block ConnectionBlock; ++ ConnectionBlock connectActObjectBlocker; + }; + + } // namespace Gui +@@ -138,6 +140,8 @@ Document::Document(App::Document* pcDocument,Application * app) + (boost::bind(&Gui::Document::slotRelabelObject, this, _1)); + d->connectActObject = pcDocument->signalActivatedObject.connect + (boost::bind(&Gui::Document::slotActivatedObject, this, _1)); ++ d->connectActObjectBlocker = boost::signals2::shared_connection_block ++ (d->connectActObject, false); + d->connectSaveDocument = pcDocument->signalSaveDocument.connect + (boost::bind(&Gui::Document::Save, this, _1)); + d->connectRestDocument = pcDocument->signalRestoreDocument.connect +@@ -846,14 +850,14 @@ void Document::slotStartRestoreDocument(const App::Document& doc) + if (d->_pcDocument != &doc) + return; + // disable this signal while loading a document +- d->connectActObject.block(); ++ d->connectActObjectBlocker.block(); + } + + void Document::slotFinishRestoreDocument(const App::Document& doc) + { + if (d->_pcDocument != &doc) + return; +- d->connectActObject.unblock(); ++ d->connectActObjectBlocker.unblock(); + App::DocumentObject* act = doc.getActiveObject(); + if (act) { + ViewProvider* viewProvider = getViewProvider(act); +diff --git a/src/Gui/Document.h b/src/Gui/Document.h +index d387a6c42..679190320 100644 +--- a/src/Gui/Document.h ++++ b/src/Gui/Document.h +@@ -92,36 +92,36 @@ public: + /** @name Signals of the document */ + //@{ + /// signal on new Object +- mutable boost::signal signalNewObject; ++ mutable boost::signals2::signal signalNewObject; + /// signal on deleted Object +- mutable boost::signal signalDeletedObject; ++ mutable boost::signals2::signal signalDeletedObject; + /** signal on changed Object, the 2nd argument is the changed property + of the referenced document object, not of the view provider */ +- mutable boost::signal signalChangedObject; + /// signal on renamed Object +- mutable boost::signal signalRelabelObject; ++ mutable boost::signals2::signal signalRelabelObject; + /// signal on activated Object +- mutable boost::signal signalActivatedObject; ++ mutable boost::signals2::signal signalActivatedObject; + /// signal on entering in edit mode +- mutable boost::signal signalInEdit; ++ mutable boost::signals2::signal signalInEdit; + /// signal on leaving edit mode +- mutable boost::signal signalResetEdit; ++ mutable boost::signals2::signal signalResetEdit; + /// signal on changed Object, the 2nd argument is the highlite mode to use +- mutable boost::signal signalHighlightObject; ++ mutable boost::signals2::signal signalHighlightObject; + /// signal on changed Object, the 2nd argument is the highlite mode to use +- mutable boost::signal signalExpandObject; ++ mutable boost::signals2::signal signalExpandObject; + /// signal on scrolling to an object +- mutable boost::signal signalScrollToObject; ++ mutable boost::signals2::signal signalScrollToObject; + /// signal on undo Document +- mutable boost::signal signalUndoDocument; ++ mutable boost::signals2::signal signalUndoDocument; + /// signal on redo Document +- mutable boost::signal signalRedoDocument; ++ mutable boost::signals2::signal signalRedoDocument; + /// signal on deleting Document +- mutable boost::signal signalDeleteDocument; ++ mutable boost::signals2::signal signalDeleteDocument; + //@} + + /** @name I/O of the document */ +diff --git a/src/Gui/DocumentModel.cpp b/src/Gui/DocumentModel.cpp +index 7b3420b14..4ec20c140 100644 +--- a/src/Gui/DocumentModel.cpp ++++ b/src/Gui/DocumentModel.cpp +@@ -26,7 +26,7 @@ + #ifndef _PreComp_ + # include + # include +-# include ++# include + # include + #endif + +diff --git a/src/Gui/DocumentObserver.cpp b/src/Gui/DocumentObserver.cpp +index 5852d5a15..d46c0b1a1 100644 +--- a/src/Gui/DocumentObserver.cpp ++++ b/src/Gui/DocumentObserver.cpp +@@ -27,7 +27,6 @@ + # include + #endif + +-#include + #include + + #include "Application.h" +@@ -89,19 +88,6 @@ void DocumentObserver::detachDocument() + this->connectDocumentDelete.disconnect(); + } + +-void DocumentObserver::enableNotifications(DocumentObserver::Notifications value) +-{ +- this->connectDocumentCreatedObject.block(!(value & Create)); +- this->connectDocumentDeletedObject.block(!(value & Delete)); +- this->connectDocumentChangedObject.block(!(value & Change)); +- this->connectDocumentRelabelObject.block(!(value & Relabel)); +- this->connectDocumentActivateObject.block(!(value & Activate)); +- this->connectDocumentEditObject.block(!(value & Edit)); +- this->connectDocumentResetObject.block(!(value & Reset)); +- this->connectDocumentUndo.block(!(value & Undo)); +- this->connectDocumentRedo.block(!(value & Redo)); +-} +- + void DocumentObserver::slotUndoDocument(const Document& /*Doc*/) + { + } +diff --git a/src/Gui/DocumentObserver.h b/src/Gui/DocumentObserver.h +index 083e78961..08a9399e2 100644 +--- a/src/Gui/DocumentObserver.h ++++ b/src/Gui/DocumentObserver.h +@@ -25,8 +25,7 @@ + #define GUI_DOCUMENTOBSERVER_H + + #include +-#include +-#include ++#include + + namespace App { class Property; } + namespace Gui +@@ -45,21 +44,6 @@ class ViewProviderDocumentObject; + class GuiExport DocumentObserver + { + public: +- enum Notification { +- None = 0x0000, +- Create = 0x0001, +- Delete = 0x0002, +- Change = 0x0004, +- Relabel = 0x0008, +- Activate = 0x0010, +- Edit = 0x0020, +- Reset = 0x0040, +- Undo = 0x0080, +- Redo = 0x0100, +- All = 0x01ff +- }; +- Q_DECLARE_FLAGS(Notifications, Notification) +- + /// Constructor + DocumentObserver(); + virtual ~DocumentObserver(); +@@ -72,9 +56,6 @@ public: + * is not longer observed then. + */ + void detachDocument(); +- /** Activates the connection depending on the given value. +- */ +- void enableNotifications(Notifications value); + + private: + /** Notifies when an object has been created. */ +@@ -100,7 +81,7 @@ private: + virtual void slotDeleteDocument(const Document& Doc); + + private: +- typedef boost::BOOST_SIGNALS_NAMESPACE::scoped_connection Connection; ++ typedef boost::signals2::scoped_connection Connection; + Connection connectDocumentCreatedObject; + Connection connectDocumentDeletedObject; + Connection connectDocumentChangedObject; +diff --git a/src/Gui/ExpressionBinding.h b/src/Gui/ExpressionBinding.h +index 8280dec18..765073751 100644 +--- a/src/Gui/ExpressionBinding.h ++++ b/src/Gui/ExpressionBinding.h +@@ -27,7 +27,7 @@ + #include + #include + #include +-#include ++#include + + namespace App { + class Expression; +@@ -75,7 +75,7 @@ protected: + int iconHeight; + + void expressionChange(const App::ObjectIdentifier& id); +- boost::signals::scoped_connection connection; ++ boost::signals2::scoped_connection connection; + bool m_autoApply; + }; + +diff --git a/src/Gui/GraphvizView.h b/src/Gui/GraphvizView.h +index 3452e5457..5a9dc204b 100644 +--- a/src/Gui/GraphvizView.h ++++ b/src/Gui/GraphvizView.h +@@ -26,7 +26,7 @@ + + #include "MDIView.h" + #include +-#include ++#include + + + class QGraphicsScene; +@@ -84,7 +84,7 @@ private: + GraphvizWorker* thread; + int nPending; + +- typedef boost::BOOST_SIGNALS_NAMESPACE::scoped_connection Connection; ++ typedef boost::signals2::scoped_connection Connection; + Connection recomputeConnection; + Connection undoConnection; + Connection redoConnection; +diff --git a/src/Gui/MDIView.cpp b/src/Gui/MDIView.cpp +index 1f6421429..6d8fbcc5f 100644 +--- a/src/Gui/MDIView.cpp ++++ b/src/Gui/MDIView.cpp +@@ -24,7 +24,7 @@ + #include "PreCompiled.h" + + #ifndef _PreComp_ +-# include ++# include + # include + # include + # include +diff --git a/src/Gui/MDIView.h b/src/Gui/MDIView.h +index 8704a0d4d..a10be328c 100644 +--- a/src/Gui/MDIView.h ++++ b/src/Gui/MDIView.h +@@ -150,7 +150,7 @@ private: + Qt::WindowStates wstate; + // list of active objects of this view + ActiveObjectList ActiveObjects; +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectDelObject; //remove active object upon delete. + }; + +diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp +index baa4f3675..3a92d5fb5 100644 +--- a/src/Gui/MainWindow.cpp ++++ b/src/Gui/MainWindow.cpp +@@ -51,7 +51,6 @@ + # include + #endif + +-#include + #include + + // FreeCAD Base header +diff --git a/src/Gui/ManualAlignment.cpp b/src/Gui/ManualAlignment.cpp +index 78eeb930d..d8736a424 100644 +--- a/src/Gui/ManualAlignment.cpp ++++ b/src/Gui/ManualAlignment.cpp +@@ -49,7 +49,6 @@ + # include + #endif + +-#include + #include + + #include +diff --git a/src/Gui/ManualAlignment.h b/src/Gui/ManualAlignment.h +index ebfdc5871..06a78fbd8 100644 +--- a/src/Gui/ManualAlignment.h ++++ b/src/Gui/ManualAlignment.h +@@ -30,7 +30,7 @@ + #include + #include + #include +-#include ++#include + + class SbVec3f; + class SoPickedPoint; +@@ -244,7 +244,7 @@ private: + + static ManualAlignment* _instance; + +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectApplicationDeletedDocument; + Connection connectDocumentDeletedObject; + +diff --git a/src/Gui/MergeDocuments.h b/src/Gui/MergeDocuments.h +index 42bc252e0..d4d1be0f3 100644 +--- a/src/Gui/MergeDocuments.h ++++ b/src/Gui/MergeDocuments.h +@@ -24,7 +24,7 @@ + #ifndef GUI_MERGEDOCUMENTS_H + #define GUI_MERGEDOCUMENTS_H + +-#include ++#include + #include + + namespace zipios { +@@ -57,7 +57,7 @@ private: + Gui::Document* document; + std::vector objects; + std::map nameMap; +- typedef boost::signals::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectExport; + Connection connectImport; + }; +diff --git a/src/Gui/Placement.h b/src/Gui/Placement.h +index f2926fddb..f24249125 100644 +--- a/src/Gui/Placement.h ++++ b/src/Gui/Placement.h +@@ -28,7 +28,7 @@ + #include + #include + +-#include ++#include + #include + + class QSignalMapper; +@@ -84,7 +84,7 @@ Q_SIGNALS: + + private: + typedef Gui::LocationInterfaceComp Ui_PlacementComp; +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + Ui_PlacementComp* ui; + QSignalMapper* signalMapper; + Connection connectAct; +diff --git a/src/Gui/PreCompiled.h b/src/Gui/PreCompiled.h +index 775a0c426..58627bae9 100644 +--- a/src/Gui/PreCompiled.h ++++ b/src/Gui/PreCompiled.h +@@ -72,7 +72,7 @@ + #include + + // Boost +-#include ++#include + #include + #include + #include +diff --git a/src/Gui/ProjectView.cpp b/src/Gui/ProjectView.cpp +index 327ac4bc6..bbef326fd 100644 +--- a/src/Gui/ProjectView.cpp ++++ b/src/Gui/ProjectView.cpp +@@ -24,7 +24,6 @@ + #include "PreCompiled.h" + + #ifndef _PreComp_ +-# include + # include + # include + # include +diff --git a/src/Gui/PropertyView.h b/src/Gui/PropertyView.h +index 85665134f..8839e6891 100644 +--- a/src/Gui/PropertyView.h ++++ b/src/Gui/PropertyView.h +@@ -28,7 +28,7 @@ + + #include "DockWindow.h" + #include "Selection.h" +-#include ++#include + + class QPixmap; + class QTabWidget; +@@ -65,15 +65,15 @@ public: + Gui::PropertyEditor::PropertyEditor* propertyEditorView; + Gui::PropertyEditor::PropertyEditor* propertyEditorData; + +-public Q_SLOTS: +- /// Stores a preference for the last tab selected +- void tabChanged(int index); +- ++public Q_SLOTS: ++ /// Stores a preference for the last tab selected ++ void tabChanged(int index); ++ + protected: + void changeEvent(QEvent *e); + + private: +- void onSelectionChanged(const SelectionChanges& msg); ++ void onSelectionChanged(const SelectionChanges& msg); + void slotChangePropertyData(const App::DocumentObject&, const App::Property&); + void slotChangePropertyView(const Gui::ViewProvider&, const App::Property&); + void slotAppendDynamicProperty(const App::Property&); +@@ -83,7 +83,7 @@ private: + private: + struct PropInfo; + struct PropFind; +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectPropData; + Connection connectPropView; + Connection connectPropAppend; +diff --git a/src/Gui/Selection.cpp b/src/Gui/Selection.cpp +index 317ad2c6c..80b7e3056 100644 +--- a/src/Gui/Selection.cpp ++++ b/src/Gui/Selection.cpp +@@ -26,7 +26,6 @@ + #ifndef _PreComp_ + # include + # include +-# include + # include + # include + # include +@@ -54,7 +53,7 @@ + using namespace Gui; + using namespace std; + +-SelectionObserver::SelectionObserver() ++SelectionObserver::SelectionObserver() : blocker(connectSelection, false) + { + attachSelection(); + } +@@ -68,9 +67,9 @@ bool SelectionObserver::blockConnection(bool block) + { + bool ok = connectSelection.blocked(); + if (block) +- connectSelection.block(); ++ blocker.block(); + else +- connectSelection.unblock(); ++ blocker.unblock(); + return ok; + } + +diff --git a/src/Gui/Selection.h b/src/Gui/Selection.h +index bb7939455..e1c195989 100644 +--- a/src/Gui/Selection.h ++++ b/src/Gui/Selection.h +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -143,8 +144,9 @@ private: + virtual void onSelectionChanged(const SelectionChanges& msg) = 0; + + private: +- typedef boost::signals::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectSelection; ++ boost::signals2::shared_connection_block blocker; + }; + + /** +@@ -290,7 +292,7 @@ public: + }; + + /// signal on new object +- boost::signal signalSelectionChanged; ++ boost::signals2::signal signalSelectionChanged; + + /** Returns a vector of selection objects + * If no document name is given the objects of the active are returned. +diff --git a/src/Gui/TaskView/TaskAppearance.h b/src/Gui/TaskView/TaskAppearance.h +index cdcbe1faf..1e3de8a89 100644 +--- a/src/Gui/TaskView/TaskAppearance.h ++++ b/src/Gui/TaskView/TaskAppearance.h +@@ -26,7 +26,7 @@ + + #include "TaskView.h" + #include +-#include ++#include + + + class Ui_TaskAppearance; +@@ -38,7 +38,7 @@ class Property; + namespace Gui { + class ViewProvider; + namespace TaskView { +-typedef boost::signals::connection TaskAppearance_Connection; ++typedef boost::signals2::connection TaskAppearance_Connection; + + class TaskAppearance : public TaskBox, public Gui::SelectionSingleton::ObserverType + { +diff --git a/src/Gui/TaskView/TaskSelectLinkProperty.h b/src/Gui/TaskView/TaskSelectLinkProperty.h +index 85dbf456c..7f2e1dcad 100644 +--- a/src/Gui/TaskView/TaskSelectLinkProperty.h ++++ b/src/Gui/TaskView/TaskSelectLinkProperty.h +@@ -26,7 +26,6 @@ + + #include "TaskView.h" + #include +-#include + #include + + +diff --git a/src/Gui/TaskView/TaskView.h b/src/Gui/TaskView/TaskView.h +index 621482ebf..5a368c8e3 100644 +--- a/src/Gui/TaskView/TaskView.h ++++ b/src/Gui/TaskView/TaskView.h +@@ -29,7 +29,7 @@ + #include + #include + #include +-#include ++#include + #include + + #if !defined (QSINT_ACTIONPANEL) +@@ -51,7 +51,7 @@ class CombiView; + } + namespace TaskView { + +-typedef boost::signals::connection Connection; ++typedef boost::signals2::connection Connection; + class TaskEditControl; + class TaskDialog; + +diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp +index 3f36bbf96..34376cd2f 100644 +--- a/src/Gui/Tree.cpp ++++ b/src/Gui/Tree.cpp +@@ -24,7 +24,6 @@ + #include "PreCompiled.h" + + #ifndef _PreComp_ +-# include + # include + # include + # include +diff --git a/src/Gui/Tree.h b/src/Gui/Tree.h +index 913fa49dd..19847b532 100644 +--- a/src/Gui/Tree.h ++++ b/src/Gui/Tree.h +@@ -184,7 +184,7 @@ private: + const Gui::Document* pDocument; + std::map ObjectMap; + +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectNewObject; + Connection connectDelObject; + Connection connectChgObject; +@@ -222,7 +222,7 @@ protected: + void slotChangeStatusTip(const QString&); + + private: +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + int previousStatus; + Gui::ViewProviderDocumentObject* viewObject; + Connection connectIcon; +diff --git a/src/Gui/ViewProvider.h b/src/Gui/ViewProvider.h +index 815516ecd..73334f9f3 100644 +--- a/src/Gui/ViewProvider.h ++++ b/src/Gui/ViewProvider.h +@@ -29,7 +29,7 @@ + #include + #include + #include +-#include ++#include + + #include + #include +@@ -199,11 +199,11 @@ public: + /** @name Signals of the view provider */ + //@{ + /// signal on icon change +- boost::signal signalChangeIcon; ++ boost::signals2::signal signalChangeIcon; + /// signal on tooltip change +- boost::signal signalChangeToolTip; ++ boost::signals2::signal signalChangeToolTip; + /// signal on status tip change +- boost::signal signalChangeStatusTip; ++ boost::signals2::signal signalChangeStatusTip; + //@} + + /** update the content of the ViewProvider +diff --git a/src/Gui/ViewProviderOriginGroup.h b/src/Gui/ViewProviderOriginGroup.h +index 06ff7112f..31db1d6d0 100644 +--- a/src/Gui/ViewProviderOriginGroup.h ++++ b/src/Gui/ViewProviderOriginGroup.h +@@ -23,8 +23,6 @@ + #ifndef VIEWPROVIDERORIGINGROUP_H_JIXBOPA7 + #define VIEWPROVIDERORIGINGROUP_H_JIXBOPA7 + +-#include +- + #include "ViewProviderGeoFeatureGroup.h" + #include "ViewProviderOriginGroupExtension.h" + +diff --git a/src/Gui/ViewProviderOriginGroupExtension.h b/src/Gui/ViewProviderOriginGroupExtension.h +index a326dca01..4804aa9d8 100644 +--- a/src/Gui/ViewProviderOriginGroupExtension.h ++++ b/src/Gui/ViewProviderOriginGroupExtension.h +@@ -56,8 +56,8 @@ private: + std::vector constructChildren ( + const std::vector &children ) const; + +- boost::signals::connection connectChangedObjectApp; +- boost::signals::connection connectChangedObjectGui; ++ boost::signals2::connection connectChangedObjectApp; ++ boost::signals2::connection connectChangedObjectGui; + }; + + typedef ViewProviderExtensionPythonT ViewProviderOriginGroupExtensionPython; +diff --git a/src/Gui/ViewProviderPythonFeature.cpp b/src/Gui/ViewProviderPythonFeature.cpp +index 2fe1c4fd1..81194b190 100644 +--- a/src/Gui/ViewProviderPythonFeature.cpp ++++ b/src/Gui/ViewProviderPythonFeature.cpp +@@ -30,7 +30,6 @@ + # include + # include + # include +-# include + # include + # include + # include +diff --git a/src/Mod/Drawing/Gui/TaskOrthoViews.cpp b/src/Mod/Drawing/Gui/TaskOrthoViews.cpp +index 0ef9d47e6..dc12cf0f6 100644 +--- a/src/Mod/Drawing/Gui/TaskOrthoViews.cpp ++++ b/src/Mod/Drawing/Gui/TaskOrthoViews.cpp +@@ -641,11 +641,12 @@ void OrthoViews::del_view(int rel_x, int rel_y) // remove a view fro + + if (num > 0) + { +- connectDocumentDeletedObject.block(); +- views[num]->deleteme(); +- delete views[num]; +- views.erase(views.begin() + num); +- connectDocumentDeletedObject.unblock(); ++ { ++ boost::signals2::shared_connection_block blocker(connectDocumentDeletedObject); ++ views[num]->deleteme(); ++ delete views[num]; ++ views.erase(views.begin() + num); ++ } + + min_r_x = max_r_x = 0; + min_r_y = max_r_y = 0; +@@ -667,14 +668,13 @@ void OrthoViews::del_view(int rel_x, int rel_y) // remove a view fro + + void OrthoViews::del_all() + { +- connectDocumentDeletedObject.block(); ++ boost::signals2::shared_connection_block blocker(connectDocumentDeletedObject); + for (int i = views.size() - 1; i >= 0; i--) // count downwards to delete from back + { + views[i]->deleteme(); + delete views[i]; + views.pop_back(); + } +- connectDocumentDeletedObject.unblock(); + } + + int OrthoViews::is_Ortho(int rel_x, int rel_y) // is the view at r_x, r_y an ortho or axo one? +diff --git a/src/Mod/Drawing/Gui/TaskOrthoViews.h b/src/Mod/Drawing/Gui/TaskOrthoViews.h +index a00b449b4..dfeae41f7 100644 +--- a/src/Mod/Drawing/Gui/TaskOrthoViews.h ++++ b/src/Mod/Drawing/Gui/TaskOrthoViews.h +@@ -30,9 +30,9 @@ + + #include + #include +-#include ++#include + +-#include ++#include + + + +@@ -148,8 +148,8 @@ private: + + bool hidden, smooth; + bool autodims; +- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection connectDocumentDeletedObject; +- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection connectApplicationDeletedDocument; ++ boost::signals2::scoped_connection connectDocumentDeletedObject; ++ boost::signals2::scoped_connection connectApplicationDeletedDocument; + }; + + +diff --git a/src/Mod/Fem/Gui/TaskPostBoxes.h b/src/Mod/Fem/Gui/TaskPostBoxes.h +index 3dc24a180..dca2526dc 100644 +--- a/src/Mod/Fem/Gui/TaskPostBoxes.h ++++ b/src/Mod/Fem/Gui/TaskPostBoxes.h +@@ -30,7 +30,6 @@ + #include + #include + #include "ViewProviderFemPostFunction.h" +-#include + + class QComboBox; + class Ui_TaskPostDisplay; +@@ -139,15 +138,15 @@ public: + ~TaskPostBox(); + + virtual void applyPythonCode() = 0; +- virtual bool isGuiTaskOnly() {return false;}; //return true if only gui properties are manipulated ++ virtual bool isGuiTaskOnly() {return false;} //return true if only gui properties are manipulated + + protected: +- App::DocumentObject* getObject() {return m_object;}; ++ App::DocumentObject* getObject() {return m_object;} + template +- T* getTypedObject() {return static_cast(m_object);}; +- Gui::ViewProviderDocumentObject* getView() {return m_view;}; ++ T* getTypedObject() {return static_cast(m_object);} ++ Gui::ViewProviderDocumentObject* getView() {return m_view;} + template +- T* getTypedView() {return static_cast(m_view);}; ++ T* getTypedView() {return static_cast(m_view);} + + bool autoApply(); + void recompute(); +@@ -203,7 +202,7 @@ public: + ~TaskPostDisplay(); + + virtual void applyPythonCode(); +- virtual bool isGuiTaskOnly() {return true;}; ++ virtual bool isGuiTaskOnly() {return true;} + + private Q_SLOTS: + void on_Representation_activated(int i); +diff --git a/src/Mod/Fem/Gui/ViewProviderFemPostFunction.h b/src/Mod/Fem/Gui/ViewProviderFemPostFunction.h +index 55fb8d0bd..3197fea46 100644 +--- a/src/Mod/Fem/Gui/ViewProviderFemPostFunction.h ++++ b/src/Mod/Fem/Gui/ViewProviderFemPostFunction.h +@@ -28,28 +28,7 @@ + #include + #include + #include +- +- +-#if defined(signals) && defined(QOBJECTDEFS_H) && \ +- !defined(QT_MOC_CPP) +-# undef signals +-# define signals signals +-#endif +- +-#include +-namespace boost +-{ +- namespace signalslib = signals; +-} +- +-#if defined(signals) && defined(QOBJECTDEFS_H) && \ +- !defined(QT_MOC_CPP) +-# undef signals +-// Restore the macro definition of "signals", as it was +-// defined by Qt's . +-# define signals protected +-#endif +- ++#include + + class SoScale; + class SoSurroundScale; +@@ -70,19 +49,19 @@ class FemGuiExport FunctionWidget : public QWidget { + + Q_OBJECT + public: +- FunctionWidget() {}; +- virtual ~FunctionWidget() {}; ++ FunctionWidget() {} ++ virtual ~FunctionWidget() {} + + virtual void applyPythonCode() = 0; + virtual void setViewProvider(ViewProviderFemPostFunction* view); + void onObjectsChanged(const App::DocumentObject& obj, const App::Property&); + + protected: +- ViewProviderFemPostFunction* getView() {return m_view;}; +- Fem::FemPostFunction* getObject(){return m_object;}; ++ ViewProviderFemPostFunction* getView() {return m_view;} ++ Fem::FemPostFunction* getObject(){return m_object;} + +- bool blockObjectUpdates() {return m_block;}; +- void setBlockObjectUpdates(bool val) {m_block = val;}; ++ bool blockObjectUpdates() {return m_block;} ++ void setBlockObjectUpdates(bool val) {m_block = val;} + + virtual void onChange(const App::Property& p) = 0; + +@@ -90,7 +69,7 @@ private: + bool m_block; + ViewProviderFemPostFunction* m_view; + Fem::FemPostFunction* m_object; +- boost::signalslib::scoped_connection m_connection; ++ boost::signals2::scoped_connection m_connection; + }; + + class FemGuiExport ViewProviderFemPostFunctionProvider : public Gui::ViewProviderDocumentObject +diff --git a/src/Mod/Inspection/App/InspectionFeature.cpp b/src/Mod/Inspection/App/InspectionFeature.cpp +index 18e789f1f..d53facd3c 100644 +--- a/src/Mod/Inspection/App/InspectionFeature.cpp ++++ b/src/Mod/Inspection/App/InspectionFeature.cpp +@@ -35,7 +35,6 @@ + #include + #include + +-#include + #include + + #include +diff --git a/src/Mod/Mesh/Gui/DlgEvaluateMeshImp.cpp b/src/Mod/Mesh/Gui/DlgEvaluateMeshImp.cpp +index 1ba8063f5..3e38ecdbd 100644 +--- a/src/Mod/Mesh/Gui/DlgEvaluateMeshImp.cpp ++++ b/src/Mod/Mesh/Gui/DlgEvaluateMeshImp.cpp +@@ -31,7 +31,6 @@ + #include "ui_DlgEvaluateMesh.h" + #include "DlgEvaluateSettings.h" + +-#include + #include + + #include +diff --git a/src/Mod/Mesh/Gui/MeshEditor.h b/src/Mod/Mesh/Gui/MeshEditor.h +index 43be6e979..9d5b248ff 100644 +--- a/src/Mod/Mesh/Gui/MeshEditor.h ++++ b/src/Mod/Mesh/Gui/MeshEditor.h +@@ -25,7 +25,7 @@ + + #include + #include +-#include ++#include + + class SoCoordinate3; + class SoFaceSet; +@@ -139,7 +139,7 @@ private Q_SLOTS: + + private: + typedef std::vector TBoundary; +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + + static void fileHoleCallback(void * ud, SoEventCallback * n); + void createPolygons(); +diff --git a/src/Mod/Part/App/PreCompiled.h b/src/Mod/Part/App/PreCompiled.h +index ad0c3508f..9d21862fa 100644 +--- a/src/Mod/Part/App/PreCompiled.h ++++ b/src/Mod/Part/App/PreCompiled.h +@@ -63,7 +63,7 @@ + #include + + // Boost +-#include ++#include + #include + + #include +@@ -73,10 +73,10 @@ + #include + //namespace po = boost::program_options; + +-#include +-#include +-#include +- ++#include ++#include ++#include ++ + #include "OpenCascadeAll.h" + + #elif defined(FC_OS_WIN32) +diff --git a/src/Mod/Part/Gui/DlgBooleanOperation.h b/src/Mod/Part/Gui/DlgBooleanOperation.h +index dedc9015a..03e8d1cbf 100644 +--- a/src/Mod/Part/Gui/DlgBooleanOperation.h ++++ b/src/Mod/Part/Gui/DlgBooleanOperation.h +@@ -25,7 +25,7 @@ + + #include + #include +-#include ++#include + + class QTreeWidgetItem; + +@@ -35,7 +35,7 @@ class Property; + } + namespace PartGui { + +-typedef boost::signals::connection Connection; ++typedef boost::signals2::connection Connection; + class Ui_DlgBooleanOperation; + class DlgBooleanOperation : public QWidget + { +diff --git a/src/Mod/Part/Gui/DlgFilletEdges.cpp b/src/Mod/Part/Gui/DlgFilletEdges.cpp +index 5513470ae..a3c4a2444 100644 +--- a/src/Mod/Part/Gui/DlgFilletEdges.cpp ++++ b/src/Mod/Part/Gui/DlgFilletEdges.cpp +@@ -43,7 +43,7 @@ + # include + # include + # include +-# include ++# include + # include + # include + # include +@@ -206,7 +206,7 @@ namespace PartGui { + std::vector edge_ids; + TopTools_IndexedMapOfShape all_edges; + TopTools_IndexedMapOfShape all_faces; +- typedef boost::signals::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectApplicationDeletedObject; + Connection connectApplicationDeletedDocument; + +diff --git a/src/Mod/Part/Gui/TaskAttacher.h b/src/Mod/Part/Gui/TaskAttacher.h +index 7cac9e647..703eb1a45 100644 +--- a/src/Mod/Part/Gui/TaskAttacher.h ++++ b/src/Mod/Part/Gui/TaskAttacher.h +@@ -131,7 +131,7 @@ private: + Attacher::SuggestResult lastSuggestResult; + bool completed; + +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectDelObject; + }; + +diff --git a/src/Mod/Part/Gui/TaskFaceColors.cpp b/src/Mod/Part/Gui/TaskFaceColors.cpp +index a09a33be0..833b7e267 100644 +--- a/src/Mod/Part/Gui/TaskFaceColors.cpp ++++ b/src/Mod/Part/Gui/TaskFaceColors.cpp +@@ -43,7 +43,7 @@ + # include + #endif + +-#include ++#include + #include + + #include "ui_TaskFaceColors.h" +@@ -92,7 +92,7 @@ namespace PartGui { + class FaceColors::Private + { + public: +- typedef boost::signals::connection Connection; ++ typedef boost::signals2::connection Connection; + Ui_TaskFaceColors* ui; + Gui::View3DInventorViewer* view; + ViewProviderPartExt* vp; +diff --git a/src/Mod/PartDesign/App/Body.h b/src/Mod/PartDesign/App/Body.h +index b91148b45..6d5e4032c 100644 +--- a/src/Mod/PartDesign/App/Body.h ++++ b/src/Mod/PartDesign/App/Body.h +@@ -27,7 +27,7 @@ + #include + #include + +-#include ++#include + + namespace App { + class Origin; +@@ -145,7 +145,7 @@ protected: + virtual void unsetupObject () override; + + private: +- boost::signals::scoped_connection connection; ++ boost::signals2::scoped_connection connection; + }; + + } //namespace PartDesign +diff --git a/src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp b/src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp +index 5ce247fa5..8be9d8307 100644 +--- a/src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp ++++ b/src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp +@@ -49,7 +49,6 @@ TaskFeatureParameters::TaskFeatureParameters(PartDesignGui::ViewProvider *vp, QW + { + Gui::Document* doc = vp->getDocument(); + this->attachDocument(doc); +- this->enableNotifications(DocumentObserver::Delete); + } + + void TaskFeatureParameters::slotDeletedObject(const Gui::ViewProviderDocumentObject& Obj) +diff --git a/src/Mod/PartDesign/Gui/TaskHoleParameters.h b/src/Mod/PartDesign/Gui/TaskHoleParameters.h +index a0b988422..7a00c9fd6 100644 +--- a/src/Mod/PartDesign/Gui/TaskHoleParameters.h ++++ b/src/Mod/PartDesign/Gui/TaskHoleParameters.h +@@ -121,7 +121,7 @@ private: + + private: + +- typedef boost::BOOST_SIGNALS_NAMESPACE::scoped_connection Connection; ++ typedef boost::signals2::scoped_connection Connection; + Connection connectPropChanged; + + std::unique_ptr observer; +diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp +index 1017c48ac..7f03d43fe 100644 +--- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp ++++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp +@@ -183,7 +183,6 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent) + + Gui::Document* doc = vp->getDocument(); + this->attachDocument(doc); +- this->enableNotifications(DocumentObserver::Delete); + + //show the parts coordinate system axis for selection + PartDesign::Body * body = PartDesign::Body::findBodyOf(vp->getObject()); +diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h +index 073a4d445..1dcb2cf90 100644 +--- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h ++++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h +@@ -48,8 +48,6 @@ class ViewProvider; + + namespace PartDesignGui { + +-namespace s = boost::signals; +- + class TaskBoxPrimitives : public Gui::TaskView::TaskBox, + public Gui::DocumentObserver + { +diff --git a/src/Mod/PartDesign/Gui/TaskTransformedMessages.h b/src/Mod/PartDesign/Gui/TaskTransformedMessages.h +index f0075c630..e95aa9f73 100644 +--- a/src/Mod/PartDesign/Gui/TaskTransformedMessages.h ++++ b/src/Mod/PartDesign/Gui/TaskTransformedMessages.h +@@ -25,10 +25,10 @@ + #define GUI_TASKVIEW_TaskTransformedMessages_H + + #include +-#include ++#include + + class Ui_TaskTransformedMessages; +-typedef boost::signals::connection Connection; ++typedef boost::signals2::connection Connection; + + namespace App { + class Property; +diff --git a/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp b/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp +index bf4750260..16b408f8f 100644 +--- a/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp ++++ b/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp +@@ -76,7 +76,6 @@ TaskTransformedParameters::TaskTransformedParameters(ViewProviderTransformed *Tr + if (TransformedView) { + Gui::Document* doc = TransformedView->getDocument(); + this->attachDocument(doc); +- this->enableNotifications(DocumentObserver::Delete); + } + } + +diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.h b/src/Mod/PartDesign/Gui/ViewProviderBody.h +index 41e53c0ef..dffab56d4 100644 +--- a/src/Mod/PartDesign/Gui/ViewProviderBody.h ++++ b/src/Mod/PartDesign/Gui/ViewProviderBody.h +@@ -96,8 +96,8 @@ protected: + private: + static const char* BodyModeEnum[]; + +- boost::signals::connection connectChangedObjectApp; +- boost::signals::connection connectChangedObjectGui; ++ boost::signals2::connection connectChangedObjectApp; ++ boost::signals2::connection connectChangedObjectGui; + }; + + +diff --git a/src/Mod/PartDesign/Gui/ViewProviderTransformed.h b/src/Mod/PartDesign/Gui/ViewProviderTransformed.h +index 3ca5242c1..db8ee4316 100644 +--- a/src/Mod/PartDesign/Gui/ViewProviderTransformed.h ++++ b/src/Mod/PartDesign/Gui/ViewProviderTransformed.h +@@ -47,7 +47,7 @@ public: + virtual bool onDelete(const std::vector &); + + /// signals if the transformation contains errors +- boost::signal signalDiagnosis; ++ boost::signals2::signal signalDiagnosis; + + // The feature name of the subclass + std::string featureName; +diff --git a/src/Mod/PartDesign/Gui/WorkflowManager.h b/src/Mod/PartDesign/Gui/WorkflowManager.h +index b55088815..91e7e8a31 100644 +--- a/src/Mod/PartDesign/Gui/WorkflowManager.h ++++ b/src/Mod/PartDesign/Gui/WorkflowManager.h +@@ -23,7 +23,7 @@ + #ifndef WORKFLOWMANAGER_H_PB7A5GCM + #define WORKFLOWMANAGER_H_PB7A5GCM + +-#include ++#include + #include + + namespace App { +@@ -98,9 +98,9 @@ private: + private: + std::map dwMap; + +- boost::signals::connection connectNewDocument; +- boost::signals::connection connectFinishRestoreDocument; +- boost::signals::connection connectDeleteDocument; ++ boost::signals2::connection connectNewDocument; ++ boost::signals2::connection connectFinishRestoreDocument; ++ boost::signals2::connection connectDeleteDocument; + + static WorkflowManager* _instance; + }; +diff --git a/src/Mod/Sandbox/App/DocumentProtector.h b/src/Mod/Sandbox/App/DocumentProtector.h +index 3c051a72d..603b92932 100644 +--- a/src/Mod/Sandbox/App/DocumentProtector.h ++++ b/src/Mod/Sandbox/App/DocumentProtector.h +@@ -25,7 +25,6 @@ + #define SANDBOX_DOCUMENTPROTECTOR_H + + #include +-#include + #include + #include + +@@ -49,9 +48,9 @@ public: + void recompute(); + + private: +- /** Checks if the given document is about to be closed */ +- void slotDeletedDocument(const App::Document& Doc); +- void validate(); ++ /** Checks if the given document is about to be closed */ ++ void slotDeletedDocument(const App::Document& Doc); ++ void validate(); + }; + + class AbstractCallable +@@ -80,8 +79,8 @@ public: + + virtual void operator()() const + { +- T* v = static_cast(obj); +- (v->*method)(); ++ T* v = static_cast(obj); ++ (v->*method)(); + } + + private: +@@ -101,8 +100,8 @@ public: + + virtual void operator()() const + { +- T* v = static_cast(obj); +- (v->*method)(arg); ++ T* v = static_cast(obj); ++ (v->*method)(arg); + } + + private: +@@ -122,7 +121,7 @@ public: + void purgeTouched(); + + private: +- void validate(); ++ void validate(); + + private: + App::DocumentObject* obj; +diff --git a/src/Mod/Sketcher/App/PropertyConstraintList.h b/src/Mod/Sketcher/App/PropertyConstraintList.h +index e8f580208..b35e469ab 100644 +--- a/src/Mod/Sketcher/App/PropertyConstraintList.h ++++ b/src/Mod/Sketcher/App/PropertyConstraintList.h +@@ -32,7 +32,7 @@ + #include + #include + #include "Constraint.h" +-#include ++#include + #include + + namespace Base { +@@ -129,8 +129,8 @@ public: + + typedef std::pair ConstraintInfo ; + +- boost::signal &)> signalConstraintsRenamed; +- boost::signal &)> signalConstraintsRemoved; ++ boost::signals2::signal &)> signalConstraintsRenamed; ++ boost::signals2::signal &)> signalConstraintsRemoved; + + static std::string getConstraintName(const std::string &name, int i); + +diff --git a/src/Mod/Sketcher/App/SketchObject.h b/src/Mod/Sketcher/App/SketchObject.h +index f9a51aa76..eac8dcfec 100644 +--- a/src/Mod/Sketcher/App/SketchObject.h ++++ b/src/Mod/Sketcher/App/SketchObject.h +@@ -23,7 +23,7 @@ + #ifndef SKETCHER_SKETCHOBJECT_H + #define SKETCHER_SKETCHOBJECT_H + +-#include ++#include + #include + #include + #include +@@ -397,8 +397,8 @@ private: + std::vector lastConflicting; + std::vector lastRedundant; + +- boost::signals::scoped_connection constraintsRenamedConn; +- boost::signals::scoped_connection constraintsRemovedConn; ++ boost::signals2::scoped_connection constraintsRenamedConn; ++ boost::signals2::scoped_connection constraintsRemovedConn; + + bool AutoLockTangencyAndPerpty(Constraint* cstr, bool bForce = false, bool bLock = true); + }; +diff --git a/src/Mod/Sketcher/Gui/TaskDlgEditSketch.h b/src/Mod/Sketcher/Gui/TaskDlgEditSketch.h +index 8a9de4f7b..9417ec383 100644 +--- a/src/Mod/Sketcher/Gui/TaskDlgEditSketch.h ++++ b/src/Mod/Sketcher/Gui/TaskDlgEditSketch.h +@@ -32,9 +32,9 @@ + #include "TaskSketcherGeneral.h" + #include "TaskSketcherMessages.h" + #include "TaskSketcherSolverAdvanced.h" +-#include ++#include + +-typedef boost::signals::connection Connection; ++typedef boost::signals2::connection Connection; + + namespace SketcherGui { + +diff --git a/src/Mod/Sketcher/Gui/TaskSketcherConstrains.h b/src/Mod/Sketcher/Gui/TaskSketcherConstrains.h +index aa079c9ac..ca6800227 100644 +--- a/src/Mod/Sketcher/Gui/TaskSketcherConstrains.h ++++ b/src/Mod/Sketcher/Gui/TaskSketcherConstrains.h +@@ -26,7 +26,7 @@ + + #include + #include +-#include ++#include + #include + + namespace App { +@@ -91,7 +91,7 @@ public Q_SLOTS: + protected: + void changeEvent(QEvent *e); + ViewProviderSketch *sketchView; +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectionConstraintsChanged; + + private: +diff --git a/src/Mod/Sketcher/Gui/TaskSketcherElements.h b/src/Mod/Sketcher/Gui/TaskSketcherElements.h +index 0bd94f741..526654c1b 100644 +--- a/src/Mod/Sketcher/Gui/TaskSketcherElements.h ++++ b/src/Mod/Sketcher/Gui/TaskSketcherElements.h +@@ -26,7 +26,7 @@ + + #include + #include +-#include ++#include + #include + + namespace App { +@@ -115,7 +115,7 @@ protected: + void changeEvent(QEvent *e); + void leaveEvent ( QEvent * event ); + ViewProviderSketch *sketchView; +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectionElementsChanged; + + private: +diff --git a/src/Mod/Sketcher/Gui/TaskSketcherMessages.h b/src/Mod/Sketcher/Gui/TaskSketcherMessages.h +index 86873c46a..8089e3e51 100644 +--- a/src/Mod/Sketcher/Gui/TaskSketcherMessages.h ++++ b/src/Mod/Sketcher/Gui/TaskSketcherMessages.h +@@ -26,10 +26,10 @@ + + #include + #include +-#include ++#include + + class Ui_TaskSketcherMessages; +-typedef boost::signals::connection Connection; ++typedef boost::signals2::connection Connection; + + namespace App { + class Property; +diff --git a/src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.h b/src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.h +index 92b1423bc..69ca70d30 100644 +--- a/src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.h ++++ b/src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.h +@@ -26,7 +26,6 @@ + + #include + #include +-#include + + class Ui_TaskSketcherSolverAdvanced; + +diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.h b/src/Mod/Sketcher/Gui/ViewProviderSketch.h +index acba0c210..2ffbc8964 100644 +--- a/src/Mod/Sketcher/Gui/ViewProviderSketch.h ++++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.h +@@ -33,11 +33,10 @@ + #include + #include + #include +-#include ++#include + #include + #include + +-#include + + class TopoDS_Shape; + class TopoDS_Face; +@@ -234,13 +233,13 @@ public: + friend struct ::EditData; + + /// signals if the constraints list has changed +- boost::signal signalConstraintsChanged; ++ boost::signals2::signal signalConstraintsChanged; + /// signals if the sketch has been set up +- boost::signal signalSetUp; ++ boost::signals2::signal signalSetUp; + /// signals if the sketch has been solved +- boost::signal signalSolved; ++ boost::signals2::signal signalSolved; + /// signals if the elements list has changed +- boost::signal signalElementsChanged; ++ boost::signals2::signal signalElementsChanged; + + protected: + virtual bool setEdit(int ModNum); +@@ -269,8 +268,8 @@ protected: + void slotRedoDocument(const Gui::Document&); + + protected: +- boost::signals::connection connectUndoDocument; +- boost::signals::connection connectRedoDocument; ++ boost::signals2::connection connectUndoDocument; ++ boost::signals2::connection connectRedoDocument; + + + /** @name Protected helpers for drawing constraint icons*/ +diff --git a/src/Mod/Spreadsheet/App/Sheet.h b/src/Mod/Spreadsheet/App/Sheet.h +index 59becc770..1f2e88ea4 100644 +--- a/src/Mod/Spreadsheet/App/Sheet.h ++++ b/src/Mod/Spreadsheet/App/Sheet.h +@@ -170,13 +170,13 @@ public: + + // Signals + +- boost::signal cellUpdated; ++ boost::signals2::signal cellUpdated; + +- boost::signal cellSpanChanged; ++ boost::signals2::signal cellSpanChanged; + +- boost::signal columnWidthChanged; ++ boost::signals2::signal columnWidthChanged; + +- boost::signal rowHeightChanged; ++ boost::signals2::signal rowHeightChanged; + + /** @name Access properties */ + //@{ +@@ -296,8 +296,8 @@ protected: + typedef std::map ObserverMap; + ObserverMap observers; + +- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection onRelabledDocumentConnection; +- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection onRenamedDocumentConnection; ++ boost::signals2::scoped_connection onRelabledDocumentConnection; ++ boost::signals2::scoped_connection onRenamedDocumentConnection; + + friend class SheetObserver; + +diff --git a/src/Mod/Spreadsheet/Gui/SheetModel.h b/src/Mod/Spreadsheet/Gui/SheetModel.h +index 44a599359..6d54a0778 100644 +--- a/src/Mod/Spreadsheet/Gui/SheetModel.h ++++ b/src/Mod/Spreadsheet/Gui/SheetModel.h +@@ -24,7 +24,7 @@ + #define SHEETMODEL_H + + #include +-#include ++#include + #include + #include + +@@ -52,7 +52,7 @@ public: + private: + void cellUpdated(App::CellAddress address); + +- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection cellUpdatedConnection; ++ boost::signals2::scoped_connection cellUpdatedConnection; + Spreadsheet::Sheet * sheet; + QColor aliasBgColor; + QColor textFgColor; +diff --git a/src/Mod/Spreadsheet/Gui/SheetTableView.h b/src/Mod/Spreadsheet/Gui/SheetTableView.h +index 871c463c5..e5eca9602 100644 +--- a/src/Mod/Spreadsheet/Gui/SheetTableView.h ++++ b/src/Mod/Spreadsheet/Gui/SheetTableView.h +@@ -26,7 +26,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + +@@ -74,7 +74,7 @@ protected: + QModelIndex currentEditIndex; + Spreadsheet::Sheet * sheet; + +- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection cellSpanChangedConnection; ++ boost::signals2::scoped_connection cellSpanChangedConnection; + }; + + } +diff --git a/src/Mod/Spreadsheet/Gui/SpreadsheetView.h b/src/Mod/Spreadsheet/Gui/SpreadsheetView.h +index cadb4350b..011c64211 100644 +--- a/src/Mod/Spreadsheet/Gui/SpreadsheetView.h ++++ b/src/Mod/Spreadsheet/Gui/SpreadsheetView.h +@@ -98,9 +98,9 @@ protected: + Spreadsheet::Sheet * sheet; + SpreadsheetDelegate * delegate; + SheetModel * model; +- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection columnWidthChangedConnection; +- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection rowHeightChangedConnection; +- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection positionChangedConnection; ++ boost::signals2::scoped_connection columnWidthChangedConnection; ++ boost::signals2::scoped_connection rowHeightChangedConnection; ++ boost::signals2::scoped_connection positionChangedConnection; + + QMap newColumnSizes; + QMap newRowSizes; +diff --git a/src/Mod/TechDraw/Gui/MDIViewPage.cpp b/src/Mod/TechDraw/Gui/MDIViewPage.cpp +index bb25407f3..ee9092e6a 100644 +--- a/src/Mod/TechDraw/Gui/MDIViewPage.cpp ++++ b/src/Mod/TechDraw/Gui/MDIViewPage.cpp +@@ -38,7 +38,7 @@ + #include + #include + #include +- #include ++ #include + #include + + #endif // #ifndef _PreComp_ +diff --git a/src/Mod/TechDraw/Gui/MDIViewPage.h b/src/Mod/TechDraw/Gui/MDIViewPage.h +index 512161538..b548f72b5 100644 +--- a/src/Mod/TechDraw/Gui/MDIViewPage.h ++++ b/src/Mod/TechDraw/Gui/MDIViewPage.h +@@ -118,7 +118,7 @@ protected: + + void onDeleteObject(const App::DocumentObject& obj); + +- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection; ++ typedef boost::signals2::connection Connection; + Connection connectDeletedObject; + + private: +-- +2.21.0 + diff --git a/0003-fix-blocking-of-SelectionObserver.patch b/0003-fix-blocking-of-SelectionObserver.patch new file mode 100644 index 0000000..47c7bca --- /dev/null +++ b/0003-fix-blocking-of-SelectionObserver.patch @@ -0,0 +1,61 @@ +From aa280edbde0e4cce207844f97eac3782fe2d3e1a Mon Sep 17 00:00:00 2001 +From: wmayer +Date: Sun, 4 Nov 2018 11:54:40 +0100 +Subject: [PATCH 3/3] fix blocking of SelectionObserver + +--- + src/Gui/Selection.cpp | 10 +++++----- + src/Gui/Selection.h | 2 +- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/Gui/Selection.cpp b/src/Gui/Selection.cpp +index 80b7e3056..52976e6a0 100644 +--- a/src/Gui/Selection.cpp ++++ b/src/Gui/Selection.cpp +@@ -53,7 +53,7 @@ + using namespace Gui; + using namespace std; + +-SelectionObserver::SelectionObserver() : blocker(connectSelection, false) ++SelectionObserver::SelectionObserver() : blockSelection(false) + { + attachSelection(); + } +@@ -65,17 +65,17 @@ SelectionObserver::~SelectionObserver() + + bool SelectionObserver::blockConnection(bool block) + { +- bool ok = connectSelection.blocked(); ++ bool ok = blockSelection; + if (block) +- blocker.block(); ++ blockSelection = true; + else +- blocker.unblock(); ++ blockSelection = false; + return ok; + } + + bool SelectionObserver::isConnectionBlocked() const + { +- return connectSelection.blocked(); ++ return blockSelection; + } + + void SelectionObserver::attachSelection() +diff --git a/src/Gui/Selection.h b/src/Gui/Selection.h +index e1c195989..5e3144e16 100644 +--- a/src/Gui/Selection.h ++++ b/src/Gui/Selection.h +@@ -146,7 +146,7 @@ private: + private: + typedef boost::signals2::connection Connection; + Connection connectSelection; +- boost::signals2::shared_connection_block blocker; ++ bool blockSelection; + }; + + /** +-- +2.21.0 + diff --git a/FreeCAD.changes b/FreeCAD.changes index c2637be..63ada6c 100644 --- a/FreeCAD.changes +++ b/FreeCAD.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Mar 14 03:36:03 UTC 2019 - Stefan Brüns + +- Add support for Boost::Signals2, Boost::Signals has been deprecated + since Boost 1.54 and removed in 1.69: + * 0001-Convert-deprecated-boost-signal-to-signals2.patch + * 0002-move-from-deprecated-boost.signals-to-boost.signals2.patch + * 0003-fix-blocking-of-SelectionObserver.patch +- Add explicit double-conversion-devel BuildRequires + ------------------------------------------------------------------- Sat Mar 9 15:10:24 UTC 2019 - Stefan Brüns diff --git a/FreeCAD.spec b/FreeCAD.spec index c4aae2f..bb6bff6 100644 --- a/FreeCAD.spec +++ b/FreeCAD.spec @@ -18,6 +18,12 @@ %define x_prefix %{_libdir}/%{name} +%if 0%{?suse_version} > 1500 +%bcond_without boost_signals2 +%else +%bcond_with boost_signals2 +%endif + Name: FreeCAD Version: 0.17.1545162057.e1db7bff8 Release: 0 @@ -43,6 +49,14 @@ Patch6: get-rid-of-private-function-_PyImport_FixupBuiltin-for-FreeCAD-a Patch7: 0001-Use-GL_RGB32F-instead-of-GL_RGB32F_ARB.patch # PATCH-FIX-UPSTREAM -- https://github.com/FreeCAD/FreeCAD/commit/5ff383b46.patch Patch8: fix-gcc8-build-failure.patch +%if %{with boost_signals2} +# PATCH-FIX-UPSTREAM -- https://github.com/FreeCAD/FreeCAD/commit/26d7d747257f.patch +Patch9: 0001-Convert-deprecated-boost-signal-to-signals2.patch +# PATCH-FIX-UPSTREAM -- https://github.com/FreeCAD/FreeCAD/commit/f898eafd64f8.patch +Patch10: 0002-move-from-deprecated-boost.signals-to-boost.signals2.patch +# PATCH-FIX-UPSTREAM -- https://github.com/FreeCAD/FreeCAD/commit/c3014fc65f86.patch +Patch11: 0003-fix-blocking-of-SelectionObserver.patch +%endif # Test suite fails on 32bit and I don't want to debug that anymore ExcludeArch: %ix86 %arm ppc s390 s390x @@ -56,7 +70,9 @@ BuildRequires: libboost_graph-devel >= 1.55 BuildRequires: libboost_program_options-devel >= 1.55 BuildRequires: libboost_python3-devel >= 1.55 BuildRequires: libboost_regex-devel >= 1.55 +%if %{without boost_signals2} BuildRequires: libboost_signals-devel >= 1.55 +%endif BuildRequires: libboost_system-devel >= 1.55 BuildRequires: libboost_thread-devel >= 1.55 %else @@ -65,6 +81,7 @@ BuildRequires: boost-devel >= 1.55 BuildRequires: cmake BuildRequires: dos2unix +BuildRequires: double-conversion-devel BuildRequires: doxygen BuildRequires: eigen3-devel BuildRequires: f2c @@ -248,7 +265,7 @@ mkdir -p %{buildroot}%{_datadir}/pixmaps mv %{buildroot}%{_datadir}/%{name}/freecad.xpm %{buildroot}%{_datadir}/pixmaps/freecad.xpm # Install additional documentation files -#install -pm 0644 ChangeLog.txt copying.lib %{buildroot}%{_docdir}/%{name}/ +#install -pm 0644 ChangeLog.txt copying.lib %%{buildroot}%%{_docdir}/%%{name}/ %suse_update_desktop_file -c %{name} "%{name}" "3D CAD Modeler" %{name} "freecad" Education Engineering