/* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: git://neueland.iserlohn-fortress.net/smolbote.git * * SPDX-License-Identifier: GPL-3.0 */ #include "bookmarkitem.h" BookmarkItem::BookmarkItem(BookmarkItemType type, BookmarkItem *parent) { m_type = type; // parentItem will either be a valid item, or a nullptr m_parentItem = parent; if(m_parentItem) { m_parentItem->appendChild(this); } } BookmarkItem::~BookmarkItem() { qDeleteAll(m_childItems); } void BookmarkItem::appendChild(BookmarkItem *child) { Q_CHECK_PTR(child); m_childItems.append(child); } BookmarkItem *BookmarkItem::child(int row) { return m_childItems.at(row); } int BookmarkItem::childIndex(BookmarkItem *item) const { return m_childItems.indexOf(item); } int BookmarkItem::childCount() const { return m_childItems.count(); } int BookmarkItem::row() const { if(m_parentItem) { return m_parentItem->m_childItems.indexOf(const_cast(this)); } // no parent item, we are root return 0; } BookmarkItem *BookmarkItem::parentItem() { return m_parentItem; }