From 8a18393789ae9e3f7998fa96ca34da3f32279492 Mon Sep 17 00:00:00 2001 From: "maosheng.wei" Date: Tue, 14 Nov 2023 14:44:17 +0800 Subject: [PATCH] FIX: 3770 printable checkbox incorrect display in darkUI Jira: 3770 Change-Id: I97f67d7a0ffc41f6ee625abeecc52ee4e73cf318 --- src/slic3r/GUI/GUI_ObjectList.cpp | 4 +++- src/slic3r/GUI/ObjectDataViewModel.cpp | 14 ++++++++++++++ src/slic3r/GUI/ObjectDataViewModel.hpp | 3 +++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index b1407ccc3..0873f7dcd 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -5542,8 +5542,10 @@ void ObjectList::msw_rescale() void ObjectList::sys_color_changed() { wxGetApp().UpdateDVCDarkUI(this, true); - + msw_rescale(); + + if (m_objects_model) { m_objects_model->sys_color_changed(); } } void ObjectList::ItemValueChanged(wxDataViewEvent &event) diff --git a/src/slic3r/GUI/ObjectDataViewModel.cpp b/src/slic3r/GUI/ObjectDataViewModel.cpp index c05ee0016..4a56fdd9b 100644 --- a/src/slic3r/GUI/ObjectDataViewModel.cpp +++ b/src/slic3r/GUI/ObjectDataViewModel.cpp @@ -166,8 +166,14 @@ bool ObjectDataViewModelNode::valid() assert(m_idx >= -1); return m_idx >= -1; } + #endif /* NDEBUG */ +void ObjectDataViewModelNode::sys_color_changed() +{ + m_printable_icon = m_printable == piUndef ? m_empty_bmp : create_scaled_bitmap(m_printable == piPrintable ? "check_on" : "check_off_focused"); +} + void ObjectDataViewModelNode::set_icons() { set_action_icon(false); @@ -1515,6 +1521,14 @@ void ObjectDataViewModel::append_found(wxString current_search_text, ObjectDataV } } +void ObjectDataViewModel::sys_color_changed() +{ + for (ObjectDataViewModelNode *item : m_objects) { + item->sys_color_changed(); + ItemChanged(wxDataViewItem((void *) item)); + } +} + // BBS: add use_obj_extruder void ObjectDataViewModel::UpdateVolumesExtruderBitmap(wxDataViewItem obj_item, bool use_obj_extruder) { diff --git a/src/slic3r/GUI/ObjectDataViewModel.hpp b/src/slic3r/GUI/ObjectDataViewModel.hpp index 10a0670ed..97dbf64ad 100644 --- a/src/slic3r/GUI/ObjectDataViewModel.hpp +++ b/src/slic3r/GUI/ObjectDataViewModel.hpp @@ -302,6 +302,7 @@ public: bool has_warning_icon() const { return !m_warning_icon_name.empty(); } std::string warning_icon_name() const { return m_warning_icon_name; } bool has_lock() const { return m_has_lock; } + void sys_color_changed(); private: friend class ObjectDataViewModel; @@ -488,6 +489,8 @@ public: void append_found_list(wxString current_search_text); void append_found(wxString current_search_text, ObjectDataViewModelNode* item); wxDataViewItemArray get_search_list() { return found_list; } + void sys_color_changed(); + private: wxDataViewItem AddRoot(const wxDataViewItem& parent_item, const ItemType root_type); wxDataViewItem AddInstanceRoot(const wxDataViewItem& parent_item);