aboutsummaryrefslogtreecommitdiffstats
path: root/cad/freecad
diff options
context:
space:
mode:
Diffstat (limited to 'cad/freecad')
-rw-r--r--cad/freecad/Makefile12
-rw-r--r--cad/freecad/distinfo6
-rw-r--r--cad/freecad/files/patch-boost-1.691979
3 files changed, 1989 insertions, 8 deletions
diff --git a/cad/freecad/Makefile b/cad/freecad/Makefile
index 6ff44d3b026b..5a38a16ca745 100644
--- a/cad/freecad/Makefile
+++ b/cad/freecad/Makefile
@@ -1,8 +1,8 @@
# $FreeBSD$
PORTNAME= FreeCAD
-DISTVERSION= 0.17.13509
-PORTREVISION= 4
+DISTVERSION= 0.17-13541 # git rev-list --count
+DISTVERSIONSUFFIX= -g9948ee4f1
CATEGORIES= cad
MAINTAINER= ports@FreeBSD.org
@@ -33,6 +33,7 @@ RUN_DEPENDS= pivy>0:graphics/py-pivy@${PY_FLAVOR}
USES= dos2unix compiler:c++11-lib cmake:outsource eigen:3 fortran jpeg \
python:2.7 localbase qt:4
+USE_GITHUB= yes
USE_XORG= ice sm x11 xext xt
USE_GL= gl glu
USE_QT= qmake_build corelib gui moc_build network opengl rcc_build \
@@ -52,9 +53,6 @@ CFLAGS+= -I${LOCALBASE}/include/hdf5-18
CMAKE_INSTALL_PREFIX= ${PREFIX}/${PORTNAME}
-USE_GITHUB= yes
-GH_TAGNAME= 0.17
-
OPTIONS_DEFINE= COLLADA
COLLADA_DESC= Install pycollada for Collada files import
@@ -64,8 +62,12 @@ DESKTOP_ENTRIES=${PORTNAME} "" "${PREFIX}/FreeCAD/data/freecad.svg" \
${PORTNAME} "Engineering;" false
post-patch:
+ @${REINPLACE_CMD} -e '/sed/s,-i,& \\"\\",' \
+ ${WRKSRC}/cMake/FindPySide*Tools.cmake
@${REINPLACE_CMD} -e 's,%%LOCALBASE%%,${LOCALBASE},' \
${WRKSRC}/src/Gui/CMakeLists.txt
+ @${REINPLACE_CMD} -e '/self\.rev/s/Unknown/${DISTVERSION:C/.*-//}/' \
+ ${WRKSRC}/src/Tools/SubWCRev.py
pre-configure:
# To be removed when french/med will be built against science/hdf5
diff --git a/cad/freecad/distinfo b/cad/freecad/distinfo
index d10e12ab5bec..a29292822bfd 100644
--- a/cad/freecad/distinfo
+++ b/cad/freecad/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1524363465
-SHA256 (FreeCAD-FreeCAD-0.17.13509-0.17_GH0.tar.gz) = ae017393476b6dc7f1192bcaf91ceedc2f9b791f2495307ce7c45efadb5266fb
-SIZE (FreeCAD-FreeCAD-0.17.13509-0.17_GH0.tar.gz) = 192379828
+TIMESTAMP = 1534399137
+SHA256 (FreeCAD-FreeCAD-0.17-13541-g9948ee4f1_GH0.tar.gz) = 9193b071ad92be3324a8dbb388e9f458f6e04989661cec30b736e0fb1bc914e9
+SIZE (FreeCAD-FreeCAD-0.17-13541-g9948ee4f1_GH0.tar.gz) = 192398607
diff --git a/cad/freecad/files/patch-boost-1.69 b/cad/freecad/files/patch-boost-1.69
new file mode 100644
index 000000000000..29080308fb9d
--- /dev/null
+++ b/cad/freecad/files/patch-boost-1.69
@@ -0,0 +1,1979 @@
+https://freecadweb.org/tracker/view.php?id=3653
+https://github.com/FreeCAD/FreeCAD/commit/f898eafd64f88902ea1916b01303705b3baa2c46
+
+--- CMakeLists.txt.orig 2018-04-06 08:48:37 UTC
++++ 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")
+@@ -1074,7 +1073,7 @@ ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ IF(MSVC)
+ # set default compiler settings
+ SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /EHa")
+- SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFC_DEBUG /Zm128")
++ SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFC_DEBUG /Zm128 /bigobj")
+ # set default libs
+ SET (CMAKE_C_STANDARD_LIBRARIES "kernel32.lib user32.lib gdi32.lib winspool.lib SHFolder.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib winmm.lib comsupp.lib Ws2_32.lib dbghelp.lib ")
+ set (CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES}")
+--- src/App/Application.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/App/Application.cpp
+@@ -120,7 +120,6 @@
+
+ #include <boost/tokenizer.hpp>
+ #include <boost/token_functions.hpp>
+-#include <boost/signals.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/version.hpp>
+ #include <QDir>
+--- src/App/Application.h.orig 2018-04-06 08:48:37 UTC
++++ src/App/Application.h
+@@ -25,7 +25,7 @@
+ #ifndef APP_APPLICATION_H
+ #define APP_APPLICATION_H
+
+-#include <boost/signal.hpp>
++#include <boost/signals2.hpp>
+
+ #include <vector>
+
+@@ -99,27 +99,27 @@ class AppExport Application (public)
+ /** @name Signals of the Application */
+ //@{
+ /// signal on new Document
+- boost::signal<void (const Document&)> signalNewDocument;
++ boost::signals2::signal<void (const Document&)> signalNewDocument;
+ /// signal on document getting deleted
+- boost::signal<void (const Document&)> signalDeleteDocument;
++ boost::signals2::signal<void (const Document&)> signalDeleteDocument;
+ /// signal on already deleted Document
+- boost::signal<void ()> signalDeletedDocument;
++ boost::signals2::signal<void ()> signalDeletedDocument;
+ /// signal on relabeling Document (user name)
+- boost::signal<void (const Document&)> signalRelabelDocument;
++ boost::signals2::signal<void (const Document&)> signalRelabelDocument;
+ /// signal on renaming Document (internal name)
+- boost::signal<void (const Document&)> signalRenameDocument;
++ boost::signals2::signal<void (const Document&)> signalRenameDocument;
+ /// signal on activating Document
+- boost::signal<void (const Document&)> signalActiveDocument;
++ boost::signals2::signal<void (const Document&)> signalActiveDocument;
+ /// signal on saving Document
+- boost::signal<void (const Document&)> signalSaveDocument;
++ boost::signals2::signal<void (const Document&)> signalSaveDocument;
+ /// signal on starting to restore Document
+- boost::signal<void (const Document&)> signalStartRestoreDocument;
++ boost::signals2::signal<void (const Document&)> signalStartRestoreDocument;
+ /// signal on restoring Document
+- boost::signal<void (const Document&)> signalFinishRestoreDocument;
++ boost::signals2::signal<void (const Document&)> signalFinishRestoreDocument;
+ /// signal on undo in document
+- boost::signal<void (const Document&)> signalUndoDocument;
++ boost::signals2::signal<void (const Document&)> signalUndoDocument;
+ /// signal on redo in document
+- boost::signal<void (const Document&)> signalRedoDocument;
++ boost::signals2::signal<void (const Document&)> signalRedoDocument;
+ //@}
+
+
+@@ -129,16 +129,16 @@ class AppExport Application (public)
+ */
+ //@{
+ /// signal on new Object
+- boost::signal<void (const App::DocumentObject&)> signalNewObject;
+- //boost::signal<void (const App::DocumentObject&)> m_sig;
++ boost::signals2::signal<void (const App::DocumentObject&)> signalNewObject;
++ //boost::signals2::signal<void (const App::DocumentObject&)> m_sig;
+ /// signal on deleted Object
+- boost::signal<void (const App::DocumentObject&)> signalDeletedObject;
++ boost::signals2::signal<void (const App::DocumentObject&)> signalDeletedObject;
+ /// signal on changed Object
+- boost::signal<void (const App::DocumentObject&, const App::Property&)> signalChangedObject;
++ boost::signals2::signal<void (const App::DocumentObject&, const App::Property&)> signalChangedObject;
+ /// signal on relabeled Object
+- boost::signal<void (const App::DocumentObject&)> signalRelabelObject;
++ boost::signals2::signal<void (const App::DocumentObject&)> signalRelabelObject;
+ /// signal on activated Object
+- boost::signal<void (const App::DocumentObject&)> signalActivatedObject;
++ boost::signals2::signal<void (const App::DocumentObject&)> signalActivatedObject;
+ //@}
+
+ /** @name Signals of property changes
+@@ -147,11 +147,11 @@ class AppExport Application (public)
+ */
+ //@{
+ /// signal on adding a dynamic property
+- boost::signal<void (const App::Property&)> signalAppendDynamicProperty;
++ boost::signals2::signal<void (const App::Property&)> signalAppendDynamicProperty;
+ /// signal on about removing a dynamic property
+- boost::signal<void (const App::Property&)> signalRemoveDynamicProperty;
++ boost::signals2::signal<void (const App::Property&)> signalRemoveDynamicProperty;
+ /// signal on about changing the editor mode of a property
+- boost::signal<void (const App::Property&)> signalChangePropertyEditor;
++ boost::signals2::signal<void (const App::Property&)> signalChangePropertyEditor;
+ //@}
+
+
+--- src/App/Document.h.orig 2018-04-06 08:48:37 UTC
++++ src/App/Document.h
+@@ -37,7 +37,7 @@
+ #include <stack>
+ #include <functional>
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ namespace Base {
+ class Writer;
+@@ -113,40 +113,40 @@ class AppExport Document : public App::PropertyContain
+ /** @name Signals of the document */
+ //@{
+ /// signal on new Object
+- boost::signal<void (const App::DocumentObject&)> signalNewObject;
+- //boost::signal<void (const App::DocumentObject&)> m_sig;
++ boost::signals2::signal<void (const App::DocumentObject&)> signalNewObject;
++ //boost::signals2::signal<void (const App::DocumentObject&)> m_sig;
+ /// signal on deleted Object
+- boost::signal<void (const App::DocumentObject&)> signalDeletedObject;
++ boost::signals2::signal<void (const App::DocumentObject&)> signalDeletedObject;
+ /// signal on changed Object
+- boost::signal<void (const App::DocumentObject&, const App::Property&)> signalChangedObject;
++ boost::signals2::signal<void (const App::DocumentObject&, const App::Property&)> signalChangedObject;
+ /// signal on relabeled Object
+- boost::signal<void (const App::DocumentObject&)> signalRelabelObject;
++ boost::signals2::signal<void (const App::DocumentObject&)> signalRelabelObject;
+ /// signal on activated Object
+- boost::signal<void (const App::DocumentObject&)> signalActivatedObject;
++ boost::signals2::signal<void (const App::DocumentObject&)> signalActivatedObject;
+ /// signal on created object
+- boost::signal<void (const App::DocumentObject&, Transaction*)> signalTransactionAppend;
++ boost::signals2::signal<void (const App::DocumentObject&, Transaction*)> signalTransactionAppend;
+ /// signal on removed object
+- boost::signal<void (const App::DocumentObject&, Transaction*)> signalTransactionRemove;
++ boost::signals2::signal<void (const App::DocumentObject&, Transaction*)> signalTransactionRemove;
+ /// signal on undo
+- boost::signal<void (const App::Document&)> signalUndo;
++ boost::signals2::signal<void (const App::Document&)> signalUndo;
+ /// signal on redo
+- boost::signal<void (const App::Document&)> signalRedo;
++ boost::signals2::signal<void (const App::Document&)> 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<void (Base::Writer &)> signalSaveDocument;
+- boost::signal<void (Base::XMLReader&)> signalRestoreDocument;
+- boost::signal<void (const std::vector<App::DocumentObject*>&,
++ boost::signals2::signal<void (Base::Writer &)> signalSaveDocument;
++ boost::signals2::signal<void (Base::XMLReader&)> signalRestoreDocument;
++ boost::signals2::signal<void (const std::vector<App::DocumentObject*>&,
+ Base::Writer &)> signalExportObjects;
+- boost::signal<void (const std::vector<App::DocumentObject*>&,
++ boost::signals2::signal<void (const std::vector<App::DocumentObject*>&,
+ Base::Writer &)> signalExportViewObjects;
+- boost::signal<void (const std::vector<App::DocumentObject*>&,
++ boost::signals2::signal<void (const std::vector<App::DocumentObject*>&,
+ Base::XMLReader&)> signalImportObjects;
+- boost::signal<void (const std::vector<App::DocumentObject*>&, Base::Reader&,
++ boost::signals2::signal<void (const std::vector<App::DocumentObject*>&, Base::Reader&,
+ const std::map<std::string, std::string>&)> signalImportViewObjects;
+- boost::signal<void (const App::Document&)> signalRecomputed;
++ boost::signals2::signal<void (const App::Document&)> signalRecomputed;
+ //@}
+
+ /** @name File handling of the document */
+--- src/App/DocumentObject.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/App/DocumentObject.cpp
+@@ -38,7 +38,7 @@
+ #include "DocumentObjectExtension.h"
+ #include "GeoFeatureGroupExtension.h"
+ #include <App/DocumentObjectPy.h>
+-#include <boost/signals/connection.hpp>
++#include <boost/signals2/connection.hpp>
+ #include <boost/bind.hpp>
+
+ using namespace App;
+--- src/App/DocumentObject.h.orig 2018-04-06 08:48:37 UTC
++++ src/App/DocumentObject.h
+@@ -33,7 +33,7 @@
+ #include <CXX/Objects.hxx>
+
+ #include <bitset>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ namespace App
+ {
+@@ -282,9 +282,9 @@ class AppExport DocumentObject: public App::Transactio
+ 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;
+--- src/App/DocumentObserver.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/App/DocumentObserver.cpp
+@@ -27,7 +27,6 @@
+ # include <sstream>
+ #endif
+
+-#include <boost/signals.hpp>
+ #include <boost/bind.hpp>
+
+ #include "Application.h"
+--- src/App/DocumentObserver.h.orig 2018-04-06 08:48:37 UTC
++++ src/App/DocumentObserver.h
+@@ -25,7 +25,7 @@
+ #define APP_DOCUMENTOBSERVER_H
+
+ #include <Base/BaseClass.h>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <set>
+
+ namespace App
+@@ -157,7 +157,7 @@ class AppExport DocumentObserver (protected)
+
+ private:
+ App::Document* _document;
+- typedef boost::signals::connection Connection;
++ typedef boost::signals2::connection Connection;
+ Connection connectApplicationCreatedDocument;
+ Connection connectApplicationDeletedDocument;
+ Connection connectDocumentCreatedObject;
+--- src/App/DocumentObserverPython.h.orig 2018-04-06 08:48:37 UTC
++++ src/App/DocumentObserverPython.h
+@@ -26,7 +26,7 @@
+
+ #include <CXX/Objects.hxx>
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ namespace App
+@@ -74,7 +74,7 @@ class AppExport DocumentObserverPython (private)
+ Py::Object inst;
+ static std::vector<DocumentObserverPython*> _instances;
+
+- typedef boost::signals::connection Connection;
++ typedef boost::signals2::connection Connection;
+ Connection connectApplicationCreatedDocument;
+ Connection connectApplicationDeletedDocument;
+ Connection connectApplicationRelabelDocument;
+--- src/App/MergeDocuments.h.orig 2018-04-06 08:48:37 UTC
++++ src/App/MergeDocuments.h
+@@ -24,7 +24,7 @@
+ #ifndef APP_MERGEDOCUMENTS_H
+ #define APP_MERGEDOCUMENTS_H
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <Base/Persistence.h>
+
+ namespace zipios {
+@@ -57,7 +57,7 @@ class AppExport MergeDocuments : public Base::Persiste
+ App::Document* appdoc;
+ std::vector<App::DocumentObject*> objects;
+ std::map<std::string, std::string> nameMap;
+- typedef boost::signals::connection Connection;
++ typedef boost::signals2::connection Connection;
+ Connection connectExport;
+ Connection connectImport;
+ };
+--- src/App/PreCompiled.h.orig 2018-04-06 08:48:37 UTC
++++ src/App/PreCompiled.h
+@@ -71,7 +71,7 @@
+ #include <random>
+
+ // Boost
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/regex.hpp>
+
+--- src/App/PropertyExpressionEngine.h.orig 2018-04-06 08:48:37 UTC
++++ src/App/PropertyExpressionEngine.h
+@@ -25,7 +25,7 @@
+
+ #include <boost/unordered/unordered_map.hpp>
+ #include <boost/function.hpp>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/graph/adjacency_list.hpp>
+ #include <boost/graph/topological_sort.hpp>
+ #include <App/Property.h>
+@@ -125,7 +125,7 @@ class AppExport PropertyExpressionEngine : public App:
+ void slotObjectDeleted(const DocumentObject &obj);
+
+ ///signal called when a expression was changed
+- boost::signal<void (const App::ObjectIdentifier &)> expressionChanged;
++ boost::signals2::signal<void (const App::ObjectIdentifier &)> expressionChanged;
+
+ void onDocumentRestored();
+
+--- src/Base/Tools.h.orig 2018-04-06 08:48:37 UTC
++++ src/Base/Tools.h
+@@ -30,7 +30,7 @@
+ #include <iostream>
+ #include <vector>
+ #include <string>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <QString>
+
+ namespace Base
+@@ -166,17 +166,14 @@ class ObjectStatusLocker (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);
+ }
+ };
+
+--- src/Gui/Action.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/Action.cpp
+@@ -24,7 +24,7 @@
+ #include "PreCompiled.h"
+
+ #ifndef _PreComp_
+-# include <boost/signals.hpp>
++# include <boost/signals2.hpp>
+ # include <boost/bind.hpp>
+ # include <QAbstractItemView>
+ # include <QActionEvent>
+--- src/Gui/Application.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/Application.cpp
+@@ -25,7 +25,7 @@
+
+ #ifndef _PreComp_
+ # include "InventorAll.h"
+-# include <boost/signals.hpp>
++# include <boost/signals2.hpp>
+ # include <boost/bind.hpp>
+ # include <sstream>
+ # include <stdexcept>
+--- src/Gui/Application.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/Application.h
+@@ -88,33 +88,33 @@ class GuiExport Application (public)
+ /** @name Signals of the Application */
+ //@{
+ /// signal on new Document
+- boost::signal<void (const Gui::Document&)> signalNewDocument;
++ boost::signals2::signal<void (const Gui::Document&)> signalNewDocument;
+ /// signal on deleted Document
+- boost::signal<void (const Gui::Document&)> signalDeleteDocument;
++ boost::signals2::signal<void (const Gui::Document&)> signalDeleteDocument;
+ /// signal on relabeling Document
+- boost::signal<void (const Gui::Document&)> signalRelabelDocument;
++ boost::signals2::signal<void (const Gui::Document&)> signalRelabelDocument;
+ /// signal on renaming Document
+- boost::signal<void (const Gui::Document&)> signalRenameDocument;
++ boost::signals2::signal<void (const Gui::Document&)> signalRenameDocument;
+ /// signal on activating Document
+- boost::signal<void (const Gui::Document&)> signalActiveDocument;
++ boost::signals2::signal<void (const Gui::Document&)> signalActiveDocument;
+ /// signal on new Object
+- boost::signal<void (const Gui::ViewProvider&)> signalNewObject;
++ boost::signals2::signal<void (const Gui::ViewProvider&)> signalNewObject;
+ /// signal on deleted Object
+- boost::signal<void (const Gui::ViewProvider&)> signalDeletedObject;
++ boost::signals2::signal<void (const Gui::ViewProvider&)> signalDeletedObject;
+ /// signal on changed object property
+- boost::signal<void (const Gui::ViewProvider&, const App::Property&)> signalChangedObject;
++ boost::signals2::signal<void (const Gui::ViewProvider&, const App::Property&)> signalChangedObject;
+ /// signal on renamed Object
+- boost::signal<void (const Gui::ViewProvider&)> signalRelabelObject;
++ boost::signals2::signal<void (const Gui::ViewProvider&)> signalRelabelObject;
+ /// signal on activated Object
+- boost::signal<void (const Gui::ViewProvider&)> signalActivatedObject;
++ boost::signals2::signal<void (const Gui::ViewProvider&)> signalActivatedObject;
+ /// signal on activated workbench
+- boost::signal<void (const char*)> signalActivateWorkbench;
++ boost::signals2::signal<void (const char*)> signalActivateWorkbench;
+ /// signal on added workbench
+- boost::signal<void (const char*)> signalAddWorkbench;
++ boost::signals2::signal<void (const char*)> signalAddWorkbench;
+ /// signal on removed workbench
+- boost::signal<void (const char*)> signalRemoveWorkbench;
++ boost::signals2::signal<void (const char*)> signalRemoveWorkbench;
+ /// signal on activating view
+- boost::signal<void (const Gui::MDIView*)> signalActivateView;
++ boost::signals2::signal<void (const Gui::MDIView*)> signalActivateView;
+ //@}
+
+ /** @name methods for Document handling */
+--- src/Gui/AutoSaver.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/AutoSaver.h
+@@ -29,7 +29,7 @@
+ #include <map>
+ #include <set>
+ #include <string>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ namespace App {
+ class Document;
+@@ -53,7 +53,7 @@ class AutoSaveProperty (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;
+ };
+--- src/Gui/DAGView/DAGModel.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/DAGView/DAGModel.cpp
+@@ -22,7 +22,6 @@
+
+ #include "PreCompiled.h"
+ #ifndef _PreComp_
+-#include <boost/signals.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/graph/topological_sort.hpp>
+ #include <boost/graph/reverse_graph.hpp>
+--- src/Gui/DAGView/DAGModel.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/DAGView/DAGModel.h
+@@ -26,7 +26,7 @@
+ #include <memory>
+ #include <vector>
+
+-#include <boost/signal.hpp>
++#include <boost/signals2.hpp>
+
+ #include <QGraphicsScene>
+ #include <QBrush>
+@@ -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;
+--- src/Gui/DlgDisplayPropertiesImp.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/DlgDisplayPropertiesImp.h
+@@ -25,7 +25,7 @@
+ #define GUI_DIALOG_DLGDISPLAYPROPERTIES_IMP_H
+
+ #include <vector>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ #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 @@ private Q_SLOTS: (protected)
+
+ private:
+ void slotChangedObject(const Gui::ViewProvider&, const App::Property& Prop);
+- void reject();
++ void reject();
+ void setDisplayModes(const std::vector<ViewProvider*>&);
+ void setMaterial(const std::vector<ViewProvider*>&);
+ void setColorPlot(const std::vector<ViewProvider*>&);
+--- src/Gui/Document.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/Document.cpp
+@@ -31,7 +31,7 @@
+ # include <QKeySequence>
+ # include <qmessagebox.h>
+ # include <qstatusbar.h>
+-# include <boost/signals.hpp>
++# include <boost/signals2.hpp>
+ # include <boost/bind.hpp>
+ # include <Inventor/actions/SoSearchAction.h>
+ # include <Inventor/nodes/SoSeparator.h>
+@@ -89,7 +89,7 @@ struct DocumentP
+ std::map<const App::DocumentObject*,ViewProviderDocumentObject*> _ViewProviderMap;
+ std::map<std::string,ViewProvider*> _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,Applicati
+ (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::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);
+--- src/Gui/Document.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/Document.h
+@@ -92,36 +92,36 @@ class GuiExport Document : public Base::Persistence (
+ /** @name Signals of the document */
+ //@{
+ /// signal on new Object
+- mutable boost::signal<void (const Gui::ViewProviderDocumentObject&)> signalNewObject;
++ mutable boost::signals2::signal<void (const Gui::ViewProviderDocumentObject&)> signalNewObject;
+ /// signal on deleted Object
+- mutable boost::signal<void (const Gui::ViewProviderDocumentObject&)> signalDeletedObject;
++ mutable boost::signals2::signal<void (const Gui::ViewProviderDocumentObject&)> 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<void (const Gui::ViewProviderDocumentObject&,
++ mutable boost::signals2::signal<void (const Gui::ViewProviderDocumentObject&,
+ const App::Property&)> signalChangedObject;
+ /// signal on renamed Object
+- mutable boost::signal<void (const Gui::ViewProviderDocumentObject&)> signalRelabelObject;
++ mutable boost::signals2::signal<void (const Gui::ViewProviderDocumentObject&)> signalRelabelObject;
+ /// signal on activated Object
+- mutable boost::signal<void (const Gui::ViewProviderDocumentObject&)> signalActivatedObject;
++ mutable boost::signals2::signal<void (const Gui::ViewProviderDocumentObject&)> signalActivatedObject;
+ /// signal on entering in edit mode
+- mutable boost::signal<void (const Gui::ViewProviderDocumentObject&)> signalInEdit;
++ mutable boost::signals2::signal<void (const Gui::ViewProviderDocumentObject&)> signalInEdit;
+ /// signal on leaving edit mode
+- mutable boost::signal<void (const Gui::ViewProviderDocumentObject&)> signalResetEdit;
++ mutable boost::signals2::signal<void (const Gui::ViewProviderDocumentObject&)> signalResetEdit;
+ /// signal on changed Object, the 2nd argument is the highlite mode to use
+- mutable boost::signal<void (const Gui::ViewProviderDocumentObject&,
+- const Gui::HighlightMode&,
+- bool)> signalHighlightObject;
++ mutable boost::signals2::signal<void (const Gui::ViewProviderDocumentObject&,
++ const Gui::HighlightMode&,
++ bool)> signalHighlightObject;
+ /// signal on changed Object, the 2nd argument is the highlite mode to use
+- mutable boost::signal<void (const Gui::ViewProviderDocumentObject&,
+- const Gui::TreeItemMode&)> signalExpandObject;
++ mutable boost::signals2::signal<void (const Gui::ViewProviderDocumentObject&,
++ const Gui::TreeItemMode&)> signalExpandObject;
+ /// signal on scrolling to an object
+- mutable boost::signal<void (const Gui::ViewProviderDocumentObject&)> signalScrollToObject;
++ mutable boost::signals2::signal<void (const Gui::ViewProviderDocumentObject&)> signalScrollToObject;
+ /// signal on undo Document
+- mutable boost::signal<void (const Gui::Document& doc)> signalUndoDocument;
++ mutable boost::signals2::signal<void (const Gui::Document& doc)> signalUndoDocument;
+ /// signal on redo Document
+- mutable boost::signal<void (const Gui::Document& doc)> signalRedoDocument;
++ mutable boost::signals2::signal<void (const Gui::Document& doc)> signalRedoDocument;
+ /// signal on deleting Document
+- mutable boost::signal<void (const Gui::Document& doc)> signalDeleteDocument;
++ mutable boost::signals2::signal<void (const Gui::Document& doc)> signalDeleteDocument;
+ //@}
+
+ /** @name I/O of the document */
+--- src/Gui/DocumentModel.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/DocumentModel.cpp
+@@ -26,7 +26,7 @@
+ #ifndef _PreComp_
+ # include <QApplication>
+ # include <algorithm>
+-# include <boost/signals.hpp>
++# include <boost/signals2.hpp>
+ # include <boost/bind.hpp>
+ #endif
+
+--- src/Gui/DocumentObserver.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/DocumentObserver.cpp
+@@ -27,7 +27,6 @@
+ # include <sstream>
+ #endif
+
+-#include <boost/signals.hpp>
+ #include <boost/bind.hpp>
+
+ #include "Application.h"
+@@ -87,19 +86,6 @@ void DocumentObserver::detachDocument()
+ this->connectDocumentUndo.disconnect();
+ this->connectDocumentRedo.disconnect();
+ 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*/)
+--- src/Gui/DocumentObserver.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/DocumentObserver.h
+@@ -25,8 +25,7 @@
+ #define GUI_DOCUMENTOBSERVER_H
+
+ #include <Base/BaseClass.h>
+-#include <boost/signals.hpp>
+-#include <QFlags>
++#include <boost/signals2.hpp>
+
+ 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 @@ class GuiExport DocumentObserver (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 @@ class GuiExport DocumentObserver (public)
+ 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;
+--- src/Gui/ExpressionBinding.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/ExpressionBinding.h
+@@ -27,7 +27,7 @@
+ #include <App/ObjectIdentifier.h>
+ #include <boost/shared_ptr.hpp>
+ #include <QLabel>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ namespace App {
+ class Expression;
+@@ -75,7 +75,7 @@ class GuiExport ExpressionBinding (protected)
+ int iconHeight;
+
+ void expressionChange(const App::ObjectIdentifier& id);
+- boost::signals::scoped_connection connection;
++ boost::signals2::scoped_connection connection;
+ bool m_autoApply;
+ };
+
+--- src/Gui/GraphvizView.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/GraphvizView.h
+@@ -26,7 +26,7 @@
+
+ #include "MDIView.h"
+ #include <boost/shared_ptr.hpp>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+
+ class QGraphicsScene;
+@@ -84,7 +84,7 @@ private Q_SLOTS: (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;
+--- src/Gui/MDIView.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/MDIView.cpp
+@@ -24,7 +24,7 @@
+ #include "PreCompiled.h"
+
+ #ifndef _PreComp_
+-# include <boost/signals.hpp>
++# include <boost/signals2.hpp>
+ # include <boost/bind.hpp>
+ # include <qapplication.h>
+ # include <qregexp.h>
+--- src/Gui/MDIView.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/MDIView.h
+@@ -150,7 +150,7 @@ protected Q_SLOTS: (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.
+ };
+
+--- src/Gui/MainWindow.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/MainWindow.cpp
+@@ -51,7 +51,6 @@
+ # include <QWhatsThis>
+ #endif
+
+-#include <boost/signals.hpp>
+ #include <boost/bind.hpp>
+
+ // FreeCAD Base header
+--- src/Gui/ManualAlignment.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/ManualAlignment.cpp
+@@ -49,7 +49,6 @@
+ # include <Inventor/sensors/SoNodeSensor.h>
+ #endif
+
+-#include <boost/signals.hpp>
+ #include <boost/bind.hpp>
+
+ #include <App/Document.h>
+--- src/Gui/ManualAlignment.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/ManualAlignment.h
+@@ -30,7 +30,7 @@
+ #include <Gui/Application.h>
+ #include <Gui/Document.h>
+ #include <Gui/ViewProviderDocumentObject.h>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ class SbVec3f;
+ class SoPickedPoint;
+@@ -244,7 +244,7 @@ Q_SIGNALS: (private)
+
+ static ManualAlignment* _instance;
+
+- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection;
++ typedef boost::signals2::connection Connection;
+ Connection connectApplicationDeletedDocument;
+ Connection connectDocumentDeletedObject;
+
+--- src/Gui/MergeDocuments.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/MergeDocuments.h
+@@ -24,7 +24,7 @@
+ #ifndef GUI_MERGEDOCUMENTS_H
+ #define GUI_MERGEDOCUMENTS_H
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <Base/Persistence.h>
+
+ namespace zipios {
+@@ -57,7 +57,7 @@ class GuiExport MergeDocuments : public Base::Persiste
+ Gui::Document* document;
+ std::vector<App::DocumentObject*> objects;
+ std::map<std::string, std::string> nameMap;
+- typedef boost::signals::connection Connection;
++ typedef boost::signals2::connection Connection;
+ Connection connectExport;
+ Connection connectImport;
+ };
+--- src/Gui/Placement.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/Placement.h
+@@ -28,7 +28,7 @@
+ #include <Gui/TaskView/TaskView.h>
+ #include <Base/Placement.h>
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ class QSignalMapper;
+@@ -84,7 +84,7 @@ Q_SIGNALS:
+
+ private:
+ typedef Gui::LocationInterfaceComp<Ui_Placement> Ui_PlacementComp;
+- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection;
++ typedef boost::signals2::connection Connection;
+ Ui_PlacementComp* ui;
+ QSignalMapper* signalMapper;
+ Connection connectAct;
+--- src/Gui/PreCompiled.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/PreCompiled.h
+@@ -72,7 +72,7 @@
+ #include <bitset>
+
+ // Boost
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/program_options.hpp>
+ #include <boost/tuple/tuple.hpp>
+--- src/Gui/ProjectView.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/ProjectView.cpp
+@@ -24,7 +24,6 @@
+ #include "PreCompiled.h"
+
+ #ifndef _PreComp_
+-# include <boost/signals.hpp>
+ # include <boost/bind.hpp>
+ # include <QAction>
+ # include <QActionGroup>
+--- src/Gui/PropertyView.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/PropertyView.h
+@@ -28,7 +28,7 @@
+
+ #include "DockWindow.h"
+ #include "Selection.h"
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ class QPixmap;
+ class QTabWidget;
+@@ -65,15 +65,15 @@ class PropertyView : public QWidget, public Gui::Selec
+ 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 @@ public Q_SLOTS: (private)
+ private:
+ struct PropInfo;
+ struct PropFind;
+- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection;
++ typedef boost::signals2::connection Connection;
+ Connection connectPropData;
+ Connection connectPropView;
+ Connection connectPropAppend;
+--- src/Gui/Selection.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/Selection.cpp
+@@ -26,7 +26,6 @@
+ #ifndef _PreComp_
+ # include <assert.h>
+ # include <string>
+-# include <boost/signals.hpp>
+ # include <boost/bind.hpp>
+ # include <QApplication>
+ # include <QString>
+@@ -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;
+ }
+
+--- src/Gui/Selection.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/Selection.h
+@@ -30,6 +30,7 @@
+ #include <vector>
+ #include <list>
+ #include <map>
++#include <boost/signals2.hpp>
+ #include <CXX/Objects.hxx>
+
+ #include <Base/Observer.h>
+@@ -143,8 +144,9 @@ class GuiExport SelectionObserver (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 @@ class GuiExport SelectionSingleton : public Base::Subj
+ };
+
+ /// signal on new object
+- boost::signal<void (const SelectionChanges& msg)> signalSelectionChanged;
++ boost::signals2::signal<void (const SelectionChanges& msg)> signalSelectionChanged;
+
+ /** Returns a vector of selection objects
+ * If no document name is given the objects of the active are returned.
+--- src/Gui/TaskView/TaskAppearance.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/TaskView/TaskAppearance.h
+@@ -26,7 +26,7 @@
+
+ #include "TaskView.h"
+ #include <Gui/Selection.h>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+
+ 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
+ {
+--- src/Gui/TaskView/TaskSelectLinkProperty.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/TaskView/TaskSelectLinkProperty.h
+@@ -26,7 +26,6 @@
+
+ #include "TaskView.h"
+ #include <Gui/Selection.h>
+-#include <boost/signals.hpp>
+ #include <App/PropertyLinks.h>
+
+
+--- src/Gui/TaskView/TaskView.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/TaskView/TaskView.h
+@@ -29,7 +29,7 @@
+ #include <map>
+ #include <string>
+ #include <vector>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <QScrollArea>
+
+ #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;
+
+--- src/Gui/Tree.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/Tree.cpp
+@@ -24,7 +24,6 @@
+ #include "PreCompiled.h"
+
+ #ifndef _PreComp_
+-# include <boost/signals.hpp>
+ # include <boost/bind.hpp>
+ # include <QAction>
+ # include <QActionGroup>
+--- src/Gui/Tree.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/Tree.h
+@@ -184,7 +184,7 @@ class DocumentItem : public QTreeWidgetItem (private)
+ const Gui::Document* pDocument;
+ std::map<std::string,DocumentObjectItemsPtr> ObjectMap;
+
+- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection;
++ typedef boost::signals2::connection Connection;
+ Connection connectNewObject;
+ Connection connectDelObject;
+ Connection connectChgObject;
+@@ -222,7 +222,7 @@ class DocumentObjectItem : public QTreeWidgetItem (pr
+ void slotChangeStatusTip(const QString&);
+
+ private:
+- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection;
++ typedef boost::signals2::connection Connection;
+ int previousStatus;
+ Gui::ViewProviderDocumentObject* viewObject;
+ Connection connectIcon;
+--- src/Gui/ViewProvider.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/ViewProvider.h
+@@ -29,7 +29,7 @@
+ #include <string>
+ #include <bitset>
+ #include <QIcon>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ #include <App/TransactionalObject.h>
+ #include <Base/Vector3D.h>
+@@ -199,11 +199,11 @@ class GuiExport ViewProvider : public App::Transaction
+ /** @name Signals of the view provider */
+ //@{
+ /// signal on icon change
+- boost::signal<void ()> signalChangeIcon;
++ boost::signals2::signal<void ()> signalChangeIcon;
+ /// signal on tooltip change
+- boost::signal<void (const QString&)> signalChangeToolTip;
++ boost::signals2::signal<void (const QString&)> signalChangeToolTip;
+ /// signal on status tip change
+- boost::signal<void (const QString&)> signalChangeStatusTip;
++ boost::signals2::signal<void (const QString&)> signalChangeStatusTip;
+ //@}
+
+ /** update the content of the ViewProvider
+--- src/Gui/ViewProviderOriginGroup.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/ViewProviderOriginGroup.h
+@@ -23,8 +23,6 @@
+ #ifndef VIEWPROVIDERORIGINGROUP_H_JIXBOPA7
+ #define VIEWPROVIDERORIGINGROUP_H_JIXBOPA7
+
+-#include <boost/signals.hpp>
+-
+ #include "ViewProviderGeoFeatureGroup.h"
+ #include "ViewProviderOriginGroupExtension.h"
+
+--- src/Gui/ViewProviderOriginGroupExtension.h.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/ViewProviderOriginGroupExtension.h
+@@ -56,8 +56,8 @@ class GuiExport ViewProviderOriginGroupExtension : pub
+ std::vector<App::DocumentObject*> constructChildren (
+ const std::vector<App::DocumentObject*> &children ) const;
+
+- boost::signals::connection connectChangedObjectApp;
+- boost::signals::connection connectChangedObjectGui;
++ boost::signals2::connection connectChangedObjectApp;
++ boost::signals2::connection connectChangedObjectGui;
+ };
+
+ typedef ViewProviderExtensionPythonT<Gui::ViewProviderOriginGroupExtension> ViewProviderOriginGroupExtensionPython;
+--- src/Gui/ViewProviderPythonFeature.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Gui/ViewProviderPythonFeature.cpp
+@@ -30,7 +30,6 @@
+ # include <QFileInfo>
+ # include <QMenu>
+ # include <QPixmap>
+-# include <boost/signals.hpp>
+ # include <boost/bind.hpp>
+ # include <Inventor/nodes/SoDrawStyle.h>
+ # include <Inventor/nodes/SoMaterial.h>
+--- src/Mod/Drawing/Gui/TaskOrthoViews.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Drawing/Gui/TaskOrthoViews.cpp
+@@ -641,11 +641,12 @@ void OrthoViews::del_view(int rel_x, int rel_y)
+
+ 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)
+
+ 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?
+--- src/Mod/Drawing/Gui/TaskOrthoViews.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Drawing/Gui/TaskOrthoViews.h
+@@ -30,9 +30,9 @@
+
+ #include <gp_Ax2.hxx>
+ #include <vector>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+-#include <Mod/Drawing/App/FeatureViewPart.h>
++#include <Mod/Drawing/App/FeatureViewPart.h>
+
+
+
+@@ -148,8 +148,8 @@ class OrthoViews (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;
+ };
+
+
+--- src/Mod/Fem/Gui/TaskPostBoxes.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Fem/Gui/TaskPostBoxes.h
+@@ -30,7 +30,6 @@
+ #include <Base/Parameter.h>
+ #include <App/PropertyLinks.h>
+ #include "ViewProviderFemPostFunction.h"
+-#include <boost/signals.hpp>
+
+ class QComboBox;
+ class Ui_TaskPostDisplay;
+@@ -139,15 +138,15 @@ class TaskPostBox : public Gui::TaskView::TaskBox { (p
+ ~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<typename T>
+- T* getTypedObject() {return static_cast<T*>(m_object);};
+- Gui::ViewProviderDocumentObject* getView() {return m_view;};
++ T* getTypedObject() {return static_cast<T*>(m_object);}
++ Gui::ViewProviderDocumentObject* getView() {return m_view;}
+ template<typename T>
+- T* getTypedView() {return static_cast<T*>(m_view);};
++ T* getTypedView() {return static_cast<T*>(m_view);}
+
+ bool autoApply();
+ void recompute();
+@@ -203,7 +202,7 @@ class TaskPostDisplay : public TaskPostBox (public)
+ ~TaskPostDisplay();
+
+ virtual void applyPythonCode();
+- virtual bool isGuiTaskOnly() {return true;};
++ virtual bool isGuiTaskOnly() {return true;}
+
+ private Q_SLOTS:
+ void on_Representation_activated(int i);
+--- src/Mod/Fem/Gui/ViewProviderFemPostFunction.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Fem/Gui/ViewProviderFemPostFunction.h
+@@ -28,29 +28,8 @@
+ #include <Mod/Fem/App/FemPostFunction.h>
+ #include <Inventor/SbMatrix.h>
+ #include <QWidget>
++#include <boost/signals2.hpp>
+
+-
+-#if defined(signals) && defined(QOBJECTDEFS_H) && \
+- !defined(QT_MOC_CPP)
+-# undef signals
+-# define signals signals
+-#endif
+-
+-#include <boost/signal.hpp>
+-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 <qobjectdefs.h>.
+-# define signals protected
+-#endif
+-
+-
+ class SoScale;
+ class SoSurroundScale;
+ class SoTransformManip;
+@@ -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 @@ class FemGuiExport FunctionWidget : public QWidget {
+ 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
+--- src/Mod/Inspection/App/InspectionFeature.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Inspection/App/InspectionFeature.cpp
+@@ -35,7 +35,6 @@
+ #include <QFutureWatcher>
+ #include <QtConcurrentMap>
+
+-#include <boost/signals.hpp>
+ #include <boost/bind.hpp>
+
+ #include <Base/Console.h>
+--- src/Mod/Mesh/Gui/DlgEvaluateMeshImp.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Mesh/Gui/DlgEvaluateMeshImp.cpp
+@@ -31,7 +31,6 @@
+ #include "ui_DlgEvaluateMesh.h"
+ #include "DlgEvaluateSettings.h"
+
+-#include <boost/signals.hpp>
+ #include <boost/bind.hpp>
+
+ #include <Base/Interpreter.h>
+--- src/Mod/Mesh/Gui/MeshEditor.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Mesh/Gui/MeshEditor.h
+@@ -25,7 +25,7 @@
+
+ #include <QObject>
+ #include <Mod/Mesh/Gui/ViewProvider.h>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ class SoCoordinate3;
+ class SoFaceSet;
+@@ -139,7 +139,7 @@ private Q_SLOTS:
+
+ private:
+ typedef std::vector<unsigned long> TBoundary;
+- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection;
++ typedef boost::signals2::connection Connection;
+
+ static void fileHoleCallback(void * ud, SoEventCallback * n);
+ void createPolygons();
+--- src/Mod/PartDesign/App/Body.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/PartDesign/App/Body.h
+@@ -27,7 +27,7 @@
+ #include <App/PropertyStandard.h>
+ #include <Mod/Part/App/BodyBase.h>
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ namespace App {
+ class Origin;
+@@ -145,7 +145,7 @@ class PartDesignExport Body : public Part::BodyBase (
+ virtual void unsetupObject () override;
+
+ private:
+- boost::signals::scoped_connection connection;
++ boost::signals2::scoped_connection connection;
+ };
+
+ } //namespace PartDesign
+--- src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp
+@@ -49,7 +49,6 @@ TaskFeatureParameters::TaskFeatureParameters(PartDesig
+ {
+ Gui::Document* doc = vp->getDocument();
+ this->attachDocument(doc);
+- this->enableNotifications(DocumentObserver::Delete);
+ }
+
+ void TaskFeatureParameters::slotDeletedObject(const Gui::ViewProviderDocumentObject& Obj)
+--- src/Mod/PartDesign/Gui/TaskHoleParameters.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/PartDesign/Gui/TaskHoleParameters.h
+@@ -121,7 +121,7 @@ private Q_SLOTS: (private)
+
+ private:
+
+- typedef boost::BOOST_SIGNALS_NAMESPACE::scoped_connection Connection;
++ typedef boost::signals2::scoped_connection Connection;
+ Connection connectPropChanged;
+
+ std::unique_ptr<Observer> observer;
+--- src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp
+@@ -183,7 +183,6 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimi
+
+ 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());
+--- src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h.orig 2018-04-06 08:48:37 UTC
++++ 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
+ {
+--- src/Mod/PartDesign/Gui/TaskTransformedMessages.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/PartDesign/Gui/TaskTransformedMessages.h
+@@ -25,10 +25,10 @@
+ #define GUI_TASKVIEW_TaskTransformedMessages_H
+
+ #include <Gui/TaskView/TaskView.h>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ class Ui_TaskTransformedMessages;
+-typedef boost::signals::connection Connection;
++typedef boost::signals2::connection Connection;
+
+ namespace App {
+ class Property;
+--- src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp
+@@ -76,7 +76,6 @@ TaskTransformedParameters::TaskTransformedParameters(V
+ if (TransformedView) {
+ Gui::Document* doc = TransformedView->getDocument();
+ this->attachDocument(doc);
+- this->enableNotifications(DocumentObserver::Delete);
+ }
+ }
+
+--- src/Mod/PartDesign/Gui/ViewProviderBody.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/PartDesign/Gui/ViewProviderBody.h
+@@ -96,8 +96,8 @@ class PartDesignGuiExport ViewProviderBody : public Pa
+ private:
+ static const char* BodyModeEnum[];
+
+- boost::signals::connection connectChangedObjectApp;
+- boost::signals::connection connectChangedObjectGui;
++ boost::signals2::connection connectChangedObjectApp;
++ boost::signals2::connection connectChangedObjectGui;
+ };
+
+
+--- src/Mod/PartDesign/Gui/ViewProviderTransformed.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/PartDesign/Gui/ViewProviderTransformed.h
+@@ -47,7 +47,7 @@ class PartDesignGuiExport ViewProviderTransformed : pu
+ virtual bool onDelete(const std::vector<std::string> &);
+
+ /// signals if the transformation contains errors
+- boost::signal<void (QString msg)> signalDiagnosis;
++ boost::signals2::signal<void (QString msg)> signalDiagnosis;
+
+ // The feature name of the subclass
+ std::string featureName;
+--- src/Mod/PartDesign/Gui/WorkflowManager.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/PartDesign/Gui/WorkflowManager.h
+@@ -23,7 +23,7 @@
+ #ifndef WORKFLOWMANAGER_H_PB7A5GCM
+ #define WORKFLOWMANAGER_H_PB7A5GCM
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <map>
+
+ namespace App {
+@@ -98,9 +98,9 @@ class PartDesignGuiExport WorkflowManager { (private)
+ private:
+ std::map<const App::Document*, Workflow> 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;
+ };
+--- src/Mod/Part/App/PreCompiled.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Part/App/PreCompiled.h
+@@ -63,7 +63,7 @@
+ #include <map>
+
+ // Boost
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #include <boost/tuple/tuple.hpp>
+@@ -73,10 +73,10 @@
+ #include <boost/program_options.hpp>
+ //namespace po = boost::program_options;
+
+-#include <boost/filesystem/path.hpp>
+-#include <boost/filesystem/operations.hpp>
+-#include <boost/filesystem/exception.hpp>
+-
++#include <boost/filesystem/path.hpp>
++#include <boost/filesystem/operations.hpp>
++#include <boost/filesystem/exception.hpp>
++
+ #include "OpenCascadeAll.h"
+
+ #elif defined(FC_OS_WIN32)
+--- src/Mod/Part/Gui/DlgBooleanOperation.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Part/Gui/DlgBooleanOperation.h
+@@ -25,7 +25,7 @@
+
+ #include <Gui/TaskView/TaskDialog.h>
+ #include <Gui/TaskView/TaskView.h>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ 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
+ {
+--- src/Mod/Part/Gui/DlgFilletEdges.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Part/Gui/DlgFilletEdges.cpp
+@@ -43,7 +43,7 @@
+ # include <QItemSelection>
+ # include <QItemSelectionModel>
+ # include <QTimer>
+-# include <boost/signal.hpp>
++# include <boost/signals2.hpp>
+ # include <boost/bind.hpp>
+ # include <Inventor/actions/SoSearchAction.h>
+ # include <Inventor/details/SoLineDetail.h>
+@@ -206,7 +206,7 @@ namespace PartGui {
+ std::vector<int> edge_ids;
+ TopTools_IndexedMapOfShape all_edges;
+ TopTools_IndexedMapOfShape all_faces;
+- typedef boost::signals::connection Connection;
++ typedef boost::signals2::connection Connection;
+ Connection connectApplicationDeletedObject;
+ Connection connectApplicationDeletedDocument;
+
+--- src/Mod/Part/Gui/TaskAttacher.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Part/Gui/TaskAttacher.h
+@@ -131,7 +131,7 @@ private Q_SLOTS: (private)
+ Attacher::SuggestResult lastSuggestResult;
+ bool completed;
+
+- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection;
++ typedef boost::signals2::connection Connection;
+ Connection connectDelObject;
+ };
+
+--- src/Mod/Part/Gui/TaskFaceColors.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Part/Gui/TaskFaceColors.cpp
+@@ -43,7 +43,7 @@
+ # include <Inventor/nodes/SoSeparator.h>
+ #endif
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #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;
+--- src/Mod/Sandbox/App/DocumentProtector.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Sandbox/App/DocumentProtector.h
+@@ -25,7 +25,6 @@
+ #define SANDBOX_DOCUMENTPROTECTOR_H
+
+ #include <string>
+-#include <boost/signals.hpp>
+ #include <boost/bind.hpp>
+ #include <App/DocumentObserver.h>
+
+@@ -49,9 +48,9 @@ class SandboxAppExport DocumentProtector : public App:
+ 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 @@ class Callable : public AbstractCallable (public)
+
+ virtual void operator()() const
+ {
+- T* v = static_cast<T*>(obj);
+- (v->*method)();
++ T* v = static_cast<T*>(obj);
++ (v->*method)();
+ }
+
+ private:
+@@ -101,8 +100,8 @@ class CallableWithArgs : public AbstractCallable (pub
+
+ virtual void operator()() const
+ {
+- T* v = static_cast<T*>(obj);
+- (v->*method)(arg);
++ T* v = static_cast<T*>(obj);
++ (v->*method)(arg);
+ }
+
+ private:
+@@ -122,7 +121,7 @@ class SandboxAppExport DocumentObjectProtector (publi
+ void purgeTouched();
+
+ private:
+- void validate();
++ void validate();
+
+ private:
+ App::DocumentObject* obj;
+--- src/Mod/Sketcher/App/PropertyConstraintList.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Sketcher/App/PropertyConstraintList.h
+@@ -32,7 +32,7 @@
+ #include <App/Property.h>
+ #include <Mod/Part/App/Geometry.h>
+ #include "Constraint.h"
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <boost/unordered/unordered_map.hpp>
+
+ namespace Base {
+@@ -129,8 +129,8 @@ class SketcherExport PropertyConstraintList : public A
+
+ typedef std::pair<int, const Constraint*> ConstraintInfo ;
+
+- boost::signal<void (const std::map<App::ObjectIdentifier, App::ObjectIdentifier> &)> signalConstraintsRenamed;
+- boost::signal<void (const std::set<App::ObjectIdentifier> &)> signalConstraintsRemoved;
++ boost::signals2::signal<void (const std::map<App::ObjectIdentifier, App::ObjectIdentifier> &)> signalConstraintsRenamed;
++ boost::signals2::signal<void (const std::set<App::ObjectIdentifier> &)> signalConstraintsRemoved;
+
+ static std::string getConstraintName(const std::string &name, int i);
+
+--- src/Mod/Sketcher/App/SketchObject.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Sketcher/App/SketchObject.h
+@@ -23,7 +23,7 @@
+ #ifndef SKETCHER_SKETCHOBJECT_H
+ #define SKETCHER_SKETCHOBJECT_H
+
+-#include <boost/signals/connection.hpp>
++#include <boost/signals2/connection.hpp>
+ #include <App/PropertyStandard.h>
+ #include <App/PropertyFile.h>
+ #include <App/FeaturePython.h>
+@@ -397,8 +397,8 @@ class SketcherExport SketchObject : public Part::Part2
+ std::vector<int> lastConflicting;
+ std::vector<int> 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);
+ };
+--- src/Mod/Sketcher/Gui/TaskDlgEditSketch.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Sketcher/Gui/TaskDlgEditSketch.h
+@@ -32,9 +32,9 @@
+ #include "TaskSketcherGeneral.h"
+ #include "TaskSketcherMessages.h"
+ #include "TaskSketcherSolverAdvanced.h"
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+-typedef boost::signals::connection Connection;
++typedef boost::signals2::connection Connection;
+
+ namespace SketcherGui {
+
+--- src/Mod/Sketcher/Gui/TaskSketcherConstrains.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Sketcher/Gui/TaskSketcherConstrains.h
+@@ -26,7 +26,7 @@
+
+ #include <Gui/TaskView/TaskView.h>
+ #include <Gui/Selection.h>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <QListWidget>
+
+ 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:
+--- src/Mod/Sketcher/Gui/TaskSketcherElements.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Sketcher/Gui/TaskSketcherElements.h
+@@ -26,7 +26,7 @@
+
+ #include <Gui/TaskView/TaskView.h>
+ #include <Gui/Selection.h>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <QListWidget>
+
+ namespace App {
+@@ -115,7 +115,7 @@ public Q_SLOTS: (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:
+--- src/Mod/Sketcher/Gui/TaskSketcherMessages.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Sketcher/Gui/TaskSketcherMessages.h
+@@ -26,10 +26,10 @@
+
+ #include <Gui/TaskView/TaskView.h>
+ #include <Gui/Selection.h>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ class Ui_TaskSketcherMessages;
+-typedef boost::signals::connection Connection;
++typedef boost::signals2::connection Connection;
+
+ namespace App {
+ class Property;
+--- src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.h
+@@ -26,7 +26,6 @@
+
+ #include <Gui/TaskView/TaskView.h>
+ #include <Gui/Selection.h>
+-#include <boost/signals.hpp>
+
+ class Ui_TaskSketcherSolverAdvanced;
+
+--- src/Mod/Sketcher/Gui/ViewProviderSketch.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Sketcher/Gui/ViewProviderSketch.h
+@@ -33,11 +33,10 @@
+ #include <Gui/Selection.h>
+ #include <Gui/GLPainter.h>
+ #include <App/Part.h>
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+ #include <QCoreApplication>
+ #include <Gui/Document.h>
+
+-#include <boost/signals.hpp>
+
+ class TopoDS_Shape;
+ class TopoDS_Face;
+@@ -234,13 +233,13 @@ class SketcherGuiExport ViewProviderSketch : public Pa
+ friend struct ::EditData;
+
+ /// signals if the constraints list has changed
+- boost::signal<void ()> signalConstraintsChanged;
++ boost::signals2::signal<void ()> signalConstraintsChanged;
+ /// signals if the sketch has been set up
+- boost::signal<void (QString msg)> signalSetUp;
++ boost::signals2::signal<void (QString msg)> signalSetUp;
+ /// signals if the sketch has been solved
+- boost::signal<void (QString msg)> signalSolved;
++ boost::signals2::signal<void (QString msg)> signalSolved;
+ /// signals if the elements list has changed
+- boost::signal<void ()> signalElementsChanged;
++ boost::signals2::signal<void ()> signalElementsChanged;
+
+ protected:
+ virtual bool setEdit(int ModNum);
+@@ -269,8 +268,8 @@ class SketcherGuiExport ViewProviderSketch : public Pa
+ 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*/
+--- src/Mod/Spreadsheet/App/Sheet.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Spreadsheet/App/Sheet.h
+@@ -170,13 +170,13 @@ class SpreadsheetExport Sheet : public App::DocumentOb
+
+ // Signals
+
+- boost::signal<void (App::CellAddress)> cellUpdated;
++ boost::signals2::signal<void (App::CellAddress)> cellUpdated;
+
+- boost::signal<void (App::CellAddress)> cellSpanChanged;
++ boost::signals2::signal<void (App::CellAddress)> cellSpanChanged;
+
+- boost::signal<void (int, int)> columnWidthChanged;
++ boost::signals2::signal<void (int, int)> columnWidthChanged;
+
+- boost::signal<void (int, int)> rowHeightChanged;
++ boost::signals2::signal<void (int, int)> rowHeightChanged;
+
+ /** @name Access properties */
+ //@{
+@@ -296,8 +296,8 @@ class SpreadsheetExport Sheet : public App::DocumentOb
+ typedef std::map<std::string, SheetObserver* > 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;
+
+--- src/Mod/Spreadsheet/Gui/SheetModel.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Spreadsheet/Gui/SheetModel.h
+@@ -24,7 +24,7 @@
+ #define SHEETMODEL_H
+
+ #include <QAbstractTableModel>
+-#include <boost/signals/connection.hpp>
++#include <boost/signals2/connection.hpp>
+ #include <Mod/Spreadsheet/App/Utils.h>
+ #include <App/Range.h>
+
+@@ -52,7 +52,7 @@ class SheetModel : public QAbstractTableModel (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;
+--- src/Mod/Spreadsheet/Gui/SheetTableView.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Spreadsheet/Gui/SheetTableView.h
+@@ -26,7 +26,7 @@
+ #include <QTableView>
+ #include <QHeaderView>
+ #include <QKeyEvent>
+-#include <boost/signals/connection.hpp>
++#include <boost/signals2/connection.hpp>
+ #include <Mod/Spreadsheet/App/Sheet.h>
+ #include <Mod/Spreadsheet/App/Utils.h>
+
+@@ -74,7 +74,7 @@ protected Q_SLOTS: (protected)
+ QModelIndex currentEditIndex;
+ Spreadsheet::Sheet * sheet;
+
+- boost::BOOST_SIGNALS_NAMESPACE::scoped_connection cellSpanChangedConnection;
++ boost::signals2::scoped_connection cellSpanChangedConnection;
+ };
+
+ }
+--- src/Mod/Spreadsheet/Gui/SpreadsheetView.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/Spreadsheet/Gui/SpreadsheetView.h
+@@ -98,9 +98,9 @@ protected Q_SLOTS: (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<int, int> newColumnSizes;
+ QMap<int, int> newRowSizes;
+--- src/Mod/TechDraw/App/DrawPage.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/TechDraw/App/DrawPage.h
+@@ -24,7 +24,7 @@
+ #ifndef _DrawPage_h_
+ #define _DrawPage_h_
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ #include <App/DocumentObject.h>
+ #include <App/DocumentObjectGroup.h>
+@@ -59,7 +59,7 @@ class TechDrawExport DrawPage: public App::DocumentObj
+ int addView(App::DocumentObject *docObj);
+ int removeView(App::DocumentObject* docObj);
+ short mustExecute() const;
+- boost::signal<void (const DrawPage*)> signalGuiPaint;
++ boost::signals2::signal<void (const DrawPage*)> signalGuiPaint;
+
+ /// returns the type name of the ViewProvider
+ virtual const char* getViewProviderName(void) const {
+--- src/Mod/TechDraw/App/DrawView.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/TechDraw/App/DrawView.h
+@@ -23,7 +23,7 @@
+ #ifndef _DrawView_h_
+ #define _DrawView_h_
+
+-#include <boost/signals.hpp>
++#include <boost/signals2.hpp>
+
+ #include <QRectF>
+
+@@ -85,7 +85,7 @@ class TechDrawExport DrawView : public App::DocumentOb
+ virtual bool checkFit(DrawPage*) const;
+ virtual void setPosition(double x, double y);
+ bool keepUpdated(void);
+- boost::signal<void (const DrawView*)> signalGuiPaint;
++ boost::signals2::signal<void (const DrawView*)> signalGuiPaint;
+ virtual double getScale(void) const;
+ void checkScale(void);
+ void requestPaint(void);
+--- src/Mod/TechDraw/Gui/MDIViewPage.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/TechDraw/Gui/MDIViewPage.cpp
+@@ -38,7 +38,7 @@
+ #include <QPrinter>
+ #include <QPrintDialog>
+ #include <QPrintPreviewDialog>
+- #include <boost/signal.hpp>
++ #include <boost/signals2.hpp>
+ #include <boost/bind.hpp>
+
+ #endif // #ifndef _PreComp_
+--- src/Mod/TechDraw/Gui/MDIViewPage.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/TechDraw/Gui/MDIViewPage.h
+@@ -118,7 +118,7 @@ public Q_SLOTS: (protected)
+
+ void onDeleteObject(const App::DocumentObject& obj);
+
+- typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection;
++ typedef boost::signals2::connection Connection;
+ Connection connectDeletedObject;
+
+ private:
+--- src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp
+@@ -25,7 +25,6 @@
+ #include "PreCompiled.h"
+
+ #ifndef _PreComp_
+-#include <boost/signal.hpp>
+ #include <boost/bind.hpp>
+
+ #endif
+--- src/Mod/TechDraw/Gui/ViewProviderDrawingView.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/TechDraw/Gui/ViewProviderDrawingView.h
+@@ -78,7 +78,7 @@ class TechDrawGuiExport ViewProviderDrawingView : publ
+ 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;
+
+
+--- src/Mod/TechDraw/Gui/ViewProviderPage.cpp.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/TechDraw/Gui/ViewProviderPage.cpp
+@@ -29,7 +29,6 @@
+ # include <QMenu>
+ # include <QTimer>
+ #include <QPointer>
+-#include <boost/signal.hpp>
+ #include <boost/bind.hpp>
+
+ #endif
+--- src/Mod/TechDraw/Gui/ViewProviderPage.h.orig 2018-04-06 08:48:37 UTC
++++ src/Mod/TechDraw/Gui/ViewProviderPage.h
+@@ -81,7 +81,7 @@ class TechDrawGuiExport ViewProviderPage : public Gui:
+
+ 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);