diff options
Diffstat (limited to 'src/gui/guiFormSpecMenu.cpp')
-rw-r--r-- | src/gui/guiFormSpecMenu.cpp | 59 |
1 files changed, 24 insertions, 35 deletions
diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 18bcef292..68222b319 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -127,23 +127,7 @@ GUIFormSpecMenu::GUIFormSpecMenu(JoystickController *joystick, GUIFormSpecMenu::~GUIFormSpecMenu() { - removeAllChildren(); - removeTooltip(); - - for (auto &table_it : m_tables) - table_it.second->drop(); - for (auto &inventorylist_it : m_inventorylists) - inventorylist_it->drop(); - for (auto &checkbox_it : m_checkboxes) - checkbox_it.second->drop(); - for (auto &scrollbar_it : m_scrollbars) - scrollbar_it.second->drop(); - for (auto &tooltip_rect_it : m_tooltip_rects) - tooltip_rect_it.first->drop(); - for (auto &clickthrough_it : m_clickthrough_elements) - clickthrough_it->drop(); - for (auto &scroll_container_it : m_scroll_containers) - scroll_container_it.second->drop(); + removeAll(); delete m_selected_item; delete m_form_src; @@ -2807,6 +2791,28 @@ void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element) m_fields.push_back(spec); } +void GUIFormSpecMenu::removeAll() +{ + // Remove children + removeAllChildren(); + removeTooltip(); + + for (auto &table_it : m_tables) + table_it.second->drop(); + for (auto &inventorylist_it : m_inventorylists) + inventorylist_it->drop(); + for (auto &checkbox_it : m_checkboxes) + checkbox_it.second->drop(); + for (auto &scrollbar_it : m_scrollbars) + scrollbar_it.second->drop(); + for (auto &tooltip_rect_it : m_tooltip_rects) + tooltip_rect_it.first->drop(); + for (auto &clickthrough_it : m_clickthrough_elements) + clickthrough_it->drop(); + for (auto &scroll_container_it : m_scroll_containers) + scroll_container_it.second->drop(); +} + void GUIFormSpecMenu::parseElement(parserData* data, const std::string &element) { //some prechecks @@ -3049,24 +3055,7 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) m_focused_element = nullopt; } - // Remove children - removeAllChildren(); - removeTooltip(); - - for (auto &table_it : m_tables) - table_it.second->drop(); - for (auto &inventorylist_it : m_inventorylists) - inventorylist_it->drop(); - for (auto &checkbox_it : m_checkboxes) - checkbox_it.second->drop(); - for (auto &scrollbar_it : m_scrollbars) - scrollbar_it.second->drop(); - for (auto &tooltip_rect_it : m_tooltip_rects) - tooltip_rect_it.first->drop(); - for (auto &clickthrough_it : m_clickthrough_elements) - clickthrough_it->drop(); - for (auto &scroll_container_it : m_scroll_containers) - scroll_container_it.second->drop(); + removeAll(); mydata.size = v2s32(100, 100); mydata.screensize = screensize; |