Newer
Older
import QtQuick 2.3
import QtQuick.Controls 1.2
import QGroundControl.Palette 1.0
import QGroundControl.ScreenTools 1.0
id: root
textColor: qgcPal.textFieldText
implicitHeight: ScreenTools.implicitTextFieldHeight
activeFocusOnPress: true
property bool showUnits: false
property bool showHelp: false
property string unitsLabel: ""
property string extraUnitsLabel: ""
signal helpClicked
property real _helpLayoutWidth: 0
Component.onCompleted: selectAllIfActiveFocus()
onActiveFocusChanged: selectAllIfActiveFocus()
QGCPalette { id: qgcPal; colorGroupEnabled: enabled }
onEditingFinished: {
if (ScreenTools.isMobile) {
// Toss focus on mobile after Done on virtual keyboard. Prevent strange interactions.
focus = false
}
}
function selectAllIfActiveFocus() {
if (activeFocus) {
selectAll()
}
}
id: unitsLabelWidthGenerator
text: unitsLabel
width: contentWidth + parent.__contentHeight * 0.666
font.pointSize: ScreenTools.defaultFontPointSize
font.family: ScreenTools.normalFontFamily
renderType: ScreenTools.isWindows ? Text.QtRendering : tfs.renderType // This works around font rendering problems on windows
property bool showHelp: control.showHelp && control.activeFocus
anchors.fill: parent
anchors.bottomMargin: -1
color: "#44ffffff"
border.color: root.activeFocus ? "#47b" : "#999"
RowLayout {
id: unitsHelpLayout
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.rightMargin: backgroundItem.showHelp ? 0 : control.__contentHeight * 0.333
anchors.right: parent.right
spacing: ScreenTools.defaultFontPixelWidth / 4
Component.onCompleted: control._helpLayoutWidth = unitsHelpLayout.width
onWidthChanged: control._helpLayoutWidth = unitsHelpLayout.width
Text {
Layout.alignment: Qt.AlignVCenter
text: control.unitsLabel
font.pointSize: backgroundItem.showHelp ? ScreenTools.smallFontPointSize : ScreenTools.defaultFontPointSize
font.family: ScreenTools.normalFontFamily
antialiasing: true
color: control.textColor
visible: control.showUnits && text !== ""
}
Text {
Layout.alignment: Qt.AlignVCenter
text: control.extraUnitsLabel
font.pointSize: ScreenTools.smallFontPointSize
font.family: ScreenTools.normalFontFamily
antialiasing: true
color: control.textColor
visible: control.showUnits && text !== ""
Layout.leftMargin: 0
Layout.rightMargin: 1
color: control.textColor
visible: backgroundItem.showHelp
QGCLabel {
id: helpLabel
anchors.centerIn: parent
color: qgcPal.textField
text: qsTr("?")
anchors.margins: ScreenTools.isMobile ? -(ScreenTools.defaultFontPixelWidth * 0.66) : 0 // Larger touch area for mobile
anchors.fill: unitsHelpLayout
enabled: control.activeFocus
onClicked: root.helpClicked()
padding.right: control._helpLayoutWidth //control.showUnits ? unitsLabelWidthGenerator.width : control.__contentHeight * 0.333