Warning, file /graphics/glaxnimate/src/gui/item_models/gradient_list_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 #include <QAbstractTableModel>
0010 
0011 #include "model/assets/assets.hpp"
0012 
0013 namespace glaxnimate::gui::item_models {
0014 
0015 class GradientListModel : public QAbstractTableModel
0016 {
0017     Q_OBJECT
0018 
0019 public:
0020     enum Columns
0021     {
0022         Gradient,
0023         Name,
0024         Users,
0025 
0026         Count
0027     };
0028 
0029     void set_defs(model::Assets* defs);
0030 
0031     int rowCount(const QModelIndex & parent) const override;
0032     int columnCount(const QModelIndex & parent) const override;
0033     QVariant data(const QModelIndex & index, int role) const override;
0034     Qt::ItemFlags flags(const QModelIndex & index) const override;
0035     bool setData(const QModelIndex & index, const QVariant & value, int role) override;
0036     QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
0037 
0038     QModelIndex gradient_to_index(model::GradientColors* gradient) const;
0039     model::GradientColors* gradient(const QModelIndex& index) const;
0040 
0041 private Q_SLOTS:
0042     void on_add_end(model::DocumentNode*);
0043     void on_remove_end(model::DocumentNode*);
0044     void on_add_begin(int);
0045     void on_remove_begin(int);
0046     void on_move_begin(int, int);
0047     void on_move_end(model::DocumentNode*, int, int);
0048 
0049 private:
0050     model::Assets* defs;
0051 };
0052 
0053 } // namespace glaxnimate::gui::item_models