Exemple #1
0
QVariant JSEmitClass::extension( Extension extension, const QVariant& argument )
{
    Q_UNUSED(argument);

    if (extension == Callable)
    {
        // QScriptContext *context = qvariant_cast<QScriptContext*>(argument);
        QScriptContext *context = engine()->currentContext();
        if ( context->argumentCount() != 2)
        {
            context->throwError("emit() accepts exactly two parameters");
            return QVariant();
        }
        if ( !context->argument(0).isArray() )
        {
            context->throwError("The first argument to emit() must be an array");
            return QVariant();
        }
        qDebug("emit(%s,%s)", qPrintable(context->argument(0).toString()), qPrintable(context->argument(1).toString()));
        return QVariant(true);
    }
    return QVariant();
}
Exemple #2
0
bool XTreeView::throwScriptException(const QString &message)
{
   QObject *ancestor = this;
   QScriptEngine *engine = 0;
   for ( ; ancestor; ancestor = ancestor->parent())
   {
     engine = ancestor->findChild<QScriptEngine*>();
     if (engine)
       break;
   } 
   if (engine)
   {
      QScriptContext *ctx = engine->currentContext();
      ctx->throwError(message);
      return true;
   }
   return false;
}