FIX: Add overflow protection and clean up filament picker internals

- Add safeguards for invalid idx when opening color picker
- Prevent crash when filament color data is missing or uninitialized
- Simplify private member variable naming in filament picker dialog

jira: STUDIO-12956

Change-Id: I455565bdac769f497f22f884e19cd0cbb04fb8c3
(cherry picked from commit 705ad911ee81395b2162ae67a8f64e237f6a3c5d)
This commit is contained in:
fei2.fang
2025-07-03 15:30:21 +08:00
committed by Noisyfox
parent 6247ec1e83
commit ad7725a020
3 changed files with 53 additions and 32 deletions

View File

@@ -26,7 +26,7 @@ public:
// Public interface methods
bool IsDataLoaded() const { return m_is_data_loaded; }
wxColour GetSelectedColour() const;
const FilamentColor& GetSelectedFilamentColor() const { return m_current_filament_color; }
const FilamentColor& GetSelectedFilamentColor() const { return m_cur_filament_color; }
protected:
void on_dpi_changed(const wxRect &suggested_rect) override;
@@ -75,14 +75,14 @@ private:
Button* m_more_btn{nullptr};
Button* m_ok_btn{nullptr};
Button* m_cancel_btn{nullptr};
wxString* m_cur_color_name{nullptr};
// Data members
FilamentColorCodeQuery* m_color_query{nullptr};
FilamentColorCodes* m_current_color_codes{nullptr};
bool m_is_data_loaded{false};
wxBitmapButton* m_currently_selected_btn{nullptr};
FilamentColor m_current_filament_color;
wxString *m_cur_color_name{nullptr};
FilamentColorCodeQuery* m_color_query{nullptr};
FilamentColorCodes* m_cur_color_codes{nullptr};
wxBitmapButton* m_cur_selected_btn{nullptr};
FilamentColor m_cur_filament_color;
// Shaped window members
wxBitmap m_shape_bmp;