80 lines
2.9 KiB
QML
80 lines
2.9 KiB
QML
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
*
|
|
* Copyright (C) 2013 - 2024, nymea GmbH
|
|
* Copyright (C) 2024 - 2025, chargebyte austria GmbH
|
|
*
|
|
* This file is part of nymea-app-energy-overlay.
|
|
*
|
|
* nymea-app-energy-overlay is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* nymea-app-energy-overlay is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
* for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with nymea-app-energy-overlay. If not, see <https://www.gnu.org/licenses/>.
|
|
*
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
import QtQuick
|
|
import QtQuick.Templates as T
|
|
import QtQuick.Controls
|
|
import QtQuick.Controls.impl
|
|
import QtQuick.Controls.Material
|
|
import QtQuick.Controls.Material.impl
|
|
|
|
T.TextField {
|
|
id: control
|
|
|
|
implicitWidth: implicitBackgroundWidth + leftInset + rightInset
|
|
|| Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding
|
|
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
|
|
contentHeight + topPadding + bottomPadding,
|
|
placeholder.implicitHeight + topPadding + bottomPadding)
|
|
|
|
topPadding: 8
|
|
bottomPadding: 8
|
|
leftPadding: 4
|
|
rightPadding: 4
|
|
|
|
color: enabled ? Material.foreground : Material.hintTextColor
|
|
selectionColor: Material.accentColor
|
|
selectedTextColor: Material.primaryHighlightedTextColor
|
|
placeholderTextColor: Material.hintTextColor
|
|
verticalAlignment: TextInput.AlignVCenter
|
|
|
|
cursorDelegate: CursorDelegate { }
|
|
|
|
onEditingFinished: parent.forceActiveFocus()
|
|
|
|
PlaceholderText {
|
|
id: placeholder
|
|
x: control.leftPadding
|
|
y: control.topPadding
|
|
width: control.width - (control.leftPadding + control.rightPadding)
|
|
height: control.height - (control.topPadding + control.bottomPadding)
|
|
text: control.placeholderText
|
|
font: control.font
|
|
color: control.placeholderTextColor
|
|
verticalAlignment: control.verticalAlignment
|
|
elide: Text.ElideRight
|
|
renderType: control.renderType
|
|
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
|
|
}
|
|
|
|
background: Rectangle {
|
|
implicitWidth: 120
|
|
height: control.height
|
|
radius: 6
|
|
color: "transparent"
|
|
border.width: control.activeFocus ? 2 : 1
|
|
border.color: control.activeFocus ? control.Material.accentColor : Style.foregroundColor
|
|
}
|
|
}
|