Commit Graph

369 Commits

Author SHA1 Message Date
Bruce Lacey
131ce6834a Exit with non-zero status when unit tests fail.
1.  Enhanced TestApp.py to return the unittest TestResult object to the calling method
2.  FreeCADTest.py now checks the TestResult object.  If all tests pass, FreeCADTest.py exits with a 0 however if any tests fail, then it exits with 1.  FreeCADTest.py calls os._exit() with the exit code instead of sys.exit() because Base::Interpreter:SystemExitException intercepts sys.exit() calls and swallows the exit code so there is no way to propogate the non-zero code from the python test cases through the interpreter to the shell in the current call stack.
2016-03-09 21:57:57 -08:00
wmayer
ff5e147f5e + terminate xerces at program exit 2016-03-09 15:52:42 +01:00
Eivind Kvedalen
0458ba6561 Expressions: Added code to throw under/overflow exceptions. 2016-03-08 16:09:29 +01:00
Eivind Kvedalen
4eb3af633f Expressions: ints should be 64 bit. 2016-03-08 16:09:28 +01:00
Eivind Kvedalen
59e3bad558 Expressions: Use BooleanExpression class for EQ, NE, LT, GT, LTE, and GTE operators. 2016-03-08 16:09:27 +01:00
Eivind Kvedalen
778abe9072 Expressions: Added App::BooleanExpression class. 2016-03-08 16:09:27 +01:00
Eivind Kvedalen
e063c25b69 Expressions: Turned off debug output/tracing for expression parser. 2016-03-08 16:09:26 +01:00
wmayer
d3a5c55f57 + bug fix similar to idea of pull request 111 2016-03-07 15:12:00 +01:00
wmayer
c15da7f463 + dynamically hide/show and enable/disable item in property editor 2016-03-05 13:13:23 +01:00
wmayer
d962fda983 + removed unneeded pure virtual method getFaces from PropertyComplexGeoData
+ extend interface of ComplexGeoData::getPoints to also return normals if available
2016-03-04 17:16:57 +01:00
wmayer
ab0aaa4cb4 + fix some weirdness in Application class 2016-02-24 21:04:47 +01:00
Eivind Kvedalen
36426ef255 PropertyExpressionEngine: Fixed warning. 2016-02-18 16:54:45 +01:00
Eivind Kvedalen
dcc3c6b27b Expression class: Improved error message when resolving a variable fails. 2016-02-18 16:54:44 +01:00
Eivind Kvedalen
90b4cf70ae PropertExpressionEngine: Ignore dependencies that does not resolve to a document when verifying expressions. 2016-02-18 16:54:44 +01:00
Eivind Kvedalen
882d5423cd PropertyExpressionEngine: Fixed bug in Copy and Paste (make deep copies of the expressions). 2016-02-18 16:54:43 +01:00
Eivind Kvedalen
452650440b PropertyExpressionEngine: Refactored and moved visitor code to separate file. 2016-02-18 16:54:41 +01:00
Eivind Kvedalen
fa8b7bfb45 Expression: Added ExpressionModifier class, used as base class for visitors that may modify its expressions. 2016-02-18 16:54:41 +01:00
Eivind Kvedalen
ae73a9313b ObjectIdentifier: Reworked resolve() function to solve issue #2389 and #2418.
* Refactored code; moved mutable fields into a separate inner class.
* Added resolvedProperty to ResolveResults class.
* Set resolved document name, even if it does not resolve correctly, so we can give a better error message later.
* If the document name is explicitly set, and it does not resolve, don't try any further.
* If document name is set, use that instead of the ObjectIdentifier's owner when looking up the document object.
2016-02-18 16:54:39 +01:00
Yorik van Havre
423af68e5a Allow to use an encoded doc string in FeaturePython::addProperty 2016-02-12 20:47:11 -02:00
Yorik van Havre
8315fc8727 Made PropertyFloatList accept ints too - fixes #2444 2016-02-09 16:01:10 -02:00
wmayer
dd06ab9912 + suppress warnings when copying an object 2016-02-09 16:01:23 +01:00
wmayer
c775de52f0 Revert "ObjectIdentifier: Issue #2389: Needs to set documentNameSet and documentObjectNameSet to true to resolve properly."
This reverts commit 670eaf04a6.
2016-01-26 20:58:28 +01:00
wmayer
d6b77ec214 + raise a TypeError instead of a standard exception in ObjectIdentifier 2016-01-26 12:49:15 +01:00
Eivind Kvedalen
4ea2f7cb46 ObjectIdentifier: Issue #2389: Needs to set documentNameSet and documentObjectNameSet to true to resolve properly. 2016-01-26 11:58:12 +01:00
Eivind Kvedalen
3752181621 VariableExpression: Add converters for long and bool data types. 2016-01-26 11:49:50 +01:00
Eivind Kvedalen
580dab840c ObjectIdentifier: Issue #2407: Fixed resolution of DocumentObject, to differentiate better between internal name and Label. 2016-01-26 11:25:58 +01:00
wmayer
70dd142ef5 + fix error message in PropertyFileIncluded::setPyObject 2016-01-25 21:45:14 +01:00
wmayer
a71ad6c3be + fix exception text in PropertyFileIncluded 2016-01-24 21:06:02 +01:00
wmayer
047cf5cd9c + make code more readable 2016-01-21 16:07:07 +01:00
Abdullah Tahiri
6278aedcdc Bug fix: Add System-wide Macro dir to python path
=================================================

Self explanatory, so that macros in system-wide location can import modules therein.
2016-01-11 19:25:18 +01:00
Abdullah Tahiri
2c884ab5f5 Gui Enhancement: Support for macros in AppUserHome/Macro
=====================================================

What?
It was suggested that the macros should be moved to AppUserHome/Macro
http://forum.freecadweb.org/viewtopic.php?f=10&t=13433

Solution:
The solution is backwards compatible in the sense that if you have a running
configuration, updating should not change anything.

For new installations the macro directory will default to AppUserHome/Macro. However
this would break all the installation scripts (probably also ME's plugin manager).

Conflicts:
	src/Mod/Path/Gui/AppPathGuiPy.cpp
2016-01-11 19:24:22 +01:00
wmayer
7ee54c10aa + PrintError is not part of FreeCAD but FreeCAD.Console 2016-01-09 21:21:17 +01:00
Eivind Kvedalen
c2d5b0ad91 Issue #2389: ObjectIdentifiers constructed from a property sometimes do not
resolve correctly, because the resolver may fail if a different document
objects has a Label equal to the property's document object's identifier.
2016-01-08 23:09:00 +01:00
Eivind Kvedalen
fd9ceeae43 ObjectIdentifier: Resolve document name on both identifier and Label. 2016-01-08 23:09:00 +01:00
Eivind Kvedalen
34d9d86925 ObjectIdentifier::resolve() should set documentName to internal name, not the Label property. 2016-01-08 23:09:00 +01:00
Eivind Kvedalen
495b23209c Document/PropertyExpressionEngine: Added onDocumentRestored function, to update internals of PropertyExpressionEngine after loading a document from disk. 2016-01-08 23:08:55 +01:00
Eivind Kvedalen
b6d5c668b0 App: Added template<class P> class AtomicPropertyChangeInterface. 2016-01-08 23:08:39 +01:00
wmayer
a83e09d6e2 + expose onDocumentRestored to Python feature classes 2016-01-05 19:05:48 +01:00
Mateusz Skowroński
c275b35d48 QString::fromAscii() is obsolete in Qt5. Replace it with fromLatin1().
This change is Qt4/Qt5 neutral.
2016-01-05 16:07:25 +01:00
Mateusz Skowroński
0695552cff QString::toAscii() is obsolete in Qt5. Replace it with toLatin1().
This change is Qt4/Qt5 neutral.
2016-01-05 16:06:48 +01:00
wmayer
750897c20e + introduce proper enum for property status to replace plain integers 2016-01-01 15:36:24 +01:00
wmayer
ee0698af9a + add template class to add feature types with dynamic properties but without extended Python binding 2015-12-31 15:34:24 +01:00
wmayer
e1b8c515c4 + add overloaded addObject() method to Document class to add existing DocumentObject 2015-12-31 15:32:47 +01:00
wmayer
991394dc76 + improve exception handling in initialization scripts 2015-12-29 23:42:29 +01:00
wmayer
1dfc3ed4e8 + handle exceptions when restoring dynamic properties 2015-12-21 18:24:12 +01:00
Eivind Kvedalen
72bb18a53f PropertyExpressionEngine/DocumentObject: Track object deletes and update dependencies accordingly. 2015-12-21 14:11:13 +01:00
Eivind Kvedalen
9d1c1ba0e1 PropertyExpressionEngine::slotObjectRenamed(...): return immediately if the property's owner is not part of an object (e.g on the undo stack). 2015-12-21 14:11:13 +01:00
Eivind Kvedalen
48de598f82 PropertyExpressionEngine::slotObjectRenamed(...): only change the object if it is absolutely necessary,
or else the object will in most cases be touched, leading to unnecessary recomputes.
2015-12-21 14:11:12 +01:00
Eivind Kvedalen
ca0c9de886 Expression/ObjectIdentifier: changed return type of renameDocumentObject and renameDocument,
to be able to signal that a rename actually took place.
2015-12-21 14:11:12 +01:00
Eivind Kvedalen
58727037ef DocumentObject: Don't emit signal if Label hasn't actually changed. 2015-12-21 14:11:11 +01:00