mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2026-01-01 12:20:47 -07:00
FIX:fix three icons in dark mode not switching
jira: none Change-Id: I0b49e3dc2e4d9ae7f53e45e456de830736f0acc8 (cherry picked from commit 38abdcdcdc1e49455e131b20cc29af888d56531c)
This commit is contained in:
parent
aeaafff9ed
commit
616082ae12
6 changed files with 39 additions and 20 deletions
|
|
@ -3678,7 +3678,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())
|
||||
|
|
@ -3736,6 +3736,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);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -3751,6 +3754,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);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -3763,6 +3769,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);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
|
|
|
|||
|
|
@ -419,7 +419,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);
|
||||
|
|
|
|||
|
|
@ -229,9 +229,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)
|
||||
|
|
@ -240,9 +240,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)
|
||||
|
|
@ -251,9 +251,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)
|
||||
|
|
@ -2340,32 +2340,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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -299,9 +299,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);
|
||||
|
|
@ -508,9 +508,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
|
||||
|
|
|
|||
|
|
@ -1912,6 +1912,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);
|
||||
|
|
@ -8999,6 +9007,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);
|
||||
|
|
|
|||
|
|
@ -152,6 +152,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…
Add table
Add a link
Reference in a new issue