Add text remembering ability to HTextField

This commit is contained in:
miruka
2019-12-10 15:32:42 -04:00
parent 888df282a8
commit 2cd177dc13
6 changed files with 32 additions and 29 deletions

View File

@@ -4,6 +4,7 @@ import "../utils.js" as Utils
Drawer {
id: drawer
objectName: "" // Set one to allow storing the user size to a file
implicitWidth: horizontal ? calculatedSize : parent.width
implicitHeight: vertical ? calculatedSize : parent.height

View File

@@ -3,6 +3,8 @@ import QtQuick.Controls 2.12
TextField {
id: field
objectName: "" // Set one to allow remembering the text using a file
selectByMouse: true
leftPadding: theme.spacing
rightPadding: leftPadding
topPadding: theme.spacing / 1.5
@@ -17,6 +19,32 @@ TextField {
theme.controls.textField.focusedText :
theme.controls.textField.text
background: Rectangle {
id: textFieldBackground
color: field.activeFocus ? focusedBackgroundColor : backgroundColor
border.color: error ? errorBorder :
field.activeFocus ? focusedBorderColor : borderColor
border.width: bordered ? theme.controls.textField.borderWidth : 0
Behavior on color { HColorAnimation { factor: 0.25 } }
Behavior on border.color { HColorAnimation { factor: 0.25 } }
}
// Set it only on component creation to avoid binding loops
Component.onCompleted:
if (! text && uiState[objectName]) text = uiState[objectName].text
onTextChanged: {
if (! objectName) return
window.uiState[objectName] = {text}
window.uiStateChanged()
}
Keys.onPressed: if (
event.modifiers & Qt.AltModifier ||
event.modifiers & Qt.MetaModifier
) event.accepted = true // XXX Still needed?
property bool error: false
@@ -30,23 +58,4 @@ TextField {
property color focusedBackgroundColor:
theme.controls.textField.focusedBackground
property color focusedBorderColor: theme.controls.textField.focusedBorder
background: Rectangle {
id: textFieldBackground
color: field.activeFocus ? focusedBackgroundColor : backgroundColor
border.color: error ? errorBorder :
field.activeFocus ? focusedBorderColor : borderColor
border.width: bordered ? theme.controls.textField.borderWidth : 0
Behavior on color { HColorAnimation { factor: 0.25 } }
Behavior on border.color { HColorAnimation { factor: 0.25 } }
}
selectByMouse: true
Keys.onPressed: if (
event.modifiers & Qt.AltModifier ||
event.modifiers & Qt.MetaModifier
) event.accepted = true
}