Commit Graph

10586 Commits

Author SHA1 Message Date
WandererFan
d8eec8c7e1 Fix #1937 mis-shapen projections in TechDraw and Drawing
Complex curves need more bezier segments for accurate representation.
2017-05-30 15:44:38 +02:00
wmayer
c4cb4518ba replace hard-coded values with enum values 2017-05-30 15:21:23 +02:00
wmayer
397539aed2 set Restore flag also for copy&paste operation 2017-05-30 14:16:29 +02:00
Abdullah Tahiri
7aa6ae828d minimal improvement of Document documentation 2017-05-30 13:01:45 +02:00
Abdullah Tahiri
b4e942c08b Checking for Document Restoring when extension has a null property
==================================================================

The problem:

OriginGroupExtension::OriginGroupExtension () {

    initExtensionType(OriginGroupExtension::getExtensionClassTypeId());

    EXTENSION_ADD_PROPERTY_TYPE ( Origin, (0), 0, App::Prop_Hidden, "Origin linked to the group" );
}

initializes the Origin property to null.

Then Document::Restore => readObjects => addObject => slotNewObject => ViewProviderDocumentObject::updateView => ViewProviderBody::updateData => ViewProviderGeometryObject::updateData =>
ViewProviderDocumentObject::updateData => ViewProvider::updateData => ViewProviderOriginGroupExtension::extensionUpdateData => updateOriginSize() => OriginGroupExtension::getOrigin,

the latter throws an exception because the origin property is null.

Afterwards, the origin property is initialized during Document::Restore => readObjects => ExtensionContainer::Restore() => PropertyContainer::Restore() => App::PropertyLink::Restore()
=> App::PropertyLink::setValue() => Property::hasSetValue, which triggers an onChange: Body::onChanged => BodyBase::onChanged => Feature::onChanged => DocumentObject::onChanged =>
Document::onChangedProperty => Document::slotChangedObject => ViewProviderOriginGroupExtension::slotChangedObjectGui => ViewProviderOriginGroupExtension::updateOriginSize =>
OriginGroupExtension::getOrigin,

now, the latter that is the same that was throwing the exception and generating the error message above, does not throw anymore because Origin has been initialized.

When creating a new object, isNew==true; whereas when loading a file, isNew==false. Therefore, when loading a file setupObject is not executed. SetupObject, effectively initializes
the extension via: Body::setupObject => DocumentObject::setupObject => OriginGroupExtension::onExtendedSetupObject.

DocumentObject * Document::addObject(const char* sType, const char* pObjectName, bool isNew)
{
    [more code here]
    // Call the object-specific initialization
    if (!d->undoing && !d->rollback && isNew) {
        pcObject->setupObject ();
    }
    [more code here]

As DocumentObject code is generic for all objects (workbenches), by design it was chosen to initialize the object only if new. Therefore a object or an extension of a object being restored,
between the addition (addObject) and the restoring of the properties, must by design expect it not to be initialized.

The solution:

Making use of the Restore flag at document level (the one at object level is not sufficient), no exception regarding the null property is reported during document restoring.

Ticket:
https://freecadweb.org/tracker/view.php?id=2530

fixes #2530
2017-05-30 13:01:45 +02:00
Abdullah Tahiri
7b110e06d8 App:Document new status bit to mark Restoring 2017-05-30 13:01:45 +02:00
Yorik van Havre
b229abb127 Arch Fixed wrong direction of preset structures 2017-05-29 18:02:36 -03:00
Yorik van Havre
28f315f4f6 Draft: First version of Draft Label object 2017-05-29 16:57:25 -03:00
wmayer
86e328a248 check for valid vertexes when measuring angles between two edges 2017-05-29 20:49:35 +02:00
wmayer
a863938aa8 handle OCC exception when accessing point of a vertex 2017-05-29 20:36:06 +02:00
Kurt Kremitzki
3c85146c18 Invert test case 2017-05-29 12:59:00 -03:00
Kurt Kremitzki
ad6ba53577 Add PartDesignMirrored test 2017-05-29 12:59:00 -03:00
Kurt Kremitzki
36d4012b1e Change TestPartDesignApp to spaces and unix line endings 2017-05-29 12:59:00 -03:00
Kurt Kremitzki
c85de2dba1 Add PartDesignMirrored test 2017-05-29 12:59:00 -03:00
Kurt Kremitzki
c4a0d748ed Change TestPartDesignApp to spaces and unix line endings 2017-05-29 12:59:00 -03:00
wmayer
e694d7f90d properly raise exception in TopoShapePy::check 2017-05-29 16:52:44 +02:00
Yorik van Havre
0bead2c1d4 Arch: Small fix in site creation 2017-05-28 19:49:32 -03:00
Yorik van Havre
2a59e2ec67 Using PropertyFont in Arch, Draft 2017-05-27 22:55:56 -03:00
Bernd Hahnebach
0a387ea8e9 Test: add a def to run all test case clases from a test module 2017-05-27 20:38:50 -03:00
Chris Johnson
e8290f95c5 Fix for CMake failure from empty Homebrew Python site-packages
CMake Error at src/MacAppBundle/CMakeLists.txt:25 (string):
      string sub-command STRIP requires two arguments.
2017-05-27 20:34:19 -03:00
Amritpal Singh
ddfd793bb3 added PlacementList property for the Rebar object 2017-05-27 20:02:40 -03:00
looooo
433bf1947f py3: CXX: remaining diff:
win: exernalize missing CXX-functions
define PYCXX_PYTHON_2TO3
2017-05-27 20:00:57 -03:00
Bernd Hahnebach
b0986504d7 FEM: group meshing, add some checks and output to catch some problems 2017-05-27 19:57:28 -03:00
Bernd Hahnebach
831e69cfd1 FEM: code formating, change tabs in spaces 2017-05-27 19:57:28 -03:00
Bernd Hahnebach
9e697e593a FEM: Fenics meshes, flake8 2017-05-27 19:57:28 -03:00
joha2
9edcbe2dd5 FEM: Fenics meshes, add support for xdmf format, some more improvements 2017-05-27 19:57:28 -03:00
Bernd Hahnebach
62a823854f FEM: constraint pressure, add support for shell meshes if they have group data 2017-05-27 19:57:28 -03:00
Bernd Hahnebach
1ef1ff52db FEM: ccx writer and mesh tools, fix bug in mesh group search 2017-05-27 19:57:28 -03:00
Bernd Hahnebach
fbc2ffad6b FEM: unittest, move mesh creation at end of test object creation 2017-05-27 19:57:27 -03:00
Bernd Hahnebach
d5731d3147 FEM: unittest, get rid of not useful self. 2017-05-27 19:57:27 -03:00
Bernd Hahnebach
31966c577c FEM: unittest, move all CCX analysis tests in one test case class 2017-05-27 19:57:27 -03:00
Bernd Hahnebach
3392b7268e FEM: unittest, get rid of duplicates and move them to helpers 2017-05-27 19:57:27 -03:00
Bernd Hahnebach
2fbe2d715f FEM: unittest, move unv test out of analysis test case 2017-05-27 19:57:27 -03:00
Bernd Hahnebach
3029f85008 FEM: unittest, update result files and FreeCAD files 2017-05-27 19:57:27 -03:00
Sabin Iacob
02e0278e45 Path: use the actual values instead of absolute values when calculating distance 2017-05-27 19:52:21 -03:00
Sabin Iacob
4778d59bfa Path: add zmax to the job weight so we drill the holes that are closer to the surface first 2017-05-27 19:52:21 -03:00
Sabin Iacob
f0ac7ad884 Path: re-add the fix from https://github.com/FreeCAD/FreeCAD/pull/725 2017-05-27 19:52:21 -03:00
Sabin Iacob
f4139b43d0 Path: make PathUtil.sort_jobs more generic, allow tuning job weights 2017-05-27 19:52:21 -03:00
Simon
f1bd61b94a Fix incomplete creation of an SVG path from edges.
* Observed bug: If an ArchWindow has two opening symbols (i.e. two sides
  that can be opened), only one was printed in SVG.
* In Draft.getSVG.getPath, some edges got lost in the call of
  Part.__sortEdges__. In contrast, Part.sortEdges does not skip edges. All
  edges are retained.
* With this fix, both opening symbols are rendered in Draft.getSVG.
* While it works for my test case, I suppose, Draft.getSVG.getPath is
  used in some other places as well. Thus, side effects must be checked
  by experienced people.
2017-05-27 19:49:20 -03:00
Simon
03c1497892 Add opening symbols to clones of windows
The method execute must create the sshapes and vshapes objects. They must
1. exist in the cloned (parent) object (by calling the execute function)
2. and be copied to the clone object.
Then the SVG rendering in ArchSectionPlan can find it.
2017-05-27 19:49:20 -03:00
Abdullah Tahiri
4e9c5bd4c6 fixes #0003018 2017-05-26 23:28:08 +02:00
Yorik van Havre
8f7c90e6ee AddonManager: Introduced SSL fix discussed on FreeCAD-addon issue #11 2017-05-25 10:48:17 -03:00
Yorik van Havre
47f4e8072e Arch: Fixed moving and rotating spaces 2017-05-25 10:46:52 -03:00
Yorik van Havre
de4d33cb84 Updated translations 2017-05-25 10:04:05 -03:00
Zheng, Lei
d62614d44b Path.Area: make Path.fromShapes optionally return end pos 2017-05-24 09:16:52 +08:00
Zheng, Lei
c6e9127863 Path.Area: removed LogLevel from setDefaultParams
Use App.setLogLevel('Path.Area', <level>) instead.
2017-05-24 09:16:52 +08:00
Zheng, Lei
364302d32c Path.Area: fix side effect on projection 2017-05-24 09:16:52 +08:00
Yorik van Havre
ec067c77d2 Display the number of selected elements in Selection View 2017-05-21 19:10:19 -03:00
Yorik van Havre
9179165fcd Draft: Leave all clones selected after cloning 2017-05-21 18:21:01 -03:00
looooo
2f467da92a py3: base: repair compile-fail 2017-05-21 12:35:41 +02:00