summary refs log tree commit diff
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2021-10-17 17:17:29 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2021-10-17 17:18:14 +0200
commitb030eb923b7aac7e67bce30e34e18f6ef222f8fc (patch)
tree7e085c8c04dc9966abf23bdff486bb87eb627c18
parentmove device verification management to its own file (diff)
downloadnheko-b030eb923b7aac7e67bce30e34e18f6ef222f8fc.tar.xz
WIP
Diffstat (limited to '')
-rw-r--r--resources/qml/SelfVerificationCheck.qml39
-rw-r--r--resources/qml/components/MainWindowDialog.qml42
-rw-r--r--resources/res.qrc1
3 files changed, 63 insertions, 19 deletions
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 @@
         <file>qml/components/AdaptiveLayoutElement.qml</file>
         <file>qml/components/AvatarListTile.qml</file>
         <file>qml/components/FlatButton.qml</file>
+        <file>qml/components/MainWindowDialog.qml</file>
         <file>qml/delegates/Encrypted.qml</file>
         <file>qml/delegates/FileMessage.qml</file>
         <file>qml/delegates/ImageMessage.qml</file>