/* * Copyright (c) 2022, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Ladybird { class ModelTranslator final : public QAbstractItemModel { Q_OBJECT public: virtual ~ModelTranslator() override; void set_underlying_model(RefPtr model) { beginResetModel(); m_model = model; endResetModel(); } RefPtr underlying_model() { return m_model; } virtual int columnCount(QModelIndex const& parent) const override; virtual int rowCount(QModelIndex const& parent) const override; virtual QVariant data(QModelIndex const&, int role) const override; virtual QModelIndex index(int row, int column, QModelIndex const& parent) const override; virtual QModelIndex parent(QModelIndex const& index) const override; QModelIndex to_qt(GUI::ModelIndex const&) const; GUI::ModelIndex to_gui(QModelIndex const&) const; private: RefPtr m_model; }; }