void RGBScript_Test::script() { QVERIFY(m_doc->rgbScriptsCache()->load(QDir(INTERNAL_SCRIPTDIR))); RGBScript s = m_doc->rgbScriptsCache()->script("A script that should not exist"); QCOMPARE(s.fileName(), QString()); QCOMPARE(s.m_contents, QString()); QCOMPARE(s.apiVersion(), 0); QCOMPARE(s.author(), QString()); QCOMPARE(s.name(), QString()); // QVERIFY(s.m_script.isValid() == false); // TODO: to be fixed !! QVERIFY(s.m_rgbMap.isValid() == false); QVERIFY(s.m_rgbMapStepCount.isValid() == false); s = m_doc->rgbScriptsCache()->script("Stripes"); QCOMPARE(s.fileName(), QString("stripes.js")); QVERIFY(s.m_contents.isEmpty() == false); QVERIFY(s.apiVersion() > 0); QCOMPARE(s.author(), QString("Massimo Callegari")); QCOMPARE(s.name(), QString("Stripes")); QVERIFY(s.m_script.isValid() == true); QVERIFY(s.m_rgbMap.isValid() == true); QVERIFY(s.m_rgbMapStepCount.isValid() == true); }
RGBAlgorithm* RGBAlgorithm::loader(const Doc * doc, const QDomElement& root) { RGBAlgorithm* algo = NULL; if (root.tagName() != KXMLQLCRGBAlgorithm) { qWarning() << Q_FUNC_INFO << "RGB Algorithm node not found"; return NULL; } QString type = root.attribute(KXMLQLCRGBAlgorithmType); if (type == KXMLQLCRGBImage) { RGBImage image(doc); if (image.loadXML(root) == true) algo = image.clone(); } else if (type == KXMLQLCRGBText) { RGBText text(doc); if (text.loadXML(root) == true) algo = text.clone(); } else if (type == KXMLQLCRGBAudio) { RGBAudio audio(doc); if (audio.loadXML(root) == true) algo = audio.clone(); } else if (type == KXMLQLCRGBScript) { RGBScript scr = RGBScript::script(doc, root.text()); if (scr.apiVersion() > 0 && scr.name().isEmpty() == false) algo = scr.clone(); } else { qWarning() << "Unrecognized RGB algorithm type:" << type; } return algo; }