From 4231f2679e11fc62734ac95ebc41d2e60b995290 Mon Sep 17 00:00:00 2001 From: Martchus Date: Fri, 18 Aug 2017 00:07:11 +0200 Subject: [PATCH] Add method to determine level of file element --- genericfileelement.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/genericfileelement.h b/genericfileelement.h index 3c83724..e767d9d 100644 --- a/genericfileelement.h +++ b/genericfileelement.h @@ -157,6 +157,7 @@ public: uint64 totalSize() const; uint64 endOffset() const; uint64 maxTotalSize() const; + byte level() const; ImplementationType* parent(); const ImplementationType* parent() const; ImplementationType* nextSibling(); @@ -436,6 +437,18 @@ inline uint64 GenericFileElement::maxTotalSize() const return m_maxSize; } +/*! + * \brief Returns how deep the element is nested (0 for top-level elements, 1 for children of + * top-level elements, ...). + */ +template +byte GenericFileElement::level() const +{ + byte level = 0; + for(const ImplementationType *parent = m_parent; parent; ++level, parent = parent->m_parent); + return level; +} + /*! * \brief Returns the parent of the element. *