FIX:continuous click can add new plate
jira: STUDIO-7609 Change-Id: I0888c62777c0675be2639e493edbf43d2af90999
This commit is contained in:
parent
47139ad690
commit
5a4c51a31f
|
@ -6388,7 +6388,7 @@ bool GLCanvas3D::_init_main_toolbar()
|
||||||
item.icon_filename = m_is_dark ? "toolbar_add_plate_dark.svg" : "toolbar_add_plate.svg";
|
item.icon_filename = m_is_dark ? "toolbar_add_plate_dark.svg" : "toolbar_add_plate.svg";
|
||||||
item.tooltip = _utf8(L("Add plate"));
|
item.tooltip = _utf8(L("Add plate"));
|
||||||
item.sprite_id++;
|
item.sprite_id++;
|
||||||
item.left.toggable = true;
|
item.continuous_click = true;
|
||||||
item.left.action_callback = [this]() { if (m_canvas != nullptr) wxPostEvent(m_canvas, SimpleEvent(EVT_GLTOOLBAR_ADD_PLATE)); };
|
item.left.action_callback = [this]() { if (m_canvas != nullptr) wxPostEvent(m_canvas, SimpleEvent(EVT_GLTOOLBAR_ADD_PLATE)); };
|
||||||
item.enabling_callback = []()->bool {return wxGetApp().plater()->can_add_plate(); };
|
item.enabling_callback = []()->bool {return wxGetApp().plater()->can_add_plate(); };
|
||||||
if (!m_main_toolbar.add_item(item))
|
if (!m_main_toolbar.add_item(item))
|
||||||
|
|
|
@ -842,8 +842,11 @@ void GLToolbar::do_action(GLToolbarItem::EActionType type, int item_id, GLCanvas
|
||||||
case GLToolbarItem::Left: { item->do_left_action(); break; }
|
case GLToolbarItem::Left: { item->do_left_action(); break; }
|
||||||
case GLToolbarItem::Right: { item->do_right_action(); break; }
|
case GLToolbarItem::Right: { item->do_right_action(); break; }
|
||||||
}
|
}
|
||||||
|
if (item->get_continuous_click_flag()) {
|
||||||
if ((m_type == Normal) && (item->get_state() != GLToolbarItem::Disabled))
|
item->set_state(GLToolbarItem::Hover);
|
||||||
|
parent.render();
|
||||||
|
}
|
||||||
|
else if ((m_type == Normal) && (item->get_state() != GLToolbarItem::Disabled) && !item->get_continuous_click_flag())
|
||||||
{
|
{
|
||||||
// the item may get disabled during the action, if not, set it back to normal state
|
// the item may get disabled during the action, if not, set it back to normal state
|
||||||
item->set_state(GLToolbarItem::Normal);
|
item->set_state(GLToolbarItem::Normal);
|
||||||
|
|
|
@ -138,6 +138,7 @@ public:
|
||||||
// mouse right click
|
// mouse right click
|
||||||
Option right;
|
Option right;
|
||||||
bool visible;
|
bool visible;
|
||||||
|
bool continuous_click{false};
|
||||||
VisibilityCallback visibility_callback;
|
VisibilityCallback visibility_callback;
|
||||||
EnablingCallback enabling_callback;
|
EnablingCallback enabling_callback;
|
||||||
|
|
||||||
|
@ -155,6 +156,7 @@ public:
|
||||||
left = data.left;
|
left = data.left;
|
||||||
right = data.right;
|
right = data.right;
|
||||||
visible = data.visible;
|
visible = data.visible;
|
||||||
|
continuous_click = data.continuous_click;
|
||||||
visibility_callback = data.visibility_callback;
|
visibility_callback = data.visibility_callback;
|
||||||
enabling_callback = data.enabling_callback;
|
enabling_callback = data.enabling_callback;
|
||||||
image_data = data.image_data;
|
image_data = data.image_data;
|
||||||
|
@ -224,6 +226,7 @@ public:
|
||||||
bool update_enabled_state();
|
bool update_enabled_state();
|
||||||
|
|
||||||
//BBS: GUI refactor: GLToolbar
|
//BBS: GUI refactor: GLToolbar
|
||||||
|
bool get_continuous_click_flag() const { return m_data.continuous_click; }
|
||||||
bool is_action() const { return m_type == Action; }
|
bool is_action() const { return m_type == Action; }
|
||||||
bool is_action_with_text() const { return m_type == ActionWithText; }
|
bool is_action_with_text() const { return m_type == ActionWithText; }
|
||||||
bool is_action_with_text_image() const { return m_type == ActionWithTextImage; }
|
bool is_action_with_text_image() const { return m_type == ActionWithTextImage; }
|
||||||
|
|
Loading…
Reference in New Issue