tilemap-editor 4.3.8__tar.gz → 4.3.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/CHANGELOG.md +9 -1
- {tilemap_editor-4.3.8/src/tilemap_editor.egg-info → tilemap_editor-4.3.9}/PKG-INFO +1 -1
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/pyproject.toml +1 -1
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/editor.py +12 -5
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9/src/tilemap_editor.egg-info}/PKG-INFO +1 -1
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/font_manager.py +15 -1
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/region_selector.py +20 -6
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/LICENSE +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/MANIFEST.in +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/README.md +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/arrow-down.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/check.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/checked.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/close.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/duplicate.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/error.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/file.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/filedead.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/fit.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/folder.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/grid.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/image.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/info.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/load.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/loop.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/onion.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/pan.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/pause.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/pencil.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/play.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/plus.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/radio.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/reset.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/save.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/skip-back.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/skip-forward.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/stop.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/tilemap.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/tileset.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/unchecked.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/warning.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/zoomin.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/icons/zoomout.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/setup.cfg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/constants.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/editor.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/event_map.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/layers.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/main.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/node_manager.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/nodes.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/__init__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/__init__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/editor.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/models.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/protocols.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/shape_editor.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/standalone.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/__init__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/editor.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/models.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/protocols.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/standalone.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/__init__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/__main__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/clipboard_util.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/editor.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/frame_picker.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/models.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/preview.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/protocols.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/runtime_load.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/standalone.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/timeline.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/validation.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/__init__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/camera.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/clipboard.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/commands.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/dialogs.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/document.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/editor.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/overlays.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/region_export.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/selection.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/standalone.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/tools.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_editor/viewport.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/__init__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/collision_painter.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/models.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/protocols.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/standalone.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/run.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/standalone_automap.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/standalone_error_console.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/standalone_filemanager.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/standalone_image_viewer.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/__init__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/__main__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/__init__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-BoldItalic.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-Bold.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-BoldItalic.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-Italic.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-Regular.ttf +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/ToolMove.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/arrow-down.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/check.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/checked.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/close.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/duplicate.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/error.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/file.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/filedead.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/fit.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/fold_down_arrow.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/folder.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/gear.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/grid.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/image.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/info.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/load.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/loop.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/miniobj.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/onion.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/pan.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/pause.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/pencil.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/play.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/plus.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/radio.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/reset.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/save.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/skip-back.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/skip-forward.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/stop.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/tilemap.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/tileset.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/unchecked.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/unfold_right_arrow.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/warning.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/zoomin.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/zoomout.svg +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/cli.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/main.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/settings.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor.egg-info/SOURCES.txt +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor.egg-info/dependency_links.txt +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor.egg-info/entry_points.txt +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor.egg-info/requires.txt +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor.egg-info/top_level.txt +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/ttypes/__init__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/ttypes/tilemap.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/__init__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/editor_preference.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/error_handler.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/history.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/icon_manager.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/icons_cache.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/log_capture.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/natural_sort.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/project_paths.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/property_suggestions.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/serialization.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/standalone.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/utils/validation.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/__init__.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/automap_models.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/autotile_template.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/autotiler.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/filemanager.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/input.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/layer_selector.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/map_properties.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/mapsetup.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/particle_presets.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/particle_system.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/regex_automap_designer.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/tile_grid.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/tile_selector.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/button.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/checkbox.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/collision_layer_mask.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/collision_layer_sidebar.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/confirm_dialog.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/dialog_base.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/drag_tracker.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/draw_utils.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/fileinput.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/label.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/layer_type_dialog.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/menubar.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/mode_indicator.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/node_editor.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/node_selector.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/notification.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/particle_config_dialog.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/property_editor.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/resize_map_dialog.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/scrollbar.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/sidebar_container.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/splitter.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/status_bar.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/theme.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/tileset_type_dialog.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/toast.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/tool_manager.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/toolbar.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/tooltip.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/ui/tree_widget.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/widgets/widget_base.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_animation_library_grid_offset.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_collision_layer_mask.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_collision_layer_sidebar.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_drag_tracker.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_editor_pan_mode.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_gid_collision.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_layers_autotile.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_map_resize_model.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_natural_sort.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_project_paths.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_render_scale.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_serialization_regression.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_sprite_animation_editor_grid.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_sprite_editor_commands.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_sprite_editor_interaction.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_sprite_editor_models.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_tile_grid_selection.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_tile_selector_pick.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_tilemap_save.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_timeline_invalidate_cache.py +0 -0
- {tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/tests/test_toolbar_tools.py +0 -0
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
3
|
<!-- towncrier release notes start -->
|
|
4
|
+
# tilemap_editor 4.3.9 (2026-08-04)
|
|
5
|
+
|
|
6
|
+
## Bug Fixes
|
|
7
|
+
|
|
8
|
+
- Fixed tileset collision editor tile picking when the tileset is centered in the selector: mouse clicks now map to the correct tile after the centering offset is applied.
|
|
9
|
+
- Fixed region selector coordinate conversion (screen↔image) to account for the centered image when it is smaller than the viewport, so drawing, selection, and drag operations stay aligned.
|
|
10
|
+
|
|
4
11
|
# tilemap_editor 4.3.8 (2026-08-04)
|
|
5
12
|
|
|
6
13
|
## Features
|
|
7
14
|
|
|
8
|
-
- Sprite editor: two-row grouped toolbar
|
|
15
|
+
- Sprite editor: two-row grouped toolbar, natural filename sorting on multi-sheet loads, and a Stack V/H toggle for vertical or horizontal sheet stacking.
|
|
9
16
|
- Rewrote the sprite editor around a command stack with single-canvas undo memory: shared clipboard with relative-tile pasting that survives scale/grid changes, drag-move and rubber-band selection that can expand the canvas, object-selection undo restore, and a pure camera with cursor-anchored zoom. (sprite-editor-v2)
|
|
10
17
|
|
|
11
18
|
## Bug Fixes
|
|
12
19
|
|
|
20
|
+
- Fixed sprite editor undo history corruption from shared region references, viewport cache staleness after region edits, coordinate errors after loading new sheets, index lookup failures with negative-origin canvases, and canvas expansion failures for negative cell coordinates
|
|
13
21
|
- Fixed sprite editor paste landing in wrong cells after a scale or grid-size change (clipboard now stores relative tile offsets), paste/cut double-clipboard split-brain, paste preview lacking pixel ghost, and moves/pastes past the canvas edge now expanding the canvas. (sprite-editor-paste-fixes)
|
|
14
22
|
- Fixed sprite editor theming and camera gestures: the canvas, header bar, grid lines, and overlays now use theme colors/fonts instead of hardcoded dark values (canvas no longer stays black on light themes), the canvas header no longer covers the sheet's top rows, and mouse wheel zoom/pan work again with the same 30px/1.12x behavior as the old editor. (sprite-editor-theme-wheel)
|
|
15
23
|
|
|
@@ -59,7 +59,6 @@ class TilesetCollisionEditor:
|
|
|
59
59
|
self.rect = rect
|
|
60
60
|
self.consumer = consumer
|
|
61
61
|
self.visible = True
|
|
62
|
-
|
|
63
62
|
if provider is not None:
|
|
64
63
|
self._provider = provider
|
|
65
64
|
self._tileset_surface = provider.get_surface()
|
|
@@ -791,17 +790,25 @@ class TilesetCollisionEditor:
|
|
|
791
790
|
if not self.tileset_selector_rect.collidepoint(mouse):
|
|
792
791
|
return None
|
|
793
792
|
|
|
794
|
-
rel_x = mouse[0] - self.tileset_selector_rect.x + self.tileset_scroll_x
|
|
795
|
-
rel_y = mouse[1] - self.tileset_selector_rect.y + self.tileset_scroll_y
|
|
796
|
-
|
|
797
793
|
tw = int(self._tile_size[0] * self.tileset_zoom)
|
|
798
794
|
th = int(self._tile_size[1] * self.tileset_zoom)
|
|
799
795
|
|
|
796
|
+
# Calculate centering offset (same as in _draw_tileset_selector)
|
|
797
|
+
tileset_scr_w = self.tile_cols * tw
|
|
798
|
+
tileset_scr_h = self.tile_rows * th
|
|
799
|
+
center_off_x = max(0, (self.tileset_selector_rect.w - tileset_scr_w) // 2)
|
|
800
|
+
center_off_y = max(0, (self.tileset_selector_rect.h - tileset_scr_h) // 2)
|
|
801
|
+
|
|
802
|
+
# Apply centering offset to mouse calculation
|
|
803
|
+
rel_x = mouse[0] - self.tileset_selector_rect.x + self.tileset_scroll_x - center_off_x
|
|
804
|
+
rel_y = mouse[1] - self.tileset_selector_rect.y + self.tileset_scroll_y - center_off_y
|
|
805
|
+
|
|
800
806
|
col = rel_x // tw
|
|
801
807
|
row = rel_y // th
|
|
802
808
|
|
|
803
809
|
if 0 <= col < self.tile_cols and 0 <= row < self.tile_rows:
|
|
804
|
-
|
|
810
|
+
tile_id = row * self.tile_cols + col
|
|
811
|
+
return tile_id
|
|
805
812
|
|
|
806
813
|
return None
|
|
807
814
|
|
|
@@ -50,7 +50,7 @@ class FontManager:
|
|
|
50
50
|
self._fonts: dict[str, pygame.font.Font] = {}
|
|
51
51
|
self._font_families: dict[str, dict[str, str]] = {}
|
|
52
52
|
self._default_family = "Arial"
|
|
53
|
-
self._assets_path =
|
|
53
|
+
self._assets_path = self._resolve_assets_path()
|
|
54
54
|
logger.info(f"Font Manager initializing - Assets path: {self._assets_path}")
|
|
55
55
|
self._load_font_families()
|
|
56
56
|
logger.info(
|
|
@@ -58,6 +58,20 @@ class FontManager:
|
|
|
58
58
|
)
|
|
59
59
|
FontManager._initialized = True
|
|
60
60
|
|
|
61
|
+
@staticmethod
|
|
62
|
+
def _resolve_assets_path() -> Path:
|
|
63
|
+
"""Find bundled fonts in package data, falling back to the dev layout."""
|
|
64
|
+
try:
|
|
65
|
+
from importlib.resources import files
|
|
66
|
+
|
|
67
|
+
pkg_path = files("tilemap_editor.assets") / "fonts"
|
|
68
|
+
path = Path(str(pkg_path))
|
|
69
|
+
if path.exists() and any(path.iterdir()):
|
|
70
|
+
return path
|
|
71
|
+
except (ImportError, TypeError, OSError):
|
|
72
|
+
pass
|
|
73
|
+
return Path(__file__).parent.parent.parent / "assets" / "fonts"
|
|
74
|
+
|
|
61
75
|
def _load_font_families(self):
|
|
62
76
|
"""Load available font families from assets directory."""
|
|
63
77
|
if not self._assets_path.exists():
|
|
@@ -114,23 +114,37 @@ class RegionSelector:
|
|
|
114
114
|
self.on_region_modified: Callable[[Region], None] | None = None
|
|
115
115
|
self.on_selection_changed: Callable[[str | None], None] | None = None
|
|
116
116
|
|
|
117
|
+
def _get_center_offset(self) -> tuple[int, int]:
|
|
118
|
+
"""Calculate centering offset for image within rect"""
|
|
119
|
+
if not self.image:
|
|
120
|
+
return (0, 0)
|
|
121
|
+
|
|
122
|
+
img_w = int(self.image.get_width() * self.zoom)
|
|
123
|
+
img_h = int(self.image.get_height() * self.zoom)
|
|
124
|
+
center_off_x = max(0, (self.rect.w - img_w) // 2)
|
|
125
|
+
center_off_y = max(0, (self.rect.h - img_h) // 2)
|
|
126
|
+
return (center_off_x, center_off_y)
|
|
127
|
+
|
|
117
128
|
def _image_to_screen(self, x: int, y: int) -> tuple[int, int]:
|
|
118
129
|
"""Convert image coordinates to screen coordinates"""
|
|
130
|
+
center_off_x, center_off_y = self._get_center_offset()
|
|
119
131
|
return (
|
|
120
|
-
self.rect.x + int(x * self.zoom) - self.scroll_x,
|
|
121
|
-
self.rect.y + int(y * self.zoom) - self.scroll_y,
|
|
132
|
+
self.rect.x + int(x * self.zoom) - self.scroll_x + center_off_x,
|
|
133
|
+
self.rect.y + int(y * self.zoom) - self.scroll_y + center_off_y,
|
|
122
134
|
)
|
|
123
135
|
|
|
124
136
|
def _screen_to_image(self, x: int, y: int) -> tuple[int, int]:
|
|
137
|
+
center_off_x, center_off_y = self._get_center_offset()
|
|
125
138
|
return (
|
|
126
|
-
int((x - self.rect.x + self.scroll_x) / self.zoom),
|
|
127
|
-
int((y - self.rect.y + self.scroll_y) / self.zoom),
|
|
139
|
+
int((x - self.rect.x + self.scroll_x - center_off_x) / self.zoom),
|
|
140
|
+
int((y - self.rect.y + self.scroll_y - center_off_y) / self.zoom),
|
|
128
141
|
)
|
|
129
142
|
|
|
130
143
|
def _screen_to_image_float(self, x: int, y: int) -> tuple[float, float]:
|
|
144
|
+
center_off_x, center_off_y = self._get_center_offset()
|
|
131
145
|
return (
|
|
132
|
-
(x - self.rect.x + self.scroll_x) / self.zoom,
|
|
133
|
-
(y - self.rect.y + self.scroll_y) / self.zoom,
|
|
146
|
+
(x - self.rect.x + self.scroll_x - center_off_x) / self.zoom,
|
|
147
|
+
(y - self.rect.y + self.scroll_y - center_off_y) / self.zoom,
|
|
134
148
|
)
|
|
135
149
|
|
|
136
150
|
def _clamp_scroll(self) -> None:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-Bold.ttf
RENAMED
|
File without changes
|
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-Italic.ttf
RENAMED
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/assets/fonts/jetbrain-fonts/JetBrainsMono-Regular.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/character_collision/shape_editor.py
RENAMED
|
File without changes
|
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/__init__.py
RENAMED
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/editor.py
RENAMED
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/models.py
RENAMED
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/protocols.py
RENAMED
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/object_tileset_collision/standalone.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/sprite_animation/clipboard_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/plugins/tileset_collision/collision_painter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/fonts/noto/NotoSans-Bold.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/arrow-down.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/fold_down_arrow.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/skip-forward.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor/assets/icons/unfold_right_arrow.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tilemap_editor-4.3.8 → tilemap_editor-4.3.9}/src/tilemap_editor.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|