summary refs log tree commit diff
path: root/resources/qml
diff options
context:
space:
mode:
Diffstat (limited to 'resources/qml')
-rw-r--r--resources/qml/RoomList.qml24
-rw-r--r--resources/qml/Root.qml257
-rw-r--r--resources/qml/TimelineView.qml15
3 files changed, 195 insertions, 101 deletions
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()