本文整理汇总了C++中QScriptValue::isBoolean方法的典型用法代码示例。如果您正苦于以下问题:C++ QScriptValue::isBoolean方法的具体用法?C++ QScriptValue::isBoolean怎么用?C++ QScriptValue::isBoolean使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QScriptValue
的用法示例。
在下文中一共展示了QScriptValue::isBoolean方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: validateData
void ScriptHandler::validateData(DataInformation* data)
{
if (!data)
return;
data->setHasBeenValidated(false); //not yet validated
if (data->hasChildren())
{
//first validate the children
for (uint i = 0; i < data->childCount(); ++i)
{
validateData(data->childAt(i));
}
}
//check if has a validation function:
AdditionalData* additionalData = data->additionalData();
if (additionalData && additionalData->validationFunction().isValid())
{
//value exists, we assume it has been checked to be a function
#ifdef OKTETA_DEBUG_SCRIPT
mDebugger->attachTo(mEngine);
mDebugger->action(QScriptEngineDebugger::InterruptAction)->trigger();
kDebug()
<< "validating element: " << data->name();
#endif
// QScriptValue thisObject = mEngine->newQObject(data,
// QScriptEngine::QtOwnership, QScriptEngine::ExcludeDeleteLater);
// QScriptValue mainStruct = mEngine->newQObject(data->mainStructure(),
// QScriptEngine::QtOwnership, QScriptEngine::ExcludeDeleteLater);
QScriptValue thisObject = data->toScriptValue(mEngine, &mHandlerInfo);
QScriptValue mainStruct = data->mainStructure()->toScriptValue(mEngine, &mHandlerInfo);
QScriptValueList args;
args << mainStruct;
QScriptValue result = additionalData->validationFunction().call(thisObject, args);
if (result.isError())
{
ScriptUtils::object()->logScriptError(QLatin1String("error occurred while "
"validating element ") + data->name(), result);
data->setValidationError(QLatin1String("Error occurred in validation: ")
+ result.toString());
}
if (mEngine->hasUncaughtException())
{
ScriptUtils::object()->logScriptError(
mEngine->uncaughtExceptionBacktrace());
data->setValidationError(QLatin1String("Error occurred in validation: ")
+ result.toString());
}
if (result.isBool() || result.isBoolean())
{
data->setValidationSuccessful(result.toBool());
}
}
}
示例2: validateData
void ScriptHandler::validateData(DataInformation* data)
{
Q_CHECK_PTR(data);
if (data->hasBeenValidated())
return;
//first validate the children
for (uint i = 0; i < data->childCount(); ++i)
validateData(data->childAt(i));
//check if has a validation function:
QScriptValue validationFunc = data->validationFunc();
if (validationFunc.isValid())
{
QScriptValue result = callFunction(validationFunc, data, ScriptHandlerInfo::Validating);
if (result.isError())
{
mTopLevel->logger()->error(data) << "Error occurred while validating element: "
<< result.toString();
data->setValidationError(QStringLiteral("Error occurred in validation: ")
+ result.toString());
}
else if (mEngine->hasUncaughtException())
{
mTopLevel->logger()->error(data) << "Error occurred while validating element:"
<< result.toString() << "\nBacktrace:" << mEngine->uncaughtExceptionBacktrace();
data->setValidationError(QStringLiteral("Error occurred in validation: ")
+ result.toString());
mEngine->clearExceptions();
}
if (result.isBool() || result.isBoolean())
{
data->mValidationSuccessful = result.toBool();
}
if (result.isString())
{
//error string
QString str = result.toString();
if (!str.isEmpty())
data->setValidationError(str);
}
data->mHasBeenValidated = true;
}
}
示例3: matchScore
/*!
Returns the match score for converting \a actual to be of type \a conversionType. A
zero score means "perfect match" whereas a higher score is worse.
The conversion table is copied out of the QtScript callQtMethod() function.
*/
int QDeclarativeObjectMethodScriptClass::matchScore(const QScriptValue &actual, int conversionType,
const QByteArray &conversionTypeName)
{
if (actual.isNumber()) {
switch (conversionType) {
case QMetaType::Double:
return 0;
case QMetaType::Float:
return 1;
case QMetaType::LongLong:
case QMetaType::ULongLong:
return 2;
case QMetaType::Long:
case QMetaType::ULong:
return 3;
case QMetaType::Int:
case QMetaType::UInt:
return 4;
case QMetaType::Short:
case QMetaType::UShort:
return 5;
break;
case QMetaType::Char:
case QMetaType::UChar:
return 6;
default:
return 10;
}
} else if (actual.isString()) {
switch (conversionType) {
case QMetaType::QString:
return 0;
default:
return 10;
}
} else if (actual.isBoolean()) {
switch (conversionType) {
case QMetaType::Bool:
return 0;
default:
return 10;
}
} else if (actual.isDate()) {
switch (conversionType) {
case QMetaType::QDateTime:
return 0;
case QMetaType::QDate:
return 1;
case QMetaType::QTime:
return 2;
default:
return 10;
}
} else if (actual.isRegExp()) {
switch (conversionType) {
case QMetaType::QRegExp:
return 0;
default:
return 10;
}
} else if (actual.isVariant()) {
if (conversionType == qMetaTypeId<QVariant>())
return 0;
else if (actual.toVariant().userType() == conversionType)
return 0;
else
return 10;
} else if (actual.isArray()) {
switch (conversionType) {
case QMetaType::QStringList:
case QMetaType::QVariantList:
return 5;
default:
return 10;
}
} else if (actual.isQObject()) {
switch (conversionType) {
case QMetaType::QObjectStar:
return 0;
default:
return 10;
}
} else if (actual.isNull()) {
switch (conversionType) {
case QMetaType::VoidStar:
case QMetaType::QObjectStar:
return 0;
default:
if (!conversionTypeName.endsWith('*'))
return 10;
else
return 0;
}
} else {
//.........这里部分代码省略.........
示例4: extension
void tst_QScriptClass::extension()
{
QScriptEngine eng;
{
TestClass cls(&eng);
cls.setCallableMode(TestClass::NotCallable);
QVERIFY(!cls.supportsExtension(QScriptClass::Callable));
QVERIFY(!cls.supportsExtension(QScriptClass::HasInstance));
QScriptValue obj = eng.newObject(&cls);
QVERIFY(!obj.call().isValid());
QCOMPARE((int)cls.lastExtensionType(), -1);
QVERIFY(!obj.instanceOf(obj));
QCOMPARE((int)cls.lastExtensionType(), -1);
}
// Callable
{
TestClass cls(&eng);
cls.setCallableMode(TestClass::CallableReturnsSum);
QVERIFY(cls.supportsExtension(QScriptClass::Callable));
QScriptValue obj = eng.newObject(&cls);
eng.globalObject().setProperty("obj", obj);
obj.setProperty("one", QScriptValue(&eng, 1));
obj.setProperty("two", QScriptValue(&eng, 2));
obj.setProperty("three", QScriptValue(&eng, 3));
// From C++
cls.clearReceivedArgs();
{
QScriptValueList args;
args << QScriptValue(&eng, 4) << QScriptValue(&eng, 5);
QScriptValue ret = obj.call(obj, args);
QCOMPARE(cls.lastExtensionType(), QScriptClass::Callable);
QCOMPARE(cls.lastExtensionArgument().userType(), qMetaTypeId<QScriptContext*>());
QVERIFY(ret.isNumber());
QCOMPARE(ret.toNumber(), qsreal(15));
}
// From JS
cls.clearReceivedArgs();
{
QScriptValue ret = eng.evaluate("obj(4, 5)");
QCOMPARE(cls.lastExtensionType(), QScriptClass::Callable);
QCOMPARE(cls.lastExtensionArgument().userType(), qMetaTypeId<QScriptContext*>());
QVERIFY(ret.isNumber());
QCOMPARE(ret.toNumber(), qsreal(15));
}
cls.setCallableMode(TestClass::CallableReturnsArgument);
// From C++
cls.clearReceivedArgs();
{
QScriptValue ret = obj.call(obj, QScriptValueList() << 123);
QCOMPARE(cls.lastExtensionType(), QScriptClass::Callable);
QCOMPARE(cls.lastExtensionArgument().userType(), qMetaTypeId<QScriptContext*>());
QVERIFY(ret.isNumber());
QCOMPARE(ret.toInt32(), 123);
}
cls.clearReceivedArgs();
{
QScriptValue ret = obj.call(obj, QScriptValueList() << true);
QCOMPARE(cls.lastExtensionType(), QScriptClass::Callable);
QCOMPARE(cls.lastExtensionArgument().userType(), qMetaTypeId<QScriptContext*>());
QVERIFY(ret.isBoolean());
QCOMPARE(ret.toBoolean(), true);
}
{
QScriptValue ret = obj.call(obj, QScriptValueList() << QString::fromLatin1("ciao"));
QVERIFY(ret.isString());
QCOMPARE(ret.toString(), QString::fromLatin1("ciao"));
}
{
QScriptValue objobj = eng.newObject();
QScriptValue ret = obj.call(obj, QScriptValueList() << objobj);
QVERIFY(ret.isObject());
QVERIFY(ret.strictlyEquals(objobj));
}
{
QScriptValue ret = obj.call(obj, QScriptValueList() << QScriptValue());
QVERIFY(ret.isUndefined());
}
// From JS
cls.clearReceivedArgs();
{
QScriptValue ret = eng.evaluate("obj(123)");
QVERIFY(ret.isNumber());
QCOMPARE(ret.toInt32(), 123);
}
cls.setCallableMode(TestClass::CallableReturnsInvalidVariant);
{
QScriptValue ret = obj.call(obj);
QVERIFY(ret.isUndefined());
}
cls.setCallableMode(TestClass::CallableReturnsThisObject);
// From C++
{
QScriptValue ret = obj.call(obj);
QVERIFY(ret.isObject());
QVERIFY(ret.strictlyEquals(obj));
}
//.........这里部分代码省略.........
示例5: isBoolean_test
void tst_QScriptValueGenerated::isBoolean_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isBoolean(), expected);
QCOMPARE(value.isBoolean(), expected);
}