Beispiel #1
0
// ### merge with Evaluator::handleEvaluationError
static ErrorInfo errorInfoFromScriptValue(const QScriptValue &value, const QString &filePath)
{
    if (!value.isError())
        return ErrorInfo(value.toString(), CodeLocation(filePath));

    return ErrorInfo(value.property(QStringLiteral("message")).toString(),
                     CodeLocation(value.property(QStringLiteral("fileName")).toString(),
                                  value.property(QStringLiteral("lineNumber")).toInt32(),
                                  false));
}
Beispiel #2
0
QScriptValue QTrajectory::read(void)
{
    QScriptValue value;

// help ------------------------------------------
    if( IsHelpRequested() ){
        CTerminalStr sout;
        sout << "usage: snapshot Trajectory::read(snapshot)" << endl;
        sout << "       snapshot Trajectory::read()" << endl;
        return(false);
    }

// check arguments -------------------------------
    value = CheckNumberOfArguments("[snapshot]",0,1);
    if( value.isError() ) return(value);

    QSnapshot* p_qsnap = NULL;
    if( GetArgumentCount() == 1 ){
        value = GetArgAsObject<QSnapshot*>("snapshot","snapshot","Snapshot",1,p_qsnap);
        if( value.isError() ) return(value);
    } else {
        p_qsnap = new QSnapshot(Topology);
    }

// execute ---------------------------------------
    if( Trajectory.GetOpenMode() != AMBER_TRAJ_READ ){
        return( ThrowError("snapshot","trajectory is not opened for reading") );
    }
    bool result = Trajectory.ReadSnapshot(&p_qsnap->Restart);
    if( result ){
        CurrentSnapshot++;
    } else {
        if( GetArgumentCount() == 0 ){
            delete p_qsnap;
        }
        return( GetUndefinedValue() );
    }
    if( GetArgumentCount() == 1 ){
        return(GetArgument(1));
    } else {
        return(engine()->newQObject(p_qsnap, QScriptEngine::ScriptOwnership));
    }
}
Beispiel #3
0
QScriptValue QTrajPool::addTrajectory(void)
{
    QScriptValue value;

// help ------------------------------------------
    if( IsHelpRequested() ){
        CTerminalStr sout;
        sout << "usage: bool TrajPool::addTrajectory(name[,format])" << endl;
        sout << "       format: ascii      - ASCII format" << endl;
        sout << "               ascii.gzip - compressed ASCII format" << endl;
        sout << "               ascii.bzip - compressed ASCII format" << endl;
        sout << "               netcdf     - NETCDF format" << endl;
        return(false);
    }

// check arguments -------------------------------
    value = CheckNumberOfArguments("name",1,2);
    if( value.isError() ) return(value);

    QString name;
    value = GetArgAsString("name[,format]","name",1,name);
    if( value.isError() ) return(value);

    QString format = "unknown";
    if( GetArgumentCount() == 2 ){
        value = GetArgAsString("name,format","format",2,format);
        if( value.isError() ) return(value);
    }

// execute ---------------------------------------
    if( addTrajFile(name,format) == false ){
        if( IgnoreMissingFiles == true ) return(true);
        CSmallString error;
        if( format == "unknown" ){
            error << "unable to add file '" << CSmallString(name) << "'";
        } else {
            error << "unable to add file '" << CSmallString(name) << "' with format '" << CSmallString(format) << "'";
        }
        return( ThrowError("name[,format]",error));
    }
    return(true);
}
QScriptValue ImageBuilder::add(QScriptValue imgArg) {
  Image *simg      = 0;
  QScriptValue err = checkImage(context(), imgArg, simg);
  if (err.isError()) return err;
  QString errStr = add(simg->getImg(), TAffine());
  if (errStr != "")
    return context()->throwError(
        tr("%1 : %2").arg(errStr).arg(imgArg.toString()));
  else
    return context()->thisObject();
}
int emscriptenQtSDLMain(int argc, char *argv[])
#endif
{
    Q_INIT_RESOURCE(helloscript);
//! [0]

//! [1]
    QApplication *app = new QApplication(argc, argv);

    engine = new QScriptEngine;

    QTranslator *translator = new QTranslator;
    translator->load("helloscript_la");
    app->installTranslator(translator);
    engine->installTranslatorFunctions();
//! [1]

//! [2]
    QPushButton *button = new QPushButton;
    QScriptValue scriptButton = engine->newQObject(button);
    engine->globalObject().setProperty("button", scriptButton);
//! [2]

//! [3]
    QString fileName(":/helloscript.js");
    QFile scriptFile(fileName);
    scriptFile.open(QIODevice::ReadOnly);
    QTextStream stream(&scriptFile);
    QString contents = stream.readAll();
    scriptFile.close();
//! [3]

#ifdef Q_OS_SYMBIAN
    contents.replace("button->show()", "button->showMaximized()");
#endif

//! [4]
    QScriptValue result = engine->evaluate(contents, fileName);
//! [4]

//! [5]
    if (result.isError()) {
        QMessageBox::critical(0, "Hello Script",
                              QString::fromLatin1("%0:%1: %2")
                              .arg(fileName)
                              .arg(result.property("lineNumber").toInt32())
                              .arg(result.toString()));
        return -1;
    }
//! [5]

//! [6]
    return app->exec();
}
Beispiel #6
0
void shell::on_console_execute(const QString& Command)
{
	QScriptValue result = script_engine->evaluate(Command);

	if(result.isError())
		ui.console->print_html("<span style='color: #f00'>" + result.toString() + "</span>");
	else if(!result.isUndefined())
		ui.console->print_html("<span style='color: #00f'>" + result.toString() + "</span>");
	
	prompt();
}
Beispiel #7
0
QScriptValue  QTrajectory::printProgress(void)
{
    QScriptValue value;

// help ------------------------------------------
    if( IsHelpRequested() ){
        CTerminalStr sout;
        sout << "usage: Trajectory::printProgress()" << endl;
        return(false);
    }

// check arguments -------------------------------
    value = CheckNumberOfArguments("",0);
    if( value.isError() ) return(value);

// execute ---------------------------------------
    if( Trajectory.IsItOpened() == false ){
        return(ThrowError("","trajectory is not opened"));
    }

    if( ProgressStarted == false ){
        cout << setw(15) << left << Name.toStdString() << " |";
        ProgressStarted = true;
        ProgressSnapshot = 0;
    }
    if( ProgressStarted ){
        if( ProgressSnapshot > Trajectory.GetNumberOfSnapshots() ) return(value);

        for(int i=ProgressSnapshot;i < CurrentSnapshot; i++){
            if( Trajectory.GetNumberOfSnapshots() > 80 ){
                if( i % (Trajectory.GetNumberOfSnapshots()/80) == 0 ){
                    cout << "=";
                }
            }
            if( i == Trajectory.GetNumberOfSnapshots()/4 ){
                cout << " 25% ";
            }
            if( i == Trajectory.GetNumberOfSnapshots()/2 ){
                cout << " 50% ";
            }
            if( i == 3*Trajectory.GetNumberOfSnapshots()/4 ){
                cout << " 75% ";
            }
        }
        ProgressSnapshot = CurrentSnapshot;
        if( CurrentSnapshot == Trajectory.GetNumberOfSnapshots() ){
                cout << "|" << endl;
        }
        cout.flush();
    }

    return(value);
}
Beispiel #8
0
bool CodeExecuter::start(QIODevice *device, const QString &filename)
{
	if(!Executer::start(device, filename))
		return false;
	
	QString code = QString::fromUtf8(device->readAll());
	device->close();
	
	mScriptAgent->setContext(LibExecuter::ScriptAgent::ActionInit);
    LibExecuter::CodeInitializer::initialize(mScriptEngine, mScriptAgent, actionFactory(), filename);

	Code::CodeTools::addClassToScriptEngine<LibExecuter::CodeStdio>(QStringLiteral("Console"), mScriptEngine);
	Code::CodeTools::addClassGlobalFunctionToScriptEngine(QStringLiteral("Console"), &LibExecuter::CodeStdio::print, QStringLiteral("print"), mScriptEngine);
	Code::CodeTools::addClassGlobalFunctionToScriptEngine(QStringLiteral("Console"), &LibExecuter::CodeStdio::println, QStringLiteral("println"), mScriptEngine);
	Code::CodeTools::addClassGlobalFunctionToScriptEngine(QStringLiteral("Console"), &LibExecuter::CodeStdio::printWarning, QStringLiteral("printWarning"), mScriptEngine);
	Code::CodeTools::addClassGlobalFunctionToScriptEngine(QStringLiteral("Console"), &LibExecuter::CodeStdio::printlnWarning, QStringLiteral("printlnWarning"), mScriptEngine);
	Code::CodeTools::addClassGlobalFunctionToScriptEngine(QStringLiteral("Console"), &LibExecuter::CodeStdio::printError, QStringLiteral("printError"), mScriptEngine);
	Code::CodeTools::addClassGlobalFunctionToScriptEngine(QStringLiteral("Console"), &LibExecuter::CodeStdio::printlnError, QStringLiteral("printlnError"), mScriptEngine);
	Code::CodeTools::addClassGlobalFunctionToScriptEngine(QStringLiteral("Console"), &LibExecuter::CodeStdio::clear, QStringLiteral("clear"), mScriptEngine);

	Code::CodeTools::addClassToScriptEngine<LibExecuter::CodeActiona>(QStringLiteral("Actiona"), mScriptEngine);
    LibExecuter::CodeActiona::setActExec(true);
    LibExecuter::CodeActiona::setActionaVersion(Global::ACTIONA_VERSION);
    LibExecuter::CodeActiona::setScriptVersion(Global::SCRIPT_VERSION);
	Code::CodeTools::addClassGlobalFunctionToScriptEngine(QStringLiteral("Actiona"), &LibExecuter::CodeActiona::version, QStringLiteral("version"), mScriptEngine);
	Code::CodeTools::addClassGlobalFunctionToScriptEngine(QStringLiteral("Actiona"), &LibExecuter::CodeActiona::scriptVersion, QStringLiteral("scriptVersion"), mScriptEngine);
	Code::CodeTools::addClassGlobalFunctionToScriptEngine(QStringLiteral("Actiona"), &LibExecuter::CodeActiona::isActExec, QStringLiteral("isActExec"), mScriptEngine);
	Code::CodeTools::addClassGlobalFunctionToScriptEngine(QStringLiteral("Actiona"), &LibExecuter::CodeActiona::isActiona, QStringLiteral("isActiona"), mScriptEngine);

    QString locale = Tools::Languages::locale();

	for(int actionPackIndex = 0; actionPackIndex < actionFactory()->actionPackCount(); ++actionPackIndex)
	{
		ActionTools::ActionPack *actionPack = actionFactory()->actionPack(actionPackIndex);

        Tools::Languages::installTranslator(QStringLiteral("actionpack%1").arg(actionPack->id()), locale);
	}

	mScriptAgent->setContext(LibExecuter::ScriptAgent::Parameters);
	
	QScriptValue result = mScriptEngine->evaluate(code, filename);
	if(result.isError())
	{
		QTextStream stream(stdout);
		stream << QObject::tr("Uncaught exception: ") << result.toString() << "\n";
		stream << tr("Backtrace: ") << mScriptEngine->uncaughtExceptionBacktrace().join(QStringLiteral("\n")) << "\n";
		stream.flush();
	}
	
	QTimer::singleShot(0, qApp, SLOT(quit()));
	
	return true;
}
Beispiel #9
0
QString ScriptHandler::customToString(const DataInformation* data, const QScriptValue& func)
{
    Q_ASSERT(func.isValid());
    Q_ASSERT(func.isFunction());
    Q_ASSERT(data->wasAbleToRead()); //this should never be called if EOF was reached
    //it is effectively const, since nothing may be modified while mode is CustomToString
    //const_cast is okay in this case
    QScriptValue result = callFunction(func, const_cast<DataInformation*>(data), ScriptHandlerInfo::CustomToString);
    if (result.isError())
        data->logError() << "toStringFunc caused an error:" << result.toString();
    return result.toString();
}
Beispiel #10
0
QString KateScript::backtrace( const QScriptValue& error, const QString& header )
{
  QString bt;
  if(!header.isNull())
    bt += header + ":\n";
  if(error.isError())
    bt += error.toString() + '\n';

  bt += m_engine->uncaughtExceptionBacktrace().join("\n") + '\n';

  return bt;
}
Beispiel #11
0
QScriptValue PluginsScript::call(QString sScript, QString sFunctionName, QScriptValueList valuelist,QString sExtra)
{
    // TODO check if function
    QScriptValue script = evaluate(sScript);
    if(!script.isError())
    {
        QScriptValue detect=globalObject().property(sFunctionName);
        if(!detect.isError())
        {

            QScriptValue result=detect.call(script,valuelist);
            if(!result.isError())
            {
                return result;
            }
            else
            {
                if(sExtra!="")
                {
                    emit appendError(QString("%1: %2").arg(sExtra).arg(result.toString()));
                }
                else
                {
                    emit appendError(QString("%1").arg(result.toString()));
                }
            }
        }
        else
        {
            if(sExtra!="")
            {
                emit appendError(QString("%1: %2").arg(sExtra).arg(detect.toString()));
            }
            else
            {
                emit appendError(QString("%1").arg(detect.toString()));
            }
        }
    }
    else
    {
        if(sExtra!="")
        {
            emit appendError(QString("%1: %2").arg(sExtra).arg(script.toString()));
        }
        else
        {
            emit appendError(QString("%1").arg(script.toString()));
        }
    }

    return 0;
}
void JavaScriptDecaptchaPlugin::submitSettingsResponse(const QVariantMap &settings) {
    if (!init()) {
        error(tr("Plugin not initialized"));
        return;
    }

    if (m_callback.isFunction()) {
        const QScriptValue result = m_callback.call(m_plugin, QScriptValueList()
                << m_plugin.engine()->toScriptValue(settings));

        if (result.isError()) {
            const QString errorString = result.toString();
            Logger::log("JavaScriptDecaptchaPlugin::submitSettingsResponse(): Error calling settings callback: "
                    + errorString);
            emit error(tr("Settings callback error: %1").arg(errorString));
        }
    }
    else {
        const QString funcName = m_callback.toString();
        QScriptValue func = m_plugin.property(funcName);

        if (func.isFunction()) {
            const QScriptValue result = func.call(m_plugin, QScriptValueList()
                    << m_plugin.engine()->toScriptValue(settings));

            if (result.isError()) {
                const QString errorString = result.toString();
                Logger::log("JavaScriptDecaptchaPlugin::submitSettingsResponse(): Error calling settings callback: "
                        + errorString);
                emit error(tr("Settings callback error: %1").arg(errorString));
            }
        }
        else {
            Logger::log(QString("JavaScriptDecaptchaPlugin::submitSettingsResponse(): %1 function not defined")
                    .arg(funcName));
            emit error(tr("%1 function not defined in the plugin").arg(funcName));
        }
    }
}
Beispiel #13
0
void PlugScript::slNewPiece(InterfaceTetris tpD)
{


    ifTetris=&tpD;
//    QByteArray     tpCur( tpD.aBoard);
    iWaiting=0;

    QScriptEngine scrptEngine;
    QFile         file("d:\\ETK\\Projects\\qt\\tetrisqt\\tetris.js");
    if (!file.open(QFile::ReadOnly)) {
        QMessageBox::critical(0,
                              QString("File open error"),
                               "Can not open the script file:"+file.fileName() ,
                              QMessageBox::Yes
                             );

    }
    QLabel  lb;
    QScriptValue objTetris=scrptEngine.newQObject(&lb);
    scrptEngine.globalObject().setProperty("objTetris", objTetris);

    //objTetris.setProperty("mBoard",tpCur);
    //scrptEngine.globalObject().setProperty("iTetris",interfaceTetris);
    //QScriptValue val=scrptEngine.evaluate("");
    QString str=QLatin1String(file.readAll());



    scrptEngine.globalObject().setProperty("foo", 123);

    QScriptValue result =
        scrptEngine.evaluate(str);


//    Q_ASSERT(result);

    if (result.isError()) {
        QMessageBox::critical(0,
                              "Evaluating error",
                              result.toString(),
                              QMessageBox::Yes
                             );
    }



    iLines++;
    emit sgDbg(result.toInteger());

}
void tst_QScriptContext::throwValue()
{
    QScriptEngine eng;

    QScriptValue fun = eng.newFunction(throw_value);
    eng.globalObject().setProperty("throw_value", fun);

    {
        QScriptValue result = eng.evaluate("throw_value(123)");
        QCOMPARE(result.isError(), false);
        QCOMPARE(result.toNumber(), 123.0);
        QCOMPARE(eng.hasUncaughtException(), true);
    }
}
Beispiel #15
0
QScriptValue QHistogram::setName(const QScriptValue& dummy)
{
    QScriptValue value;

// help ------------------------------------------
    if( IsHelpRequested() ){
        CTerminalStr sout;
        sout << "usage: LinStat::setName(name)" << endl;
        return(false);
    }

// check arguments -------------------------------
    value = CheckNumberOfArguments("name",1);
    if( value.isError() ) return(value);

    QString name;
    value = GetArgAsString("name","name",1,name);
    if( value.isError() ) return(value);

// execute ---------------------------------------
    Name = name;
    return(true);
}
Beispiel #16
0
QScriptValue QVolumeData::setOutlierValue(void)
{
    QScriptValue value;

// help ------------------------------------------
    if( IsHelpRequested() ){
        CTerminalStr sout;
        sout << "usage: VolumeData::setOutlierValue(value)" << endl;
        return(false);
    }

// check arguments -------------------------------
    value = CheckNumberOfArguments("value",1);
    if( value.isError() ) return(value);

    double outval;
    value = GetArgAsRNumber("value","value",1,outval);
    if( value.isError() ) return(value);

// execute ---------------------------------------
    OutlierValue = outval;
    return(value);
}
Beispiel #17
0
QScriptValue QCATs::system(void)
{
    QScriptValue value;

// help ------------------------------------------
    if( IsHelpRequested() ){
        CTerminalStr sout;
        sout << "usage: int system(cmd)" << endl;
        return(false);
    }

// check arguments -------------------------------
    value = CheckNumberOfArguments("cmd",1);
    if( value.isError() ) return(value);

    QString cmd;
    value = GetArgAsString("cmd","cmd",1,cmd);
    if( value.isError() ) return(value);


// execute ---------------------------------------
    return( ::system(cmd.toLatin1().constData()) );
}
Beispiel #18
0
void QTController::initScript()
{
    scripting::addDefaultScripts(scripting::scriptEngineInstance());
    for(size_t i = 0; i < m_scriptsToParse.size(); ++i) {

        QScriptValue error = scripting::scriptEngineInstance().evaluate(QString(m_scriptsToParse[i].c_str()));
        if(error.isError()) {
            throw std::runtime_error("Error parsing script: "
                                     + error.toString().toStdString()
                                     + "\n\nSCRIPT:\n"
                                     + m_scriptsToParse[i]);
        }
    }
}
Beispiel #19
0
//! [0]
int main(int argc, char *argv[])
{
    Q_INIT_RESOURCE(helloscript);
//! [0]

//! [1]
    QApplication app(argc, argv);

    QScriptEngine engine;

    QTranslator translator;
    translator.load("helloscript_la");
    app.installTranslator(&translator);
    engine.installTranslatorFunctions();
//! [1]

//! [2]
    QPushButton button;
    QScriptValue scriptButton = engine.newQObject(&button);
    engine.globalObject().setProperty("button", scriptButton);
//! [2]

//! [3]
    QString fileName(":/helloscript.qs");
    QFile scriptFile(fileName);
    scriptFile.open(QIODevice::ReadOnly);
    QTextStream stream(&scriptFile);
    QString contents = stream.readAll();
    scriptFile.close();
//! [3]

//! [4]
    QScriptValue result = engine.evaluate(contents, fileName);
//! [4]

//! [5]
    if (result.isError()) {
        QMessageBox::critical(0, "Hello Script",
                              QString::fromLatin1("%0:%1: %2")
                              .arg(fileName)
                              .arg(result.property("lineNumber").toInt32())
                              .arg(result.toString()));
        return -1;
    }
//! [5]

//! [6]
    return app.exec();
}
Beispiel #20
0
QScriptValue Qx3DNA::setAutoReferenceMode(const QScriptValue& dummy)
{
    QScriptValue value;

// help ------------------------------------------
    if( IsHelpRequested() ){
        CTerminalStr sout;
        sout << "usage: bool x3DNA::setAutoReferenceMode(set)" << endl;
        return(false);
    }

// check arguments -------------------------------
    value = CheckNumberOfArguments("set",1);
    if( value.isError() ) return(value);

    bool set = false;
    value = GetArgAsBool("set","set",1,set);
    if( value.isError() ) return(value);

// update value of AutoReferenceMode -------------
    AutoReferenceMode = set;

    return(true);
}
QScriptValue SICliScriptDriver::callExtensionFunction(const QString& fn, const QVariantList& params) throw(QFException)
{
	qfLogFuncFrame();
	QScriptValue ret;
	QSettings settings;
	QString extension = settings.value("app/extensions/currentName").toString();
	QString ext_property_name = extension;
	ext_property_name.replace('.', '_');
	ext_property_name = "__sicli_extension_" + ext_property_name;
	if(extension.isEmpty()) return ret;
	QScriptValue mo = scriptEngine()->globalObject().property(ext_property_name);
	qfTrash() << "\t extension module object is undefined:" << mo.isUndefined() << "is valid:" << mo.isValid() << "is null:" << mo.isNull() << "is object:" << mo.isObject();
	if(!mo.isValid()) {
		qfTrash() << "\t loading extension module object";
		mo = constructedModuleObject(extension, QScriptValueList(), Qf::ThrowExc);
		/*
		if(!mo.isObject()) {
			QF_EXCEPTION(tr("Cann't load extension object '%1'").arg(extension));
			//return ret;
		}
		*/
		scriptEngine()->globalObject().setProperty(ext_property_name, mo);
		qfTrash() << "\t loaded extension module object is undefined:" << mo.isUndefined() << "is valid:" << mo.isValid() << "is null:" << mo.isNull() << "is object:" << mo.isObject();
	}
	{
		QScriptValueList args;
		foreach(QVariant v, params) args << variantToScriptValue(v);

		QScriptValue jsfn = mo.property(fn);
		if(jsfn.isFunction()) {
			//qfTrash() << "\t jsfn:" << jsfn.toString();
			QScriptValue sv = callFunction(jsfn, mo, args, !Qf::ThrowExc);
			//qfInfo() << scriptValueToJsonString(sv);
			if(sv.isError()) {
				/// zprava ze skriptu, neco se nepodarilo
				//theApp()->emitLogRequest(QFLog::LOG_ERR, sv.property("message").toString() + "\n" + sv.property("debugInfo").toString());
				theApp()->emitLogRequestPre(QFLog::LOG_ERR, sv.property("message").toString());
				//qfError() << sv.property("message").toString();
			}
			else ret = sv;
		}
		else {
			theApp()->emitLogRequest(QFLog::LOG_ERR, tr("Extension '%1' does not contains function '%2'").arg(extension).arg(fn));
			//qfError() << "Extension" << extension << "does not contains function" << fn;
		}
	}
	return ret;
}
 void run() override {
   m_engine->m_engine->collectGarbage();
   QScriptValue result = m_engine->m_engine->evaluate(m_cmd);
   if (result.isError()) {
     m_engine->emitOutput(ScriptEngine::SyntaxError, result.toString());
   } else if (result.isUndefined()) {
     m_engine->emitOutput(ScriptEngine::UndefinedEvaluationResult,
                          "undefined");
   } else {
     if (qscriptvalue_cast<TScriptBinding::Void *>(result)) {
     } else {
       m_engine->emitOutput(ScriptEngine::EvaluationResult,
                            print(result, true));
     }
   }
 }
void JavaScriptDecaptchaPlugin::reportCaptchaResponse(const QString &captchaId) {
    if (!init()) {
        error(tr("Plugin not initialized"));
        return;
    }

    const QScriptValue result = m_plugin.property("reportCaptchaResponse").call(m_plugin, QScriptValueList()
            << captchaId);

    if (result.isError()) {
        const QString errorString = result.toString();
        Logger::log("JavaScriptDecaptchaPlugin::reportCaptchaResponse(). Error calling reportCaptchaResponse(): "
                    + errorString);
        emit error(tr("Error calling reportCaptchaResponse(): %1").arg(errorString));
    }
}
Beispiel #24
0
void KWin::Script::sigException(const QScriptValue& exception)
{
    QScriptValue ret = exception;
    if (ret.isError()) {
        qDebug() << "defaultscript encountered an error at [Line " << m_engine->uncaughtExceptionLineNumber() << "]";
        qDebug() << "Message: " << ret.toString();
        qDebug() << "-----------------";

        QScriptValueIterator iter(ret);
        while (iter.hasNext()) {
            iter.next();
            qDebug() << " " << iter.name() << ": " << iter.value().toString();
        }
    }
    emit printError(exception.toString());
    stop();
}
QScriptValue ImageBuilder::fill(const QString &colorName) {
  QColor color;
  QScriptValue err = checkColor(context(), colorName, color);
  if (err.isError()) return err;
  TPixel32 pix(color.red(), color.green(), color.blue(), color.alpha());
  if (m_img) {
    if (m_img->getType() != TImage::RASTER)
      context()->throwError("Can't fill a non-'Raster' image");
    TRaster32P ras = m_img->raster();
    if (ras) ras->fill(pix);
  } else if (m_width > 0 && m_height > 0) {
    TRaster32P ras(m_width, m_height);
    ras->fill(pix);
    m_img = TRasterImageP(ras);
  }
  return context()->thisObject();
}
void JavaScriptDecaptchaPlugin::getCaptchaResponse(int captchaType, const QByteArray &captchaData,
        const QVariantMap &settings) {
    if (!init()) {
        error(tr("Plugin not initialized"));
        return;
    }
    
    const QScriptValue result = m_plugin.property("getCaptchaResponse").call(m_plugin, QScriptValueList()
            << captchaType << QString::fromUtf8(captchaData) << m_plugin.engine()->toScriptValue(settings));

    if (result.isError()) {
        const QString errorString = result.toString();
        Logger::log("JavaScriptDecaptchaPlugin::getCaptchaResponse(). Error calling getCaptchaResponse(): "
                    + errorString);
        emit error(tr("Error calling getCaptchaResponse(): %1").arg(errorString));
    }
}
Beispiel #27
0
void IndentTest::runTest(const ExpectedFailures& failures)
{
  if ( !QFile::exists(testDataPath) )
    QSKIP(qPrintable(QString(testDataPath + " does not exist")), SkipAll);

  QFETCH(QString, testcase);

  m_toplevel->resize( 800, 600); // restore size

  // load page
  KUrl url;
  url.setProtocol("file");
  url.setPath(testcase + "/origin");
  m_document->openUrl(url);

  // evaluate test-script
  QFile sourceFile(testcase + "/input.js");
  QVERIFY( sourceFile.open(QFile::ReadOnly) );

  QTextStream stream(&sourceFile);
  stream.setCodec("UTF8");
  QString code = stream.readAll();
  sourceFile.close();

  // Execute script
  QScriptValue result = m_env->engine()->evaluate(code, testcase + "/input.js", 1);
  QVERIFY2( !result.isError(), result.toString().toUtf8().constData() );

  url.setPath(testcase + "/actual");
  m_document->saveAs(url);

  // diff actual and expected
  QProcess diff;
  QStringList args;
  args << "-u" << (testcase + "/expected") << (testcase + "/actual");
  diff.start("diff", args);
  diff.waitForFinished();
  QByteArray out = diff.readAllStandardOutput();
  QByteArray err = diff.readAllStandardError();
  if ( !err.isEmpty() ) {
    qWarning() << err;
  }
  foreach( const Failure& failure, failures ) {
    QEXPECT_FAIL(failure.first, failure.second, Abort);
  }
Beispiel #28
0
QScriptValue QTrajPool::getTopology(void)
{
    QScriptValue value;

// help ------------------------------------------
    if( IsHelpRequested() ){
        CTerminalStr sout;
        sout << "usage: topology TrajPool::getTopology()" << endl;
        return(false);
    }

// check arguments -------------------------------
    value = CheckNumberOfArguments("",0);
    if( value.isError() ) return(value);

// execute ---------------------------------------
    return(Topology);
}
Beispiel #29
0
QScriptValue Qx3DNA::getParameterType(void)
{
    QScriptValue value;

// help ------------------------------------------
    if( IsHelpRequested() ){
        CTerminalStr sout;
        sout << "usage: string x3DNA::getParameterType()" << endl;
        return(false);
    }

// check arguments -------------------------------
    value = CheckNumberOfArguments(0);
    if( value.isError() ) return(value);

// update value of AutoReferenceMode -------------
    return( GetParameterTypeString() );
}
Beispiel #30
0
QScriptValue Qx3DNA::isAutoReferenceModeSet(void)
{
    QScriptValue value;

// help ------------------------------------------
    if( IsHelpRequested() ){
        CTerminalStr sout;
        sout << "usage: bool x3DNA::isAutoReferenceModeSet()" << endl;
        return(false);
    }

// check arguments -------------------------------
    value = CheckNumberOfArguments(0);
    if( value.isError() ) return(value);

// update value of AutoReferenceMode -------------
    return( AutoReferenceMode );
}