# This file contains metadata for your plugin.

# This file should be included when you package your plugin.# Mandatory items:

[general]
name=FilterMate
qgisMinimumVersion=3.0
description=FilterMate is a QGIS plugin that allows you to easily explore, filter and export vector data - now works with any data source!
version=2.6.3
author=imagodata
email=simon.ducournau+filter_mate@gmail.com

about=FilterMate v2.6.3 - PostgreSQL Transaction Fix & Memory Backend Improvements

 NEW in v2.6.3:
 - 🐛 FIX: PostgreSQL "current transaction is aborted" errors now properly handled
 - 🔧 FIX: Memory backend now correctly stores source geometry for spatial filtering
 - 📋 NEW: Memory backend explicitly recognized in filter task (no more "Unknown backend" warnings)
 - 🔄 IMPROVE: Transaction rollback before connection close prevents cascade failures

 Previous version (v2.6.2):
 - 🚀 POSTGRESQL LIGHTWEIGHT MVs: Stores only ID + geometry (3-5× smaller)
 - 📦 SPATIALITE R-TREE SOURCE TABLES: Permanent tables with spatial index for large datasets
 - ⚡ PRE-COMPUTED BUFFER: geom_buffered stored in MV/source table for faster queries
 
 Previous version (v2.5.x):
 - 🛡️ PostgreSQL statement timeout protection with OGR fallback
 - ✨ Bidirectional QGIS selection ↔ widgets synchronization
 - 🐛 PostgreSQL ST_IsEmpty() for all empty geometry types
 - 🎨 HiDPI UI profile for 4K/Retina displays with auto-detection
 
 Core features:
 - Works with ANY data source (Shapefile, GeoPackage, Spatialite, PostgreSQL)
 - Automatic backend selection (PostgreSQL, Spatialite, or Local)
 - Intuitive search and selection of entities
 - Filter vector layers by expression and geometric predicates
 - Buffer support with automatic geometry repair (positive and negative)
 - Configure widgets independently for each layer
 - Export layers intuitively
 - Automatic CRS reprojection on the fly
 - Filter history with easy undo/redo
 
 Performance: Automatically uses PostgreSQL when available for optimal speed, falls back to Spatialite or local backend otherwise.
 
 Full documentation: https://sducournau.github.io/filter_mate

tracker=https://github.com/sducournau/filter_mate/issues
repository=https://github.com/sducournau/filter_mate
# End of mandatory metadata

# Recommended items: regexp

hasProcessingProvider=no

changelog=
    Version 2.5.5 (December 2025) - Critical PostgreSQL Negative Buffer Fix
    🐛 CRITICAL: PostgreSQL backend now correctly detects ALL empty geometry types
    🔧 Uses ST_IsEmpty() instead of NULLIF for POLYGON EMPTY, MULTIPOLYGON EMPTY, etc.
    🎨 NEW: HiDPI UI profile for 4K/Retina displays with auto-detection
    🖼️ UI improvements: Compact sidebar, harmonized button spacing across all tabs
    ✅ Thread safety: Warning messages stored for main thread display
    
    Version 2.5.4 (December 2025) - OGR Backend Memory Layer Fix
    🐛 CRITICAL: OGR backend now correctly counts features in memory layers
    🔧 Intelligent feature counting with retry mechanism
    
    Version 2.4.4 (December 2025) - Critical Thread Safety Fix
    🔥 CRITICAL: Fixed parallel filtering crash (Windows fatal exception: access violation)
    🛡️ Thread Safety: OGR layers now always filter sequentially
    🔒 QGIS layer objects (selectedFeatures, startEditing, etc.) are NOT thread-safe
    📝 ParallelFilterExecutor auto-detects OGR/geometric ops and uses sequential mode
    ⚠️ Added thread detection warnings to OGR backend
    
    Version 2.3.9 (December 2025) - Critical Stability Fix
    🔥 CRITICAL: Fixed GEOS crash during OGR backend filtering
    🛡️ NEW: geometry_safety.py module for GEOS-safe operations
    ✅ NEW: validate_geometry_for_geos() - deep geometry validation
    🔧 NEW: create_geos_safe_layer() - filters invalid geometries
    🐛 FIX: Access violation crash on plugin reload
    🔒 NEW: Safe Qt timer callbacks with weak references
    📦 NEW: object_safety.py module for Qt/QGIS object validation
    
    Version 2.3.8 (December 2025) - Automatic Dark Mode Support
    🎨 Automatic dark mode detection with real-time theme sync
    🌓 Icon inversion for dark mode - PNG icons visible in dark themes
    ⭐ Filter Favorites - Save, organize, and reuse complex filters
    💾 SQLite persistence for favorites across sessions
    
    Version 2.3.7 (December 2025) - Project Change Stability
    🛡️ Enhanced project change handling with proper cleanup
    ⌨️ F5 shortcut for force reload layers
    🔄 New cleared signal handler for project close
    
    Version 2.3.5 (December 2025) - Configuration System v2.0
    ⚙️ Configuration v2.0 with integrated metadata structure
    🔄 Automatic config migration (v1.0→v2.0) with backup/rollback
    🔒 Forced backend respect - user choice strictly enforced
    🚀 PostgreSQL 30%% faster loading (fast counting + UNLOGGED MVs)
    
    Version 2.3.4 (December 2025) - PostgreSQL & UX Improvements
    🐛 CRITICAL FIX: PostgreSQL 2-part table references now work correctly
    ✨ FEATURE: Smart display field selection for exploring expressions
    🐛 FIX: GeometryCollection buffer results now properly handled
    🛠️ IMPROVED: Automatic ANALYZE on source tables for query optimization
    
    Version 2.3.0 (December 2025) - Global Undo/Redo System
    ⭐ FEATURE: Intelligent undo/redo with context detection (source-only/global)
    🏗️ REFACTOR: Task modules extracted (-99%% appTasks.py, +400%% maintainability)
    ✅ QUALITY: PEP 8 95%%, 26 tests, CI/CD active
    🚀 PERFORMANCE: Geometry caching (5× speedup)
    
    Version 2.2.5 (December 2025) - Geographic CRS Auto-Handling
    FEATURE: Automatic EPSG:3857 conversion for geographic CRS
    FIX: Geographic coordinates zoom & flash flickering
    
    Version 2.2.4 (December 2025) - Bug Fix Release
    BUG FIX: Fixed Spatialite field name quote handling
    IMPROVED: Expression conversion reliability
    
    Version 2.2.0 (December 2025) - Stability Improvements
    STABILITY: Improved Qt JSON view crash prevention
    FIXED: Tab widget error handling and recovery
    IMPROVED: Theme synchronization and resource management
    OPTIMIZED: Performance and memory usage
    
    Version 2.1.0 (December 2025) - Production Release
    STABLE: Production-ready multi-backend architecture
    FIXED: Critical undo/redo functionality restored
    FIXED: Field selection now includes all fields
    FIXED: SQLite database lock errors with retry mechanism
    FIXED: Subset string handling for OGR layers
    IMPROVED: Advanced geometry repair with multiple strategies
    IMPROVED: Enhanced UI theme support and consistency
    IMPROVED: Predicate ordering optimization (2.5x faster)
    IMPROVED: Comprehensive test coverage and documentation
    Version 1.9.0 (December 2025) - Major Update
    NEW: Works WITHOUT PostgreSQL! Plugin now supports any data source
    NEW: Automatic backend selection (PostgreSQL/Spatialite/Local OGR)
    IMPROVED: Better error messages with troubleshooting hints
    FIXED: Plugin starts even if psycopg2 not installed
    PERFORMANCE: Same speed as before with PostgreSQL, new Spatialite backend for other formats
    BREAKING: None (100%% backward compatible with v1.8)
    
    Version 1.8 (Previous)
    - Rework filtering logic: use of temporary materialized views and indexes
    - Add spatialite management: project metadata and subset history
    - Rebuild QgsCheckableComboBoxFeaturesListPickerWidget to show filtered entities
    - Rework combine logic filter


# Tags are comma separated with spaces allowed
tags=python,filter,vector,layers,geofilter,search,postgis,ogr,spatialite,data,exploration,subset,export

homepage=https://sducournau.github.io/filter_mate/
category=Plugins
icon=icon.png
# experimental flag
experimental=False

# deprecated flag (applies to the whole plugin, not just a single version)
deprecated=False

# Since QGIS 3.8, a comma separated list of plugins to be installed
# (or upgraded) can be specified.
# Check the documentation for more information.
# plugin_dependencies=

Category of the plugin: Raster, Vector, Database or Web
#category=Database

# If the plugin can run on QGIS Server.
server=False
