mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
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>
89 lines
2.7 KiB
QML
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 }
|
|
}
|
|
}
|
|
}
|