Warning, file /graphics/glaxnimate/src/gui/item_models/document_node_model.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 0010 #include "document_model_base.hpp" 0011 0012 namespace glaxnimate::gui::item_models { 0013 0014 0015 class DocumentNodeModel : public DocumentModelBase 0016 { 0017 public: 0018 enum ColumnTypes 0019 { 0020 ColumnColor = 0, 0021 ColumnName, 0022 ColumnVisible, 0023 ColumnLocked, 0024 ColumnUsers, 0025 0026 ColumnCount 0027 }; 0028 0029 explicit DocumentNodeModel(QObject *parent = nullptr); 0030 ~DocumentNodeModel(); 0031 0032 int rowCount ( const QModelIndex & parent ) const override; 0033 int columnCount ( const QModelIndex & parent ) const override; 0034 bool moveRows ( const QModelIndex & sourceParent, int sourceRow, int count, const QModelIndex & destinationParent, int destinationChild ) override; 0035 bool removeRows ( int row, int count, const QModelIndex & parent ) override; 0036 QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; 0037 QVariant data ( const QModelIndex & index, int role ) const override; 0038 QVariant headerData(int section, Qt::Orientation orientation, int role) const override; 0039 Qt::ItemFlags flags ( const QModelIndex & index ) const override; 0040 QModelIndex parent ( const QModelIndex & child ) const override; 0041 bool setData ( const QModelIndex & index, const QVariant & value, int role ) override; 0042 0043 void clear_document(); 0044 void set_document(model::Document* doc); 0045 model::DocumentNode* node(const QModelIndex& index) const override; 0046 model::VisualNode* visual_node(const QModelIndex& index) const override; 0047 QModelIndex node_index(model::DocumentNode* node) const override; 0048 model::Document* document() const override; 0049 0050 private: 0051 void connect_node(model::DocumentNode* node); 0052 void disconnect_node(model::DocumentNode* node); 0053 0054 class Private; 0055 std::unique_ptr<Private> d; 0056 }; 0057 0058 0059 } // namespace glaxnimate::gui::item_models