diff --git a/src/gui/widgets/container_base.cpp b/src/gui/widgets/container_base.cpp index 5d9c67d77a2..5f15828e088 100644 --- a/src/gui/widgets/container_base.cpp +++ b/src/gui/widgets/container_base.cpp @@ -221,13 +221,13 @@ const widget* container_base::find_at(const point& coordinate, return grid_.find_at(coordinate, must_be_active); } -widget* container_base::find(const std::string& id, const bool must_be_active) +widget* container_base::find(const std::string_view id, const bool must_be_active) { widget* result = styled_widget::find(id, must_be_active); return result ? result : grid_.find(id, must_be_active); } -const widget* container_base::find(const std::string& id, +const widget* container_base::find(const std::string_view id, const bool must_be_active) const { const widget* result = styled_widget::find(id, must_be_active); diff --git a/src/gui/widgets/container_base.hpp b/src/gui/widgets/container_base.hpp index 35963555a68..a0937e29bfe 100644 --- a/src/gui/widgets/container_base.hpp +++ b/src/gui/widgets/container_base.hpp @@ -119,11 +119,10 @@ public: const bool must_be_active) const override; /** See @ref widget::find. */ - widget* find(const std::string& id, const bool must_be_active) override; + widget* find(const std::string_view id, const bool must_be_active) override; /** See @ref widget::find. */ - const widget* find(const std::string& id, - const bool must_be_active) const override; + const widget* find(const std::string_view id, const bool must_be_active) const override; /** See @ref styled_widget::set_active. */ virtual void set_active(const bool active) override; diff --git a/src/gui/widgets/generator.cpp b/src/gui/widgets/generator.cpp index b34dc2aa7c5..d51eef63720 100644 --- a/src/gui/widgets/generator.cpp +++ b/src/gui/widgets/generator.cpp @@ -976,7 +976,7 @@ const widget* independent::find_at(const point& coordinate, const bool must_be_a return grid.find_at(coordinate, must_be_active); } -widget* independent::find(const std::string& id, const bool must_be_active) +widget* independent::find(const std::string_view id, const bool must_be_active) { for(std::size_t i = 0; i < get_item_count(); ++i) { if(is_selected(i)) { @@ -989,7 +989,7 @@ widget* independent::find(const std::string& id, const bool must_be_active) return nullptr; } -const widget* independent::find(const std::string& id, const bool must_be_active) const +const widget* independent::find(const std::string_view id, const bool must_be_active) const { for(std::size_t i = 0; i < get_item_count(); ++i) { if(is_selected(i)) { diff --git a/src/gui/widgets/generator_private.hpp b/src/gui/widgets/generator_private.hpp index 9802c5189c3..884a32f5687 100644 --- a/src/gui/widgets/generator_private.hpp +++ b/src/gui/widgets/generator_private.hpp @@ -455,10 +455,10 @@ struct independent : public virtual generator_base virtual const widget* find_at(const point& coordinate, const bool must_be_active) const override; /** See @ref widget::find. */ - widget* find(const std::string& id, const bool must_be_active) override; + widget* find(const std::string_view id, const bool must_be_active) override; /** See @ref widget::find. */ - const widget* find(const std::string& id, const bool must_be_active) const override; + const widget* find(const std::string_view id, const bool must_be_active) const override; /***** ***** ***** ***** keyboard functions ***** ***** ***** *****/ diff --git a/src/gui/widgets/grid.cpp b/src/gui/widgets/grid.cpp index 5004a26b094..e345f5f06fa 100644 --- a/src/gui/widgets/grid.cpp +++ b/src/gui/widgets/grid.cpp @@ -642,13 +642,12 @@ const widget* grid::find_at(const point& coordinate, *this, coordinate, must_be_active); } -widget* grid::find(const std::string& id, const bool must_be_active) +widget* grid::find(const std::string_view id, const bool must_be_active) { return grid_implementation::find(*this, id, must_be_active); } -const widget* grid::find(const std::string& id, const bool must_be_active) - const +const widget* grid::find(const std::string_view id, const bool must_be_active) const { return grid_implementation::find(*this, id, must_be_active); } diff --git a/src/gui/widgets/grid.hpp b/src/gui/widgets/grid.hpp index 3cee8999ec4..8dac2275042 100644 --- a/src/gui/widgets/grid.hpp +++ b/src/gui/widgets/grid.hpp @@ -282,11 +282,10 @@ public: const bool must_be_active) const override; /** See @ref widget::find. */ - widget* find(const std::string& id, const bool must_be_active) override; + widget* find(const std::string_view id, const bool must_be_active) override; /** See @ref widget::find. */ - const widget* find(const std::string& id, - const bool must_be_active) const override; + const widget* find(const std::string_view id, const bool must_be_active) const override; /** See @ref widget::has_widget. */ virtual bool has_widget(const widget& widget) const override; diff --git a/src/gui/widgets/grid_private.hpp b/src/gui/widgets/grid_private.hpp index ad6427714e8..e8caa533a7b 100644 --- a/src/gui/widgets/grid_private.hpp +++ b/src/gui/widgets/grid_private.hpp @@ -83,7 +83,7 @@ struct grid_implementation */ template static W* find(utils::const_clone_ref grid, - const std::string& id, + const std::string_view id, const bool must_be_active) { // Inherited. diff --git a/src/gui/widgets/matrix.cpp b/src/gui/widgets/matrix.cpp index dbc5a12c1af..a299d3f2e19 100644 --- a/src/gui/widgets/matrix.cpp +++ b/src/gui/widgets/matrix.cpp @@ -131,7 +131,7 @@ const widget* matrix::find_at(const point& coordinate, return content_.find_at(coordinate, must_be_active); } -widget* matrix::find(const std::string& id, const bool must_be_active) +widget* matrix::find(const std::string_view id, const bool must_be_active) { if(widget* result = widget::find(id, must_be_active)) { return result; @@ -140,7 +140,7 @@ widget* matrix::find(const std::string& id, const bool must_be_active) } } -const widget* matrix::find(const std::string& id, const bool must_be_active) +const widget* matrix::find(const std::string_view id, const bool must_be_active) const { if(const widget* result = widget::find(id, must_be_active)) { diff --git a/src/gui/widgets/matrix.hpp b/src/gui/widgets/matrix.hpp index 226bf036cc0..f4fdd67c31a 100644 --- a/src/gui/widgets/matrix.hpp +++ b/src/gui/widgets/matrix.hpp @@ -134,11 +134,10 @@ public: const bool must_be_active) const override; /** See @ref widget::find. */ - widget* find(const std::string& id, const bool must_be_active) override; + widget* find(const std::string_view id, const bool must_be_active) override; /** See @ref widget::find. */ - const widget* find(const std::string& id, - const bool must_be_active) const override; + const widget* find(const std::string_view id, const bool must_be_active) const override; /***** ***** ***** ***** Forwarded to pane_. ***** ***** ****** *****/ /** diff --git a/src/gui/widgets/scrollbar_container.cpp b/src/gui/widgets/scrollbar_container.cpp index 8c16f8e1b82..31c3d7cae83 100644 --- a/src/gui/widgets/scrollbar_container.cpp +++ b/src/gui/widgets/scrollbar_container.cpp @@ -500,12 +500,12 @@ const widget* scrollbar_container::find_at(const point& coordinate, const bool m return w; } -widget* scrollbar_container::find(const std::string& id, const bool must_be_active) +widget* scrollbar_container::find(const std::string_view id, const bool must_be_active) { return scrollbar_container_implementation::find(*this, id, must_be_active); } -const widget* scrollbar_container::find(const std::string& id, const bool must_be_active) const +const widget* scrollbar_container::find(const std::string_view id, const bool must_be_active) const { return scrollbar_container_implementation::find(*this, id, must_be_active); } diff --git a/src/gui/widgets/scrollbar_container.hpp b/src/gui/widgets/scrollbar_container.hpp index 0975663ff3c..99748bdbede 100644 --- a/src/gui/widgets/scrollbar_container.hpp +++ b/src/gui/widgets/scrollbar_container.hpp @@ -130,10 +130,10 @@ public: virtual const widget* find_at(const point& coordinate, const bool must_be_active) const override; /** See @ref widget::find. */ - widget* find(const std::string& id, const bool must_be_active) override; + widget* find(const std::string_view id, const bool must_be_active) override; /** See @ref widget::find. */ - const widget* find(const std::string& id, const bool must_be_active) const override; + const widget* find(const std::string_view id, const bool must_be_active) const override; /** See @ref widget::disable_click_dismiss. */ bool disable_click_dismiss() const override; diff --git a/src/gui/widgets/scrollbar_container_private.hpp b/src/gui/widgets/scrollbar_container_private.hpp index 0cf2659b7e5..2629b58b6d1 100644 --- a/src/gui/widgets/scrollbar_container_private.hpp +++ b/src/gui/widgets/scrollbar_container_private.hpp @@ -85,7 +85,7 @@ struct scrollbar_container_implementation static W* find(utils::const_clone_ref scrollbar_container, - const std::string& id, + const std::string_view id, const bool must_be_active) { // Inherited. diff --git a/src/gui/widgets/stacked_widget.cpp b/src/gui/widgets/stacked_widget.cpp index ed3fc81d7d9..95f8ec12b7f 100644 --- a/src/gui/widgets/stacked_widget.cpp +++ b/src/gui/widgets/stacked_widget.cpp @@ -40,7 +40,7 @@ struct stacked_widget_implementation { template static W* find(utils::const_clone_ref stack, - const std::string& id, + const std::string_view id, const bool must_be_active) { // Use base method if find-in-all-layer isn't set. @@ -193,12 +193,12 @@ const grid* stacked_widget::get_layer_grid(unsigned int i) const return &generator_->item(i); } -widget* stacked_widget::find(const std::string& id, const bool must_be_active) +widget* stacked_widget::find(const std::string_view id, const bool must_be_active) { return stacked_widget_implementation::find(*this, id, must_be_active); } -const widget* stacked_widget::find(const std::string& id, const bool must_be_active) const +const widget* stacked_widget::find(const std::string_view id, const bool must_be_active) const { return stacked_widget_implementation::find(*this, id, must_be_active); } diff --git a/src/gui/widgets/stacked_widget.hpp b/src/gui/widgets/stacked_widget.hpp index a52a293f48b..2c2ffbe1fc7 100644 --- a/src/gui/widgets/stacked_widget.hpp +++ b/src/gui/widgets/stacked_widget.hpp @@ -174,10 +174,10 @@ private: public: /** See @ref widget::find. */ - virtual widget* find(const std::string& id, const bool must_be_active) override; + virtual widget* find(const std::string_view id, const bool must_be_active) override; /** See @ref widget::find. */ - virtual const widget* find(const std::string& id, const bool must_be_active) const override; + virtual const widget* find(const std::string_view id, const bool must_be_active) const override; }; // }---------- DEFINITION ---------{ diff --git a/src/gui/widgets/styled_widget.cpp b/src/gui/widgets/styled_widget.cpp index aaab4cf727f..8cf8dd95fad 100644 --- a/src/gui/widgets/styled_widget.cpp +++ b/src/gui/widgets/styled_widget.cpp @@ -301,7 +301,7 @@ const widget* styled_widget::find_at(const point& coordinate, : nullptr; } -widget* styled_widget::find(const std::string& id, const bool must_be_active) +widget* styled_widget::find(const std::string_view id, const bool must_be_active) { return (widget::find(id, must_be_active) && (!must_be_active || get_active())) @@ -309,7 +309,7 @@ widget* styled_widget::find(const std::string& id, const bool must_be_active) : nullptr; } -const widget* styled_widget::find(const std::string& id, const bool must_be_active) +const widget* styled_widget::find(const std::string_view id, const bool must_be_active) const { return (widget::find(id, must_be_active) diff --git a/src/gui/widgets/styled_widget.hpp b/src/gui/widgets/styled_widget.hpp index 7d7f11669f3..e7b335d2029 100644 --- a/src/gui/widgets/styled_widget.hpp +++ b/src/gui/widgets/styled_widget.hpp @@ -192,11 +192,10 @@ public: const bool must_be_active) const override; /** See @ref widget::find. */ - widget* find(const std::string& id, const bool must_be_active) override; + widget* find(const std::string_view id, const bool must_be_active) override; /** See @ref widget::find. */ - const widget* find(const std::string& id, - const bool must_be_active) const override; + const widget* find(const std::string_view id, const bool must_be_active) const override; /***** ***** ***** setters / getters for members ***** ****** *****/ bool get_use_tooltip_on_label_overflow() const diff --git a/src/gui/widgets/tree_view_node.cpp b/src/gui/widgets/tree_view_node.cpp index c3ad49d5b92..5be436ee347 100644 --- a/src/gui/widgets/tree_view_node.cpp +++ b/src/gui/widgets/tree_view_node.cpp @@ -424,7 +424,7 @@ const widget* tree_view_node::find_at(const point& coordinate, const bool must_b return tree_view_node_implementation::find_at(*this, coordinate, must_be_active); } -widget* tree_view_node::find(const std::string& id, const bool must_be_active) +widget* tree_view_node::find(const std::string_view id, const bool must_be_active) { widget* result = widget::find(id, must_be_active); if(result) { @@ -446,7 +446,7 @@ widget* tree_view_node::find(const std::string& id, const bool must_be_active) return nullptr; } -const widget* tree_view_node::find(const std::string& id, const bool must_be_active) const +const widget* tree_view_node::find(const std::string_view id, const bool must_be_active) const { const widget* result = widget::find(id, must_be_active); if(result) { diff --git a/src/gui/widgets/tree_view_node.hpp b/src/gui/widgets/tree_view_node.hpp index c206626f4ab..716e0dfac2b 100644 --- a/src/gui/widgets/tree_view_node.hpp +++ b/src/gui/widgets/tree_view_node.hpp @@ -191,11 +191,10 @@ public: const bool must_be_active) const override; /** See @ref widget::find. */ - widget* find(const std::string& id, const bool must_be_active) override; + widget* find(const std::string_view id, const bool must_be_active) override; /** See @ref widget::find. */ - const widget* find(const std::string& id, - const bool must_be_active) const override; + const widget* find(const std::string_view id, const bool must_be_active) const override; /** * The number of children in this widget. diff --git a/src/gui/widgets/viewport.cpp b/src/gui/widgets/viewport.cpp index d0c7105de3c..9a34f4a2809 100644 --- a/src/gui/widgets/viewport.cpp +++ b/src/gui/widgets/viewport.cpp @@ -69,7 +69,7 @@ struct viewport_implementation template static utils::const_clone_ptr - find(W viewport, const std::string& id, const bool must_be_active) + find(W viewport, const std::string_view id, const bool must_be_active) { if(viewport->widget::find(id, must_be_active)) { return viewport; @@ -131,13 +131,12 @@ const widget* viewport::find_at(const point& coordinate, return viewport_implementation::find_at(this, coordinate, must_be_active); } -widget* viewport::find(const std::string& id, const bool must_be_active) +widget* viewport::find(const std::string_view id, const bool must_be_active) { return viewport_implementation::find(this, id, must_be_active); } -const widget* viewport::find(const std::string& id, const bool must_be_active) - const +const widget* viewport::find(const std::string_view id, const bool must_be_active) const { return viewport_implementation::find(this, id, must_be_active); } diff --git a/src/gui/widgets/viewport.hpp b/src/gui/widgets/viewport.hpp index 58a311d7690..94a7490e3bf 100644 --- a/src/gui/widgets/viewport.hpp +++ b/src/gui/widgets/viewport.hpp @@ -59,11 +59,10 @@ public: const bool must_be_active) const override; /** See @ref widget::find. */ - widget* find(const std::string& id, const bool must_be_active) override; + widget* find(const std::string_view id, const bool must_be_active) override; /** See @ref widget::find. */ - const widget* find(const std::string& id, - const bool must_be_active) const override; + const widget* find(const std::string_view id, const bool must_be_active) const override; private: /** See @ref widget::calculate_best_size. */ diff --git a/src/gui/widgets/widget.cpp b/src/gui/widgets/widget.cpp index 06930e98a8d..74df607c25d 100644 --- a/src/gui/widgets/widget.cpp +++ b/src/gui/widgets/widget.cpp @@ -557,13 +557,12 @@ const widget* widget::find_at(const point& coordinate, return is_at(coordinate, must_be_active) ? this : nullptr; } -widget* widget::find(const std::string& id, const bool /*must_be_active*/) +widget* widget::find(const std::string_view id, const bool /*must_be_active*/) { return id_ == id ? this : nullptr; } -const widget* widget::find(const std::string& id, - const bool /*must_be_active*/) const +const widget* widget::find(const std::string_view id, const bool /*must_be_active*/) const { return id_ == id ? this : nullptr; } diff --git a/src/gui/widgets/widget.hpp b/src/gui/widgets/widget.hpp index 685fe338b9e..a4bc430a86f 100644 --- a/src/gui/widgets/widget.hpp +++ b/src/gui/widgets/widget.hpp @@ -702,11 +702,10 @@ public: * @retval nullptr No widget with the id found (or not active if * must_be_active was set). */ - virtual widget* find(const std::string& id, const bool must_be_active); + virtual widget* find(const std::string_view id, const bool must_be_active); /** The constant version of @ref find. */ - virtual const widget* find(const std::string& id, - const bool must_be_active) const; + virtual const widget* find(const std::string_view id, const bool must_be_active) const; /** * Does the widget contain the widget. @@ -739,25 +738,25 @@ public: * @returns The widget with the id. */ template - NOT_DANGLING T* find_widget( - const std::string& id, + T* find_widget( + const std::string_view id, const bool must_be_active, const bool must_exist) { T* result = dynamic_cast(this->find(id, must_be_active)); - VALIDATE(!must_exist || result, missing_widget(id)); + VALIDATE(!must_exist || result, missing_widget(std::string(id))); return result; } template - NOT_DANGLING const T* find_widget( - const std::string& id, + const T* find_widget( + const std::string_view id, const bool must_be_active, const bool must_exist) const { T* result = dynamic_cast(this->find(id, must_be_active)); - VALIDATE(!must_exist || result, missing_widget(id)); + VALIDATE(!must_exist || result, missing_widget(std::string(id))); return result; } @@ -776,16 +775,16 @@ public: * @returns The widget with the id. */ template - NOT_DANGLING T& find_widget( - const std::string& id, + T& find_widget( + const std::string_view id, const bool must_be_active = false) { return *(this->find_widget(id, must_be_active, true)); } template - NOT_DANGLING const T& find_widget( - const std::string& id, + const T& find_widget( + const std::string_view id, const bool must_be_active = false) const { return *(this->find_widget(id, must_be_active, true)); diff --git a/src/gui/widgets/window.cpp b/src/gui/widgets/window.cpp index aee9e43323f..41498cd195e 100644 --- a/src/gui/widgets/window.cpp +++ b/src/gui/widgets/window.cpp @@ -775,12 +775,12 @@ const widget* window::find_at(const point& coordinate, return panel::find_at(coordinate, must_be_active); } -widget* window::find(const std::string& id, const bool must_be_active) +widget* window::find(const std::string_view id, const bool must_be_active) { return container_base::find(id, must_be_active); } -const widget* window::find(const std::string& id, const bool must_be_active) +const widget* window::find(const std::string_view id, const bool must_be_active) const { return container_base::find(id, must_be_active); diff --git a/src/gui/widgets/window.hpp b/src/gui/widgets/window.hpp index 9b9922c4169..a4ae977845e 100644 --- a/src/gui/widgets/window.hpp +++ b/src/gui/widgets/window.hpp @@ -271,11 +271,10 @@ public: } /** See @ref widget::find. */ - widget* find(const std::string& id, const bool must_be_active) override; + widget* find(const std::string_view id, const bool must_be_active) override; /** See @ref widget::find. */ - const widget* find(const std::string& id, - const bool must_be_active) const override; + const widget* find(const std::string_view id, const bool must_be_active) const override; #if 0 /** @todo Implement these functions. */