57 lines
1.2 KiB
QML
57 lines
1.2 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import qs.Commons
|
|
import qs.Widgets
|
|
import qs.Services
|
|
|
|
// Input and button row
|
|
RowLayout {
|
|
id: root
|
|
|
|
// Public properties
|
|
property string label: ""
|
|
property string description: ""
|
|
property string placeholderText: ""
|
|
property string text: ""
|
|
property string actionButtonText: "Test"
|
|
property string actionButtonIcon: "media-play"
|
|
property bool actionButtonEnabled: text !== ""
|
|
|
|
// Signals
|
|
signal editingFinished
|
|
signal actionClicked
|
|
|
|
// Internal properties
|
|
property real scaling: 1.0
|
|
spacing: Style.marginM * scaling
|
|
|
|
NTextInput {
|
|
id: textInput
|
|
label: root.label
|
|
description: root.description
|
|
placeholderText: root.placeholderText
|
|
text: root.text
|
|
onEditingFinished: {
|
|
root.text = text
|
|
root.editingFinished()
|
|
}
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
NButton {
|
|
Layout.fillWidth: false
|
|
Layout.alignment: Qt.AlignBottom
|
|
|
|
text: root.actionButtonText
|
|
icon: root.actionButtonIcon
|
|
backgroundColor: Color.mSecondary
|
|
textColor: Color.mOnSecondary
|
|
hoverColor: Color.mTertiary
|
|
pressColor: Color.mPrimary
|
|
enabled: root.actionButtonEnabled
|
|
|
|
onClicked: {
|
|
root.actionClicked()
|
|
}
|
|
}
|
|
}
|