Serenity Operating System
at master 39 lines 1.0 kB view raw
1/* 2 * Copyright (c) 2022, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <LibGUI/Model.h> 10#include <QAbstractItemModel> 11 12namespace Ladybird { 13 14class ModelTranslator final : public QAbstractItemModel { 15 Q_OBJECT 16public: 17 virtual ~ModelTranslator() override; 18 19 void set_underlying_model(RefPtr<GUI::Model> model) 20 { 21 beginResetModel(); 22 m_model = model; 23 endResetModel(); 24 } 25 26 virtual int columnCount(QModelIndex const& parent) const override; 27 virtual int rowCount(QModelIndex const& parent) const override; 28 virtual QVariant data(QModelIndex const&, int role) const override; 29 virtual QModelIndex index(int row, int column, QModelIndex const& parent) const override; 30 virtual QModelIndex parent(QModelIndex const& index) const override; 31 32 QModelIndex to_qt(GUI::ModelIndex const&) const; 33 GUI::ModelIndex to_gui(QModelIndex const&) const; 34 35private: 36 RefPtr<GUI::Model> m_model; 37}; 38 39}