aboutsummaryrefslogtreecommitdiff
path: root/src/gui/guiFormSpecMenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/guiFormSpecMenu.cpp')
-rw-r--r--src/gui/guiFormSpecMenu.cpp59
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;