本文整理汇总了C++中kjs::Identifier::ascii方法的典型用法代码示例。如果您正苦于以下问题:C++ Identifier::ascii方法的具体用法?C++ Identifier::ascii怎么用?C++ Identifier::ascii使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kjs::Identifier
的用法示例。
在下文中一共展示了Identifier::ascii方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: get
KJS::Value JSObjectProxy::get( KJS::ExecState *exec, const KJS::Identifier &p ) const {
if ( !isAllowed( exec->interpreter() ) ) {
kdWarning() << "JS get request from unknown interpreter, ignoring" << endl;
return KJS::Null();
}
if ( !policy->isPropertyAllowed( this, obj, p.ascii() ) )
return ObjectImp::get( exec, p );
if ( !obj ) {
kdDebug( 80001 ) << "JS getting '" << p.ustring().qstring() << "' but qobj has died" << endl;
return ObjectImp::get( exec, p );
}
kdDebug( 80001 ) << "JS getting '" << p.ascii() << endl;
// Properties
QString prop = p.ustring().qstring();
QMetaObject *meta = obj->metaObject();
if ( meta->findProperty( p.ascii(), true ) != -1 ) {
QVariant val = obj->property( prop.ascii() );
kdDebug( 80001 ) << "JS getting '" << p.ascii() << "' ( " << val.typeName() << ")" << endl;
return convertToValue( exec, val );
}
return ObjectImp::get
( exec, p );
}
示例2: jsNull
KJS::JSValue *SlotProxy::callMethod(const QByteArray &methodName, void **_a)
{
#ifdef DEBUG_SLOTPROXY
qDebug() << "SlotProxy::callMethod(" << methodName << ",_a) obj=" << this;
#endif
KJS::ExecState *exec = m_interpreter->globalExec();
exec->clearException();
// Crash
// KJS::Interpreter::globalExec()->context().thisValue()
KJS::List args = convertArguments(exec, _a);
KJS::Identifier id = KJS::Identifier(KJS::UString(methodName.data()));
KJS::JSObject *fun = m_object->get(exec, id)->toObject(exec);
KJS::JSValue *retValue;
if (!fun->implementsCall()) {
#ifdef DEBUG_SLOTPROXY
qDebug() << "SlotProxy::callMethod got bad handler";
#endif
QString msg = i18n("Bad slot handler: Object %1 Identifier %2 Method %3 Signature: %4.",
m_object->className().ascii(),
id.ascii(),
methodName.data(),
QString(m_signature));
retValue = throwError(exec, KJS::TypeError, msg);
} else {
retValue = fun->call(exec, m_object, args);
}
if (exec->hadException()) {
#ifdef DEBUG_SLOTPROXY
qDebug() << "SlotProxy::callMethod had exception";
#endif
if (m_interpreter->shouldPrintExceptions()) {
KJS::JSLock lock;
KJS::JSObject *exceptObj = exec->exception()->toObject(exec);//retValue->toObject(exec);
QString message = toQString(exceptObj->toString(exec));
QString sourceURL = toQString(exceptObj->get(exec, "sourceURL")->toString(exec));
int sourceId = exceptObj->get(exec, "sourceId")->toUInt32(exec);
// would include the line number, but it's always last line of file
int line = exceptObj->get(exec, "line")->toUInt32(exec);
(*KJSEmbed::conerr()) << i18n("Exception calling '%1' slot from %2:%3:%4", QString(methodName), !sourceURL.isEmpty() ? sourceURL : QString::number(sourceId), line, message) << endl;
}
// clear it so it doesn't stop other things
exec->clearException();
return KJS::jsNull();
} else {
if (retValue->type() == 1 || retValue->type() == 0) {
return KJS::jsNull();
}
}
return retValue;
}
示例3: put
void JSObjectProxy::put( KJS::ExecState *exec,
const KJS::Identifier &p, const KJS::Value &v,
int attr ) {
if ( !isAllowed( exec->interpreter() ) ) {
kdWarning() << "JS put request from unknown interpreter, ignoring" << endl;
return ;
}
if ( !policy->hasCapability( JSSecurityPolicy::CapabilitySetProperties ) ) {
ObjectImp::put( exec, p, v, attr );
return ;
}
if ( !obj ) {
kdDebug( 80001 ) << "JS setting '" << p.ascii() << "' but qobj has died" << endl;
ObjectImp::put( exec, p, v, attr );
return ;
}
// Properties
QMetaObject *meta = obj->metaObject();
int propIndex = meta->findProperty( p.ascii(), true );
if ( propIndex != -1 ) {
QVariant val = convertToVariant( exec, v );
if ( meta->property(propIndex, true)->isEnumType() ) {
obj->setProperty( p.ascii(), val.toUInt() );
} else if ( val.isValid() ) {
obj->setProperty( p.ascii(), val );
} else {
kdWarning(80001) << "Error setting value." << endl;
}
} else {
ObjectImp::put( exec, p, v, attr );
}
if ( jspart->factory() ->eventMapper() ->isEventHandler( p ) ) {
if ( evproxy.isNull() )
evproxy = new KJSEmbed::JSObjectEventProxy( this );
evproxy->addFilter( jspart->factory() ->eventMapper() ->findEventType( p ) );
kdDebug( 80001 ) << "Adding event handler " << p.ascii() << endl;
}
}
示例4: callHandler
bool EventProxy::callHandler( QEvent *e )
{
// Be careful enabling this as if there are a lot of events then the event loop times
// out and the app crashes with 'Alarm Clock'.
// qDebug("JSObjectEventProxy::callHandler() event type %d" , e->type() );
KJS::ExecState *exec = m_interpreter->globalExec();
KJS::Identifier id = JSEventMapper::mapper()->findEventHandler( e->type() );
KJS::JSObject *jsobj(m_watch);
KJS::JSObject *fun = jsobj->get(exec, id )->toObject( exec );
KJS::JSValue *retValue;
if ( !fun->implementsCall() )
{
QString msg = i18n( "Bad event handler: Object %1 Identifier %2 Method %3 Type: %4.",
jsobj->className().ascii(),
id.ascii(),
fun->className().ascii(),
e->type());
retValue = throwError(exec, KJS::TypeError, msg);
}
else
{
// Process args
KJS::List args;
args.append( JSEventUtils::event(exec, e) );
// Call handler
retValue = fun->call( exec, jsobj, args );
}
if ( exec->hadException() )
{
if (m_interpreter->shouldPrintExceptions())
{
KJS::JSLock lock;
KJS::JSObject* exceptObj = retValue->toObject(exec);
QString message = toQString(exceptObj->toString(exec));
QString sourceURL = toQString(exceptObj->get(exec, "sourceURL")->toString(exec));
int sourceId = exceptObj->get(exec, "sourceId")->toUInt32(exec);
int line = exceptObj->get(exec, "line")->toUInt32(exec);
(*KJSEmbed::conerr()) << i18n("Exception calling '%1' function from %2:%3:%4", id.ascii(), !sourceURL.isEmpty() ? sourceURL : QString::number(sourceId), line, message) << endl;
}
// clear it so it doesn't stop other things
exec->clearException();
return false;
}
return true;
}