Qt 4.8
Signals | Public Functions | Static Public Functions | Private Slots | Private Functions | Properties | Friends | List of all members
QAxScriptManager Class Reference

The QAxScriptManager class provides a bridge between application objects and script code. More...

#include <qaxscript.h>

Inheritance diagram for QAxScriptManager:
QObject

Signals

void error (QAxScript *script, int code, const QString &description, int sourcePosition, const QString &sourceText)
 This signal is emitted when an execution error occurred while running script. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 

Public Functions

void addObject (QAxBase *object)
 Adds object to the manager. More...
 
void addObject (QObject *object)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Adds a generic COM wrapper for object to the manager. More...
 
QVariant call (const QString &function, const QVariant &v1=QVariant(), const QVariant &v2=QVariant(), const QVariant &v3=QVariant(), const QVariant &v4=QVariant(), const QVariant &v5=QVariant(), const QVariant &v6=QVariant(), const QVariant &v7=QVariant(), const QVariant &v8=QVariant())
 Calls function, passing the parameters var1, var1, var2, var3, var4, var5, var6, var7 and var8 as arguments and returns the value returned by the function, or an invalid QVariant if the function does not return a value or when the function call failed. More...
 
QVariant call (const QString &function, QList< QVariant > &arguments)
 Calls function passing arguments as parameters, and returns the result. More...
 
QStringList functions (QAxScript::FunctionFlags=QAxScript::FunctionNames) const
 Returns a list with all the functions that are available. More...
 
QAxScriptload (const QString &code, const QString &name, const QString &language)
 Loads the script source code using the script engine for language. More...
 
QAxScriptload (const QString &file, const QString &name)
 Loads the source code from the file. More...
 
 QAxScriptManager (QObject *parent=0)
 Creates a QAxScriptManager object. More...
 
QAxScriptscript (const QString &name) const
 Returns the script called name. More...
 
QStringList scriptNames () const
 Returns a list with the names of all the scripts. More...
 
 ~QAxScriptManager ()
 Destroys the objects, releasing all allocated resources. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool event (QEvent *)
 This virtual function receives events to an object and should return true if the event e was recognized and processed. More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Static Public Functions

static bool registerEngine (const QString &name, const QString &extension, const QString &code=QString())
 Registers the script engine called name and returns true if the engine was found; otherwise does nothing and returns false. More...
 
static QString scriptFileFilter ()
 Returns a file filter listing all the supported script languages. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 

Private Slots

void objectDestroyed (QObject *o)
 
void scriptError (int code, const QString &description, int sourcePosition, const QString &sourceText)
 

Private Functions

QAxScriptscriptForFunction (const QString &function) const
 Returns a pointer to the first QAxScript that knows about function, or 0 if this function is unknown. More...
 
void updateScript (QAxScript *)
 

Properties

QAxScriptManagerPrivated
 

Friends

class QAxScript
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

The QAxScriptManager class provides a bridge between application objects and script code.

Attention
Module: QAxContainer

The QAxScriptManager acts as a bridge between the COM objects embedded in the Qt application through QAxObject or QAxWidget, and the scripting languages available through the Windows Script technologies, usually JScript and VBScript.

Create one QAxScriptManager for each separate document in your application, and add the COM objects the scripts need to access using addObject(). Then load() the script sources and invoke the functions using call().

Warning
This class is not available with the bcc5.5 and MingW compilers.
See also
QAxScript, QAxScriptEngine, QAxBase, {ActiveQt Framework}

Definition at line 153 of file qaxscript.h.

Constructors and Destructors

◆ QAxScriptManager()

QAxScriptManager::QAxScriptManager ( QObject parent = 0)

Creates a QAxScriptManager object.

parent is passed on to the QObject constructor.

It is usual to create one QAxScriptManager for each document in an application.

Definition at line 972 of file qaxscript.cpp.

973 : QObject(parent)
974 {
976 }
QAxScriptManagerPrivate * d
Definition: qaxscript.h:193
Q_INVOKABLE QObject(QObject *parent=0)
Constructs an object with parent object parent.
Definition: qobject.cpp:753

◆ ~QAxScriptManager()

QAxScriptManager::~QAxScriptManager ( )

Destroys the objects, releasing all allocated resources.

Definition at line 981 of file qaxscript.cpp.

982 {
983  delete d;
984 }
QAxScriptManagerPrivate * d
Definition: qaxscript.h:193

Functions

◆ addObject() [1/2]

void QAxScriptManager::addObject ( QAxBase object)

Adds object to the manager.

Scripts handled by this manager can access the object in the code using the object's objectName property.

You must add all the necessary objects before loading any scripts.

Definition at line 1040 of file qaxscript.cpp.

1041 {
1042  QObject *obj = object->qObject();
1043  QString name = obj->objectName();
1044  if (d->objectDict.contains(name))
1045  return;
1046 
1047  d->objectDict.insert(name, object);
1049 }
QString objectName
the name of this object
Definition: qobject.h:114
#define SLOT(a)
Definition: qobjectdefs.h:226
The QString class provides a Unicode character string.
Definition: qstring.h:83
The QObject class is the base class of all Qt objects.
Definition: qobject.h:111
bool contains(const Key &key) const
Returns true if the hash contains an item with the key; otherwise returns false.
Definition: qhash.h:872
iterator insert(const Key &key, const T &value)
Inserts a new item with the key and a value of value.
Definition: qhash.h:753
#define SIGNAL(a)
Definition: qobjectdefs.h:227
void destroyed(QObject *=0)
This signal is emitted immediately before the object obj is destroyed, and can not be blocked...
QAxScriptManagerPrivate * d
Definition: qaxscript.h:193
static bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
Creates a connection of the given type from the signal in the sender object to the method in the rece...
Definition: qobject.cpp:2580
const char * name
void objectDestroyed(QObject *o)
Definition: qaxscript.cpp:1340
QHash< QString, QAxBase * > objectDict
Definition: qaxscript.cpp:75

◆ addObject() [2/2]

void QAxScriptManager::addObject ( QObject object)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Adds a generic COM wrapper for object to the manager.

object must be exposed as a COM object using the functionality provided by the QAxServer module. Applications using this function you must link against the qaxserver library.

Definition at line 233 of file qaxscript.h.

234 {
235  QAxBase *wrapper = qax_create_object_wrapper(object);
236  if (!wrapper) {
237  qWarning("QAxScriptMananger::addObject: Class %s not exposed through the QAxFactory",
238  object->metaObject()->className());
239  Q_ASSERT(wrapper);
240  }
241  addObject(wrapper);
242 }
QAxBase * qax_create_object_wrapper(QObject *)
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
void addObject(QAxBase *object)
Adds object to the manager.
Definition: qaxscript.cpp:1040
Q_CORE_EXPORT void qWarning(const char *,...)
const char * className() const
Returns the class name.
Definition: qobjectdefs.h:491
The QAxBase class is an abstract class that provides an API to initialize and access a COM object...
Definition: qaxbase.h:66
virtual const QMetaObject * metaObject() const
Returns a pointer to the meta-object of this object.

◆ call() [1/2]

QVariant QAxScriptManager::call ( const QString function,
const QVariant var1 = QVariant(),
const QVariant var2 = QVariant(),
const QVariant var3 = QVariant(),
const QVariant var4 = QVariant(),
const QVariant var5 = QVariant(),
const QVariant var6 = QVariant(),
const QVariant var7 = QVariant(),
const QVariant var8 = QVariant() 
)

Calls function, passing the parameters var1, var1, var2, var3, var4, var5, var6, var7 and var8 as arguments and returns the value returned by the function, or an invalid QVariant if the function does not return a value or when the function call failed.

The call returns when the script's execution has finished.

In most script engines the only supported parameter type is "const QVariant&", for example, to call a JavaScript function

function setNumber(number)
{
n = number;
}

use

QValueList args;
args << 5;
script->call("setNumber(const QVariant&)", args);

As with dynamicCall the parameters can directly be embedded in the function string.

script->call("setNumber(5)");

However, this is slower.

Functions provided by script engines that don't support introspection are not available and must be called directly using QAxScript::call() on the respective script object.

Note that calling this function can be significantely slower than using call() on the respective QAxScript directly.

Definition at line 1177 of file qaxscript.cpp.

1185 {
1186  QAxScript *s = script(function);
1187  if (!s) {
1188 #ifdef QT_CHECK_STATE
1189  qWarning("QAxScriptManager::call: No script provides function %s, or this function\n"
1190  "\tis provided through an engine that does not support introspection", function.latin1());
1191 #endif
1192  return QVariant();
1193  }
1194 
1195  return s->call(function, var1, var2, var3, var4, var5, var6, var7, var8);
1196 }
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:92
Q_CORE_EXPORT void qWarning(const char *,...)
QAxScript * script(const QString &name) const
Returns the script called name.
Definition: qaxscript.cpp:1028
QVariant call(const QString &function, const QVariant &v1=QVariant(), const QVariant &v2=QVariant(), const QVariant &v3=QVariant(), const QVariant &v4=QVariant(), const QVariant &v5=QVariant(), const QVariant &v6=QVariant(), const QVariant &v7=QVariant(), const QVariant &v8=QVariant())
Calls function, passing the parameters var1, var1, var2, var3, var4, var5, var6, var7 and var8 as arg...
Definition: qaxscript.cpp:793
The QAxScript class provides a wrapper around script code.
Definition: qaxscript.h:100

◆ call() [2/2]

QVariant QAxScriptManager::call ( const QString function,
QList< QVariant > &  arguments 
)

Calls function passing arguments as parameters, and returns the result.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns when the script's execution has finished.

Definition at line 1206 of file qaxscript.cpp.

1207 {
1208  QAxScript *s = script(function);
1209  if (!s) {
1210 #ifdef QT_CHECK_STATE
1211  qWarning("QAxScriptManager::call: No script provides function %s, or this function\n"
1212  "\tis provided through an engine that does not support introspection", function.latin1());
1213 #endif
1214  return QVariant();
1215  }
1216 
1217  QList<QVariant> args(arguments);
1218  return s->call(function, args);
1219 }
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:92
Q_CORE_EXPORT void qWarning(const char *,...)
QAxScript * script(const QString &name) const
Returns the script called name.
Definition: qaxscript.cpp:1028
QVariant call(const QString &function, const QVariant &v1=QVariant(), const QVariant &v2=QVariant(), const QVariant &v3=QVariant(), const QVariant &v4=QVariant(), const QVariant &v5=QVariant(), const QVariant &v6=QVariant(), const QVariant &v7=QVariant(), const QVariant &v8=QVariant())
Calls function, passing the parameters var1, var1, var2, var3, var4, var5, var6, var7 and var8 as arg...
Definition: qaxscript.cpp:793
The QAxScript class provides a wrapper around script code.
Definition: qaxscript.h:100

◆ error

void QAxScriptManager::error ( QAxScript script,
int  code,
const QString description,
int  sourcePosition,
const QString sourceText 
)
signal

This signal is emitted when an execution error occurred while running script.

code, description, sourcePosition and sourceText contain information about the execution error.

Warning
Do not delete script in a slot connected to this signal. Use deleteLater() instead.

Referenced by scriptError().

◆ functions()

QStringList QAxScriptManager::functions ( QAxScript::FunctionFlags  flags = QAxScript::FunctionNames) const

Returns a list with all the functions that are available.

Functions provided by script engines that don't support introspection are not included in the list. The functions are either provided with full prototypes or only as names, depending on the value of flags.

Definition at line 993 of file qaxscript.cpp.

994 {
996 
998  for (scriptIt = d->scriptDict.begin(); scriptIt != d->scriptDict.end(); ++scriptIt) {
999  QAxScript *script = scriptIt.value();
1000  functions += script->functions(flags);
1001  }
1002 
1003  return functions;
1004 }
The QHash::const_iterator class provides an STL-style const iterator for QHash and QMultiHash...
Definition: qhash.h:395
QStringList functions(QAxScript::FunctionFlags=QAxScript::FunctionNames) const
Returns a list with all the functions that are available.
Definition: qaxscript.cpp:993
QAxScriptManagerPrivate * d
Definition: qaxscript.h:193
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
const T & value() const
Returns the current item&#39;s value.
Definition: qhash.h:420
QAxScript * script(const QString &name) const
Returns the script called name.
Definition: qaxscript.cpp:1028
iterator end()
Returns an STL-style iterator pointing to the imaginary item after the last item in the hash...
Definition: qhash.h:467
iterator begin()
Returns an STL-style iterator pointing to the first item in the hash.
Definition: qhash.h:464
QHash< QString, QAxScript * > scriptDict
Definition: qaxscript.cpp:74
The QAxScript class provides a wrapper around script code.
Definition: qaxscript.h:100
QStringList functions(FunctionFlags=FunctionNames) const
Returns a list of all the functions in this script if the respective script engine supports introspec...
Definition: qaxscript.cpp:761

◆ load() [1/2]

QAxScript * QAxScriptManager::load ( const QString code,
const QString name,
const QString language 
)

Loads the script source code using the script engine for language.

The script can later be referred to using its name which should not be empty.

The function returns a pointer to the script for the given code if the code was loaded successfully; otherwise it returns 0.

If language is empty it will be determined heuristically. If code contains the string "End Sub" it will be interpreted as VBScript, otherwise as JScript. Additional script engines can be registered using registerEngine().

You must add all the objects necessary (using addObject()) before loading any scripts. If code declares a function that is already available (no matter in which language) the first function is overloaded and can no longer be called via call(); but it will still be available by calling its script directly.

See also
addObject(), scriptNames(), functions()

Definition at line 1083 of file qaxscript.cpp.

1084 {
1085  QAxScript *script = new QAxScript(name, this);
1086  if (script->load(code, language))
1087  return script;
1088 
1089  delete script;
1090  return 0;
1091 }
friend class QAxScript
Definition: qaxscript.h:192
bool load(const QString &code, const QString &language=QString())
Loads the script source code written in language language into the script engine. ...
Definition: qaxscript.cpp:720
QAxScript * script(const QString &name) const
Returns the script called name.
Definition: qaxscript.cpp:1028
The QAxScript class provides a wrapper around script code.
Definition: qaxscript.h:100

◆ load() [2/2]

QAxScript * QAxScriptManager::load ( const QString file,
const QString name 
)

Loads the source code from the file.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

The script can later be referred to using its name which should not be empty.

The function returns a pointer to the script engine for the code in file if file was loaded successfully; otherwise it returns 0.

The script engine used is determined from the file's extension. By default ".js" files are interpreted as JScript files, and ".vbs" and ".dsm" files are interpreted as VBScript. Additional script engines can be registered using registerEngine().

Definition at line 1111 of file qaxscript.cpp.

1112 {
1113  QFile f(file);
1114  if (!f.open(QIODevice::ReadOnly))
1115  return 0;
1116  QByteArray data = f.readAll();
1117  QString contents = QString::fromLocal8Bit(data, data.size());
1118  f.close();
1119 
1120  if (contents.isEmpty())
1121  return 0;
1122 
1123  QString language;
1124  if (file.endsWith(QLatin1String(".js"))) {
1125  language = QLatin1String("JScript");
1126  } else {
1128  for (it = engines.begin(); it != engines.end(); ++it) {
1129  QAxEngineDescriptor engine = *it;
1130  if (engine.extension.isEmpty())
1131  continue;
1132 
1133  if (file.endsWith(engine.extension)) {
1134  language = engine.name;
1135  break;
1136  }
1137  }
1138  }
1139 
1140  if (language.isEmpty())
1141  language = QLatin1String("VBScript");
1142 
1143  QAxScript *script = new QAxScript(name, this);
1144  if (script->load(contents, language))
1145  return script;
1146 
1147  delete script;
1148  return 0;
1149 }
static QString fromLocal8Bit(const char *, int size=-1)
Returns a QString initialized with the first size characters of the 8-bit string str.
Definition: qstring.cpp:4245
#define it(className, varName)
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
The QList::const_iterator class provides an STL-style const iterator for QList and QQueue...
Definition: qlist.h:228
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
friend class QAxScript
Definition: qaxscript.h:192
The QString class provides a Unicode character string.
Definition: qstring.h:83
QLocale::Language language
bool load(const QString &code, const QString &language=QString())
Loads the script source code written in language language into the script engine. ...
Definition: qaxscript.cpp:720
static QList< QAxEngineDescriptor > engines
Definition: qaxscript.cpp:69
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
static const char * data(const QByteArray &arr)
QAxScript * script(const QString &name) const
Returns the script called name.
Definition: qaxscript.cpp:1028
The QLatin1String class provides a thin wrapper around an US-ASCII/Latin-1 encoded string literal...
Definition: qstring.h:654
The QFile class provides an interface for reading from and writing to files.
Definition: qfile.h:65
int size() const
Returns the number of bytes in this byte array.
Definition: qbytearray.h:402
The QAxScript class provides a wrapper around script code.
Definition: qaxscript.h:100
bool endsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string ends with s; otherwise returns false.
Definition: qstring.cpp:3796

◆ objectDestroyed

void QAxScriptManager::objectDestroyed ( QObject o)
privateslot
Warning
This function is not part of the public interface.

Definition at line 1340 of file qaxscript.cpp.

Referenced by addObject().

1341 {
1342  d->objectDict.take(o->objectName());
1343 }
QString objectName
the name of this object
Definition: qobject.h:114
T take(const Key &key)
Removes the item with the key from the hash and returns the value associated with it...
Definition: qhash.h:807
QAxScriptManagerPrivate * d
Definition: qaxscript.h:193
QHash< QString, QAxBase * > objectDict
Definition: qaxscript.cpp:75

◆ registerEngine()

bool QAxScriptManager::registerEngine ( const QString name,
const QString extension,
const QString code = QString() 
)
static

Registers the script engine called name and returns true if the engine was found; otherwise does nothing and returns false.

The script engine will be used when loading files with the given extension, or when loading source code that contains the string code.

Definition at line 1229 of file qaxscript.cpp.

1230 {
1231  if (name.isEmpty())
1232  return false;
1233 
1234  CLSID clsid;
1235  HRESULT hres = CLSIDFromProgID((wchar_t*)name.utf16(), &clsid);
1236  if (hres != S_OK)
1237  return false;
1238 
1239  QAxEngineDescriptor engine;
1240  engine.name = name;
1241  engine.extension = extension;
1242  engine.code = code;
1243 
1244  engines.prepend(engine);
1245  return true;
1246 }
static QList< QAxEngineDescriptor > engines
Definition: qaxscript.cpp:69
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
const char * name
long HRESULT
const ushort * utf16() const
Returns the QString as a &#39;\0\&#39;-terminated array of unsigned shorts.
Definition: qstring.cpp:5290

◆ script()

QAxScript * QAxScriptManager::script ( const QString name) const

Returns the script called name.

You can use the returned pointer to call functions directly through QAxScript::call(), to access the script engine directly, or to delete and thus unload the script.

Definition at line 1028 of file qaxscript.cpp.

Referenced by call(), functions(), load(), and scriptForFunction().

1029 {
1030  return d->scriptDict.value(name);
1031 }
const T value(const Key &key) const
Returns the value associated with the key.
Definition: qhash.h:606
QAxScriptManagerPrivate * d
Definition: qaxscript.h:193
QHash< QString, QAxScript * > scriptDict
Definition: qaxscript.cpp:74

◆ scriptError

void QAxScriptManager::scriptError ( int  code,
const QString desc,
int  spos,
const QString stext 
)
privateslot
Warning
This function is not part of the public interface.

Definition at line 1348 of file qaxscript.cpp.

1349 {
1350  QAxScript *source = qobject_cast<QAxScript*>(sender());
1351  emit error(source, code, desc, spos, stext);
1352 }
T * qobject_cast(QObject *object)
Definition: qobject.h:375
QObject * sender() const
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; othe...
Definition: qobject.cpp:2327
#define emit
Definition: qobjectdefs.h:76
void error(QAxScript *script, int code, const QString &description, int sourcePosition, const QString &sourceText)
This signal is emitted when an execution error occurred while running script.
The QAxScript class provides a wrapper around script code.
Definition: qaxscript.h:100

◆ scriptFileFilter()

QString QAxScriptManager::scriptFileFilter ( )
static

Returns a file filter listing all the supported script languages.

This filter string is convenient for use with QFileDialog.

Definition at line 1252 of file qaxscript.cpp.

1253 {
1254  QString allFiles = QLatin1String("Script Files (*.js *.vbs *.dsm");
1255  QString specialFiles = QLatin1String(";;VBScript Files (*.vbs *.dsm)"
1256  ";;JavaScript Files (*.js)");
1257 
1259  for (it = engines.begin(); it != engines.end(); ++it) {
1260  QAxEngineDescriptor engine = *it;
1261  if (engine.extension.isEmpty())
1262  continue;
1263 
1264  allFiles += QLatin1String(" *") + engine.extension;
1265  specialFiles += QLatin1String(";;") + engine.name + QLatin1String(" Files (*") + engine.extension + QLatin1Char(')');
1266  }
1267  allFiles += QLatin1Char(')');
1268 
1269  return allFiles + specialFiles + QLatin1String(";;All Files (*.*)");
1270 }
#define it(className, varName)
The QList::const_iterator class provides an STL-style const iterator for QList and QQueue...
Definition: qlist.h:228
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
The QString class provides a Unicode character string.
Definition: qstring.h:83
static QList< QAxEngineDescriptor > engines
Definition: qaxscript.cpp:69
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
The QLatin1Char class provides an 8-bit ASCII/Latin-1 character.
Definition: qchar.h:55

◆ scriptForFunction()

QAxScript * QAxScriptManager::scriptForFunction ( const QString function) const
private

Returns a pointer to the first QAxScript that knows about function, or 0 if this function is unknown.

Warning
This function is not part of the public interface.

Definition at line 1295 of file qaxscript.cpp.

1296 {
1297  // check full prototypes if included
1298  if (function.contains(QLatin1Char('('))) {
1300  for (scriptIt = d->scriptDict.begin(); scriptIt != d->scriptDict.end(); ++scriptIt) {
1301  QAxScript *script = scriptIt.value();
1302 
1303  if (script->functions(QAxScript::FunctionSignatures).contains(function))
1304  return script;
1305  }
1306  }
1307 
1308  QString funcName = function;
1309  funcName = funcName.left(funcName.indexOf(QLatin1Char('(')));
1310  // second try, checking only names, not prototypes
1312  for (scriptIt = d->scriptDict.begin(); scriptIt != d->scriptDict.end(); ++scriptIt) {
1313  QAxScript *script = scriptIt.value();
1314 
1315  if (script->functions(QAxScript::FunctionNames).contains(funcName))
1316  return script;
1317  }
1318 
1319  return 0;
1320 }
The QHash::const_iterator class provides an STL-style const iterator for QHash and QMultiHash...
Definition: qhash.h:395
The QString class provides a Unicode character string.
Definition: qstring.h:83
QAxScriptManagerPrivate * d
Definition: qaxscript.h:193
QString left(int n) const Q_REQUIRED_RESULT
Returns a substring that contains the n leftmost characters of the string.
Definition: qstring.cpp:3664
const T & value() const
Returns the current item&#39;s value.
Definition: qhash.h:420
int indexOf(QChar c, int from=0, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Definition: qstring.cpp:2838
QAxScript * script(const QString &name) const
Returns the script called name.
Definition: qaxscript.cpp:1028
QBool contains(const QString &str, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the list contains the string str; otherwise returns false.
Definition: qstringlist.h:172
iterator end()
Returns an STL-style iterator pointing to the imaginary item after the last item in the hash...
Definition: qhash.h:467
iterator begin()
Returns an STL-style iterator pointing to the first item in the hash.
Definition: qhash.h:464
QHash< QString, QAxScript * > scriptDict
Definition: qaxscript.cpp:74
The QAxScript class provides a wrapper around script code.
Definition: qaxscript.h:100
QStringList functions(FunctionFlags=FunctionNames) const
Returns a list of all the functions in this script if the respective script engine supports introspec...
Definition: qaxscript.cpp:761
The QLatin1Char class provides an 8-bit ASCII/Latin-1 character.
Definition: qchar.h:55

◆ scriptNames()

QStringList QAxScriptManager::scriptNames ( ) const

Returns a list with the names of all the scripts.

Definition at line 1009 of file qaxscript.cpp.

1010 {
1011  QStringList scripts;
1012 
1014  for (scriptIt = d->scriptDict.begin(); scriptIt != d->scriptDict.end(); ++scriptIt) {
1015  scripts << scriptIt.key();
1016  }
1017 
1018  return scripts;
1019 }
The QHash::const_iterator class provides an STL-style const iterator for QHash and QMultiHash...
Definition: qhash.h:395
const Key & key() const
Returns the current item&#39;s key.
Definition: qhash.h:419
QAxScriptManagerPrivate * d
Definition: qaxscript.h:193
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
iterator end()
Returns an STL-style iterator pointing to the imaginary item after the last item in the hash...
Definition: qhash.h:467
iterator begin()
Returns an STL-style iterator pointing to the first item in the hash.
Definition: qhash.h:464
QHash< QString, QAxScript * > scriptDict
Definition: qaxscript.cpp:74

◆ updateScript()

void QAxScriptManager::updateScript ( QAxScript script)
private
Warning
This function is not part of the public interface.

Definition at line 1325 of file qaxscript.cpp.

Referenced by QAxScript::updateObjects().

1326 {
1328  for (objectIt = d->objectDict.constBegin(); objectIt != d->objectDict.constEnd(); ++objectIt) {
1329  QString name = objectIt.key();
1330 
1331  QAxScriptEngine *engine = script->scriptEngine();
1332  if (engine)
1333  engine->addItem(name);
1334  }
1335 }
The QHash::const_iterator class provides an STL-style const iterator for QHash and QMultiHash...
Definition: qhash.h:395
void addItem(const QString &name)
Registers an item with the script engine.
Definition: qaxscript.cpp:618
The QString class provides a Unicode character string.
Definition: qstring.h:83
const Key & key() const
Returns the current item&#39;s key.
Definition: qhash.h:419
QAxScriptManagerPrivate * d
Definition: qaxscript.h:193
QAxScriptEngine * scriptEngine() const
Returns a pointer to the script engine.
Definition: qaxscript.h:212
const char * name
const_iterator constBegin() const
Returns a const STL-style iterator pointing to the first item in the hash.
Definition: qhash.h:466
const_iterator constEnd() const
Returns a const STL-style iterator pointing to the imaginary item after the last item in the hash...
Definition: qhash.h:469
QHash< QString, QAxBase * > objectDict
Definition: qaxscript.cpp:75
The QAxScriptEngine class provides a wrapper around a script engine.
Definition: qaxscript.h:63

Friends and Related Functions

◆ QAxScript

friend class QAxScript
friend

Definition at line 192 of file qaxscript.h.

Referenced by load().

Properties

◆ d

QAxScriptManagerPrivate* QAxScriptManager::d
private

The documentation for this class was generated from the following files: