============================================================
Item Highlighter
CHANGELOG
Version 1.0.3 Stable
Release Date: September 2026
============================================================

OVERVIEW
------------------------------------------------------------

Item Highlighter is a QGIS plugin developed for the Green
Space Service of INSA Rennes.

The plugin allows users to quickly locate and highlight
features from one or several layers using attribute values
selected from dynamically generated comboboxes.

------------------------------------------------------------
MAIN FEATURES
------------------------------------------------------------

Dynamic Layer Configuration

- Support for up to 10 configurable layers.
- Independent configuration for each layer.
- Dynamic field selection based on the selected layer.
- Automatic update of available fields when a layer changes.

Feature Selection

- Dynamic creation of comboboxes from configuration.
- Automatic retrieval of unique field values.
- Fast selection of map features through attributes.

Feature Highlighting

- Highlight one or several matching features.
- Custom border color for each configuration item.
- Custom fill color for each configuration item.
- Custom border width for each configuration item.

Automatic Zoom

- Automatic zoom to matching features.
- Combined extent calculation when several features match.
- Minimum and maximum scale protection.

------------------------------------------------------------
CONFIGURATION MANAGEMENT
------------------------------------------------------------

- Save settings to JSON configuration files.
- Load settings from JSON configuration files.
- Automatic restoration of the last configuration file.
- Confirmation dialog before overwriting existing files.
- Reset button to clear all configuration entries.

------------------------------------------------------------
USER INTERFACE IMPROVEMENTS
------------------------------------------------------------

Main Dialog

- Dynamic generation of layer controls.
- Cleaner and more intuitive user interface.
- Non-modal window.
- Full access to QGIS while the plugin is open.
- Full access to the map canvas while the plugin is open.
- Improved workflow for single-screen users.

Settings Dialog

- Dynamic synchronization between layers and fields.
- Automatic restoration of saved settings.
- Easier configuration workflow.
- Better configuration consistency.

Window Management

- Prevention of multiple plugin instances.
- Safer dialog lifecycle management.
- Proper cleanup when closing the plugin.

------------------------------------------------------------
ERROR HANDLING
------------------------------------------------------------

No Feature Found

Added a warning message when no feature matches the
selected attribute value.

Layer Not Found

Added a warning message when a layer stored in a
configuration file cannot be found in the current
QGIS project.

Configuration Safety

- Protection against incomplete configurations.
- Safe handling of missing layers.
- Safe handling of empty configuration entries.

------------------------------------------------------------
STABILITY IMPROVEMENTS
------------------------------------------------------------

Highlight Management

- Automatic removal of previous highlights.
- Cleanup of highlights when closing the plugin.
- Cleanup of highlights when hiding the dialog.
- Prevention of highlight accumulation.

Configuration Loading

- Improved loading of partial JSON files.
- Automatic reset of non-configured entries.
- Better consistency between saved and displayed settings.

Plugin Lifecycle

- Improved opening and closing logic.
- Safer dialog management.
- Cleaner resource handling.

------------------------------------------------------------
CODE QUALITY IMPROVEMENTS
------------------------------------------------------------

Documentation

- Added English comments throughout the code.
- Improved code readability.
- Easier maintenance and future contributions.

Debug Cleanup

- Removed unnecessary debug traces.
- Cleaner Python console output.

Architecture

Clear separation between:

- Plugin controller
- Settings dialog
- Main dialog

Dynamic user interface generation based on JSON
configuration files.

------------------------------------------------------------
VALIDATED TEST CASES
------------------------------------------------------------

Successfully tested with:

- 1 configured layer
- Several configured layers
- Up to 10 configured layers
- JSON save
- JSON load
- JSON overwrite confirmation
- Missing layers
- Missing features
- Plugin reopening
- Plugin closing
- Canvas interaction
- Highlight refresh
- Automatic zoom
- Reset function

------------------------------------------------------------
Version 1.0.2
------------------------------------------------------------

- Added QGIS 4 / Qt6 compatibility
- Updated metadata
- Updated changelog
- Fixed Qt5/Qt6 compatibility issues

------------------------------------------------------------
Version 1.0.3
------------------------------------------------------------
- Fix the issue where the setting doesn't apply when setting up a new configuration without restarting the plugin.