noctalia-shell/Widgets/NInputAction.qml
2025-09-09 17:02:57 -04:00

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()
}
}
}