163 lines
5.3 KiB
QML
163 lines
5.3 KiB
QML
import QtQuick 2.13
|
|
import QtQuick.Controls 2.13
|
|
|
|
import utils 1.0
|
|
|
|
import shared.popups 1.0
|
|
import shared.controls 1.0
|
|
|
|
import "../../Onboarding/shared" as OnboardingComponents
|
|
|
|
// TODO: replace with StatusModal
|
|
ModalPopup {
|
|
id: popup
|
|
|
|
property var privacyStore
|
|
|
|
title: qsTr("Store pass to Keychain")
|
|
|
|
onClosed: {
|
|
destroy()
|
|
}
|
|
|
|
function updateListState() {
|
|
if (localAccountSettings.storeToKeychainValue === Constants.storeToKeychainValueStore)
|
|
storeBtn.checked = true
|
|
else if (localAccountSettings.storeToKeychainValue === Constants.storeToKeychainValueNotNow ||
|
|
localAccountSettings.storeToKeychainValue === "")
|
|
notNowBtn.checked = true
|
|
else if (localAccountSettings.storeToKeychainValue === Constants.storeToKeychainValueNever)
|
|
neverBtn.checked = true
|
|
}
|
|
|
|
function offerToStorePassword(password, runStoreToKeychainPopup) {
|
|
if(Qt.platform.os == "osx")
|
|
{
|
|
if(runStoreToKeychainPopup)
|
|
Global.openPopup(storeToKeychainConfirmationPopupComponent, { password: password })
|
|
}
|
|
}
|
|
|
|
Column {
|
|
anchors.top: parent.top
|
|
anchors.bottom: parent.bottom
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: Style.current.padding
|
|
anchors.leftMargin: Style.current.padding
|
|
|
|
spacing: 0
|
|
|
|
Connections {
|
|
target: localAccountSettings
|
|
onStoreToKeychainValueChanged: {
|
|
updateListState()
|
|
}
|
|
}
|
|
|
|
ButtonGroup {
|
|
id: openLinksWithGroup
|
|
}
|
|
|
|
RadioButtonSelector {
|
|
id: storeBtn
|
|
title: qsTr("Store")
|
|
buttonGroup: openLinksWithGroup
|
|
checked: localAccountSettings.storeToKeychainValue === Constants.storeToKeychainValueStore
|
|
onCheckedChanged: {
|
|
if (checked && localAccountSettings.storeToKeychainValue !== Constants.storeToKeychainValueStore) {
|
|
// TODO: REFACTOR TO NEW PASWORD VIEW AND
|
|
// DELETE StoreToKeychainSelectionModal.qml
|
|
// AND CreatePasswordModal.qml IF NOT NEEDED
|
|
var storePassPopup = Global.openPopup(storePasswordModal)
|
|
if(storePassPopup)
|
|
{
|
|
storePassPopup.closed.connect(function(){
|
|
updateListState()
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
RadioButtonSelector {
|
|
id: notNowBtn
|
|
title: qsTr("Not now")
|
|
buttonGroup: openLinksWithGroup
|
|
checked: localAccountSettings.storeToKeychainValue === Constants.storeToKeychainValueNotNow ||
|
|
localAccountSettings.storeToKeychainValue === ""
|
|
onCheckedChanged: {
|
|
if (checked) {
|
|
localAccountSettings.storeToKeychainValue = Constants.storeToKeychainValueNotNow
|
|
}
|
|
}
|
|
}
|
|
|
|
RadioButtonSelector {
|
|
id: neverBtn
|
|
title: qsTr("Never")
|
|
buttonGroup: openLinksWithGroup
|
|
checked: localAccountSettings.storeToKeychainValue === Constants.storeToKeychainValueNever
|
|
onCheckedChanged: {
|
|
if (checked) {
|
|
localAccountSettings.storeToKeychainValue = Constants.storeToKeychainValueNever
|
|
}
|
|
}
|
|
}
|
|
|
|
Component {
|
|
id: storePasswordModal
|
|
OnboardingComponents.CreatePasswordModal {
|
|
privacyStore: popup.privacyStore
|
|
storingPasswordModal: true
|
|
height: 350
|
|
|
|
onOfferToStorePassword: {
|
|
popup.offerToStorePassword(password, runStoreToKeychainPopup)
|
|
}
|
|
}
|
|
}
|
|
|
|
Component {
|
|
id: storeToKeychainConfirmationPopupComponent
|
|
ConfirmationDialog {
|
|
id: storeToKeychainConfirmationPopup
|
|
property string password: ""
|
|
height: 200
|
|
confirmationText: qsTr("Would you like to store password to the Keychain?")
|
|
showRejectButton: true
|
|
showCancelButton: true
|
|
confirmButtonLabel: qsTr("Store")
|
|
rejectButtonLabel: qsTr("Not now")
|
|
cancelButtonLabel: qsTr("Never")
|
|
|
|
onClosed: {
|
|
destroy()
|
|
}
|
|
|
|
function finish()
|
|
{
|
|
password = ""
|
|
storeToKeychainConfirmationPopup.close()
|
|
}
|
|
|
|
onConfirmButtonClicked: {
|
|
localAccountSettings.storeToKeychainValue = Constants.storeToKeychainValueStore
|
|
root.privacyStore.storeToKeyChain(password)
|
|
finish()
|
|
}
|
|
|
|
onRejectButtonClicked: {
|
|
localAccountSettings.storeToKeychainValue = Constants.storeToKeychainValueNotNow
|
|
finish()
|
|
}
|
|
|
|
onCancelButtonClicked: {
|
|
localAccountSettings.storeToKeychainValue = Constants.storeToKeychainValueNever
|
|
finish()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|