LiveNodeEngine Class
The LiveNodeEngine class instantiates QML components in cooperation with LiveHubEngine. More...
Header: | #include <LiveNodeEngine> |
Inherits: | QObject |
Public Types
enum | WorkspaceOption { NoWorkspaceOption, LoadDummyData, AllowUpdates, UpdatesAsOverlay, AllowCreateMissing } |
flags | WorkspaceOptions |
Public Functions
LiveNodeEngine(QObject *parent = 0) | |
virtual | ~LiveNodeEngine() |
LiveDocument | activeDocument() const |
ContentAdapterInterface * | activePlugin() const |
QQuickWindow * | activeWindow() const |
QQuickView * | fallbackView() const |
QString | pluginPath() const |
QQmlEngine * | qmlEngine() const |
ResourceMap * | resourceMap() const |
int | rotation() const |
void | setFallbackView(QQuickView *fallbackView) |
void | setPluginPath(const QString &path) |
void | setQmlEngine(QQmlEngine *qmlEngine) |
void | setWorkspace(const QString &path, LiveNodeEngine::WorkspaceOptions options) |
void | usePreloadedDocument(const LiveDocument &document, QObject *object, QQuickWindow *window, const QList<QQmlError> &errors) |
void | usePreloadedDocument(const QString &document, QQuickWindow *window, const QList<QQmlError> &errors) |
QString | workspace() const |
int | xOffset() const |
int | yOffset() const |
Public Slots
void | delayReload() |
void | loadDocument(const LiveDocument &document) |
virtual void | reloadDocument() |
void | setRotation(int rotation) |
void | setXOffset(int offset) |
void | setYOffset(int offset) |
void | updateDocument(const LiveDocument &document, const QByteArray &content) |
Signals
void | activeDocumentChanged(const LiveDocument &document) |
void | activeWindowChanged(QQuickWindow *window) |
void | clearLog() |
void | documentLoaded() |
void | logErrors(const QList<QQmlError> &errors) |
void | logIgnoreMessages(bool on) |
void | workspaceChanged(const QString &workspace) |
Protected Functions
virtual void | initPlugins() |
Detailed Description
LiveNodeEngine provides ways to reload QML documents based incoming requests from a hub. A hub can be connected via a RemotePublisher/RemoteReceiver pair.
The primary use case is to allow loading of QML components instantiating QQuickWindow, i.e., inheriting QML Window. A fallbackView can be set in order to support also QML Item based components.
In Addition to showing QML files the LiveNodeEngine can be extended by plugins to show any other filetype. One need to set the Plugin path to the right destination and the LiveNodeEngine will load all the plugins it finds there.
See also Custom Runtime and ContentPlugin Example.
Member Type Documentation
enum LiveNodeEngine::WorkspaceOption
flags LiveNodeEngine::WorkspaceOptions
This enum type controls optional workspace related features:
Constant | Value | Description |
---|---|---|
LiveNodeEngine::NoWorkspaceOption | 0x0 | No optional feature is enabled. |
LiveNodeEngine::LoadDummyData | 0x1 | Enables loading of dummy QML data - QML documents located in the "dummydata" subdirectory of the workspace directory. |
LiveNodeEngine::AllowUpdates | 0x2 | Enables receiving updates to workspace documents. |
LiveNodeEngine::UpdatesAsOverlay | 0x4 | With this option enabled, updates can be received even if workspace is read only. Updates will be stored in a writable overlay stacked over the original workspace with the help of QQmlAbstractUrlInterceptor. This option only influences the way how updates to file system files are handled - updates to Qt resource files are always stored in an overlay. Requires AllowUpdates. |
LiveNodeEngine::AllowCreateMissing | 0x8 | Without this option enabled, updates are only accepted for existing workspace documents. Requires AllowUpdates. |
The WorkspaceOptions type is a typedef for QFlags<WorkspaceOption>. It stores an OR combination of WorkspaceOption values.
See also QML Live Runtime.
Member Function Documentation
LiveNodeEngine::LiveNodeEngine(QObject *parent = 0)
Standard constructor using parent as parent
[signal]
void LiveNodeEngine::activeDocumentChanged(const LiveDocument &document)
The document document was loaded with loadDocument() and is now the activeDocument(). This signal is only emitted when the new document differs from the previously loaded one.
See also documentLoaded().
[signal]
void LiveNodeEngine::activeWindowChanged(QQuickWindow *window)
The signal is emitted when the activeWindow has changed by changing or reloading the document. window is the newly activated window.
[signal]
void LiveNodeEngine::clearLog()
Requested to clear the log
[slot]
void LiveNodeEngine::delayReload()
Starts a timer to reload the view with a delay.
A delay reload is important to avoid constant reloads, while many changes appear.
[signal]
void LiveNodeEngine::documentLoaded()
The signal is emitted when the document has finished loading.
[slot]
void LiveNodeEngine::loadDocument(const LiveDocument &document)
Loads or reloads the given document onto the QML view. Clears any caches.
The activeDocumentChanged() signal is emitted when this results in change of the activeDocument().
See also documentLoaded().
[signal]
void LiveNodeEngine::logErrors(const QList<QQmlError> &errors)
Log the Errors errors
[signal]
void LiveNodeEngine::logIgnoreMessages(bool on)
Requsted to ignore the Messages when on is true
[virtual slot]
void LiveNodeEngine::reloadDocument()
Reloads the active QML document.
Emits documentLoaded() when finished.
If fallbackView is set, its source
will be cleared, whether the view was previously used or not.
[slot]
void LiveNodeEngine::setRotation(int rotation)
Sets the rotation rotation of window around the center
See also rotation().
[slot]
void LiveNodeEngine::setXOffset(int offset)
Sets the x-offset offset of window
See also xOffset().
[slot]
void LiveNodeEngine::setYOffset(int offset)
Sets the y-offset offset of window
See also yOffset().
[slot]
void LiveNodeEngine::updateDocument(const LiveDocument &document, const QByteArray &content)
Updates content of the given workspace document when enabled.
The behavior of this function is controlled by WorkspaceOptions passed to setWorkspace().
[signal]
void LiveNodeEngine::workspaceChanged(const QString &workspace)
This signal is emitted after workspace is changed with setWorkspace(). workspace is the new workspace path.
See also workspace().
[virtual]
LiveNodeEngine::~LiveNodeEngine()
Destructor
LiveDocument LiveNodeEngine::activeDocument() const
Returns the current active document.
ContentAdapterInterface *LiveNodeEngine::activePlugin() const
Returns the active content adapter plugin
QQuickWindow *LiveNodeEngine::activeWindow() const
Returns the current active window.
See also activeWindowChanged().
QQuickView *LiveNodeEngine::fallbackView() const
The QQuickView for displaying QML Item based components, i.e., those not creating own windows.
See also setFallbackView().
[virtual protected]
void LiveNodeEngine::initPlugins()
Loads all plugins found in the Pluginpath
QString LiveNodeEngine::pluginPath() const
Returns the current pluginPath
See also setPluginPath().
QQmlEngine *LiveNodeEngine::qmlEngine() const
The QML engine to be used for loading QML components
See also setQmlEngine().
ResourceMap *LiveNodeEngine::resourceMap() const
Returns the ResourceMap managed by this instance.
See also LiveDocument.
int LiveNodeEngine::rotation() const
Return the current rotation angle
See also setRotation().
void LiveNodeEngine::setFallbackView(QQuickView *fallbackView)
Sets fallbackView as the QQuickView for displaying QML Item based components, i.e., those not creating own windows.
See also fallbackView().
void LiveNodeEngine::setPluginPath(const QString &path)
Sets the pluginPath to path.
The pluginPath will be used to load QML Live plugins
See also pluginPath() and ContentPlugin Example.
void LiveNodeEngine::setQmlEngine(QQmlEngine *qmlEngine)
Sets qmlEngine as the QML engine to be used for loading QML components
See also qmlEngine().
void LiveNodeEngine::setWorkspace(const QString &path, LiveNodeEngine::WorkspaceOptions options)
Sets the current workspace to path. Documents location will be adjusted based on this workspace path. Certain features can be controled by passing options.
See also workspace() and WorkspaceOptions.
void LiveNodeEngine::usePreloadedDocument(const LiveDocument &document, QObject *object, QQuickWindow *window, const QList<QQmlError> &errors)
Allows to initialize active document with an instance preloaded beyond LiveNodeEngine's control.
This can be called at most once and only before a document has been loaded with loadDocument().
document is the source of the component that was used to instantiate the object. window should be either the object itself or the fallbackView(). errors (if any) will be added to log.
Note that window will be destroyed on next loadDocument() call unless it is the fallbackView(). object will be destroyed unconditionally.
void LiveNodeEngine::usePreloadedDocument(const QString &document, QQuickWindow *window, const QList<QQmlError> &errors)
This is an overloaded function provided for convenience. It is suitable for use with QQmlApplicationEngine.
Tries to resolve document against current workspace(). window is the root object. errors (if any) will be added to log.
QString LiveNodeEngine::workspace() const
Returns the current workspace path.
See also setWorkspace().
int LiveNodeEngine::xOffset() const
Returns the current x-offset of the window
See also setXOffset().
int LiveNodeEngine::yOffset() const
Returns the current y-offset of the window
See also setYOffset().
© 2019 Luxoft Sweden AB. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.