1 /***************************************************************************
2 effectslist.h - description
4 begin : Sat Aug 10 2002
5 copyright : (C) 2002 by Jason Wood
6 email : jasonwood@blueyonder.co.uk
7 ***************************************************************************/
9 /***************************************************************************
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
16 ***************************************************************************/
20 * @brief List for effects objects.
23 * This is a list of DocClipBase objects, to be used instead of
24 * QList<DocClipBase> to enable sorting lists correctly. It also contains the
25 * ability to set a "master clip", which can be used by a number of operations
26 * where there is the need of one clip to act as a reference for what happens to
33 #include <QDomDocument>
35 class EffectsList: public QDomDocument
41 /** @brief Returns the XML element of an effect.
42 * @param name name of the effect to be returned */
43 QDomElement getEffectByName(const QString & name) const;
44 QDomElement getEffectByTag(const QString & tag, const QString & id) const;
46 /** @brief Checks the existance of an effect.
47 * @param tag effect tag
49 * @return effect index if the effect exists, -1 otherwise */
50 int hasEffect(const QString & tag, const QString & id) const;
52 /** @brief Lists the core properties of an effect.
53 * @param ix effect index
54 * @return list of name, tag and id of an effect */
55 QStringList effectIdInfo(const int ix) const;
57 /** @brief Lists effects names. */
58 QStringList effectNames();
59 QString getInfo(const QString & tag, const QString & id) const;
60 QString getInfoFromIndex(const int ix) const;
61 QString getEffectInfo(const QDomElement effect) const;
62 void clone(const EffectsList &original);
63 void append(QDomElement e);
66 const QDomElement at(int ix) const;
67 void removeAt(int ix);
68 QDomElement item(int ix);
69 void insert(int ix, QDomElement effect);
70 void replace(int ix, QDomElement effect);
71 static bool hasKeyFrames(QDomElement effect);
72 static bool hasSimpleKeyFrames(QDomElement effect);
73 static bool hasGeometryKeyFrames(QDomElement effect);
74 static void setParameter(QDomElement effect, const QString &name, const QString &value);
75 static QString parameter(QDomElement effect, const QString &name);
76 /** @brief Change the value of a 'property' element from the effect node. */
77 static void setProperty(QDomElement effect, const QString &name, const QString &value);
78 /** @brief Rename a 'property' element from the effect node. */
79 static void renameProperty(QDomElement effect, const QString &oldName, const QString &newName);
80 /** @brief Get the value of a 'property' element from the effect node. */
81 static QString property(QDomElement effect, const QString &name);
82 /** @brief Delete a 'property' element from the effect node. */
83 static void removeProperty(QDomElement effect, const QString &name);
84 /** @brief Remove all 'meta.*' properties from a producer, used when replacing proxy producers in xml for rendering. */
85 static void removeMetaProperties(QDomElement producer);
89 QDomElement m_baseElement;