FIX:fix three icons in dark mode not switching

jira: none
Change-Id: I0b49e3dc2e4d9ae7f53e45e456de830736f0acc8
(cherry picked from commit 38abdcdcdc1e49455e131b20cc29af888d56531c)
This commit is contained in:
zhou.xu
2025-03-12 12:10:38 +08:00
committed by Noisyfox
parent aeaafff9ed
commit 616082ae12
6 changed files with 39 additions and 20 deletions

View File

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