Files
archpack/qml/components/console/ConsolePanel.qml
2026-11-14 16:29:49 +03:00

106 lines
2.1 KiB
QML

pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Layouts
Rectangle {
id: root
anchors.left: parent.left
anchors.right: parent.right
visible: height > 0
clip: true
color: Theme.color8
height: root.consoleOpen ? root.consoleHeight : 0
opacity: root.consoleOpen ? 1 : 0
z: 40
property string title: ""
property string status: ""
property var consoleLogData: ""
property int consoleHeight: 320
property bool consoleOpen: false
Behavior on height { NumberAnimation { duration: 250; easing.type: Easing.InOutQuad } }
Behavior on opacity { NumberAnimation { duration: 180 } }
MouseArea {
anchors.fill: parent
}
Rectangle {
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: Theme.color5
}
ColumnLayout {
anchors.fill: parent
anchors.margins: 12
spacing: 8
RowLayout {
Layout.fillWidth: true
spacing: 6
Text {
text: root.title
color: Theme.color2
font.pixelSize: 13
font.bold: true
}
Item { Layout.fillWidth: true }
Text {
text: root.status
color: Theme.color7
font.pixelSize: 11
}
}
Rectangle {
Layout.fillWidth: true
implicitHeight: 1
color: Theme.color5
}
Item {
Layout.fillWidth: true
Layout.fillHeight: true
// ListView {
// id: logView
// clip: true
// spacing: 2
// model: root.consoleLogData
// onModelChanged: positionViewAtEnd()
// onCountChanged: positionViewAtEnd()
//
// ScrollBar.vertical: ScrollBar {
// policy: ScrollBar.AsNeeded
// width: 6
// }
//
// delegate: Text {
// width: logView.width
// text: modelData
// color: "#a6adc8"
// font.family: "monospace"
// font.pixelSize: 11
// wrapMode: Text.WrapAnywhere
// }
// }
Text {
anchors.centerIn: parent
text: "Логи отсутствуют"
color: "#585b70"
font.pixelSize: 12
visible: root.consoleLogData.length === 0
}
}
}
}