void Workspace::updateTabs() { WidgetsList children = this->children(); while (!children.empty()) { Widget* child = children.back(); children.erase(--children.end()); if (child->type() == WorkspacePanel::Type()) static_cast<WorkspacePanel*>(child)->tabs()->updateTabs(); for (auto subchild : child->children()) children.push_back(subchild); } }