1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 12:37:44 +00:00

Everywhere: Replace Vector<T*> with nonnull entries with Vector<T&>

This commit is contained in:
Ali Mohammad Pur 2021-06-08 19:36:27 +04:30 committed by Andreas Kling
parent 3d94b5051d
commit 7ac196974d
22 changed files with 92 additions and 94 deletions

View file

@ -227,34 +227,34 @@ void MenuManager::close_everyone()
void MenuManager::close_everyone_not_in_lineage(Menu& menu)
{
Vector<Menu*> menus_to_close;
Vector<Menu&> menus_to_close;
for (auto& open_menu : m_open_menu_stack) {
if (!open_menu)
continue;
if (&menu == open_menu.ptr() || open_menu->is_menu_ancestor_of(menu))
continue;
menus_to_close.append(open_menu);
menus_to_close.append(*open_menu);
}
close_menus(menus_to_close);
}
void MenuManager::close_menus(const Vector<Menu*>& menus)
void MenuManager::close_menus(const Vector<Menu&>& menus)
{
for (auto& menu : menus) {
if (menu == m_current_menu)
if (&menu == m_current_menu)
clear_current_menu();
menu->set_visible(false);
menu->clear_hovered_item();
menu.set_visible(false);
menu.clear_hovered_item();
m_open_menu_stack.remove_first_matching([&](auto& entry) {
return entry == menu;
return entry == &menu;
});
}
refresh();
}
static void collect_menu_subtree(Menu& menu, Vector<Menu*>& menus)
static void collect_menu_subtree(Menu& menu, Vector<Menu&>& menus)
{
menus.append(&menu);
menus.append(menu);
for (size_t i = 0; i < menu.item_count(); ++i) {
auto& item = menu.item(i);
if (!item.is_submenu())
@ -265,7 +265,7 @@ static void collect_menu_subtree(Menu& menu, Vector<Menu*>& menus)
void MenuManager::close_menu_and_descendants(Menu& menu)
{
Vector<Menu*> menus_to_close;
Vector<Menu&> menus_to_close;
collect_menu_subtree(menu, menus_to_close);
close_menus(menus_to_close);
}

View file

@ -50,7 +50,7 @@ public:
Menu* hovered_menu() { return m_hovered_menu; }
private:
void close_menus(const Vector<Menu*>&);
void close_menus(const Vector<Menu&>&);
virtual void event(Core::Event&) override;
void handle_mouse_event(MouseEvent&);

View file

@ -21,7 +21,7 @@ Menubar::~Menubar()
void Menubar::add_menu(Menu& menu)
{
m_menus.append(&menu);
m_menus.append(menu);
}
}

View file

@ -29,7 +29,7 @@ public:
void for_each_menu(Callback callback)
{
for (auto& menu : m_menus) {
if (callback(*menu) == IterationDecision::Break)
if (callback(menu) == IterationDecision::Break)
return;
}
}
@ -39,7 +39,7 @@ private:
ClientConnection& m_client;
int m_menubar_id { 0 };
Vector<Menu*> m_menus;
Vector<Menu&> m_menus;
};
}

View file

@ -200,19 +200,19 @@ public:
{
auto* blocking_modal_window = window.blocking_modal_window();
if (blocking_modal_window || window.is_modal()) {
Vector<Window*> modal_stack;
Vector<Window&> modal_stack;
auto* modal_stack_top = blocking_modal_window ? blocking_modal_window : &window;
for (auto* parent = modal_stack_top->parent_window(); parent; parent = parent->parent_window()) {
auto* blocked_by = parent->blocking_modal_window();
if (!blocked_by || (blocked_by != modal_stack_top && !modal_stack_top->is_descendant_of(*blocked_by)))
break;
modal_stack.append(parent);
modal_stack.append(*parent);
if (!parent->is_modal())
break;
}
if (!modal_stack.is_empty()) {
for (size_t i = modal_stack.size(); i > 0; i--) {
IterationDecision decision = f(*modal_stack[i - 1], false);
IterationDecision decision = f(modal_stack[i - 1], false);
if (decision != IterationDecision::Continue)
return decision;
}