X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Feffectslist.h;h=cbb58d6be5867cfed9b13fa61149467030dc4b4b;hb=c40357ec54f28b2d9c8c7f74df065c915d8145dd;hp=290314c336b50f957cb8618068247d8deb8f2c11;hpb=a0dbaf732a685363d627dc4ea205be17d16718e9;p=kdenlive diff --git a/src/effectslist.h b/src/effectslist.h index 290314c3..cbb58d6b 100644 --- a/src/effectslist.h +++ b/src/effectslist.h @@ -32,10 +32,14 @@ #include +namespace Kdenlive { + enum EFFECTTYPE { simpleEffect, groupEffect }; +} + class EffectsList: public QDomDocument { public: - EffectsList(); + EffectsList(bool indexRequired = false); ~EffectsList(); /** @brief Returns the XML element of an effect. @@ -59,15 +63,15 @@ public: QString getInfo(const QString & tag, const QString & id) const; QString getInfoFromIndex(const int ix) const; QString getEffectInfo(const QDomElement effect) const; - void clone(const EffectsList original); - void append(QDomElement e); + void clone(const EffectsList &original); + QDomElement append(QDomElement e); bool isEmpty() const; int count() const; const QDomElement at(int ix) const; void removeAt(int ix); - QDomElement item(int ix); - void insert(int ix, QDomElement effect); - void replace(int ix, QDomElement effect); + QDomElement itemFromIndex(int ix) const; + QDomElement insert(QDomElement effect); + void updateEffect(QDomElement effect); static bool hasKeyFrames(QDomElement effect); static bool hasSimpleKeyFrames(QDomElement effect); static bool hasGeometryKeyFrames(QDomElement effect); @@ -81,10 +85,22 @@ public: static QString property(QDomElement effect, const QString &name); /** @brief Delete a 'property' element from the effect node. */ static void removeProperty(QDomElement effect, const QString &name); + /** @brief Remove all 'meta.*' properties from a producer, used when replacing proxy producers in xml for rendering. */ + static void removeMetaProperties(QDomElement producer); void clearList(); + /** @brief Get am effect with effect index equal to ix. */ + QDomElement effectFromIndex(QDomNodeList effects, int ix); + /** @brief Update all effects indexes to make sure they are 1, 2, 3, ... */ + void updateIndexes(QDomNodeList effects, int startIndex); + /** @brief Enable / disable a list of effects */ + void enableEffects(QList indexes, bool disable); private: QDomElement m_baseElement; + bool m_useIndex; + + /** @brief Init effect default parameter values. */ + void initEffect(QDomElement effect) const; };