from Alexander Kuznetsov (alexk)
bugfix for [#23553] F2 on filebrowser = bug?
from the tracker
--- snip
File Explorer redraws weirdly on second press of F2 if non-default view or file types were selected previously.
This patch prohibits second call of file selector in the same window.
The bug goes much deeper. If file selector is never closed properly (cancel or select), it never gets released. (at
least the handler). If you press F2 or Ctrl-F3 ten times and than "Back to Previous" and repeat all of this
several times Blender will freeze. Also after calling file selector at least two times, on cancellation Blender will
return to full area independently to what state it was before.
---
include small unrelated change to quiet unpack prints when fonts are not found.
- From now on addons bl_addon_info['name'] doesn't need to specifcy also the category, it is put automatically in the addon box title
In some script category and the category in the title were not matching, this had to be fixed manually.
- The warning icon is at the right of the addon box title, so that it cant disalign the addon name anymore when we have a warning.
- After discussing with Campbell, I've added the field bl_addon_info['api'] where we should specify the Blender API version number the addon is
compatible with.
This is certainly useful for clarity, and also I need it in place while preparing the downloadable addons.
- Also, bl_addon_info['version'] is now assumed to be a tuple of integers as it is bl_addon_info['blender'].
Any important text should be placed in the bl_addon_info['warning'] field, not in the script version anymore.
I'm going to reflect this change in bf-extensions so that scripts won't suddenly break.
- function renames, move WM functions into collections wm.add_keymap() --> wm.keymaps.new()
note: new is used for named items in a collection, which return the result.
- Action.get_frame_range() is now a readonly property 'frame_range', floats rather then ints.
- OBJ import/export now work with non utf8 paths. (all exporters and importers need changes like this)
- strip non utf8 chars from new ID blocks (also applies to renaming)
- set the file rename button to allow non-utf8 chars.
When "svnversion" can't be found (as is usual for anyone running TortoiseSVN), build_revision info will be "", which breaks compiling. Worked around this for now by using "<UNKNOWN>" as this
This patch makes SCA_PythonKeyboard.events and SCA_PythonMouse.events return a dictionary of all inputs (including inactive) instead of a list of active inputs.
Example usage:
import bge
if bge.logic.keyboard.events[bge.events.SPACEBAR] = bge.logic.KX_INPUT_JUST_ACTIVATED:
print("Spacebar pressed!")
A couple of changes to the patch:
* Wrap python stuff in #ifndef DISABLE_PYTHON
* Clear and decref m_event_dict in the destructors
A couple of things not related to the patch:
* Made member variables private
* Removed a commented out (and no longer used) method (SCA_PythonMouse.show())
* Added ND_FRAME_RANGE to the header listener, changing frame range in Properties Window didn't update it in the timeline, reported by Hardworker in IRC. Thanks!
* Main Area Listener doesn't listen to all NC_SCENE Notifiers now, only selected ND Notifiers, like the header does. This is more efficient. If there is a reason to let it listen to all NC_SCENE notifiers, please tell me. :)
- user input gets non utf8 chars stripped all text input other then file paths.
- python has the same limitations, it will raise an error on non utf8 strings except for paths use unicode escape literals so its possible to deal with saving to these file paths from python.
- new string functions
BLI_utf8_invalid_byte(str, len) returns the first invalid utf8 byte or -1 on on success.
BLI_utf8_invalid_strip(str, len) strips non utf-8 chars.
This happend because of incorrect order of calculating used layer mask and drawing
header. Added layer content changed notifier to recalc used layers when needed.
This also fixes header redrawing in "Move to layer" operator and when user
changes Object.layers in properties view
This patch allows a user to pass binary data to LibLoad() to load a blend file from memory instead of a file path. I don't know how useful this will be for others, but I've used it so far for:
* Decrypting .blend files and loading them without having to store the .blend on the hard drive
* Pulling .blend data out of an archive and loading it (again skipping the hard drive)
So, it seems the biggest use for this is skipping a bit of file IO (and possibly some security problems).
Example usage:
import bge
with f as open('myfile.blend', 'rb'):
data = f.read()
bge.logic.LibLoad('Name', 'Scene', data)
from Alexander Kuznetsov (alexk)
Authors comments
---
- Rename textfield sometimes exceeded scroll bars' and window's borders.
- Restrict buttons were over not under the rename field.
- Restrict lines didn't go all the way.
- Because of 2.4x interface system, in 2.5 rows were shifted 2 pixels up.
- In Datablocks and User Preferences view bottom line was down by one.
- Rows in Datablocks, User Preferences and Keymap view didn't extend all the way but check boxes and text fields did. It was visible while scrolling horizontally or at right bottom corner.
- Vertical lines in Datablocks and User Preferences didn't stop at the last horizontal line after last row.
This patch fixes those problems.
P.S. I tested the vertical offset with value of 40 so it works perfectly.