diff options
Diffstat (limited to 'testing/wesnoth/wesnoth-1.8.6-boost-foreach.patch')
-rw-r--r-- | testing/wesnoth/wesnoth-1.8.6-boost-foreach.patch | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/testing/wesnoth/wesnoth-1.8.6-boost-foreach.patch b/testing/wesnoth/wesnoth-1.8.6-boost-foreach.patch new file mode 100644 index 000000000..5aee3118c --- /dev/null +++ b/testing/wesnoth/wesnoth-1.8.6-boost-foreach.patch @@ -0,0 +1,70 @@ +--- wesnoth-1.8.6/src/gui/widgets/tree_view_node.cpp~ 2011-07-21 23:05:56.594879049 +0200 ++++ wesnoth-1.8.6/src/gui/widgets/tree_view_node.cpp 2011-07-21 23:28:07.540358742 +0200 +@@ -238,6 +238,17 @@ void ttree_view_node::clear() + + struct ttree_view_node_implementation + { ++ template<class W, class It> ++ static W* find_at_aux(It begin, It end, ++ const tpoint& coordinate, const bool must_be_active) { ++ for (It it = begin; it != end; ++it) { ++ if(W* widget = it->find_at(coordinate, must_be_active)) { ++ return widget; ++ } ++ } ++ return NULL; ++ } ++ + template<class W> + static W* find_at( + typename tconst_duplicator<W, ttree_view_node>::type& +@@ -255,13 +266,9 @@ struct ttree_view_node_implementation + } + + typedef typename tconst_duplicator<W, ttree_view_node>::type thack; +- foreach(thack& node, tree_view_node.children_) { +- if(W* widget = node.find_at(coordinate, must_be_active)) { +- return widget; +- } +- } +- +- return NULL; ++ return find_at_aux<W>(tree_view_node.children_.begin(), ++ tree_view_node.children_.end(), ++ coordinate, must_be_active); + } + }; + +@@ -313,7 +320,9 @@ tpoint ttree_view_node::get_current_size + return size; + } + +- foreach(const ttree_view_node& node, children_) { ++ for (boost::ptr_vector<ttree_view_node>::const_iterator it ++ = children_.begin (); it != children_.end (); ++it) { ++ const ttree_view_node& node = *it; + + if(node.grid_.get_visible() == twidget::INVISIBLE) { + continue; +@@ -344,7 +353,9 @@ tpoint ttree_view_node::get_unfolded_siz + size.x += (get_indention_level() - 1) * tree_view().indention_step_size_; + } + +- foreach(const ttree_view_node& node, children_) { ++ for (boost::ptr_vector<ttree_view_node>::const_iterator it ++ = children_.begin (); it != children_.end (); ++it) { ++ const ttree_view_node& node = *it; + + if(node.grid_.get_visible() == twidget::INVISIBLE) { + continue; +@@ -378,7 +389,9 @@ tpoint ttree_view_node::calculate_best_s + + DBG_GUI_L << LOG_HEADER << " own grid best size " << best_size << ".\n"; + +- foreach(const ttree_view_node& node, children_) { ++ for (boost::ptr_vector<ttree_view_node>::const_iterator it ++ = children_.begin (); it != children_.end (); ++it) { ++ const ttree_view_node& node = *it; + + if(node.grid_.get_visible() == twidget::INVISIBLE) { + continue; |