Qt OPC UA Viewer
// Copyright (C) 2018 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #ifndef OPCUAMODEL_H #define OPCUAMODEL_H #include <QAbstractItemModel> #include <memory> class TreeItem; class QOpcUaClient; class QOpcUaGenericStructHandler; class OpcUaModel : public QAbstractItemModel { Q_OBJECT public: explicit OpcUaModel(QObject *parent = nullptr); ~OpcUaModel(); void setOpcUaClient(QOpcUaClient *); void setGenericStructHandler(QOpcUaGenericStructHandler *handler); QOpcUaClient* opcUaClient() const; QOpcUaGenericStructHandler *genericStructHandler() const; QVariant data(const QModelIndex &index, int role) const override; QVariant headerData(int section, Qt::Orientation orientation, int role) const override; QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; QModelIndex parent(const QModelIndex &index) const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override; private: QOpcUaClient *mOpcUaClient = nullptr; QOpcUaGenericStructHandler *mGenericStructHandler = nullptr; std::unique_ptr<TreeItem> mRootItem; friend class TreeItem; }; #endif // OPCUAMODEL_H