🔴 Category 1: Core Bugs - State & Sync (Critical)
These are issues that directly compromise the editor's reliability and basic user experience.
-
Issue # 1: Undo/Redo Stack Not Resetting Between Files
- Description: The
QUndoStack is currently operating globally. Opening a new .wnd file does not clear the stack, allowing users to "Undo" actions belonging to the previously opened file, which leads to crashes or data corruption.
- Architectural Requirement: Implement a call to
self.undo_stack.clear() whenever the load_file function is triggered in main.py.
-
Issue # 2: Canvas to UI Selection Desync
- Description: Selecting objects directly on the visual canvas does not consistently update the Object Tree (
QTreeWidget) and the Property Editor (PropertyEditor) to match the active selection.
- Architectural Requirement: Intercept the
selectionChanged signal in QGraphicsScene and ensure it emits the correct UUID back to main.py to dynamically update the tree (via setCurrentItem) and load the correct properties.
-
Issue # 3: Loss of Object Tree Hierarchy/Order on Add/Delete
- Description: Adding or deleting an object causes the Object Tree to lose its current item index and expanded/collapsed state, disorienting the user.
- Architectural Requirement: The current tree re-rendering mechanism is too brute-force (likely clearing and redrawing). We need to cache the Expanded State and Index of items before add/delete operations and restore them immediately after updating the WND Dictionary, or selectively use
insertTopLevelItem/takeTopLevelItem instead of a full redraw.
🟠 Category 2: Data & Properties
Issues related to how information is stored versus how it is handled in the UI.
-
Issue # 4: Invalid Default Value for RAW USER on Object Creation
- Description: When a new object is added to the editor, its
RAW USER property is generated with incorrect, unformatted, or missing data.
- Architectural Requirement: Update the factory function responsible for generating a new object's dictionary (e.g.,
create_default_window_dict) to inject the correct default RAW USER data structure.
-
Issue # 5: LISTBOXDATA Length Exceeds Control Properties Limit
- Description: There is a data handling conflict: standard Control Properties are limited to 99 entries, but the
LISTBOXDATA property contains a length of 1200.
- Architectural Requirement: Refactor the parsing/saving mechanism specifically for
LISTBOXDATA so it can handle or chunk extended data payloads without colliding with the strict 99-property limit of standard controls.
-
Issue # 6: General ScrollListBox Bug
- Description: The to-do list mentions a "scrolllistbox bug". (Note: We will need to clarify this when we start working on it—is it a visual rendering bug on the canvas, or a data parsing bug?)
🟢 Category 3: Feature Requests
New capabilities to enhance the editor.
- Issue # 7: Canvas Screenshot Export
- Description: The user needs the ability to export the current view of the visual canvas as an image file (PNG/JPG).
- Architectural Requirement: Add a new
QAction to the File menu. This action will trigger a function that grabs the QGraphicsScene, initializes a QImage (with a defined background), uses QPainter to render the scene into the image, and saves it to disk using QFileDialog.
🔴 Category 1: Core Bugs - State & Sync (Critical)
These are issues that directly compromise the editor's reliability and basic user experience.
Issue # 1: Undo/Redo Stack Not Resetting Between Files
QUndoStackis currently operating globally. Opening a new.wndfile does not clear the stack, allowing users to "Undo" actions belonging to the previously opened file, which leads to crashes or data corruption.self.undo_stack.clear()whenever theload_filefunction is triggered inmain.py.Issue # 2: Canvas to UI Selection Desync
QTreeWidget) and the Property Editor (PropertyEditor) to match the active selection.selectionChangedsignal inQGraphicsSceneand ensure it emits the correct UUID back tomain.pyto dynamically update the tree (viasetCurrentItem) and load the correct properties.Issue # 3: Loss of Object Tree Hierarchy/Order on Add/Delete
insertTopLevelItem/takeTopLevelIteminstead of a full redraw.🟠 Category 2: Data & Properties
Issues related to how information is stored versus how it is handled in the UI.
Issue # 4: Invalid Default Value for
RAW USERon Object CreationRAW USERproperty is generated with incorrect, unformatted, or missing data.create_default_window_dict) to inject the correct defaultRAW USERdata structure.Issue # 5:
LISTBOXDATALength Exceeds Control Properties LimitLISTBOXDATAproperty contains a length of 1200.LISTBOXDATAso it can handle or chunk extended data payloads without colliding with the strict 99-property limit of standard controls.Issue # 6: General
ScrollListBoxBug🟢 Category 3: Feature Requests
New capabilities to enhance the editor.
QActionto the File menu. This action will trigger a function that grabs theQGraphicsScene, initializes aQImage(with a defined background), usesQPainterto render the scene into the image, and saves it to disk usingQFileDialog.