Functionality was hard to follow as the meaning of fullname
depended on basename being NULL or not.
- where_is_temp is now only responsible for finding the temp directory.
- Split out tempdir_session_create into it's own function
that wraps mkdtemp.
- Rename basename to tempdir, fullname to tempdir_session.
These were printf's, disabled by a define that could be uncommented.
Use logging since this can be useful when investigating any issue
with paths not being found at the expected location.
Without this any problem finding app-templates, Python's installation,
icons ... etc are quite difficult to troubleshoot especially on systems
without access to system-call tracing.
To use this run:
blender --log "bke.appdir" --log-level 3
Initialize ImBuf (and color-management) after passing arguments
that set environment variables such as `--env-system-datapath`
This also fixes a bug where BKE_appdir logging failed since it was
called before the `--log` argument was passed.
Add asserts so this doesn't happen again.
Internally appdir functions would test if a path exists,
returning false if it doesn't, leaving the string set instead
of clearing it.
This is error prone as invalid paths could be used accidentally.
Since BKE_appdir_folder_id_user_notest & BKE_appdir_folder_id_version
depend on this, add a 'check_is_dir' argument so the path can be used
even when the directory can't be found.
Change `test_path` function so:
- Joining paths calls a function instead of being performed inline.
- Optional NULL paths must always be ordered last (easier to follow).
Other minor changes:
- Remove FIXME comment is it's handled properly by BLI_path_join.
- The wrong size was being used copying into `targetpath`.
Revert 76b1a27f96 since there is no
reason windows should behave differently to other platforms.
This was added so Windows users wouldn't see "/tmp/" in the UI.
Since then the default temporary directory is a blank string,
leave blank on all systems as Python script authors may accidentally
use this instead of `bpy.app.tempdir`.
This last worked in v2.27 (2003) where all paths were initialized to "/"
which was still checked to initialize the temp directory.
This hasn't been the case since 932e9e8316
where it changed to "/tmp/", then an empty string (current default).
This addresses warnings from Clang-Tidy's `readability-else-after-return`
rule in the `source/blender/blenkernel` module. Not all warnings are
addressed in this commit.
No functional changes.
This caused the file browser to open in c:\windows with the fonts
folder selected instead of opening c:\windows\fonts\ and listing
the fonts.
Reported on chat by @blendify
This patch gives new Windows users a better default preference for fonts folder
Differential Revision: https://developer.blender.org/D4725
Reviewed by Campbell Barton and Brecht Van Lommel
If a subfolder was specified which didn't exist, logic would fallback
to get_path_user (instead of get_path_environment).
Now always use the from the environment variable if it's set and exists.
BF-admins agree to remove header information that isn't useful,
to reduce noise.
- BEGIN/END license blocks
Developers should add non license comments as separate comment blocks.
No need for separator text.
- Contributors
This is often invalid, outdated or misleading
especially when splitting files.
It's more useful to git-blame to find out who has developed the code.
See P901 for script to perform these edits.
The goal here is to make app templates usable for default templates
that we can ship with Blender. These only have a custom startup.blend
currently and so are quite limited compared to app templates that fully
customize Blender.
But still it seems like the same kind of concept where we should be
sharing the code and UI. It is useful to be able to save a startup.blend
per template, and I can imagine some scripting being useful in the future
as well.
Changes made:
* File > New and Ctrl+N now list the templates, replacing a separate
Application Templates menu that was not as easy to discover.
* File menu now shows name of active template above Save Startup File
and Load Factory Settings to indicate these are saved/loaded per
template.
* The "Default" template was renamed to "General".
* Workspaces can now be added from any of the template startup.blend
files when clicking the (+) button in the topbar.
* User preferences are now fully shared between app templates, unless
the template includes a custom userpref.blend. I think this will be
useful in general, not all app templates need their own keymaps for
example.
* Previously Save User Preferences would save the current app template
and then Blender would start using that template by default. I've
disabled this, to me it seems it was unintentional, or at least not
clear at all that saving user preferences also makes the current
Differential Revision: https://developer.blender.org/D3690