#include "tfiledialog_ecmabinding.h" #include #include #include #include #include void TFileDialog_EcmaBinding::initBinding(QScriptEngine *iEngine) { iEngine->setDefaultPrototype(qMetaTypeId(), QScriptValue()); QScriptValue proto = iEngine->newVariant(qVariantFromValue((TFileDialog*)0)); proto.setPrototype(iEngine->defaultPrototype(qMetaTypeId())); TEcmaHelper::registerQObjectMetaType(iEngine); QScriptValue ctor = iEngine->newFunction(create, proto); iEngine->globalObject().setProperty("TFileDialog", ctor, QScriptValue::SkipInEnumeration); } QScriptValue TFileDialog_EcmaBinding::create(QScriptContext *iContext, QScriptEngine *iEngine) { Q_UNUSED(iEngine); if (iContext->thisObject().strictlyEquals (iContext->engine()->globalObject())) { return TEcmaHelper::throwError_ForgetNew("TFileDialog", iContext); } int argCount = iContext->argumentCount(); switch(argCount) { case 0: return iContext->engine()->newQObject(iContext->thisObject(), new TFileDialog(), QScriptEngine::AutoOwnership); break; case 1: { QString captionStr = iContext->argument(0).toString(); return iContext->engine()->newQObject(iContext->thisObject(), new TFileDialog(captionStr), QScriptEngine::AutoOwnership); } break; case 2: { QString captionStr = iContext->argument(0).toString(); QString directoryStr = iContext->argument(1).toString(); return iContext->engine()->newQObject(iContext->thisObject(), new TFileDialog(captionStr, directoryStr), QScriptEngine::AutoOwnership); } break; case 3: { QString captionStr = iContext->argument(0).toString(); QString directoryStr = iContext->argument(1).toString(); QString filterStr = iContext->argument(2).toString(); return iContext->engine()->newQObject(iContext->thisObject(), new TFileDialog(captionStr, directoryStr, filterStr), QScriptEngine::AutoOwnership); } break; case 4: { QString captionStr = iContext->argument(0).toString(); QString directoryStr = iContext->argument(1).toString(); QString filterStr = iContext->argument(2).toString(); QWidget *parent = qobject_cast (iContext->argument(0).toQObject()); return iContext->engine()->newQObject(iContext->thisObject(), new TFileDialog(captionStr, directoryStr, filterStr, parent), QScriptEngine::AutoOwnership); } break; default: return TEcmaHelper::throwError_CtorNotFound("TFileDialog", iContext); break; } }