Sander van Grieken
3 years ago
3 changed files with 124 additions and 55 deletions
@ -0,0 +1,61 @@ |
|||||
|
import QtQuick 2.6 |
||||
|
import QtQuick.Layouts 1.0 |
||||
|
import QtQuick.Controls 2.3 |
||||
|
import QtQuick.Controls.Material 2.0 |
||||
|
|
||||
|
Dialog { |
||||
|
id: dialog |
||||
|
title: qsTr("Message") |
||||
|
|
||||
|
property bool yesno: false |
||||
|
property alias text: message.text |
||||
|
|
||||
|
signal yesClicked |
||||
|
signal noClicked |
||||
|
|
||||
|
parent: Overlay.overlay |
||||
|
modal: true |
||||
|
x: (parent.width - width) / 2 |
||||
|
y: (parent.height - height) / 2 |
||||
|
Overlay.modal: Rectangle { |
||||
|
color: "#aa000000" |
||||
|
} |
||||
|
|
||||
|
ColumnLayout { |
||||
|
TextArea { |
||||
|
id: message |
||||
|
Layout.preferredWidth: Overlay.overlay.width *2/3 |
||||
|
readOnly: true |
||||
|
wrapMode: TextInput.WordWrap |
||||
|
//textFormat: TextEdit.RichText // existing translations not richtext yet |
||||
|
background: Rectangle { |
||||
|
color: 'transparent' |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
RowLayout { |
||||
|
Layout.alignment: Qt.AlignHCenter |
||||
|
Button { |
||||
|
text: qsTr('Ok') |
||||
|
visible: !yesno |
||||
|
onClicked: dialog.close() |
||||
|
} |
||||
|
Button { |
||||
|
text: qsTr('Yes') |
||||
|
visible: yesno |
||||
|
onClicked: { |
||||
|
yesClicked() |
||||
|
dialog.close() |
||||
|
} |
||||
|
} |
||||
|
Button { |
||||
|
text: qsTr('No') |
||||
|
visible: yesno |
||||
|
onClicked: { |
||||
|
noClicked() |
||||
|
dialog.close() |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,57 @@ |
|||||
|
import QtQuick 2.6 |
||||
|
import QtQuick.Layouts 1.0 |
||||
|
import QtQuick.Controls 2.3 |
||||
|
import QtQuick.Controls.Material 2.0 |
||||
|
|
||||
|
Rectangle { |
||||
|
id: root |
||||
|
|
||||
|
property alias text: textItem.text |
||||
|
|
||||
|
property bool hide: true |
||||
|
|
||||
|
color: Qt.lighter(Material.background, 1.5) |
||||
|
radius: constants.paddingXLarge |
||||
|
|
||||
|
width: root.parent.width * 2/3 |
||||
|
height: layout.height |
||||
|
x: (root.parent.width - width) / 2 |
||||
|
y: -height |
||||
|
|
||||
|
states: [ |
||||
|
State { |
||||
|
name: 'expanded'; when: !hide |
||||
|
PropertyChanges { target: root; y: 100 } |
||||
|
} |
||||
|
] |
||||
|
|
||||
|
transitions: [ |
||||
|
Transition { |
||||
|
from: ''; to: 'expanded'; reversible: true |
||||
|
NumberAnimation { properties: 'y'; duration: 300; easing.type: Easing.InOutQuad } |
||||
|
} |
||||
|
] |
||||
|
|
||||
|
RowLayout { |
||||
|
id: layout |
||||
|
width: parent.width |
||||
|
Text { |
||||
|
id: textItem |
||||
|
Layout.alignment: Qt.AlignHCenter |
||||
|
font.pixelSize: constants.fontSizeLarge |
||||
|
color: Material.foreground |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
Timer { |
||||
|
id: closetimer |
||||
|
interval: 5000 |
||||
|
repeat: false |
||||
|
onTriggered: hide = true |
||||
|
} |
||||
|
|
||||
|
Component.onCompleted: { |
||||
|
hide = false |
||||
|
closetimer.start() |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue