diff --git a/Userland/Applications/PDFViewer/OutlineModel.cpp b/Userland/Applications/PDFViewer/OutlineModel.cpp index 5414d7f442..75ee83da4c 100644 --- a/Userland/Applications/PDFViewer/OutlineModel.cpp +++ b/Userland/Applications/PDFViewer/OutlineModel.cpp @@ -5,6 +5,7 @@ */ #include "OutlineModel.h" +#include #include ErrorOr> OutlineModel::create(NonnullRefPtr const& outline) @@ -73,19 +74,11 @@ GUI::ModelIndex OutlineModel::parent_index(const GUI::ModelIndex& index) const if (!parent) return {}; - if (parent->parent) { - auto& grandparent = parent->parent; - for (size_t i = 0; i < grandparent->children.size(); i++) { - auto* sibling = &grandparent->children[i]; - if (sibling == index.internal_data()) - return create_index(static_cast(i), 0, sibling); - } - } else { - for (size_t i = 0; i < m_outline->children.size(); i++) { - auto* sibling = &m_outline->children[i]; - if (sibling == index.internal_data()) - return create_index(static_cast(i), 0, sibling); - } + NonnullRefPtrVector parent_siblings = (parent->parent ? parent->parent->children : m_outline->children); + for (size_t i = 0; i < parent_siblings.size(); i++) { + auto* parent_sibling = &parent_siblings[i]; + if (parent_sibling == parent.ptr()) + return create_index(static_cast(i), index.column(), parent.ptr()); } VERIFY_NOT_REACHED();