File indexing completed on 2024-05-19 04:54:22
0001 /* 0002 SPDX-FileCopyrightText: 2017 Nicolas Carion 0003 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 */ 0005 0006 #include "effectgroupmodel.hpp" 0007 0008 #include "effectstackmodel.hpp" 0009 #include <utility> 0010 0011 EffectGroupModel::EffectGroupModel(const QList<QVariant> &data, QString name, const std::shared_ptr<AbstractTreeModel> &stack, bool isRoot) 0012 : AbstractEffectItem(EffectItemType::Group, data, stack, isRoot) 0013 , m_name(std::move(name)) 0014 { 0015 } 0016 0017 // static 0018 std::shared_ptr<EffectGroupModel> EffectGroupModel::construct(const QString &name, std::shared_ptr<AbstractTreeModel> stack, bool isRoot) 0019 { 0020 QList<QVariant> data; 0021 data << name << name; 0022 0023 std::shared_ptr<EffectGroupModel> self(new EffectGroupModel(data, name, stack, isRoot)); 0024 0025 baseFinishConstruct(self); 0026 0027 return self; 0028 } 0029 0030 void EffectGroupModel::updateEnable(bool updateTimeline) 0031 { 0032 Q_UNUSED(updateTimeline); 0033 for (int i = 0; i < childCount(); ++i) { 0034 std::static_pointer_cast<AbstractEffectItem>(child(i))->updateEnable(); 0035 } 0036 } 0037 0038 bool EffectGroupModel::isAudio() const 0039 { 0040 bool result = false; 0041 for (int i = 0; i < childCount() && !result; ++i) { 0042 result = result || std::static_pointer_cast<AbstractEffectItem>(child(i))->isAudio(); 0043 } 0044 return result; 0045 } 0046 0047 bool EffectGroupModel::isUnique() const 0048 { 0049 return false; 0050 } 0051 0052 void EffectGroupModel::plant(const std::weak_ptr<Mlt::Service> &service) 0053 { 0054 for (int i = 0; i < childCount(); ++i) { 0055 std::static_pointer_cast<AbstractEffectItem>(child(i))->plant(service); 0056 } 0057 } 0058 void EffectGroupModel::plantClone(const std::weak_ptr<Mlt::Service> &service) 0059 { 0060 for (int i = 0; i < childCount(); ++i) { 0061 std::static_pointer_cast<AbstractEffectItem>(child(i))->plantClone(service); 0062 } 0063 } 0064 void EffectGroupModel::unplant(const std::weak_ptr<Mlt::Service> &service) 0065 { 0066 for (int i = 0; i < childCount(); ++i) { 0067 std::static_pointer_cast<AbstractEffectItem>(child(i))->unplant(service); 0068 } 0069 } 0070 void EffectGroupModel::unplantClone(const std::weak_ptr<Mlt::Service> &service) 0071 { 0072 for (int i = 0; i < childCount(); ++i) { 0073 std::static_pointer_cast<AbstractEffectItem>(child(i))->unplantClone(service); 0074 } 0075 }