update: qt6,qml,frontends (2 files)

This commit is contained in:
2025-12-26 06:46:48 +00:00
parent 4e08f35b2f
commit ff08daeb3d
2 changed files with 144 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import "MaterialPalette.qml" as MaterialPalette
Rectangle {
id: alert
property alias title: titleText.text
property alias message: messageText.text
property string severity: "info"
property bool dismissible: false
signal dismissed()
radius: 12
color: severity === "success" ? MaterialPalette.primaryContainer :
severity === "error" ? MaterialPalette.error :
severity === "warning" ? MaterialPalette.secondaryContainer :
MaterialPalette.surfaceVariant
border.color: MaterialPalette.outline
border.width: 1
padding: 18
implicitHeight: content.implicitHeight + 12
RowLayout {
id: content
anchors.fill: parent
spacing: 12
Rectangle {
width: 28
height: 28
radius: 14
color: severity === "success" ? MaterialPalette.primary :
severity === "error" ? MaterialPalette.error :
severity === "warning" ? MaterialPalette.secondary : MaterialPalette.primary
Text {
anchors.centerIn: parent
text: severity === "success" ? "✓" : severity === "error" ? "!" : severity === "warning" ? "!" : ""
color: "#fff"
font.pixelSize: 16
font.bold: true
}
}
ColumnLayout {
spacing: 4
Text {
id: titleText
font.pixelSize: 16
font.bold: true
color: MaterialPalette.onSurface
}
Text {
id: messageText
font.pixelSize: 14
color: MaterialPalette.onSurface
wrapMode: Text.Wrap
}
}
Item {
Layout.fillWidth: true
}
Button {
visible: dismissible
text: "Close"
font.pixelSize: 12
background: Rectangle {
color: "transparent"
}
onClicked: alert.dismissed()
}
}
}

View File

@@ -0,0 +1,69 @@
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import "MaterialPalette.qml" as MaterialPalette
Dialog {
id: dialog
modal: true
focus: true
property alias title: titleText.text
property alias description: descriptionText.text
signal actionTriggered(string id)
contentItem: Rectangle {
color: MaterialPalette.surface
radius: 16
border.color: MaterialPalette.outline
border.width: 1
width: 480
ColumnLayout {
anchors.fill: parent
anchors.margins: 24
spacing: 12
RowLayout {
spacing: 12
Text {
id: titleText
font.pixelSize: 20
font.bold: true
color: MaterialPalette.onSurface
}
Item { Layout.fillWidth: true }
Button {
text: "Close"
onClicked: dialog.close()
background: Rectangle {
color: "transparent"
}
}
}
Text {
id: descriptionText
font.pixelSize: 14
color: MaterialPalette.onSurface
wrapMode: Text.WordWrap
}
Item {
Layout.fillHeight: true
}
RowLayout {
id: actionsRow
spacing: 10
Layout.alignment: Qt.AlignRight
default property alias buttons: buttonsLoader.data
Loader {
id: buttonsLoader
asynchronous: true
}
}
}
}
}