File indexing completed on 2025-03-02 04:04:00
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 #include "property_model_base.hpp" 0010 0011 namespace glaxnimate::gui::item_models { 0012 0013 class PropertyModelFull : public PropertyModelBase 0014 { 0015 Q_OBJECT 0016 0017 public: 0018 enum Columns 0019 { 0020 ColumnName, 0021 ColumnValue, 0022 ColumnColor, 0023 ColumnVisible, 0024 ColumnLocked, 0025 0026 ColumnCount, 0027 0028 ColumnPrevKeyframe = ColumnColor, 0029 ColumnToggleKeyframe = ColumnVisible, 0030 ColumnNextKeyframe = ColumnLocked, 0031 }; 0032 0033 PropertyModelFull(); 0034 0035 bool setData(const QModelIndex & index, const QVariant & value, int role) override; 0036 QVariant data(const QModelIndex & index, int role) const override; 0037 Qt::ItemFlags flags(const QModelIndex & index) const override; 0038 int columnCount(const QModelIndex & parent) const override; 0039 QVariant headerData(int section, Qt::Orientation orientation, int role) const override; 0040 0041 protected: 0042 void on_document_reset() override; 0043 0044 std::pair<model::VisualNode *, int> drop_position(const QModelIndex & parent, int row, int column) const override; 0045 0046 private: 0047 class Private; 0048 Private* dd() const; 0049 }; 0050 0051 } // namespace glaxnimate::gui::item_models 0052