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
|
- better cancel for all boxes
|
||||||
|
|
||||||
- Media
|
- Media
|
||||||
|
@ -78,7 +79,6 @@
|
||||||
- Restoring UI state:
|
- Restoring UI state:
|
||||||
- Composer content
|
- Composer content
|
||||||
- Which element was focused
|
- Which element was focused
|
||||||
- Room member filter field
|
|
||||||
|
|
||||||
- Combine events so they take less space
|
- Combine events so they take less space
|
||||||
- After combining is implemented, no need to hide profile changes anymore.
|
- After combining is implemented, no need to hide profile changes anymore.
|
||||||
|
|
|
@ -169,7 +169,6 @@ class UIState(JSONConfigFile):
|
||||||
"collapseAccounts": {},
|
"collapseAccounts": {},
|
||||||
"page": "Pages/Default.qml",
|
"page": "Pages/Default.qml",
|
||||||
"pageProperties": {},
|
"pageProperties": {},
|
||||||
"sidePaneFilter": "",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import "../utils.js" as Utils
|
||||||
|
|
||||||
Drawer {
|
Drawer {
|
||||||
id: drawer
|
id: drawer
|
||||||
|
objectName: "" // Set one to allow storing the user size to a file
|
||||||
implicitWidth: horizontal ? calculatedSize : parent.width
|
implicitWidth: horizontal ? calculatedSize : parent.width
|
||||||
implicitHeight: vertical ? calculatedSize : parent.height
|
implicitHeight: vertical ? calculatedSize : parent.height
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@ import QtQuick.Controls 2.12
|
||||||
|
|
||||||
TextField {
|
TextField {
|
||||||
id: field
|
id: field
|
||||||
|
objectName: "" // Set one to allow remembering the text using a file
|
||||||
|
selectByMouse: true
|
||||||
leftPadding: theme.spacing
|
leftPadding: theme.spacing
|
||||||
rightPadding: leftPadding
|
rightPadding: leftPadding
|
||||||
topPadding: theme.spacing / 1.5
|
topPadding: theme.spacing / 1.5
|
||||||
|
@ -17,6 +19,32 @@ TextField {
|
||||||
theme.controls.textField.focusedText :
|
theme.controls.textField.focusedText :
|
||||||
theme.controls.textField.text
|
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
|
property bool error: false
|
||||||
|
|
||||||
|
@ -30,23 +58,4 @@ TextField {
|
||||||
property color focusedBackgroundColor:
|
property color focusedBackgroundColor:
|
||||||
theme.controls.textField.focusedBackground
|
theme.controls.textField.focusedBackground
|
||||||
property color focusedBorderColor: theme.controls.textField.focusedBorder
|
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 {
|
HTextField {
|
||||||
id: filterField
|
id: filterField
|
||||||
|
objectName: "memberFilterField"
|
||||||
placeholderText: qsTr("Filter members")
|
placeholderText: qsTr("Filter members")
|
||||||
backgroundColor: theme.chat.roomPane.filterMembers.background
|
backgroundColor: theme.chat.roomPane.filterMembers.background
|
||||||
bordered: false
|
bordered: false
|
||||||
|
|
|
@ -22,18 +22,11 @@ HRowLayout {
|
||||||
|
|
||||||
HTextField {
|
HTextField {
|
||||||
id: filterField
|
id: filterField
|
||||||
|
objectName: "roomFilterField"
|
||||||
placeholderText: qsTr("Filter rooms")
|
placeholderText: qsTr("Filter rooms")
|
||||||
backgroundColor: theme.mainPane.filterRooms.background
|
backgroundColor: theme.mainPane.filterRooms.background
|
||||||
bordered: false
|
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.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user