QtScript/qscriptengine.h File Reference

qscriptengine.h File Reference

Classes

class  QScriptSyntaxCheckResult
 
class  QScriptEngine
 

Macros

#define Q_SCRIPT_DECLARE_QMETAOBJECT(T, _Arg1)
 

Functions

template<class T >
QScriptValue qscriptQMetaObjectConstructor (QScriptContext *, QScriptEngine *, T *)
 
template<typename T >
QScriptValue qScriptValueFromValue (QScriptEngine *, const T &)
 
template<typename T >
qscriptvalue_cast (const QScriptValue &)
 
QScriptValue qScriptValueFromValue_helper (QScriptEngine *engine, int type, const void *ptr)
 
template<>
QScriptValue qScriptValueFromValue< QVariant > (QScriptEngine *engine, const QVariant &v)
 
bool qscriptvalue_cast_helper (const QScriptValue &value, int type, void *ptr)
 
template<>
QVariant qscriptvalue_cast< QVariant > (const QScriptValue &value)
 
void qScriptRegisterMetaType_helper (QScriptEngine *eng, int type, QScriptEngine::MarshalFunction mf, QScriptEngine::DemarshalFunction df, const QScriptValue &prototype)
 
template<typename T >
int qScriptRegisterMetaType (QScriptEngine *eng, QScriptValue(*toScriptValue)(QScriptEngine *, const T &t), void(*fromScriptValue)(const QScriptValue &, T &t), const QScriptValue &prototype=QScriptValue(), T *=0)
 
template<class Container >
QScriptValue qScriptValueFromSequence (QScriptEngine *eng, const Container &cont)
 
template<class Container >
void qScriptValueToSequence (const QScriptValue &value, Container &cont)
 
template<typename T >
int qScriptRegisterSequenceMetaType (QScriptEngine *engine, const QScriptValue &prototype=QScriptValue(), T *=0)
 
Q_SCRIPT_EXPORT bool qScriptConnect (QObject *sender, const char *signal, const QScriptValue &receiver, const QScriptValue &function)
 
Q_SCRIPT_EXPORT bool qScriptDisconnect (QObject *sender, const char *signal, const QScriptValue &receiver, const QScriptValue &function)
 

Macro Definition Documentation

#define Q_SCRIPT_DECLARE_QMETAOBJECT (   T,
  _Arg1 
)
Value:
template<> inline QScriptValue qscriptQMetaObjectConstructor<T>(QScriptContext *ctx, QScriptEngine *eng, T *) \
{ \
_Arg1 arg1 = qscriptvalue_cast<_Arg1> (ctx->argument(0)); \
T* t = new T(arg1); \
if (ctx->isCalledAsConstructor()) \
return eng->newQObject(ctx->thisObject(), t, QScriptEngine::AutoOwnership); \
QScriptValue o = eng->newQObject(t, QScriptEngine::AutoOwnership); \
o.setPrototype(ctx->callee().property(QString::fromLatin1("prototype"))); \
return o; \
}
T qscriptvalue_cast(const QScriptValue &)
static QString fromLatin1(const char *, int size=-1)
GLuint GLuint GLuint GLuint arg1
Definition: GLee.h:6952
GLXDrawable GLXDrawable GLXContext ctx
Definition: GLee.h:10243
GLdouble GLdouble t
Definition: GLee.h:1181

Definition at line 283 of file qscriptengine.h.

Function Documentation

QScriptValue qscriptQMetaObjectConstructor ( QScriptContext ,
QScriptEngine ,
T *   
)
inline

Definition at line 57 of file qscriptengine.h.

58 {
59  return QScriptValue();
60 }
QScriptValue qScriptValueFromValue ( QScriptEngine engine,
const T &  t 
)
inline

Definition at line 327 of file qscriptengine.h.

328 {
329  return qScriptValueFromValue_helper(engine, qMetaTypeId<T>(), &t);
330 }
GLdouble GLdouble t
Definition: GLee.h:1181
QScriptValue qScriptValueFromValue_helper(QScriptEngine *engine, int type, const void *ptr)
T qscriptvalue_cast ( const QScriptValue value)
inline

Definition at line 344 of file qscriptengine.h.

345 {
346  T t;
347  const int id = qMetaTypeId<T>();
348 
349  if (qscriptvalue_cast_helper(value, id, &t))
350  return t;
351  else if (value.isVariant())
352  return qvariant_cast<T>(value.toVariant());
353 
354  return T();
355 }
bool qscriptvalue_cast_helper(const QScriptValue &value, int type, void *ptr)
bool isVariant() const
QVariant toVariant() const
GLdouble GLdouble t
Definition: GLee.h:1181
QScriptValue qScriptValueFromValue_helper ( QScriptEngine engine,
int  type,
const void ptr 
)
inline

Definition at line 318 of file qscriptengine.h.

319 {
320  if (!engine)
321  return QScriptValue();
322 
323  return engine->create(type, ptr);
324 }
GLuint GLuint GLsizei GLenum type
Definition: GLee.h:872
QScriptValue qScriptValueFromValue< QVariant > ( QScriptEngine engine,
const QVariant v 
)
inline

Definition at line 333 of file qscriptengine.h.

334 {
335  return qScriptValueFromValue_helper(engine, v.userType(), v.data());
336 }
int userType() const
QScriptValue qScriptValueFromValue_helper(QScriptEngine *engine, int type, const void *ptr)
void * data()
bool qscriptvalue_cast_helper ( const QScriptValue value,
int  type,
void ptr 
)
inline

Definition at line 338 of file qscriptengine.h.

339 {
340  return QScriptEngine::convertV2(value, type, ptr);
341 }
GLuint GLuint GLsizei GLenum type
Definition: GLee.h:872
QVariant qscriptvalue_cast< QVariant > ( const QScriptValue value)
inline

Definition at line 358 of file qscriptengine.h.

359 {
360  return value.toVariant();
361 }
QVariant toVariant() const
void qScriptRegisterMetaType_helper ( QScriptEngine eng,
int  type,
QScriptEngine::MarshalFunction  mf,
QScriptEngine::DemarshalFunction  df,
const QScriptValue prototype 
)
inline

Definition at line 371 of file qscriptengine.h.

375 {
376  eng->registerCustomType(type, mf, df, prototype);
377 }
GLuint GLuint GLsizei GLenum type
Definition: GLee.h:872
int qScriptRegisterMetaType ( QScriptEngine eng,
QScriptValue(*)(QScriptEngine *, const T &t toScriptValue,
void(*)(const QScriptValue &, T &t fromScriptValue,
const QScriptValue prototype = QScriptValue(),
T *  = 0 
)

Definition at line 380 of file qscriptengine.h.

389 {
390  const int id = qRegisterMetaType<T>(); // make sure it's registered
391 
393  eng, id, reinterpret_cast<QScriptEngine::MarshalFunction>(toScriptValue),
394  reinterpret_cast<QScriptEngine::DemarshalFunction>(fromScriptValue),
395  prototype);
396 
397  return id;
398 }
void qScriptRegisterMetaType_helper(QScriptEngine *eng, int type, QScriptEngine::MarshalFunction mf, QScriptEngine::DemarshalFunction df, const QScriptValue &prototype)
GLuint id
Definition: GLee.h:1552
QScriptValue qScriptValueFromSequence ( QScriptEngine eng,
const Container &  cont 
)

Definition at line 401 of file qscriptengine.h.

402 {
403  QScriptValue a = eng->newArray();
404  typename Container::const_iterator begin = cont.begin();
405  typename Container::const_iterator end = cont.end();
406  typename Container::const_iterator it;
407  quint32 i;
408  for (it = begin, i = 0; it != end; ++it, ++i)
409  a.setProperty(i, eng->toScriptValue(*it));
410  return a;
411 }
QScriptValue newArray(uint length=0)
QScriptValue toScriptValue(const T &value)
GLuint GLuint end
Definition: GLee.h:872
unsigned int quint32
Definition: qglobal.h:938
GLubyte GLubyte GLubyte a
Definition: GLee.h:5404
void setProperty(const QString &name, const QScriptValue &value, const PropertyFlags &flags=KeepExistingFlags)
void qScriptValueToSequence ( const QScriptValue value,
Container &  cont 
)

Definition at line 414 of file qscriptengine.h.

415 {
416  quint32 len = value.property(QLatin1String("length")).toUInt32();
417  for (quint32 i = 0; i < len; ++i) {
418  QScriptValue item = value.property(i);
419  cont.push_back(qscriptvalue_cast<typename Container::value_type>(item));
420  }
421 }
quint32 toUInt32() const
unsigned int quint32
Definition: qglobal.h:938
GLenum GLsizei len
Definition: GLee.h:2695
QScriptValue property(const QString &name, const ResolveFlags &mode=ResolvePrototype) const
int qScriptRegisterSequenceMetaType ( QScriptEngine engine,
const QScriptValue prototype = QScriptValue(),
T *  = 0 
)

Definition at line 424 of file qscriptengine.h.

431 {
432  return qScriptRegisterMetaType<T>(engine, qScriptValueFromSequence,
433  qScriptValueToSequence, prototype);
434 }
QScriptValue qScriptValueFromSequence(QScriptEngine *eng, const Container &cont)
void qScriptValueToSequence(const QScriptValue &value, Container &cont)
Q_SCRIPT_EXPORT bool qScriptConnect ( QObject sender,
const char *  signal,
const QScriptValue receiver,
const QScriptValue function 
)
Q_SCRIPT_EXPORT bool qScriptDisconnect ( QObject sender,
const char *  signal,
const QScriptValue receiver,
const QScriptValue function 
)

Go to the source code of this file.