Commit Graph

377 Commits

Author SHA1 Message Date
Eivind Kvedalen
8f511322bc Expressions: Moved Expression::priority to cpp file. 2016-04-02 12:01:04 +02:00
Eivind Kvedalen
aa8b035842 Expressions: Refactored aggregate functions. 2016-04-02 12:01:04 +02:00
Eivind Kvedalen
b5e44436f1 Expressions: Added support for aggregate functions and ranges. 2016-04-02 12:01:04 +02:00
Eivind Kvedalen
ca74154619 PropertyPlacement: Convert x, y, z values to Quantities when using them in expressions. 2016-04-02 12:01:04 +02:00
Yorik van Havre
178505a00a Document.openTransaction() now accepts unicode 2016-03-22 12:20:58 -03:00
Bruce Lacey
3ecccd36b9 FreeCADTest.py invokes sys.exit() instead of the more aggressive os._exit()
With the ability to now pass the <exitCode> from sys.exit() up the
call stack to the shell, FreeCADTest.py should use sys.exit() instead
of the more aggressive os._exit() method that does not allow for
post-exception cleanup.
2016-03-21 18:28:46 +01:00
Eivind Kvedalen
d68b72e523 Expressions: Changed precedence of ?, :, EQ, NEQ, LT, GT, GTE, and LTE. 2016-03-15 18:28:23 +01:00
Lorenz Hüdepohl
d0e50f8216 Add lib64 to python path
On certain distributions the library directories are called "lib64" on
amd64 machines
2016-03-13 01:18:18 +01:00
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