diff --git a/resources/qml/RoomList.qml b/resources/qml/RoomList.qml index 79be77e9..a56f817e 100644 --- a/resources/qml/RoomList.qml +++ b/resources/qml/RoomList.qml @@ -470,11 +470,14 @@ Page { function openUserProfile() { Nheko.updateUserProfile(); - var userProfile = Qt.createComponent("qrc:/qml/dialogs/UserProfile.qml").createObject(timelineRoot, { - "profile": Nheko.currentUser - }); - userProfile.show(); - timelineRoot.destroyOnClose(userProfile); + var component = Qt.createComponent("qrc:/qml/dialogs/UserProfile.qml") + if (component.status == Component.Ready) { + var userProfile = component.createObject(timelineRoot, {"profile": Nheko.currentUser}); + userProfile.show(); + timelineRoot.destroyOnClose(userProfile); + } else { + console.error("Failed to create component: " + component.errorString()); + } } @@ -790,9 +793,14 @@ Page { ToolTip.text: qsTr("Search rooms (Ctrl+K)") Layout.margins: Nheko.paddingMedium onClicked: { - var quickSwitch = Qt.createComponent("qrc:/qml/QuickSwitcher.qml").createObject(timelineRoot); - quickSwitch.open(); - destroyOnClosed(quickSwitch); + var component = Qt.createComponent("qrc:/qml/QuickSwitcher.qml") + if (component.status == Component.Ready) { + var quickSwitch = component.createObject(timelineRoot); + quickSwitch.open(); + destroyOnClosed(quickSwitch); + } else { + console.error("Failed to create component: " + component.errorString()); + } } } diff --git a/resources/qml/Root.qml b/resources/qml/Root.qml index fa392a97..d0a8f2e8 100644 --- a/resources/qml/Root.qml +++ b/resources/qml/Root.qml @@ -51,36 +51,57 @@ Pane { } function showAliasEditor(settings) { - var dialog = Qt.createComponent("qrc:/qml/dialogs/AliasEditor.qml").createObject(timelineRoot, { - "roomSettings": settings - }); - dialog.show(); - destroyOnClose(dialog); + var component = Qt.createComponent("qrc:/qml/dialogs/AliasEditor.qml") + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot, { + "roomSettings": settings + }); + dialog.show(); + destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } + } function showPLEditor(settings) { - var dialog = Qt.createComponent("qrc:/qml/dialogs/PowerLevelEditor.qml").createObject(timelineRoot, { - "roomSettings": settings - }); - dialog.show(); - destroyOnClose(dialog); + var component = Qt.createComponent("qrc:/qml/dialogs/PowerLevelEditor.qml") + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot, { + "roomSettings": settings + }); + dialog.show(); + destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } } function showSpacePLApplyPrompt(settings, editingModel) { - var dialog = Qt.createComponent("qrc:/qml/dialogs/PowerLevelSpacesApplyDialog.qml").createObject(timelineRoot, { - "roomSettings": settings, - "editingModel": editingModel - }); - dialog.show(); - destroyOnClose(dialog); + var component = Qt.createComponent("qrc:/qml/dialogs/PowerLevelSpacesApplyDialog.qml") + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot, { + "roomSettings": settings, + "editingModel": editingModel + }); + dialog.show(); + destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } } function showAllowedRoomsEditor(settings) { - var dialog = Qt.createComponent("qrc:/qml/dialogs/AllowedRoomsSettingsDialog.qml").createObject(timelineRoot, { - "roomSettings": settings - }); - dialog.show(); - destroyOnClose(dialog); + var component = Qt.createComponent("qrc:/qml/dialogs/AllowedRoomsSettingsDialog.qml") + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot, { + "roomSettings": settings + }); + dialog.show(); + destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } } Component { @@ -99,9 +120,14 @@ Pane { Shortcut { sequence: "Ctrl+K" onActivated: { - var quickSwitch = Qt.createComponent("qrc:/qml/QuickSwitcher.qml").createObject(timelineRoot); - quickSwitch.open(); - destroyOnClosed(quickSwitch); + var component = Qt.createComponent("qrc:/qml/QuickSwitcher.qml") + if (component.status == Component.Ready) { + var quickSwitch = component.createObject(timelineRoot); + quickSwitch.open(); + destroyOnClosed(quickSwitch); + } else { + console.error("Failed to create component: " + component.errorString()); + } } } @@ -123,21 +149,36 @@ Pane { Connections { function onOpenLogoutDialog() { - var dialog = Qt.createComponent("qrc:/qml/dialogs/LogoutDialog.qml").createObject(timelineRoot); - dialog.open(); - destroyOnClose(dialog); + var component = Qt.createComponent("qrc:/qml/dialogs/LogoutDialog.qml") + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot); + dialog.open(); + destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } } function onOpenJoinRoomDialog() { - var dialog = Qt.createComponent("qrc:/qml/dialogs/JoinRoomDialog.qml").createObject(timelineRoot); - dialog.show(); - destroyOnClose(dialog); + var component = Qt.createComponent("qrc:/qml/dialogs/JoinRoomDialog.qml") + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot); + dialog.show(); + destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } } function onShowRoomJoinPrompt(summary) { - var dialog = Qt.createComponent("qrc:/qml/dialogs/ConfirmJoinRoomDialog.qml").createObject(timelineRoot, {"summary": summary}); - dialog.show(); - destroyOnClose(dialog); + var component = Qt.createComponent("qrc:/qml/dialogs/ConfirmJoinRoomDialog.qml") + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot, {"summary": summary}); + dialog.show(); + destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } } target: Nheko @@ -145,11 +186,14 @@ Pane { Connections { function onNewDeviceVerificationRequest(flow) { - var dialog = Qt.createComponent("qrc:/qml/device-verification/DeviceVerification.qml").createObject(timelineRoot, { - "flow": flow - }); - dialog.show(); - destroyOnClose(dialog); + var component = Qt.createComponent("qrc:/qml/device-verification/DeviceVerification.qml") + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot, {"flow": flow}); + dialog.show(); + destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } } target: VerificationManager @@ -166,73 +210,105 @@ Pane { Connections { function onOpenProfile(profile) { - var userProfile = Qt.createComponent("qrc:/qml/dialogs/UserProfile.qml").createObject(timelineRoot, { - "profile": profile - }); - userProfile.show(); - destroyOnClose(userProfile); + var component = Qt.createComponent("qrc:/qml/dialogs/UserProfile.qml") + if (component.status == Component.Ready) { + var userProfile = component.createObject(timelineRoot, {"profile": profile}); + userProfile.show(); + destroyOnClose(userProfile); + } else { + console.error("Failed to create component: " + component.errorString()); + } } function onShowImagePackSettings(room, packlist) { - var packSet = Qt.createComponent("qrc:/qml/dialogs/ImagePackSettingsDialog.qml").createObject(timelineRoot, { - "room": room, - "packlist": packlist - }); - packSet.show(); - destroyOnClose(packSet); + var component = Qt.createComponent("qrc:/qml/dialogs/ImagePackSettingsDialog.qml") + + if (component.status == Component.Ready) { + var packSet = component.createObject(timelineRoot, { + "room": room, + "packlist": packlist + }); + packSet.show(); + destroyOnClose(packSet); + } else { + console.error("Failed to create component: " + component.errorString()); + } } function onOpenRoomMembersDialog(members, room) { - var membersDialog = Qt.createComponent("qrc:/qml/dialogs/RoomMembers.qml").createObject(timelineRoot, { - "members": members, - "room": room - }); - membersDialog.show(); - destroyOnClose(membersDialog); + var component = Qt.createComponent("qrc:/qml/dialogs/RoomMembers.qml") + if (component.status == Component.Ready) { + var membersDialog = component.createObject(timelineRoot, { + "members": members, + "room": room + }); + membersDialog.show(); + destroyOnClose(membersDialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } + } function onOpenRoomSettingsDialog(settings) { - var roomSettings = Qt.createComponent("qrc:/qml/dialogs/RoomSettings.qml").createObject(timelineRoot, { - "roomSettings": settings - }); - roomSettings.show(); - destroyOnClose(roomSettings); + var component = Qt.createComponent("qrc:/qml/dialogs/RoomSettings.qml") + if (component.status == Component.Ready) { + var roomSettings = component.createObject(timelineRoot, { + "roomSettings": settings + }); + roomSettings.show(); + destroyOnClose(roomSettings); + } else { + console.error("Failed to create component: " + component.errorString()); + } + } function onOpenInviteUsersDialog(invitees) { var component = Qt.createComponent("qrc:/qml/dialogs/InviteDialog.qml") - var dialog = component.createObject(timelineRoot, { - "roomId": Rooms.currentRoom.roomId, - "plainRoomName": Rooms.currentRoom.plainRoomName, - "invitees": invitees - }); - if (component.status != Component.Ready) { - console.log("Failed to create component: " + component.errorString()); + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot, { + "roomId": Rooms.currentRoom.roomId, + "plainRoomName": Rooms.currentRoom.plainRoomName, + "invitees": invitees + }); + dialog.show(); + destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); } - dialog.show(); - destroyOnClose(dialog); } function onOpenLeaveRoomDialog(roomid, reason) { - var dialog = Qt.createComponent("qrc:/qml/dialogs/LeaveRoomDialog.qml").createObject(timelineRoot, { - "roomId": roomid, - "reason": reason - }); - dialog.open(); - destroyOnClose(dialog); + var component = Qt.createComponent("qrc:/qml/dialogs/LeaveRoomDialog.qml") + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot, { + "roomId": roomid, + "reason": reason + }); + dialog.open(); + destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } } function onShowImageOverlay(room, eventId, url, originalWidth, proportionalHeight) { - var dialog = Qt.createComponent("qrc:/qml/dialogs/ImageOverlay.qml").createObject(timelineRoot, { - "room": room, - "eventId": eventId, - "url": url, - "originalWidth": originalWidth ?? 0, - "proportionalHeight": proportionalHeight ?? 0 - }); - - dialog.showFullScreen(); - destroyOnClose(dialog); + var component = Qt.createComponent("qrc:/qml/dialogs/ImageOverlay.qml") + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot, { + "room": room, + "eventId": eventId, + "url": url, + "originalWidth": originalWidth ?? 0, + "proportionalHeight": proportionalHeight ?? 0 + } + ); + dialog.showFullScreen(); + destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } } target: TimelineManager @@ -241,9 +317,14 @@ Pane { Connections { function onNewInviteState() { if (CallManager.haveCallInvite && Settings.mobileMode) { - var dialog = Qt.createComponent("qrc:/qml/voip/CallInvite.qml").createObject(timelineRoot); - dialog.open(); - destroyOnClose(dialog); + var component = Qt.createComponent("qrc:/qml/voip/CallInvite.qml") + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot); + dialog.open(); + destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } } } diff --git a/resources/qml/TimelineView.qml b/resources/qml/TimelineView.qml index 5accbcd6..aa39560a 100644 --- a/resources/qml/TimelineView.qml +++ b/resources/qml/TimelineView.qml @@ -423,11 +423,16 @@ Item { } function onShowRawMessageDialog(rawMessage) { - var dialog = Qt.createComponent("qrc:/qml/dialogs/RawMessageDialog.qml").createObject(timelineRoot, { - "rawMessage": rawMessage - }); - dialog.show(); - timelineRoot.destroyOnClose(dialog); + var component = Qt.createComponent("qrc:/qml/dialogs/RawMessageDialog.qml") + if (component.status == Component.Ready) { + var dialog = component.createObject(timelineRoot, { + "rawMessage": rawMessage + }); + dialog.show(); + timelineRoot.destroyOnClose(dialog); + } else { + console.error("Failed to create component: " + component.errorString()); + } } function onConfetti()