From 61f92e5e52607a7fb9e664c2c733cc8f908e4607 Mon Sep 17 00:00:00 2001 From: Sekuora Date: Fri, 5 Jun 2026 20:01:27 -0500 Subject: [PATCH 1/4] Add opt in persistence features Added a new add-on preference: Persist Preferences. When enabled, the add-on saves its preferences to: Blender user config/screencast_keys/preferences.json --- screencast_keys-local.zip | Bin 0 -> 73004 bytes src/screencast_keys/__init__.py | 21 ++-- src/screencast_keys/preferences.py | 171 +++++++++++++++++++++++++++++ 3 files changed, 178 insertions(+), 14 deletions(-) create mode 100644 screencast_keys-local.zip diff --git a/screencast_keys-local.zip b/screencast_keys-local.zip new file mode 100644 index 0000000000000000000000000000000000000000..c4c67ee2ef44416a9e76b17c1acf5870ededada8 GIT binary patch literal 73004 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 literal 0 HcmV?d00001 diff --git a/src/screencast_keys/__init__.py b/src/screencast_keys/__init__.py index f975105..dbf0fd8 100644 --- a/src/screencast_keys/__init__.py +++ b/src/screencast_keys/__init__.py @@ -153,28 +153,17 @@ def register(): context = bpy.context user_prefs = context.preferences prefs = user_prefs.addons[__package__].preferences + preferences.load_persisted_preferences(prefs) # Only default panel location is available in < 2.80 if utils.compatibility.check_version(2, 80, 0) < 0: prefs.panel_space_type = 'VIEW_3D' prefs.panel_category = "Screencast Key" prefs.show_ui_in_sidebar = True prefs.show_ui_in_overlay = False + preferences.ensure_display_event_text_aliases(prefs) preferences.SK_Preferences.ui_in_sidebar_update_fn(prefs, context) preferences.SK_Preferences.ui_in_overlay_update_fn(prefs, context) - # Fix: https://github.com/nutti/Screencast-Keys/issues/195 - # TODO: This workaround is hacky. We need to apply a better solution. - if len(prefs.display_event_text_aliases_props) == 0: - for event in list(ops.EventType): - item = prefs.display_event_text_aliases_props.add() - item.event_id = event.name - if event in ops.SK_OT_ScreencastKeys.MODIFIER_EVENT_TYPES: - item.default_text = common.fix_modifier_display_text( - ops.EventType.names[event.name] - ) - else: - item.default_text = ops.EventType.names[event.name] - try: common.reload_custom_mouse_image(prefs, context) # pylint: disable=W0702 @@ -187,7 +176,11 @@ def unregister(): user_prefs = context.preferences prefs = user_prefs.addons[__package__].preferences preferences.remove_custom_mouse_image(prefs, context) - prefs.display_event_text_aliases_props.clear() + if prefs.persist_preferences: + preferences.save_persisted_preferences(prefs) + else: + preferences.remove_persisted_preferences_file() + prefs.display_event_text_aliases_props.clear() bpy.app.handlers.load_post.remove(load_post_handler) unregister_shortcut_key() diff --git a/src/screencast_keys/preferences.py b/src/screencast_keys/preferences.py index df316f4..bed093a 100644 --- a/src/screencast_keys/preferences.py +++ b/src/screencast_keys/preferences.py @@ -19,6 +19,9 @@ # +import json +import os + import bpy from bpy.props import ( StringProperty, @@ -34,6 +37,21 @@ from . import c_structure as cstruct # extensions.blender.org: Delete line +PERSISTED_PREFERENCE_EXCLUDES = { + "bl_idname", + "updater_branch_to_update", +} + +PERSISTED_PREFERENCE_TYPES = { + 'BOOLEAN', + 'COLLECTION', + 'ENUM', + 'FLOAT', + 'INT', + 'STRING', +} + + # extensions.blender.org: Delete block start @BlClassRegistry() class SK_OT_CheckAddonUpdate(bpy.types.Operator): @@ -132,6 +150,151 @@ class DisplayEventTextAliasProperties(bpy.types.PropertyGroup): event_id: bpy.props.StringProperty(options={'HIDDEN'}) +def persisted_preferences_filepath(create=False): + config_dir = bpy.utils.user_resource( + 'CONFIG', path="screencast_keys", create=create) + if not config_dir: + return "" + + return os.path.join(config_dir, "preferences.json") + + +def _rna_properties(data): + for prop in data.bl_rna.properties: + if prop.identifier == "rna_type": + continue + if prop.identifier in PERSISTED_PREFERENCE_EXCLUDES: + continue + if prop.type not in PERSISTED_PREFERENCE_TYPES: + continue + if prop.is_readonly and prop.type != 'COLLECTION': + continue + yield prop + + +def _serialize_property(data, prop): + value = getattr(data, prop.identifier) + if prop.type == 'COLLECTION': + return [_serialize_preferences(item) for item in value] + if getattr(prop, "array_length", 0) > 0: + return list(value) + + return value + + +def _serialize_preferences(data): + preferences = {} + for prop in _rna_properties(data): + try: + preferences[prop.identifier] = _serialize_property(data, prop) + except TypeError: + continue + + return preferences + + +def _apply_preferences(data, preferences): + properties = { + prop.identifier: prop + for prop in _rna_properties(data) + } + for identifier, value in preferences.items(): + if identifier not in properties: + continue + + prop = properties[identifier] + if prop.type == 'COLLECTION': + if not isinstance(value, list): + continue + collection = getattr(data, identifier) + collection.clear() + for item_data in value: + if not isinstance(item_data, dict): + continue + item = collection.add() + _apply_preferences(item, item_data) + else: + try: + data[identifier] = value + except (AttributeError, KeyError, TypeError, ValueError): + try: + setattr(data, identifier, value) + except (TypeError, ValueError): + continue + + +def ensure_display_event_text_aliases(prefs): + from . import ops # pylint: disable=C0415 + + event_aliases = { + item.event_id: item + for item in prefs.display_event_text_aliases_props + } + for event in list(ops.EventType): + if event in ops.SK_OT_ScreencastKeys.MODIFIER_EVENT_TYPES: + default_text = common.fix_modifier_display_text( + ops.EventType.names[event.name] + ) + else: + default_text = ops.EventType.names[event.name] + + if event.name in event_aliases: + event_aliases[event.name].default_text = default_text + else: + item = prefs.display_event_text_aliases_props.add() + item.event_id = event.name + item.default_text = default_text + + +def load_persisted_preferences(prefs): + filepath = persisted_preferences_filepath() + if not filepath or not os.path.exists(filepath): + return + + try: + with open(filepath, "r", encoding="utf-8") as file: + data = json.load(file) + except (OSError, json.JSONDecodeError): + return + + if not data.get("persist_preferences", False): + return + + _apply_preferences(prefs, data.get("preferences", {})) + prefs.persist_preferences = True + + +def save_persisted_preferences(prefs): + filepath = persisted_preferences_filepath(create=True) + if not filepath: + return + + data = { + "version": 1, + "persist_preferences": True, + "preferences": _serialize_preferences(prefs), + } + + try: + tmp_filepath = "{}.tmp".format(filepath) + with open(tmp_filepath, "w", encoding="utf-8") as file: + json.dump(data, file, ensure_ascii=False, indent=2) + os.replace(tmp_filepath, filepath) + except (OSError, TypeError): + return + + +def remove_persisted_preferences_file(): + filepath = persisted_preferences_filepath() + if not filepath: + return + + try: + os.remove(filepath) + except OSError: + return + + # pylint: disable=W0613 def remove_custom_mouse_image(self, _): def remove_image(image_name): @@ -525,6 +688,13 @@ def ui_in_overlay_update_fn(self, _): update=ui_in_overlay_update_fn, ) + persist_preferences: bpy.props.BoolProperty( + name="Persist Preferences", + description="Store add-on preferences in Blender user configuration " + "and restore them when this add-on is enabled again", + default=False, + ) + display_event_text_aliases_props: bpy.props.CollectionProperty( type=DisplayEventTextAliasProperties ) @@ -547,6 +717,7 @@ def draw(self, _): layout.separator() layout.prop(self, "enable_on_startup") + layout.prop(self, "persist_preferences") column = layout.column() split = column.split() From 270339760556780950b4478eea3150dfbcc51fee Mon Sep 17 00:00:00 2001 From: Sekuora Date: Fri, 5 Jun 2026 20:04:18 -0500 Subject: [PATCH 2/4] Delete screencast_keys-local.zip --- screencast_keys-local.zip | Bin 73004 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 screencast_keys-local.zip diff --git a/screencast_keys-local.zip b/screencast_keys-local.zip deleted file mode 100644 index c4c67ee2ef44416a9e76b17c1acf5870ededada8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73004 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 From d8b3ba9ac4c74b81d5676623e9b7dea6b1909064 Mon Sep 17 00:00:00 2001 From: Sekuora Date: Sat, 13 Jun 2026 17:13:29 -0500 Subject: [PATCH 3/4] Fixed coding conventions and permissions Fixed the misplaced import. Changed version from single number to string type --- src/screencast_keys/blender_manifest.toml | 3 +++ src/screencast_keys/preferences.py | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/screencast_keys/blender_manifest.toml b/src/screencast_keys/blender_manifest.toml index b239dbe..6da7cd8 100644 --- a/src/screencast_keys/blender_manifest.toml +++ b/src/screencast_keys/blender_manifest.toml @@ -13,3 +13,6 @@ blender_version_min = "4.2.0" license = [ "SPDX:GPL-3.0-or-later", ] + +[permissions] +files = "Save settings to a file and restore/delete them according to preferences" diff --git a/src/screencast_keys/preferences.py b/src/screencast_keys/preferences.py index bed093a..210bd1f 100644 --- a/src/screencast_keys/preferences.py +++ b/src/screencast_keys/preferences.py @@ -35,6 +35,7 @@ from .utils.bl_class_registry import BlClassRegistry from . import common from . import c_structure as cstruct # extensions.blender.org: Delete line +from . import ops PERSISTED_PREFERENCE_EXCLUDES = { @@ -224,7 +225,7 @@ def _apply_preferences(data, preferences): def ensure_display_event_text_aliases(prefs): - from . import ops # pylint: disable=C0415 + event_aliases = { item.event_id: item @@ -270,7 +271,7 @@ def save_persisted_preferences(prefs): return data = { - "version": 1, + "version": "1.0.0", "persist_preferences": True, "preferences": _serialize_preferences(prefs), } From b08c429e12ee52742c951ae4ad965e2f16c0b71c Mon Sep 17 00:00:00 2001 From: Sekuora Date: Sat, 13 Jun 2026 17:16:04 -0500 Subject: [PATCH 4/4] persist preferences setting docs Wrote an explanation for the persist preferences feature. --- docs/tutorial.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/tutorial.md b/docs/tutorial.md index 7fb2539..5a4e1a2 100644 --- a/docs/tutorial.md +++ b/docs/tutorial.md @@ -220,6 +220,11 @@ You can choose the images following case. If this option is enabled, Screencast Keys will be enabled automatically when blender will startup up. +### Persist Preferences +If this option is enabled, Screencast Keys will store its preferences +in a local file and will restore them when reloaded. +The preferences are stored in blender's user configuration directory: `config/screencast_keys/preferences.json` + ### UI #### Sidebar