Add multiaccount write-as alias account setting
This commit is contained in:
@@ -19,6 +19,11 @@ HGridLayout {
|
||||
)
|
||||
}
|
||||
|
||||
if (aliasField.changed) {
|
||||
window.settings.write_aliases[userId] = aliasField.field.text
|
||||
window.settingsChanged()
|
||||
}
|
||||
|
||||
if (avatar.changed) {
|
||||
saveButton.avatarChangeRunning = true
|
||||
let path = Qt.resolvedUrl(avatar.imageUrl).replace(/^file:/, "")
|
||||
@@ -32,6 +37,13 @@ HGridLayout {
|
||||
}
|
||||
}
|
||||
|
||||
function cancelChanges() {
|
||||
nameField.field.text = userInfo.displayName
|
||||
aliasField.field.text = aliasField.currentAlias
|
||||
fileDialog.selectedFile = ""
|
||||
fileDialog.file = ""
|
||||
}
|
||||
|
||||
columns: 2
|
||||
flow: window.isWide ? GridLayout.LeftToRight : GridLayout.TopToBottom
|
||||
rowSpacing: currentSpacing
|
||||
@@ -123,6 +135,21 @@ HGridLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 480
|
||||
}
|
||||
|
||||
HLabeledTextField {
|
||||
property string currentAlias:
|
||||
window.settings.write_aliases[userId] || ""
|
||||
|
||||
property bool changed: field.text != currentAlias
|
||||
|
||||
id: aliasField
|
||||
label.text: qsTr("Write alias:")
|
||||
field.text: currentAlias
|
||||
field.onAccepted: applyChanges()
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 480
|
||||
}
|
||||
}
|
||||
|
||||
HSpacer {}
|
||||
@@ -138,7 +165,8 @@ HGridLayout {
|
||||
iconName: "apply"
|
||||
text: qsTr("Apply")
|
||||
loading: nameChangeRunning || avatarChangeRunning
|
||||
enabled: nameField.changed || avatar.changed
|
||||
enabled:
|
||||
nameField.changed || aliasField.changed || avatar.changed
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignBottom
|
||||
@@ -149,16 +177,12 @@ HGridLayout {
|
||||
HUIButton {
|
||||
iconName: "cancel"
|
||||
text: qsTr("Cancel")
|
||||
enabled: saveButton.enabled && ! saveButton.loading
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignBottom
|
||||
enabled: saveButton.enabled && ! saveButton.loading
|
||||
|
||||
onClicked: {
|
||||
nameField.field.text = userInfo.displayName
|
||||
fileDialog.selectedFile = ""
|
||||
fileDialog.file = ""
|
||||
}
|
||||
onClicked: cancelChanges()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -33,6 +33,11 @@ Python {
|
||||
call("APP.call_client_coro", [accountId, name, uuid, args])
|
||||
}
|
||||
|
||||
function saveSettings(callback=null) {
|
||||
if (! py.ready) { return } // config not loaded yet
|
||||
callCoro("ui_settings.write", [window.settings], callback)
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
for (var func in EventHandlers) {
|
||||
if (EventHandlers.hasOwnProperty(func)) {
|
||||
@@ -46,16 +51,20 @@ Python {
|
||||
call("APP.is_debug_on", [Qt.application.arguments], on => {
|
||||
window.debug = on
|
||||
|
||||
callCoro("saved_accounts.any_saved", [], any => {
|
||||
py.ready = true
|
||||
willLoadAccounts(any)
|
||||
callCoro("ui_settings.read", [], settings => {
|
||||
window.settings = settings
|
||||
|
||||
if (any) {
|
||||
py.loadingAccounts = true
|
||||
py.callCoro("load_saved_accounts", [], () => {
|
||||
py.loadingAccounts = false
|
||||
})
|
||||
}
|
||||
callCoro("saved_accounts.any_saved", [], any => {
|
||||
py.ready = true
|
||||
willLoadAccounts(any)
|
||||
|
||||
if (any) {
|
||||
py.loadingAccounts = true
|
||||
py.callCoro("load_saved_accounts", [], () => {
|
||||
py.loadingAccounts = false
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
@@ -16,10 +16,6 @@ ApplicationWindow {
|
||||
title: "Harmony QML"
|
||||
color: "black"
|
||||
|
||||
property bool debug: false
|
||||
property bool ready: false
|
||||
property bool isWide: width > theme.isWideAbove
|
||||
|
||||
Component.onCompleted: {
|
||||
Qt.application.organization = "harmonyqml"
|
||||
Qt.application.name = "harmonyqml"
|
||||
@@ -28,6 +24,14 @@ ApplicationWindow {
|
||||
window.ready = true
|
||||
}
|
||||
|
||||
property bool debug: false
|
||||
property bool ready: false
|
||||
property bool isWide: width > theme.isWideAbove
|
||||
|
||||
// Note: window.settingsChanged() must be called manually
|
||||
property var settings: ({})
|
||||
onSettingsChanged: py.saveSettings()
|
||||
|
||||
Theme { id: theme }
|
||||
|
||||
Python { id: py }
|
||||
|
Reference in New Issue
Block a user