X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Feffectslist.h;h=df9b0045cb98122b598df63054913c4079465680;hb=f4462e7ecb75f64e524746e3bb7c62a5e973d965;hp=b30c2ee2a9b04b09d55fe5da76b607218e05bf88;hpb=d99246be40d1c8a275a21af1775e595d209d040d;p=kdenlive diff --git a/src/effectslist.h b/src/effectslist.h index b30c2ee2..df9b0045 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. @@ -58,30 +62,45 @@ public: QStringList effectNames(); QString getInfo(const QString & tag, const QString & id) const; QString getInfoFromIndex(const int ix) const; - void clone(const EffectsList original); - void append(QDomElement e); + QString getEffectInfo(const QDomElement &effect) const; + 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); - static bool hasKeyFrames(QDomElement effect); - static bool hasSimpleKeyFrames(QDomElement effect); - static bool hasGeometryKeyFrames(QDomElement effect); + QDomElement itemFromIndex(int ix) const; + QDomElement insert(QDomElement effect); + void updateEffect(const QDomElement &effect); + static bool hasKeyFrames(const QDomElement &effect); + static bool hasSimpleKeyFrames(const QDomElement &effect); + static bool hasGeometryKeyFrames(const QDomElement &effect); static void setParameter(QDomElement effect, const QString &name, const QString &value); - static QString parameter(QDomElement effect, const QString &name); + static QString parameter(const QDomElement &effect, const QString &name); /** @brief Change the value of a 'property' element from the effect node. */ static void setProperty(QDomElement effect, const QString &name, const QString &value); + /** @brief Rename a 'property' element from the effect node. */ + static void renameProperty(QDomElement effect, const QString &oldName, const QString &newName); /** @brief Get the value of a 'property' element from the effect node. */ 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(const 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(const QList &indexes, bool disable); private: QDomElement m_baseElement; + bool m_useIndex; + + /** @brief Init effect default parameter values. */ + void initEffect(const QDomElement &effect) const; };