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);