a1d7ec7139ff3afbc35f8c079a0a83deabe1d374
This implements the main aspects of changes to blendfile compatibility as designed in #109151: * Blender files which file minversion is newer than current Blender executable won't be loaded at all. * Blender files which file version is newer than current Blender will triger systematic warning to user: * In the status info bar (lower right corner in default UI). * When attempting to save (overwrite) them. This means that the file minversion becomes a hard limit, and not a soft, warning-only as it used to be. Further more, forward compatibility warning is now systematic (instead of depending on file minversion), and more visible for users. See also https://wiki.blender.org/wiki/Process/Compatibility_Handling for details over the new policy. Technically: * Opening any file with a minversion newer than current Blender file one now triggers an early abort, with an error message reported to the user. This is handled by a new utils called from `blo_decode_and_check`. * Any file newer than current Blender version sets a new `has_forward_compatibility_issues` flag in Main struct at read time. * Status bar info area is turned into a template, which uses this flag to display special warning UI and tooltip when set. * A new confirmation popup appears when user tries to save (overwrite) such a 'newer' blendfile, stating potential loos of data, and proposing by default to 'save as' instead. * The 'quit unsaved' popup has also been updated to 'save as' instead of 'save' when the edited file is has potential forward compitibility issues. Part of #109151 (PR !110109).
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
