Enhance the current export panel UI in panel.py to support configurable export modules that can be easily extended. The current implementation hardcodes specific export types (CSV and GeoPDF) in the UI with fixed QFrame structures.
Current State Analysis
In ui/panel.py, the export section currently has two fixed QFrame widgets:
geopdf_frame - Contains GeoPDF export controls
csv_frame - Contains CSV export controls
Both frames are hardcoded with specific buttons and controls, making it difficult to add new export types without modifying the UI structure directly.
Proposed Solution
Refactor the export UI section to:
- Replace hardcoded QFrames with a configurable module system
- Allow dynamic addition of export modules through a registry pattern
- Make the panel structure more flexible to accommodate new export types
- Implement a consistent interface for all export modules
Benefits
- Easier addition of new export formats (Excel, Shapefile, etc.)
- Cleaner separation of concerns between UI and export logic
- More maintainable code structure
- Reduced risk of breaking changes when adding new exports
Enhance the current export panel UI in panel.py to support configurable export modules that can be easily extended. The current implementation hardcodes specific export types (CSV and GeoPDF) in the UI with fixed QFrame structures.
Current State Analysis
In
ui/panel.py, the export section currently has two fixed QFrame widgets:geopdf_frame- Contains GeoPDF export controlscsv_frame- Contains CSV export controlsBoth frames are hardcoded with specific buttons and controls, making it difficult to add new export types without modifying the UI structure directly.
Proposed Solution
Refactor the export UI section to:
Benefits