The problem happens when partial loading is enabled. If document A
contains a link to some object in document B, it will load B as partial
document with only that object and its necessary dependencies. But if
document A contains another link to some object in document C which also
has a link to some object in document B, the link in document C may not
be restored, because document B is partially loaded without the linked
object. This patch will check for this case and reload document B for
more objects.
See an example reported in
https://forum.freecadweb.org/viewtopic.php?p=495078#p495078
ONLY enabled if the Cloud Module is compiled into FreeCAD
ALL files must be saved into a Cloud Based storage
Add a Signal to the PropertyLink to enable support of external storage
Put the Assembly Document as active document
Signed-off-by: Jean-Marie Verdun <jmverdun3@gmail.com>
Add new argument to Application::newDocument() to create a temporary
document. Also exposed to Python API App.newDocument() with a named
argument 'temp'.
The temporary document is marked with status bit 'TempDoc'. The user
will not be prompt for saving when closing. The undo/redo is disabled.
The AutoSaver skips it. And the tree view will not show it.
PropertyXLink allows linking to/from object within a temporary document
without saving.
PropertyXLinkList is derived from PropertyXLinkSubList, which is
modified to provide APIs compatible to PropertyLinkList.
The only difference between the two class is in their getPyObject() to
make PropertyXLinkList output similar to PropertyLinkList in Python. In
C++, both class can accept mix of objects link with or without subname,
depending on which set of APIs are used.
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,ba,beginn,behaviour,bloaded,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childs,colour,colours,commen,currenty,dof,doubleclick,dum,eiter,elemente,feld,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oder,orgin,orginx,orginy,ot,pard,pres,programm,que,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`
* Create new class PropertyLinkBase as the common parent class for all
type of links. See the class document for details of its API.
* Added new link scope 'Hidden' that is ignored during normal object
dependency calculation, but still keep tracks of object remove,
relabel, etc.
* There is a new concept called 'Shadow subname' introduced in this
patch, which will only be meaningful in future topological naming
feature. See [here](https://git.io/fjXKR) for more details.
* DocumentObject added a new API adjustRelativeLink() and a helper
resolveRelativeLink() function.
fixes#0002602
Now, it won't bunch up same object entries if they are not adjacent. I.e., same object can appear twice and more, for example:
[(object1, ('Edge2', 'Edge3')), (object2, ('Edge1',)), (object1, ('Edge4', 'Edge5'))]
Complete bunching causes information loss, and it's impossible to fix the bug with keeping the bunching complete.
Several typos and uniformity fixes.
Note:
*SCL/SimpleDataTypes.py is a upstream stepcode file whose fiz has been submitted upstream and accepted.
*the header of Tools/generateBase/generateMetaModel_Module.xsd had redundant data. It has been removed. Please double check it.