Confirm account logout and propose exporting keys
Key export button callback not implemented yet.
This commit is contained in:
parent
85bdbcf5be
commit
15add6d91c
|
@ -30,8 +30,9 @@ HBox {
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
text: qsTr(
|
text: qsTr(
|
||||||
"The decryption keys for messages you received in encrypted " +
|
"The decryption keys for messages you received in encrypted " +
|
||||||
"rooms can be exported to a passphrase-protected file.\n" +
|
"rooms can be exported to a passphrase-protected file.\n\n" +
|
||||||
"You can then import this file on another Matrix account or " +
|
|
||||||
|
"You can then import this file on any Matrix account or " +
|
||||||
"client, to be able to decrypt these messages again."
|
"client, to be able to decrypt these messages again."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,7 @@
|
||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
|
|
||||||
BoxPopup {
|
BoxPopup {
|
||||||
summary.text: qsTr(
|
summary.text: qsTr("Leave %1 and discard the history?").arg(roomName)
|
||||||
"Leave %1 and discard the history?"
|
|
||||||
).arg(roomName)
|
|
||||||
|
|
||||||
details.text: qsTr(
|
details.text: qsTr(
|
||||||
"You will not be able to see the messages you received in " +
|
"You will not be able to see the messages you received in " +
|
||||||
"this room anymore.\n\n" +
|
"this room anymore.\n\n" +
|
||||||
|
|
50
src/qml/Popups/LogoutPopup.qml
Normal file
50
src/qml/Popups/LogoutPopup.qml
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
import QtQuick 2.12
|
||||||
|
|
||||||
|
BoxPopup {
|
||||||
|
id: popup
|
||||||
|
summary.text: qsTr("Backup your decryption keys before signing out?")
|
||||||
|
details.text: qsTr(
|
||||||
|
"Signing out will delete your device's information and the keys " +
|
||||||
|
"required to decrypt messages in encrypted rooms.\n\n" +
|
||||||
|
|
||||||
|
"You can export your keys to a passphrase-protected file " +
|
||||||
|
"before signing out.\n\n" +
|
||||||
|
|
||||||
|
"This will allow you to restore access to your messages when " +
|
||||||
|
"you sign in again, by importing this file in your account settings."
|
||||||
|
)
|
||||||
|
|
||||||
|
box.multiplyWidth: 1.5
|
||||||
|
box.focusButton: "ok"
|
||||||
|
box.buttonModel: [
|
||||||
|
{ name: "ok", text: qsTr("Export keys"), iconName: "export-keys" },
|
||||||
|
{ name: "signout", text: qsTr("Sign out now"), iconName: "logout",
|
||||||
|
iconColor: theme.colors.middleBackground },
|
||||||
|
{ name: "cancel", text: qsTr("Cancel"), iconName: "cancel" },
|
||||||
|
]
|
||||||
|
box.buttonCallbacks: ({
|
||||||
|
ok: button => {
|
||||||
|
console.error("Not implemented yet")
|
||||||
|
},
|
||||||
|
|
||||||
|
signout: button => {
|
||||||
|
okClicked = true
|
||||||
|
popup.ok()
|
||||||
|
|
||||||
|
if ((modelSources["Account"] || []).length < 2) {
|
||||||
|
pageLoader.showPage("SignIn")
|
||||||
|
} else if (window.uiState.pageProperties.userId == userId) {
|
||||||
|
pageLoader.showPage("Default")
|
||||||
|
}
|
||||||
|
|
||||||
|
py.callCoro("logout_client", [userId])
|
||||||
|
|
||||||
|
popup.close()
|
||||||
|
},
|
||||||
|
|
||||||
|
cancel: button => { okClicked = false; popup.cancel(); popup.close() },
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
property string userId: ""
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
import QtQuick.Layouts 1.12
|
import QtQuick.Layouts 1.12
|
||||||
import "../Base"
|
import "../Base"
|
||||||
|
import "../utils.js" as Utils
|
||||||
|
|
||||||
HTileDelegate {
|
HTileDelegate {
|
||||||
id: accountDelegate
|
id: accountDelegate
|
||||||
|
@ -84,24 +85,12 @@ HTileDelegate {
|
||||||
icon.name: "logout"
|
icon.name: "logout"
|
||||||
icon.color: theme.colors.negativeBackground
|
icon.color: theme.colors.negativeBackground
|
||||||
text: qsTr("Logout")
|
text: qsTr("Logout")
|
||||||
onTriggered: {
|
onTriggered: Utils.makePopup(
|
||||||
disconnecting = true
|
"Popups/LogoutPopup.qml",
|
||||||
|
mainUI,
|
||||||
let page = window.uiState.page
|
{ "userId": model.data.user_id },
|
||||||
let userId = model.data.user_id
|
popup => { popup.ok.connect(() => { disconnecting = true }) },
|
||||||
|
)
|
||||||
if ((modelSources["Account"] || []).length < 2) {
|
|
||||||
pageLoader.showPage("SignIn")
|
|
||||||
}
|
|
||||||
else if ((page == "Pages/EditAccount/EditAccount.qml" ||
|
|
||||||
page == "Chat/Chat.qml") &&
|
|
||||||
window.uiState.pageProperties.userId == userId)
|
|
||||||
{
|
|
||||||
pageLoader.showPage("Default")
|
|
||||||
}
|
|
||||||
|
|
||||||
py.callCoro("logout_client", [userId])
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,6 +58,9 @@ colors:
|
||||||
color positiveBackground:
|
color positiveBackground:
|
||||||
hsluv(155, saturation * 2.25, intensity * 52, Math.max(0.6, opacity))
|
hsluv(155, saturation * 2.25, intensity * 52, Math.max(0.6, opacity))
|
||||||
|
|
||||||
|
color middleBackground:
|
||||||
|
hsluv(60, saturation * 2.25, intensity * 52, Math.max(0.6, opacity))
|
||||||
|
|
||||||
color negativeBackground:
|
color negativeBackground:
|
||||||
hsluv(0, saturation * 2.25, intensity * 52, Math.max(0.6, opacity))
|
hsluv(0, saturation * 2.25, intensity * 52, Math.max(0.6, opacity))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user