Add text remembering ability to HTextField
This commit is contained in:
parent
888df282a8
commit
2cd177dc13
2
TODO.md
2
TODO.md
|
@ -1,3 +1,4 @@
|
|||
- scale vs current zoom methods?
|
||||
- better cancel for all boxes
|
||||
|
||||
- Media
|
||||
|
@ -78,7 +79,6 @@
|
|||
- Restoring UI state:
|
||||
- Composer content
|
||||
- Which element was focused
|
||||
- Room member filter field
|
||||
|
||||
- Combine events so they take less space
|
||||
- After combining is implemented, no need to hide profile changes anymore.
|
||||
|
|
|
@ -169,7 +169,6 @@ class UIState(JSONConfigFile):
|
|||
"collapseAccounts": {},
|
||||
"page": "Pages/Default.qml",
|
||||
"pageProperties": {},
|
||||
"sidePaneFilter": "",
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -47,6 +47,7 @@ HColumnLayout {
|
|||
|
||||
HTextField {
|
||||
id: filterField
|
||||
objectName: "memberFilterField"
|
||||
placeholderText: qsTr("Filter members")
|
||||
backgroundColor: theme.chat.roomPane.filterMembers.background
|
||||
bordered: false
|
||||
|
|
|
@ -22,18 +22,11 @@ HRowLayout {
|
|||
|
||||
HTextField {
|
||||
id: filterField
|
||||
objectName: "roomFilterField"
|
||||
placeholderText: qsTr("Filter rooms")
|
||||
backgroundColor: theme.mainPane.filterRooms.background
|
||||
bordered: false
|
||||
|
||||
Component.onCompleted: filterField.text = uiState.sidePaneFilter
|
||||
|
||||
onTextChanged: {
|
||||
if (window.uiState.mainPaneFilter === text) return
|
||||
window.uiState.mainPaneFilter = text
|
||||
window.uiStateChanged()
|
||||
}
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user