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