fix: fix scopes of created QQmlComponents

Using the scope of the component itself makes sure things availible in
its scope are usable, instead of the parent scope.
This commit is contained in:
outfoxxed 2024-03-03 21:38:21 -08:00
parent 7467b65809
commit 4cfe6ee0a1
Signed by: outfoxxed
GPG key ID: 4C88A185FB89301E
3 changed files with 4 additions and 3 deletions

View file

@ -95,7 +95,7 @@ void Variants::updateVariants() {
auto* instance = this->mComponent->createWithInitialProperties( auto* instance = this->mComponent->createWithInitialProperties(
variant, variant,
QQmlEngine::contextForObject(this) QQmlEngine::contextForObject(this->mComponent)
); );
if (instance == nullptr) { if (instance == nullptr) {

View file

@ -177,7 +177,7 @@ void SocketServer::disableServer() {
void SocketServer::onNewConnection() { void SocketServer::onNewConnection() {
if (auto* connection = this->server->nextPendingConnection()) { if (auto* connection = this->server->nextPendingConnection()) {
auto* instanceObj = this->mHandler->create(QQmlEngine::contextForObject(this)); auto* instanceObj = this->mHandler->create(QQmlEngine::contextForObject(this->mHandler));
auto* instance = qobject_cast<Socket*>(instanceObj); auto* instance = qobject_cast<Socket*>(instanceObj);
if (instance == nullptr) { if (instance == nullptr) {

View file

@ -73,7 +73,8 @@ void SessionLock::updateSurfaces(SessionLock* old) {
for (auto* screen: screens) { for (auto* screen: screens) {
if (!this->surfaces.contains(screen)) { if (!this->surfaces.contains(screen)) {
auto* instanceObj = this->mSurfaceComponent->create(QQmlEngine::contextForObject(this)); auto* instanceObj =
this->mSurfaceComponent->create(QQmlEngine::contextForObject(this->mSurfaceComponent));
auto* instance = qobject_cast<SessionLockSurface*>(instanceObj); auto* instance = qobject_cast<SessionLockSurface*>(instanceObj);
if (instance == nullptr) { if (instance == nullptr) {