Browse Source

add simple internal notification popup,

refactor MessageDialog
patch-4
Sander van Grieken 3 years ago
parent
commit
64745ece10
  1. 61
      electrum/gui/qml/components/MessageDialog.qml
  2. 57
      electrum/gui/qml/components/NotificationPopup.qml
  3. 59
      electrum/gui/qml/components/main.qml

61
electrum/gui/qml/components/MessageDialog.qml

@ -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()
}
}
}
}
}

57
electrum/gui/qml/components/NotificationPopup.qml

@ -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()
}
}

59
electrum/gui/qml/components/main.qml

@ -169,62 +169,13 @@ ApplicationWindow
property alias messageDialog: _messageDialog
Component {
id: _messageDialog
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"
MessageDialog {}
}
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()
}
}
}
}
}
property alias notificationPopup: _notificationPopup
Component {
id: _notificationPopup
NotificationPopup {}
}
Component.onCompleted: {

Loading…
Cancel
Save