FIX:fix three icons in dark mode not switching
jira: none Change-Id: I0b49e3dc2e4d9ae7f53e45e456de830736f0acc8
This commit is contained in:
parent
19e3ceab84
commit
38abdcdcdc
|
@ -1373,7 +1373,7 @@ void ObjectList::list_manipulation(const wxPoint& mouse_pos, bool evt_context_me
|
|||
toggle_printable_state();
|
||||
else if (col_num == colSupportPaint) {
|
||||
ObjectDataViewModelNode* node = (ObjectDataViewModelNode*)item.GetID();
|
||||
if (node->HasSupportPainting()) {
|
||||
if (node && node->HasSupportPainting()) {
|
||||
GLGizmosManager& gizmos_mgr = wxGetApp().plater()->get_view3D_canvas3D()->get_gizmos_manager();
|
||||
if (gizmos_mgr.get_current_type() != GLGizmosManager::EType::FdmSupports)
|
||||
gizmos_mgr.open_gizmo(GLGizmosManager::EType::FdmSupports);
|
||||
|
@ -1384,7 +1384,7 @@ void ObjectList::list_manipulation(const wxPoint& mouse_pos, bool evt_context_me
|
|||
else if (col_num == colColorPaint) {
|
||||
if (wxGetApp().plater()->get_current_canvas3D()->get_canvas_type() != GLCanvas3D::CanvasAssembleView) {
|
||||
ObjectDataViewModelNode* node = (ObjectDataViewModelNode*)item.GetID();
|
||||
if (node->HasColorPainting()) {
|
||||
if (node && node->HasColorPainting()) {
|
||||
GLGizmosManager& gizmos_mgr = wxGetApp().plater()->get_view3D_canvas3D()->get_gizmos_manager();
|
||||
if (gizmos_mgr.get_current_type() != GLGizmosManager::EType::MmuSegmentation)
|
||||
gizmos_mgr.open_gizmo(GLGizmosManager::EType::MmuSegmentation);
|
||||
|
@ -3751,7 +3751,7 @@ void ObjectList::update_variable_layer_obj_num(ObjectDataViewModelNode* obj_node
|
|||
}
|
||||
}
|
||||
|
||||
void ObjectList::update_info_items(size_t obj_idx, wxDataViewItemArray* selections/* = nullptr*/, bool added_object/* = false*/)
|
||||
void ObjectList::update_info_items(size_t obj_idx, wxDataViewItemArray *selections /* = nullptr*/, bool added_object /* = false*/, bool color_mode_changed /* = false*/)
|
||||
{
|
||||
// BBS
|
||||
if (obj_idx >= m_objects->size())
|
||||
|
@ -3809,6 +3809,9 @@ void ObjectList::update_info_items(size_t obj_idx, wxDataViewItemArray* selectio
|
|||
else if (!shows && should_show) {
|
||||
m_objects_model->SetSupportPaintState(true, item_obj);
|
||||
}
|
||||
if (color_mode_changed && shows) {
|
||||
m_objects_model->SetSupportPaintState(true, item_obj,true);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -3824,6 +3827,9 @@ void ObjectList::update_info_items(size_t obj_idx, wxDataViewItemArray* selectio
|
|||
else if (!shows && should_show) {
|
||||
m_objects_model->SetColorPaintState(true, item_obj);
|
||||
}
|
||||
if (color_mode_changed && shows) {
|
||||
m_objects_model->SetColorPaintState(true, item_obj, true);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -3836,6 +3842,9 @@ void ObjectList::update_info_items(size_t obj_idx, wxDataViewItemArray* selectio
|
|||
else if (!shows && should_show) {
|
||||
m_objects_model->SetSinkState(true, item_obj);
|
||||
}
|
||||
if (color_mode_changed && shows) {
|
||||
m_objects_model->SetSinkState(true, item_obj, true);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
|
|
|
@ -421,7 +421,7 @@ public:
|
|||
void update_and_show_object_settings_item();
|
||||
void update_settings_item_and_selection(wxDataViewItem item, wxDataViewItemArray& selections);
|
||||
void update_object_list_by_printer_technology();
|
||||
void update_info_items(size_t obj_idx, wxDataViewItemArray* selections = nullptr, bool added_object = false);
|
||||
void update_info_items(size_t obj_idx, wxDataViewItemArray *selections = nullptr, bool added_object = false, bool color_mode_changed = false);
|
||||
void update_variable_layer_obj_num(ObjectDataViewModelNode* obj_node, size_t layer_data_count);
|
||||
|
||||
void instances_to_separated_object(const int obj_idx, const std::set<int>& inst_idx);
|
||||
|
|
|
@ -225,9 +225,9 @@ void ObjectDataViewModelNode::set_action_icon(bool enable)
|
|||
}
|
||||
|
||||
// BBS
|
||||
void ObjectDataViewModelNode::set_color_icon(bool enable)
|
||||
void ObjectDataViewModelNode::set_color_icon(bool enable, bool force)
|
||||
{
|
||||
if (m_color_enable == enable)
|
||||
if (!force && m_color_enable == enable)
|
||||
return;
|
||||
m_color_enable = enable;
|
||||
if ((m_type & itObject) && enable)
|
||||
|
@ -236,9 +236,9 @@ void ObjectDataViewModelNode::set_color_icon(bool enable)
|
|||
m_color_icon = create_scaled_bitmap("dot");
|
||||
}
|
||||
|
||||
void ObjectDataViewModelNode::set_support_icon(bool enable)
|
||||
void ObjectDataViewModelNode::set_support_icon(bool enable, bool force)
|
||||
{
|
||||
if (m_support_enable == enable)
|
||||
if (!force && m_support_enable == enable)
|
||||
return;
|
||||
m_support_enable = enable;
|
||||
if ((m_type & itObject) && enable)
|
||||
|
@ -247,9 +247,9 @@ void ObjectDataViewModelNode::set_support_icon(bool enable)
|
|||
m_support_icon = create_scaled_bitmap("dot");
|
||||
}
|
||||
|
||||
void ObjectDataViewModelNode::set_sinking_icon(bool enable)
|
||||
void ObjectDataViewModelNode::set_sinking_icon(bool enable, bool force)
|
||||
{
|
||||
if (m_sink_enable == enable)
|
||||
if (!force && m_sink_enable == enable)
|
||||
return;
|
||||
m_sink_enable = enable;
|
||||
if ((m_type & itObject) && enable)
|
||||
|
@ -2334,32 +2334,32 @@ bool ObjectDataViewModel::IsSinked(wxDataViewItem &item) const
|
|||
return node->m_sink_enable;
|
||||
}
|
||||
|
||||
void ObjectDataViewModel::SetColorPaintState(const bool painted, wxDataViewItem obj_item)
|
||||
void ObjectDataViewModel::SetColorPaintState(const bool painted, wxDataViewItem obj_item, bool force)
|
||||
{
|
||||
ObjectDataViewModelNode* node = static_cast<ObjectDataViewModelNode*>(obj_item.GetID());
|
||||
if (!node)
|
||||
return;
|
||||
|
||||
node->set_color_icon(painted);
|
||||
node->set_color_icon(painted, force);
|
||||
ItemChanged(obj_item);
|
||||
}
|
||||
|
||||
void ObjectDataViewModel::SetSupportPaintState(const bool painted, wxDataViewItem obj_item)
|
||||
void ObjectDataViewModel::SetSupportPaintState(const bool painted, wxDataViewItem obj_item, bool force)
|
||||
{
|
||||
ObjectDataViewModelNode* node = static_cast<ObjectDataViewModelNode*>(obj_item.GetID());
|
||||
if (!node)
|
||||
return;
|
||||
|
||||
node->set_support_icon(painted);
|
||||
node->set_support_icon(painted, force);
|
||||
ItemChanged(obj_item);
|
||||
}
|
||||
|
||||
void ObjectDataViewModel::SetSinkState(const bool painted, wxDataViewItem obj_item)
|
||||
void ObjectDataViewModel::SetSinkState(const bool painted, wxDataViewItem obj_item, bool force)
|
||||
{
|
||||
ObjectDataViewModelNode *node = static_cast<ObjectDataViewModelNode *>(obj_item.GetID());
|
||||
if (!node) return;
|
||||
|
||||
node->set_sinking_icon(painted);
|
||||
node->set_sinking_icon(painted, force);
|
||||
ItemChanged(obj_item);
|
||||
}
|
||||
|
||||
|
|
|
@ -301,9 +301,9 @@ public:
|
|||
void set_variable_height_icon(VaryHeightIndicator vari_height);
|
||||
void set_action_icon(bool enable);
|
||||
// BBS
|
||||
void set_color_icon(bool enable);
|
||||
void set_support_icon(bool enable);
|
||||
void set_sinking_icon(bool enable);
|
||||
void set_color_icon(bool enable, bool force = false);
|
||||
void set_support_icon(bool enable,bool force = false);
|
||||
void set_sinking_icon(bool enable, bool force = false);
|
||||
|
||||
// Set warning icon for node
|
||||
void set_warning_icon(const std::string& warning_icon);
|
||||
|
@ -509,9 +509,9 @@ public:
|
|||
bool IsColorPainted(wxDataViewItem& item) const;
|
||||
bool IsSupportPainted(wxDataViewItem &item) const;
|
||||
bool IsSinked(wxDataViewItem &item) const;
|
||||
void SetColorPaintState(const bool painted, wxDataViewItem obj_item);
|
||||
void SetSupportPaintState(const bool painted, wxDataViewItem obj_item);
|
||||
void SetSinkState(const bool painted, wxDataViewItem obj_item);
|
||||
void SetColorPaintState(const bool painted, wxDataViewItem obj_item,bool force = false);
|
||||
void SetSupportPaintState(const bool painted, wxDataViewItem obj_item,bool force = false);
|
||||
void SetSinkState(const bool painted, wxDataViewItem obj_item,bool force = false);
|
||||
|
||||
void SetAssociatedControl(wxDataViewCtrl* ctrl) { m_ctrl = ctrl; }
|
||||
// Rescale bitmaps for existing Items
|
||||
|
|
|
@ -1959,6 +1959,14 @@ Sidebar::Sidebar(Plater *parent)
|
|||
|
||||
Sidebar::~Sidebar() {}
|
||||
|
||||
void Sidebar::on_change_color_mode(bool is_dark) {
|
||||
const ModelObjectPtrs &mos = wxGetApp().model().objects;
|
||||
for (int i = 0; i < mos.size(); i++) {
|
||||
wxGetApp().obj_list()->update_info_items(i,nullptr,false,true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void Sidebar::create_printer_preset()
|
||||
{
|
||||
CreatePrinterPresetDialog dlg(wxGetApp().mainframe);
|
||||
|
@ -9029,6 +9037,7 @@ void Plater::priv::on_apple_change_color_mode(wxSysColourChangedEvent& evt) {
|
|||
|
||||
void Plater::priv::on_change_color_mode(SimpleEvent& evt) {
|
||||
m_is_dark = wxGetApp().app_config->get("dark_color_mode") == "1";
|
||||
sidebar->on_change_color_mode(m_is_dark);
|
||||
view3D->get_canvas3d()->on_change_color_mode(m_is_dark);
|
||||
preview->get_canvas3d()->on_change_color_mode(m_is_dark);
|
||||
assemble_view->get_canvas3d()->on_change_color_mode(m_is_dark);
|
||||
|
|
|
@ -139,6 +139,7 @@ public:
|
|||
Sidebar &operator=(const Sidebar &) = delete;
|
||||
~Sidebar();
|
||||
|
||||
void on_change_color_mode(bool is_dark);
|
||||
void create_printer_preset();
|
||||
void init_filament_combo(PlaterPresetComboBox **combo, const int filament_idx);
|
||||
void remove_unused_filament_combos(const size_t current_extruder_count);
|
||||
|
|
Loading…
Reference in New Issue