Skycoder42
7 years ago
No known key found for this signature in database
GPG Key ID: 8E01AD9EF0578D2B
3 changed files with
48 additions and
0 deletions
-
src/imports/mvvmcore/plugins.qmltypes
-
src/imports/mvvmcore/qqmlserviceregistry.cpp
-
src/imports/mvvmcore/qqmlserviceregistry.h
|
|
@ -450,6 +450,32 @@ Module { |
|
|
|
type: "bool" |
|
|
|
Parameter { name: "iid"; type: "string" } |
|
|
|
} |
|
|
|
Method { |
|
|
|
name: "registerObject" |
|
|
|
Parameter { name: "object"; type: "QObject"; isPointer: true } |
|
|
|
Parameter { name: "scope"; type: "QtMvvm::QQmlServiceRegistry::DestructionScope" } |
|
|
|
Parameter { name: "weak"; type: "bool" } |
|
|
|
} |
|
|
|
Method { |
|
|
|
name: "registerObject" |
|
|
|
Parameter { name: "object"; type: "QObject"; isPointer: true } |
|
|
|
Parameter { name: "scope"; type: "QtMvvm::QQmlServiceRegistry::DestructionScope" } |
|
|
|
} |
|
|
|
Method { |
|
|
|
name: "registerObject" |
|
|
|
Parameter { name: "object"; type: "QObject"; isPointer: true } |
|
|
|
} |
|
|
|
Method { |
|
|
|
name: "registerObject" |
|
|
|
Parameter { name: "iid"; type: "string" } |
|
|
|
Parameter { name: "function"; type: "QJSValue" } |
|
|
|
Parameter { name: "weak"; type: "bool" } |
|
|
|
} |
|
|
|
Method { |
|
|
|
name: "registerObject" |
|
|
|
Parameter { name: "iid"; type: "string" } |
|
|
|
Parameter { name: "function"; type: "QJSValue" } |
|
|
|
} |
|
|
|
Method { |
|
|
|
name: "registerObject" |
|
|
|
Parameter { name: "componentUrl"; type: "QUrl" } |
|
|
|
|
|
@ -12,6 +12,26 @@ bool QQmlServiceRegistry::isRegistered(const QString &iid) const |
|
|
|
return ServiceRegistry::instance()->isRegistered(iid.toUtf8()); |
|
|
|
} |
|
|
|
|
|
|
|
void QQmlServiceRegistry::registerObject(QObject *object, DestructionScope scope, bool weak) |
|
|
|
{ |
|
|
|
ServiceRegistry::instance()->registerService(__helpertypes::InjectablePrefix + object->metaObject()->className(), |
|
|
|
[object](const QObjectList &) { |
|
|
|
return object; |
|
|
|
}, {}, static_cast<ServiceRegistry::DestructionScope>(scope), weak); |
|
|
|
} |
|
|
|
|
|
|
|
void QQmlServiceRegistry::registerObject(const QString &iid, const QJSValue &function, bool weak) |
|
|
|
{ |
|
|
|
if(!function.isCallable()) { |
|
|
|
qmlWarning(this) << "function must be callable"; |
|
|
|
return; |
|
|
|
} |
|
|
|
ServiceRegistry::instance()->registerService(iid.toUtf8(), [function](const QObjectList &) { |
|
|
|
auto fn = function; |
|
|
|
return fn.call().toQObject(); |
|
|
|
}, {}, ServiceRegistry::DestroyOnAppQuit, weak); |
|
|
|
} |
|
|
|
|
|
|
|
void QQmlServiceRegistry::registerObject(const QUrl &componentUrl, bool weak) |
|
|
|
{ |
|
|
|
ServiceRegistry::instance()->registerService(componentUrl.toString().toUtf8(), [this, componentUrl](const QObjectList &) -> QObject* { |
|
|
|
|
|
@ -28,6 +28,8 @@ public: |
|
|
|
|
|
|
|
Q_INVOKABLE bool isRegistered(const QString &iid) const; |
|
|
|
|
|
|
|
Q_INVOKABLE void registerObject(QObject *object, QtMvvm::QQmlServiceRegistry::DestructionScope scope = DestroyOnAppQuit, bool weak = false); |
|
|
|
Q_INVOKABLE void registerObject(const QString &iid, const QJSValue &function, bool weak = false); |
|
|
|
Q_INVOKABLE void registerObject(const QUrl &componentUrl, bool weak = false); |
|
|
|
|
|
|
|
Q_INVOKABLE QObject *service(const QString &iid); |
|
|
|