![]() |
Carousel
|
This class represents a component, that adds JavaScript facilities using QtScript module. More...
#include <JsScriptingComponent.h>
Inherits BaseComponent.
Public Member Functions | |
JsScriptingComponent (QObject *parent=nullptr) | |
![]() | |
Availability | availability () const |
const ComponentDefinition * | definition () const |
void * | getExtension (const QString &byTypeId) const |
bool | isCompatible (const IComponent *withOther) const |
const QString & | name () const |
void | setAvailability (Availability newMode) |
void | shutdown (IServiceLocator *serviceLocator) |
bool | started () const |
bool | startup (IServiceLocator *serviceLocator) |
![]() | |
template<typename TExtension > | |
TExtension * | extension () |
template<typename TExtension > | |
const TExtension * | extension () const |
![]() | |
QObject (QObject *parent) | |
QObject (QObject *parent, const char *name) | |
bool | blockSignals (bool block) |
QObject * | child (const char *objName, const char *inheritsClass, bool recursiveSearch) const |
const QObjectList & | children () const |
const char * | className () const |
bool | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const |
void | deleteLater () |
void | destroyed (QObject *obj) |
bool | disconnect (const QObject *receiver, const char *method) |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) |
void | dumpObjectInfo () |
void | dumpObjectTree () |
QList< QByteArray > | dynamicPropertyNames () const |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
T | findChild (const QString &name) const |
QList< T > | findChildren (const QRegExp ®Exp) const |
QList< T > | findChildren (const QString &name) const |
bool | inherits (const char *className) const |
void | insertChild (QObject *object) |
void | installEventFilter (QObject *filterObj) |
bool | isA (const char *className) const |
bool | isWidgetType () const |
void | killTimer (int id) |
virtual const QMetaObject * | metaObject () const |
void | moveToThread (QThread *targetThread) |
const char * | name () const |
const char * | name (const char *defaultName) const |
QString | objectName () const |
QObject * | parent () const |
QVariant | property (const char *name) const |
void | removeChild (QObject *object) |
void | removeEventFilter (QObject *obj) |
void | setName (const char *name) |
void | setObjectName (const QString &name) |
void | setParent (QObject *parent) |
bool | setProperty (const char *name, const QVariant &value) |
bool | signalsBlocked () const |
int | startTimer (int interval) |
QThread * | thread () const |
Protected Member Functions | |
void | onShutdown (IServiceLocator *serviceLocator) |
bool | onStartup (IServiceLocator *serviceLocator) |
![]() | |
BaseComponent (const QString &name, QObject *parent=nullptr) | |
BaseComponent (ComponentDefinition *definition, QObject *parent=nullptr) | |
void | addParent (const QString &parentName, int major_version, int minor_version, int build_version=0, int revision_version=0) |
void | loadAvailability () |
virtual void | onAvailabilityChanged (Availability newMode) |
template<typename TExtension > | |
void | registerExtension (TExtension *instance) |
void | saveAvailability () |
void | setDescription (const QString &description) |
void | setProductName (const QString &productName) |
void | setProvider (const QString &provider) |
void | setShortName (const QString &name) |
void | setVersion (int major_version, int minor_version, int build_version=0, int revision_version=0) |
![]() | |
bool | checkConnectArgs (const char *signal, const QObject *object, const char *method) |
virtual void | childEvent (QChildEvent *event) |
virtual void | connectNotify (const char *signal) |
virtual void | customEvent (QEvent *event) |
virtual void | disconnectNotify (const char *signal) |
int | receivers (const char *signal) const |
QObject * | sender () const |
int | senderSignalIndex () const |
virtual void | timerEvent (QTimerEvent *event) |
Additional Inherited Members | |
![]() | |
enum | Availability { Enabled, Disabled, Unavailable } |
![]() | |
void | availabilityChanged (IComponent::Availability) |
![]() | |
bool | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
bool | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
![]() | |
QByteArray | normalizeSignalSlot (const char *signalSlot) |
![]() | |
Availability | availability |
const ComponentDefinition | definition |
QString | name |
bool | started |
![]() | |
objectName | |
This class represents a component, that adds JavaScript facilities using QtScript module.
The JsScriptingComponent provides objects that allow custom application to expose its API to the JavaScript. This component populates GUI with script console dockable widget and with simple script editor, which allows to create, save, load and run new scripts.
All objsects, registered in the IServiceLocator are available from the script. Also one more object is available in the JS global context - it is the serviceLocator:
To see all available objsects from the serviceLocator you can use serviceLocator.services() method;
To see all properties and methods in the object you can use explore() function:
explore() also can be used without arguments to print out global objects, types and functions.
Since all objsects, registered in the IServiceLocator are available from the script, it is possible to get references for deeper models of the component. Main flow for this the next: you get a service from the script. As soon as the service is derived from the QObject, ypu can use its properties amd methods. Usually, carousel services expose some part of the its model through the properties or slots. So, you can get some model (which is derived from the QObject too) reference via these properties, and so on.
If some component wants to extend script with new funcitons or types, or register wrappers for some non-QObject classes, it should be a child of the JsScriptingComponent. This mean a dependency of component parent name: "org.carousel.JsScripting". Then to get chance for registration, this component should also provide IScriptExtension extension. The overridden IScriptExtension::configureEngine method will be invoked every time, when QScriptEngine configuration is needed. So, in your extension you can register what ever you want in the QScriptEngine.
Registered services:
JsScriptingComponent::JsScriptingComponent | ( | QObject * | parent = nullptr | ) |
Initializes a new instance of the JsScriptingComponent class.
|
protectedvirtual |
Shuts down the component.
Reimplemented from BaseComponent.
|
protectedvirtual |
Registers IScriptingService, ScriptCollectionDialog and ScriptCollectionModel in the serviceLocator.
Reimplemented from BaseComponent.