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. *