diff --git a/resources/qml/SelfVerificationCheck.qml b/resources/qml/SelfVerificationCheck.qml index 98a5d2dc..c5eee669 100644 --- a/resources/qml/SelfVerificationCheck.qml +++ b/resources/qml/SelfVerificationCheck.qml @@ -7,6 +7,7 @@ import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.3 import im.nheko 1.0 +import "./components/" Item { visible: false @@ -80,31 +81,15 @@ Item { text: qsTr("Failed to setup encryption: %1").arg(errorMessage) } - Dialog { + MainWindowDialog { id: bootstrapCrosssigning - parent: Overlay.overlay - anchors.centerIn: parent - height: (Math.floor(parent.height / 2) - Nheko.paddingLarge) * 2 - width: (Math.floor(parent.width / 2) - Nheko.paddingLarge) * 2 - padding: 0 - modal: true - standardButtons: Dialog.Ok | Dialog.Cancel - closePolicy: Popup.NoAutoClose onAccepted: SelfVerificationStatus.setupCrosssigning(storeSecretsOnline.checked, usePassword.checked ? passwordField.text : "", useOnlineKeyBackup.checked) - ScrollView { - id: scroll - - clip: true - anchors.fill: parent - ScrollBar.horizontal.visible: false - ScrollBar.vertical.visible: true - GridLayout { id: grid - width: scroll.width - scroll.ScrollBar.vertical.width + width: bootstrapCrosssigning.useableWidth columns: 2 rowSpacing: 0 columnSpacing: 0 @@ -222,7 +207,6 @@ Item { } - } background: Rectangle { color: Nheko.colors.window @@ -233,11 +217,28 @@ Item { } + MainWindowDialog { + id: verifyMasterKey + + onAccepted: SelfVerificationStatus.verifyMasterKey() + + GridLayout { + id: masterGrid + + width: verifyMasterKey.useableWidth + columns: 2 + rowSpacing: 0 + columnSpacing: 0 + } + } + Connections { function onStatusChanged() { console.log("STATUS CHANGED: " + SelfVerificationStatus.status); if (SelfVerificationStatus.status == SelfVerificationStatus.NoMasterKey) bootstrapCrosssigning.open(); + else if (SelfVerificationStatus.status == SelfVerificationStatus.UnverifiedMasterKey) + verifyMasterKey.open(); } diff --git a/resources/qml/components/MainWindowDialog.qml b/resources/qml/components/MainWindowDialog.qml new file mode 100644 index 00000000..19233384 --- /dev/null +++ b/resources/qml/components/MainWindowDialog.qml @@ -0,0 +1,42 @@ +// SPDX-FileCopyrightText: 2021 Nheko Contributors +// +// SPDX-License-Identifier: GPL-3.0-or-later + +import Qt.labs.platform 1.1 as P +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.3 +import im.nheko 1.0 + +Dialog { + parent: Overlay.overlay + anchors.centerIn: parent + height: (Math.floor(parent.height / 2) - Nheko.paddingLarge) * 2 + width: (Math.floor(parent.width / 2) - Nheko.paddingLarge) * 2 + padding: 0 + modal: true + standardButtons: Dialog.Ok | Dialog.Cancel + closePolicy: Popup.NoAutoClose + + default property alias inner: scroll.data + property int useableWidth: scroll.width - scroll.ScrollBar.vertical.width + + contentChildren: [ + ScrollView { + id: scroll + + clip: true + anchors.fill: parent + ScrollBar.horizontal.visible: false + ScrollBar.vertical.visible: true + } + ] + + background: Rectangle { + color: Nheko.colors.window + border.color: Nheko.theme.separator + border.width: 1 + radius: Nheko.paddingSmall + } + +} diff --git a/resources/res.qrc b/resources/res.qrc index e544316b..f11d0b4a 100644 --- a/resources/res.qrc +++ b/resources/res.qrc @@ -145,6 +145,7 @@ qml/components/AdaptiveLayoutElement.qml qml/components/AvatarListTile.qml qml/components/FlatButton.qml + qml/components/MainWindowDialog.qml qml/delegates/Encrypted.qml qml/delegates/FileMessage.qml qml/delegates/ImageMessage.qml