Files
metabuilder/qml/MetaBuilder/LuaPropertiesPanel.qml
johndoe6345789 8616221b01 refactor(qt6): more components under 100 LOC — ThemeColorField, CTransferForm, SchemaFieldRow, etc
5 components split under 100:
- ThemeColorTokens (145→71): ThemeColorField extracted
- CTransferTab (144→92): CTransferForm extracted
- CConnectionTest (135→68): CServiceConnectionRow extracted
- CDataTable (134→94): CTableEmptyState extracted
- SchemaFieldsTable (129→86): SchemaFieldRow extracted

5 left at 128-143 — no clean 30+ line seams remaining.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 14:59:55 +00:00

89 lines
2.7 KiB
QML

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QmlComponents 1.0
Rectangle {
id: propsPanel
Layout.preferredWidth: 260
Layout.fillHeight: true
color: Theme.paper
border.color: Theme.border
border.width: 1
property string scriptName: ""
property string scriptDescription: ""
property string returnType: ""
property var params: []
property string currentCode: ""
signal nameChanged(string name)
signal descriptionChanged(string desc)
signal returnTypeChanged(string rt)
signal paramAdded()
ScrollView {
anchors.fill: parent
clip: true
ColumnLayout {
width: parent.width
spacing: 12
Item { Layout.preferredHeight: 4 }
ColumnLayout {
Layout.leftMargin: 14
Layout.rightMargin: 14
spacing: 12
CText { variant: "h4"; text: "Properties" }
CDivider { Layout.fillWidth: true }
CTextField { Layout.fillWidth: true; label: "SCRIPT NAME"; text: scriptName; onTextChanged: nameChanged(text) }
CTextField { Layout.fillWidth: true; label: "DESCRIPTION"; text: scriptDescription; onTextChanged: descriptionChanged(text) }
CTextField { Layout.fillWidth: true; label: "RETURN TYPE"; text: returnType; onTextChanged: returnTypeChanged(text) }
CDivider { Layout.fillWidth: true }
FlexRow {
Layout.fillWidth: true
CText { variant: "h4"; text: "Parameters" }
Item { Layout.fillWidth: true }
CBadge { text: params.length.toString() }
}
// Parameter list
Repeater {
model: params.length
delegate: ColumnLayout {
Layout.fillWidth: true
spacing: 4
FlexRow {
Layout.fillWidth: true
spacing: 6
CChip { text: params[index].type }
CText { variant: "body2"; text: params[index].name }
}
CDivider { Layout.fillWidth: true }
}
}
CButton {
text: "Add Parameter"
variant: "ghost"
Layout.fillWidth: true
onClicked: paramAdded()
}
LuaScriptInfoSection { currentCode: propsPanel.currentCode }
}
Item { Layout.preferredHeight: 8 }
}
}
}