Commit Graph

1365 Commits

Author SHA1 Message Date
Chris Hennes
00ab1f7634 Core: Add additional Python bindings for Metadata 2022-02-10 15:25:07 -06:00
wmayer
a0b333ab2c App: set by default three colors for legend 2022-02-06 23:13:38 +01:00
wmayer
409d36df30 App: [skip ci] fix regression in ColorGradient/ColorField 2022-02-05 17:54:55 +01:00
wmayer
ce8df41709 App: fix ColorField::set/ColorGradient::set in case an invalid value range is passed 2022-02-05 14:13:35 +01:00
wmayer
cf268e6e6e App: fix Py3.8 warnings 2022-02-05 12:24:36 +01:00
wmayer
9c9ed2847b App: add missing pragma for GCC diagnostic 2022-02-04 22:38:26 +01:00
wmayer
e54b6e167a App: improve ColorLegend 2022-02-03 22:01:52 +01:00
wmayer
607180bd9c App: fix ColorField::set/ColorGradient::set in case an invalid value range s passed 2022-02-03 07:53:38 +01:00
wmayer
bc509c8069 App/Gui: make color bar to handle very small values 2022-02-02 21:12:59 +01:00
Chris Hennes
a0e4bb37d0 Addon Manager: Add search and display of tags 2022-01-31 15:24:40 -06:00
Uwe
71913a497f [App] fix compiler warning
warning C4305: 'argument': truncation from 'double' to 'float'
2022-01-29 19:07:03 +01:00
wmayer
ec2fc59fde App: add a function to document observer to be notified if the active document changes 2022-01-29 18:33:39 +01:00
wmayer
38321cc2e9 App: rework ColorGradient and allow to easily extend it with further color models 2022-01-29 15:29:07 +01:00
wmayer
43ffd70111 App: code cleanup of Color models 2022-01-29 11:58:05 +01:00
wmayer
2886ca0185 App: include header with export macro 2022-01-28 11:21:26 +01:00
howetuft
4b2e707018 Set App::Part Material property type to App::PropertyLink
App::Part Material property type is currently App::PropertyMap, but to
be consistent with other domains using materials (like Arch, especially), it
should rather be App::PropertyLink, in order to link to a Material
card.
2022-01-25 23:20:46 +01:00
luz paz
abf5014ac8 App: fix source comment typo
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,anormal,apoints,ba,beginn,behaviour,bloaded,bottome,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childrens,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,itsel,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oce,oder,ontop,orgin,orginx,orginy,ot,pard,parm,parms,pres,programm,que,rady,recurrance,ro,rougly,seperator,serie,sinc,strack,substraction,te,technic,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./build/doc/SourceDocu`
2022-01-22 16:28:41 +01:00
Chris Hennes
d1a94de371 Addon manager: install dependencies (#5376)
Addon Manager: Dependency Installation

The Addon Manager can now attempt to use pip directly to install
required packages as specified in either metadata.txt or
requirements.txt files provided by AddOns. The packages are installed
into FreeCAD.getUserAppDataDir()/AdditionalPythonPackages directory.
Only simplified requirements.txt data is supported: any version
information is stripped out, and only packages are supported (that is,
no pip arguments, included files, etc.). Further, packages are checked
against a list of allowed packages prior to being suggested for
installation. Addon authors should submit a PR to the FreeCAD repo
adding their requirements to the allowed list, for packages that are not
already on the list (this is a malware-prevention mechanism).
2022-01-21 10:19:21 -06:00
wmayer
31e2e95203 Base: Exception handling:
* Harmonize FreeCAD with Python exception types
* Implement AbortException::getPyExceptionType() to avoid handling it in client code
* Remove catch block for plain C strings
2022-01-19 18:00:04 +01:00
wmayer
b9280ae760 App: do not hide actual exception type in DocumentObjectPy::addProperty/DocumentObjectPy::removeProperty
and throw TypeError in DynamicProperty::addDynamicProperty() if the based type id is invalid
2022-01-19 10:48:00 +01:00
marioalexis
12883abdbe App: Prevent crash when trying to delete pointer to BaseClass 2022-01-19 08:14:41 +01:00
Aapo Lankinen
fdabaf692b [App] DocumentObject.cpp: Add more information to the error message ... (#5394)
* [App] DocumentObject.cpp: Add more information to the error message printed to the console when links go out of allowed scope, namely linked object name(s), allowed scope name, invalid scope name(s).
2022-01-19 01:14:13 +01:00
wmayer
f147986fa9 App: Bugfix for NULL-Pointer dereference of Property->getName() 2022-01-16 14:30:51 +01:00
luz paz
b0fcf45513 Fix various superfluous whitespace in *.dox files 2022-01-09 21:01:42 -06:00
wmayer
26f9e7869f App: replace three boolean of CellAddress::toString() with a bitmask of enums 2022-01-09 10:39:54 +01:00
wmayer
d3cdd29f5e App: [skip ci] fix Property::isSame() and subclasses by first comparing the pointers directly 2022-01-07 17:09:08 +01:00
luz paz
4f886b2b8c Fix various typos and refinements 2022-01-06 20:22:34 +01:00
wmayer
cc4597503f App: include FCGlobal.h for export macro 2022-01-05 20:11:16 +01:00
luz paz
dc288a7ade Fix more typos + whitespace fix and added 'TODO'
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,apoints,ba,beginn,behaviour,bloaded,bottome,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childrens,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oce,oder,ontop,orgin,orginx,orginy,ot,pard,parm,parms,pres,programm,que,rady,recurrance,rougly,seperator,serie,sinc,strack,substraction,te,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./build/doc/SourceDocu`
2022-01-04 18:57:56 -06:00
Benjamin Alterauge
bb5c3d2091 Use std::map without const 2021-12-30 17:40:45 +01:00
Benjamin Alterauge
458ae2307c Spreadsheet: Fix trouble with clang and MacOS
Since the Spreadsheet: support cell binding commit, I got trouble by building freecad. I didn't find similar reports in install/compile forum. So I will only use the old version of typedef for macos. Better solutions are welcome.

See [trouble details](68fca40983 (commitcomment-62364932))
2021-12-30 17:40:45 +01:00
luz paz
7b3c3e6ca3 App: fix doxygen typo 2021-12-30 01:09:10 +01:00
luz paz
3683740d4d Link: Fix doxygen typo 2021-12-25 20:44:55 +01:00
Zheng, Lei
4ca362df0a App: catch Base::Exception in ObjectIdentifier::getDep() 2021-12-23 15:35:22 +01:00
Zheng, Lei
afd003db78 App: fix Enumeration assignment and comparison 2021-12-21 21:41:02 -07:00
Zheng, Lei
ccf10b8867 Minor code changes according to suggestions 2021-12-21 21:41:02 -07:00
Zheng, Lei
75e639c94c App/Gui: add new ObjectStatus TouchOnColorChange
For triggering recompute on color changes
2021-12-21 21:41:02 -07:00
Zheng, Lei
b32369d185 App: insert UUID property to trace the source of copied object
A property _ObjectUUID will be added to an object before it is being to
copied, if the property does not exists. Anoter propert _SourceUUID
property will be added to any copied object, with value set to its
source objct's _ObjectUUID.
2021-12-21 21:41:02 -07:00
Zheng, Lei
f6c2688319 App: clarify documentation of PropertyContainer::getPropertyNamedList() 2021-12-21 21:41:02 -07:00
Zheng, Lei
d0b7bf1669 App: fix property status restore 2021-12-21 21:41:02 -07:00
Zheng, Lei
0029f3206d Spreadsheet: improve copy/cut/paste cells
Add color bound around user copy/cut ranges. Do not touch Spreadsheet
object when cutting, only do so when pasting.
2021-12-21 21:41:02 -07:00
Zheng, Lei
5f6b34ebad App: expose some property status bits to PropertyContainerPy 2021-12-21 21:41:02 -07:00
Zheng, Lei
99f199ad7e App: fix pending object remove on recomputing 2021-12-21 21:41:02 -07:00
Zheng, Lei
0dcea9b2e1 App: warning on invalid cell offset in Expression 2021-12-21 21:41:02 -07:00
Zheng, Lei
08cdd323b6 App: add Property::isSame() API
To compare if two property contains the same content. The default
implementation in Property uses the persistense interface to save both
properties to string and compares the content. This may not work at the
moment if the property saves content in separate file or in binary.

Various properties have cheaper implementation to direct compare their
internal values.
2021-12-21 21:41:02 -07:00
Zheng, Lei
4f29e81d0c App: support CopyOnChange property in Link
New property status bit 'CopyOnChange' is added for any document object
to publish any property as a 'Configuration' option. When Link is
linked to any object with such property, it will duplicate those
properties and added it Link itself as dynamic properties. If the user
changes any of these dynamic properties, the Link will auto copy the
linked to object and apply the new configuration to it.

The Link has a new property 'LinkCopyOnChange' to allow user to
enable/disable this feature.

Spreadsheet's 'Configuration Table' feature will publish its
configuration property with 'CopyOnChange'.

Currently, once the linked object is copied, it will be independent with
the original object. There is no mechanism to auto sync changes back to
the copy.
2021-12-21 21:41:02 -07:00
Zheng, Lei
2a3951ca32 Spreadsheet: change alias handling
No longer add dynamic property for alias, simply rely on
get(Dynamic)PropertyByName() to check for aliases.

Add new API PropertyContainer::getPropertyNamedList() so that
ExpressionCompleter can discover properties with aliases.
2021-12-21 21:41:02 -07:00
Zheng, Lei
68fca40983 Spreadsheet: support cell binding
Cell binding allows one to bind a range of cells of one sheet to another
range of cells of an arbitary sheet, including any empty cells in the
range.

The binding is implemented with PropertyExpressionEngine and
PropertySheet::setPathValue(), which binds a special path of
PropertySheet, such as

    .cells.Bind.A1.D1

to an expression, such as

     tuple(.cells, <<A2>>, <<A5>>)

The A1 and D1 in the example above specifies the binding start and end
cell address. And <<A2>> and <<A5>> are the range of cells to bind to.
Note that you can use any expression that evalutes to string for the
binding destination, e.g. <<A%d>> % B1, which uses the value inside B1
to construct the binding destination. The '.cells' in the tuple shown
above is an example to bind cells of the same PropertySheet. It can be
change to to reference to any other spreadsheet, even those outside the
current document, e.g. Document#Spreadsheet001.cells
2021-12-21 21:41:02 -07:00
Zheng, Lei
df6a7e4a56 App: add expression build-in href() for backward compatibility
As deprecated alias for hiddenref()
2021-12-21 21:41:02 -07:00
wmayer
2db73c099b App: fix ObjectIdentifier::getDep
+ it's an obscure way to clear the error state by instantiating PyException, instead use the clear() method
+ do not handle unknown exceptions because this suppresses all exceptions and thus makes error search more complicated
2021-12-20 16:43:02 +01:00