From e1108a0b5ab903cc646e4caffe07a3b87c105932 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Mon, 20 Sep 2021 17:32:18 +0200 Subject: [PATCH] Add operator<< for Row::Elements This is useful for debugging. --- src/Row.cpp | 19 +++++++++++++++---- src/Row.h | 2 ++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Row.cpp b/src/Row.cpp index 8233a965a7..b7e4c07c95 100644 --- a/src/Row.cpp +++ b/src/Row.cpp @@ -275,6 +275,17 @@ ostream & operator<<(ostream & os, Row::Element const & e) } +ostream & operator<<(ostream & os, Row::Elements const & elts) +{ + double x = 0; + for (Row::Element const & e : elts) { + os << "x=" << x << " => " << e << endl; + x += e.full_width(); + } + return os; +} + + ostream & operator<<(ostream & os, Row const & row) { os << " pos: " << row.pos_ << " end: " << row.end_ @@ -286,11 +297,11 @@ ostream & operator<<(ostream & os, Row const & row) << " separator: " << row.separator << " label_hfill: " << row.label_hfill << " row_boundary: " << row.right_boundary() << "\n"; + // We cannot use the operator above, unfortunately double x = row.left_margin; - Row::Elements::const_iterator it = row.elements_.begin(); - for ( ; it != row.elements_.end() ; ++it) { - os << "x=" << x << " => " << *it << endl; - x += it->full_width(); + for (Row::Element const & e : row.elements_) { + os << "x=" << x << " => " << e << endl; + x += e.full_width(); } return os; } diff --git a/src/Row.h b/src/Row.h index 74667976ef..1272a0f6ea 100644 --- a/src/Row.h +++ b/src/Row.h @@ -378,6 +378,8 @@ private: bool changebar_ = false; }; +std::ostream & operator<<(std::ostream & os, Row::Elements const & elts); + /** * Each paragraph is broken up into a number of rows on the screen. -- 2.39.5