Warning, file /multimedia/kdenlive/src/assets/assetlist/model/assettreemodel.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: 2017 Nicolas Carion 0003 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 */ 0005 0006 #pragma once 0007 0008 #include "abstractmodel/abstracttreemodel.hpp" 0009 #include "assets/assetlist/view/asseticonprovider.hpp" 0010 0011 /** @brief This class represents an effect hierarchy to be displayed as a tree 0012 */ 0013 class TreeItem; 0014 class QMenu; 0015 class KActionCategory; 0016 0017 class AssetTreeModel : public AbstractTreeModel 0018 { 0019 0020 public: 0021 explicit AssetTreeModel(QObject *parent = nullptr); 0022 0023 enum { IdRole = Qt::UserRole + 1, NameRole, FavoriteRole, TypeRole }; 0024 enum { NameCol = 0, IdCol = 1, TypeCol = 2, FavCol = 3, PreferredCol = 5 }; 0025 0026 /** @brief Helper function to retrieve name */ 0027 QString getName(const QModelIndex &index) const; 0028 /** @brief Helper function to retrieve description */ 0029 QString getDescription(bool isEffect, const QModelIndex &index) const; 0030 /** @brief Helper function to retrieve if an effect is categorized as favorite */ 0031 bool isFavorite(const QModelIndex &index) const; 0032 QHash<int, QByteArray> roleNames() const override; 0033 QVariant data(const QModelIndex &index, int role) const override; 0034 virtual void reloadAssetMenu(QMenu *effectsMenu, KActionCategory *effectActions) = 0; 0035 virtual void setFavorite(const QModelIndex &index, bool favorite, bool isEffect) = 0; 0036 virtual void deleteEffect(const QModelIndex &index) = 0; 0037 virtual void editCustomAsset(const QString &newName, const QString &newDescription, const QModelIndex &index) = 0; 0038 Qt::ItemFlags flags(const QModelIndex &index) const override; 0039 0040 protected: 0041 AssetIconProvider *m_assetIconProvider; 0042 };