mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 08:17:34 +00:00
Everywhere: Replace Vector<T*> with nonnull entries with Vector<T&>
This commit is contained in:
parent
3d94b5051d
commit
7ac196974d
22 changed files with 92 additions and 94 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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&);
|
||||
|
|
|
@ -21,7 +21,7 @@ Menubar::~Menubar()
|
|||
|
||||
void Menubar::add_menu(Menu& menu)
|
||||
{
|
||||
m_menus.append(&menu);
|
||||
m_menus.append(menu);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue