QDomNodeList effects = m_baseElement.childNodes();
for (int i = 0; i < effects.count(); i++) {
QDomElement effect = effects.at(i).toElement();
- QDomNode namenode = effect.elementsByTagName("name").item(0);
+ QDomNode namenode = effect.firstChildElement("name");
if (!namenode.isNull()) effectName = i18n(namenode.toElement().text().toUtf8().data());
if (name == effectName) {
QDomNodeList params = effect.elementsByTagName("parameter");
{
QStringList info;
QDomElement effect = m_baseElement.childNodes().at(ix).toElement();
- QDomNode namenode = effect.elementsByTagName("name").item(0);
+ QDomNode namenode = effect.firstChildElement("name");
info << i18n(namenode.toElement().text().toUtf8().data()) << effect.attribute("tag") << effect.attribute("id");
return info;
}
QDomNodeList effects = m_baseElement.childNodes();
for (int i = 0; i < effects.count(); i++) {
QDomElement effect = effects.at(i).toElement();
- QDomNode namenode = effect.elementsByTagName("name").item(0);
+ QDomNode namenode = effect.firstChildElement("name");
if (!namenode.isNull()) list.append(i18n(namenode.toElement().text().toUtf8().data()));
}
return list;
QString EffectsList::getInfo(const QString & tag, const QString & id) const
{
QString info;
- QDomElement effect = getEffectByTag(tag, id);
- QDomNode namenode = effect.elementsByTagName("description").item(0);
+ return getEffectInfo(getEffectByTag(tag, id));
+}
+
+QString EffectsList::getInfoFromIndex(const int ix) const
+{
+ QString info;
+ return getEffectInfo(m_baseElement.childNodes().at(ix).toElement());
+}
+
+QString EffectsList::getEffectInfo(const QDomElement effect) const
+{
+ QString info;
+ QDomNode namenode = effect.firstChildElement("description");
if (!namenode.isNull())
info = i18n(namenode.firstChild().nodeValue().simplified().toUtf8().data());
- namenode = effect.elementsByTagName("author").item(0);
+ namenode = effect.firstChildElement("author");
if (!namenode.isNull())
info.append("<br /><strong>" + i18n("Author:") + " </strong>" + i18n(namenode.toElement().text().toUtf8().data()));
- return info;
-}
+ namenode = effect.firstChildElement("version");
+ if (!namenode.isNull())
+ info.append(QString(" (%1)").arg(namenode.toElement().text()));
-QString EffectsList::getInfoFromIndex(const int ix) const
-{
- QString info;
- QDomElement effect = m_baseElement.childNodes().at(ix).toElement();
- QDomNode namenode = effect.elementsByTagName("description").item(0);
- if (!namenode.isNull()) info = i18n(namenode.toElement().text().toUtf8().data());
- namenode = effect.elementsByTagName("author").item(0);
- if (!namenode.isNull()) info.append("<br /><strong>" + i18n("Author:") + " </strong>" + i18n(namenode.toElement().text().toUtf8().data()));
return info;
}
needsLocaleConversion = true;
}
}
- if (documentElement.hasAttribute("version")) {
- // a specific version of the filter is required
- Mlt::Properties *metadata = repository->metadata(filter_type, tag.toUtf8().data());
- if (metadata && metadata->is_valid()) {
- double version = metadata->get_double("version");
- if (locale.toDouble(documentElement.attribute("version")) > version) {
- delete metadata;
- return;
- }
- }
- delete metadata;
- }
if (needsLocaleConversion) {
// we need to convert all numbers to the system's locale (for example 0.5 -> 0,5)
}
}
+ double version = -1;
+ Mlt::Properties *metadata = repository->metadata(filter_type, tag.toUtf8().data());
+ if (metadata && metadata->is_valid()) {
+ version = metadata->get_double("version");
+ }
+ if (metadata) delete metadata;
+ if (documentElement.hasAttribute("version")) {
+ // a specific version of the filter is required
+ if (locale.toDouble(documentElement.attribute("version")) > version) {
+ return;
+ }
+ }
+ if (version > -1) {
+ // Add version info to XML
+ QDomNode versionNode = doc.createElement("version");
+ versionNode.appendChild(doc.createTextNode(QLocale().toString(version)));
+ documentElement.appendChild(versionNode);
+ }
+
// Parse effect information.
if ((filtersList.contains(tag) || producersList.contains(tag))) {
QString type = documentElement.attribute("type", QString());
QDomElement author = ret.createElement("author");
author.appendChild(ret.createTextNode(metadata->get("creator")));
+ QDomElement version = ret.createElement("version");
+ version.appendChild(ret.createTextNode(metadata->get("version")));
+
eff.appendChild(name);
eff.appendChild(author);
eff.appendChild(desc);
+ eff.appendChild(version);
Mlt::Properties tags((mlt_properties) metadata->get_data("tags"));
if (QString(tags.get(0)) == "Audio") eff.setAttribute("type", "audio");