Files
qt-creator/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/TextInputSection.qml

261 lines
7.9 KiB
QML
Raw Normal View History

// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15
import QtQuick.Layouts 1.15
import HelperWidgets 2.0
import StudioTheme 1.0 as StudioTheme
Section {
id: textInputSection
anchors.left: parent.left
anchors.right: parent.right
caption: qsTr("Text Input")
property bool isTextInput: false
SectionLayout {
PropertyLabel {
text: qsTr("Selection color")
tooltip: qsTr("Sets the background color of selected text.")
}
ColorEditor {
backendValue: backendValues.selectionColor
supportGradient: false
}
PropertyLabel {
text: qsTr("Selected text color")
tooltip: qsTr("Sets the color of selected text.")
}
ColorEditor {
backendValue: backendValues.selectedTextColor
supportGradient: false
}
PropertyLabel {
text: qsTr("Selection mode")
tooltip: qsTr("Sets the way text is selected with the mouse.")
}
SecondColumnLayout {
ComboBox {
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
width: implicitWidth
backendValue: backendValues.mouseSelectionMode
scope: "TextInput"
model: ["SelectCharacters", "SelectWords"]
}
ExpandingSpacer {}
}
PropertyLabel {
visible: textInputSection.isTextInput
text: qsTr("Input mask")
tooltip: qsTr("Sets the allowed characters.")
}
SecondColumnLayout {
visible: textInputSection.isTextInput
LineEdit {
backendValue: backendValues.inputMask
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
width: implicitWidth
showTranslateCheckBox: false
}
ExpandingSpacer {}
}
PropertyLabel {
visible: textInputSection.isTextInput
text: qsTr("Echo mode")
tooltip: qsTr("Sets the visibility mode.")
}
SecondColumnLayout {
visible: textInputSection.isTextInput
ComboBox {
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
width: implicitWidth
backendValue: backendValues.echoMode
scope: "TextInput"
model: ["Normal", "Password", "PasswordEchoOnEdit", "NoEcho"]
}
ExpandingSpacer {}
}
PropertyLabel {
visible: textInputSection.isTextInput
text: qsTr("Password character")
tooltip: qsTr("Sets which character to display when passwords are entered.")
}
SecondColumnLayout {
visible: textInputSection.isTextInput
LineEdit {
backendValue: backendValues.passwordCharacter
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
width: implicitWidth
showTranslateCheckBox: false
}
ExpandingSpacer {}
}
PropertyLabel {
visible: !textInputSection.isTextInput
text: qsTr("Tab stop distance")
tooltip: qsTr("Default distance between tab stops in device units.")
}
SecondColumnLayout {
visible: !textInputSection.isTextInput
SpinBox {
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
backendValue: backendValues.tabStopDistance
maximumValue: 200
minimumValue: 0
}
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
ControlLabel { text: "px" }
ExpandingSpacer {}
}
PropertyLabel {
visible: !textInputSection.isTextInput
text: qsTr("Text margin")
tooltip: qsTr("Margin around the text in the Text Edit in pixels.")
}
SecondColumnLayout {
visible: !textInputSection.isTextInput
SpinBox {
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
backendValue: backendValues.textMargin
maximumValue: 200
minimumValue: -200
}
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
ControlLabel { text: "px" }
ExpandingSpacer {}
}
PropertyLabel {
visible: textInputSection.isTextInput
text: qsTr("Maximum length")
tooltip: qsTr("Sets the maximum length of the text.")
}
SecondColumnLayout {
visible: textInputSection.isTextInput
SpinBox {
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
backendValue: backendValues.maximumLength
minimumValue: 0
maximumValue: 32767
}
ExpandingSpacer {}
}
component FlagItem : SecondColumnLayout {
property alias backendValue: checkBox.backendValue
CheckBox {
id: checkBox
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
text: (checkBox.backendValue === undefined) ? "" : checkBox.backendValue.valueToString
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Read only")
tooltip: qsTr("Toggles if the text allows edits.")
}
FlagItem { backendValue: backendValues.readOnly }
PropertyLabel {
text: qsTr("Cursor visible")
tooltip: qsTr("Toggles if the cursor is visible.")
}
FlagItem { backendValue: backendValues.cursorVisible }
PropertyLabel {
text: qsTr("Focus on press")
tooltip: qsTr("Toggles if the text is focused on mouse click.")
}
FlagItem { backendValue: backendValues.activeFocusOnPress }
PropertyLabel {
visible: textInputSection.isTextInput
text: qsTr("Auto scroll")
tooltip: qsTr("Toggles if the text scrolls when it exceeds its boundary.")
}
FlagItem {
visible: textInputSection.isTextInput
backendValue: backendValues.autoScroll
}
PropertyLabel {
text: qsTr("Overwrite mode")
tooltip: qsTr("Toggles if overwriting text is allowed.")
}
FlagItem { backendValue: backendValues.overwriteMode }
PropertyLabel {
text: qsTr("Persistent selection")
tooltip: qsTr("Toggles if the text should remain selected after moving the focus elsewhere.")
}
FlagItem { backendValue: backendValues.persistentSelection }
PropertyLabel {
text: qsTr("Select by mouse")
tooltip: qsTr("Toggles if the text can be selected with the mouse.")
}
FlagItem { backendValue: backendValues.selectByMouse }
PropertyLabel {
visible: !textInputSection.isTextInput
text: qsTr("Select by keyboard")
}
FlagItem {
visible: !textInputSection.isTextInput
backendValue: backendValues.selectByKeyboard
}
}
}