fix color on mode change

This commit is contained in:
2019-03-09 01:15:23 +01:00
parent 3e54720e91
commit f0fed897f6
4 changed files with 10 additions and 6 deletions

View File

@@ -810,6 +810,7 @@ void App::brush_update()
quick->m_slider_size->set_value(stroke->m_tip_size->get_value()); quick->m_slider_size->set_value(stroke->m_tip_size->get_value());
*quick->m_button_brush_current_preview->m_brush = *Canvas::I->m_current_brush; *quick->m_button_brush_current_preview->m_brush = *Canvas::I->m_current_brush;
quick->m_button_brush_current_preview->draw_stroke(); quick->m_button_brush_current_preview->draw_stroke();
quick->m_button_color_current_inner->m_color = Canvas::I->m_current_brush->m_tip_color;
} }
void App::init_menu_layer() void App::init_menu_layer()

View File

@@ -291,10 +291,10 @@ bool NodePanelBrush::save()
{ {
BinaryStreamWriter sw; BinaryStreamWriter sw;
sw.init(); sw.init();
sw.wstring_raw("PPVR"); sw.wstring_raw("PPVR"); // magic code
sw.wu16(0); sw.wu16(0); // version major
sw.wu16(1); sw.wu16(1); // minor
sw.wu32(m_container->m_children.size()); sw.wu32(m_container->m_children.size()); // number of items
for (const auto& child : m_container->m_children) for (const auto& child : m_container->m_children)
{ {
auto b = std::static_pointer_cast<NodeButtonBrush>(child); auto b = std::static_pointer_cast<NodeButtonBrush>(child);

View File

@@ -25,7 +25,7 @@ void NodePanelQuick::init()
void NodePanelQuick::set_color(glm::vec3 color) void NodePanelQuick::set_color(glm::vec3 color)
{ {
static_cast<NodeBorder*>(m_button_color_current->m_children[0].get())->m_color = glm::vec4(color, 1.f); m_button_color_current_inner->m_color = glm::vec4(color, 1.f);
} }
void NodePanelQuick::init_controls() void NodePanelQuick::init_controls()
@@ -81,6 +81,7 @@ void NodePanelQuick::init_controls()
m_button_color3 = find<NodeButtonCustom>("quick-color3"); m_button_color3 = find<NodeButtonCustom>("quick-color3");
m_button_color_current = m_button_color1; m_button_color_current = m_button_color1;
m_button_color_current->set_active(true); m_button_color_current->set_active(true);
m_button_color_current_inner = static_cast<NodeBorder*>(m_button_color_current->m_children[0].get());
m_button_color1->on_click = std::bind(&this_class::handle_button_color_click, this, std::placeholders::_1); m_button_color1->on_click = std::bind(&this_class::handle_button_color_click, this, std::placeholders::_1);
m_button_color2->on_click = std::bind(&this_class::handle_button_color_click, this, std::placeholders::_1); m_button_color2->on_click = std::bind(&this_class::handle_button_color_click, this, std::placeholders::_1);
m_button_color3->on_click = std::bind(&this_class::handle_button_color_click, this, std::placeholders::_1); m_button_color3->on_click = std::bind(&this_class::handle_button_color_click, this, std::placeholders::_1);
@@ -176,8 +177,9 @@ void NodePanelQuick::handle_button_color_click(Node* target)
button->set_active(true); button->set_active(true);
m_button_color_current->set_active(false); m_button_color_current->set_active(false);
m_button_color_current = button; m_button_color_current = button;
m_button_color_current_inner = static_cast<NodeBorder*>(m_button_color_current->m_children[0].get());
if (on_color_change) if (on_color_change)
on_color_change(this, static_cast<NodeBorder*>(button->m_children[0].get())->m_color); on_color_change(this, m_button_color_current_inner->m_color);
return; return;
} }

View File

@@ -22,6 +22,7 @@ public:
NodeButtonCustom* m_button_color2; NodeButtonCustom* m_button_color2;
NodeButtonCustom* m_button_color3; NodeButtonCustom* m_button_color3;
NodeButtonCustom* m_button_color_current; NodeButtonCustom* m_button_color_current;
NodeBorder* m_button_color_current_inner;
NodeButtonCustom* m_button_brush1; NodeButtonCustom* m_button_brush1;
NodeButtonCustom* m_button_brush2; NodeButtonCustom* m_button_brush2;
NodeButtonCustom* m_button_brush3; NodeButtonCustom* m_button_brush3;