From 9b0e3818b0ea6c99ac02d99185a6a7d1e6998fd3 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 25 Jan 2012 16:04:21 +0000 Subject: [PATCH 1/2] + fix VCS stuff for cmake git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5426 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d --- src/Build/CMakeLists.txt | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/Build/CMakeLists.txt b/src/Build/CMakeLists.txt index a75f881e2..0be8d4204 100644 --- a/src/Build/CMakeLists.txt +++ b/src/Build/CMakeLists.txt @@ -18,16 +18,20 @@ if (WIN32) # TortoiseSVN FIND_PROGRAM(Subversion_WCREF_EXECUTABLE SubWCRev) + SET (RESULT 1) if(Subversion_WCREF_EXECUTABLE) EXECUTE_PROCESS(COMMAND ${Subversion_WCREF_EXECUTABLE} ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/Version.h.in ${CMAKE_CURRENT_BINARY_DIR}/Version.h + RESULT_VARIABLE RESULT OUTPUT_STRIP_TRAILING_WHITESPACE) - else(Subversion_WCREF_EXECUTABLE) + endif(Subversion_WCREF_EXECUTABLE) + # No SVN repo + if (NOT RESULT EQUAL 0) EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/Tools/SubWCRev.py --srcdir=${CMAKE_SOURCE_DIR} --bindir=${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_STRIP_TRAILING_WHITESPACE) - endif(Subversion_WCREF_EXECUTABLE) + endif(NOT RESULT EQUAL 0) else (WIN32) EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/Tools/SubWCRev.py --srcdir=${CMAKE_SOURCE_DIR} --bindir=${CMAKE_BINARY_DIR} @@ -37,16 +41,6 @@ endif (WIN32) # as fallback if Version.h isn't created for any reason if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Version.h) - file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/Version.h - "/// Version Number\n" - "#define FCVersionMajor \"0\"\n" - "#define FCVersionMinor \"11\"\n" - "#define FCVersionName \"Dagoba\"\n" - "\n" - "#define FCRevision \"unknown\"\n" - "#define FCRevisionDate \"unknown\"\n" - "#define FCRevisionRange \"unknown\"\n" - "#define FCRepositoryURL \"https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk\"\n" - "#define FCCurrentDateT \"unknown\"\n" - ) + file(READ ${CMAKE_CURRENT_SOURCE_DIR}/Version.h.in VERSION_INFO) + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/Version.h ${VERSION_INFO}) endif (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Version.h) From 0b044ffd9146ad8bba6a015611f33164fe65a466 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 27 Jan 2012 10:53:51 +0000 Subject: [PATCH 2/2] 0000581: crash when editing duplicated sketch git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5427 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d --- src/App/Document.cpp | 1 + src/App/DocumentObject.h | 2 ++ src/Mod/Sketcher/App/SketchObject.cpp | 7 +++++++ src/Mod/Sketcher/App/SketchObject.h | 1 + 4 files changed, 11 insertions(+) diff --git a/src/App/Document.cpp b/src/App/Document.cpp index d70734bfa..1b9879ee6 100644 --- a/src/App/Document.cpp +++ b/src/App/Document.cpp @@ -1529,6 +1529,7 @@ DocumentObject* Document::_copyObject(DocumentObject* obj, std::maponFinishDuplicating(); copy->purgeTouched(); return copy; } diff --git a/src/App/DocumentObject.h b/src/App/DocumentObject.h index 48c3f6751..70a91ffe1 100644 --- a/src/App/DocumentObject.h +++ b/src/App/DocumentObject.h @@ -181,6 +181,8 @@ protected: virtual void onChanged(const Property* prop); /// get called after a document has been fully restored virtual void onDocumentRestored() {} + /// get called after duplicating an object + virtual void onFinishDuplicating() {} /// python object of this class and all descendend protected: // attributes diff --git a/src/Mod/Sketcher/App/SketchObject.cpp b/src/Mod/Sketcher/App/SketchObject.cpp index 330ff5ca6..95aa455a7 100644 --- a/src/Mod/Sketcher/App/SketchObject.cpp +++ b/src/Mod/Sketcher/App/SketchObject.cpp @@ -1441,6 +1441,13 @@ void SketchObject::onDocumentRestored() } } +void SketchObject::onFinishDuplicating() +{ + Constraints.acceptGeometry(getCompleteGeometry()); + rebuildVertexIndex(); + onDocumentRestored(); +} + void SketchObject::getGeoVertexIndex(int VertexId, int &GeoId, PointPos &PosId) { if (VertexId < 0 || VertexId >= int(VertexId2GeoId.size())) { diff --git a/src/Mod/Sketcher/App/SketchObject.h b/src/Mod/Sketcher/App/SketchObject.h index eef799bf7..83802d83a 100644 --- a/src/Mod/Sketcher/App/SketchObject.h +++ b/src/Mod/Sketcher/App/SketchObject.h @@ -152,6 +152,7 @@ protected: /// get called by the container when a property has changed virtual void onChanged(const App::Property* /*prop*/); virtual void onDocumentRestored(); + virtual void onFinishDuplicating(); private: std::vector ExternalGeo;