add simple internal notification popup,
refactor MessageDialog
This commit is contained in:
61
electrum/gui/qml/components/MessageDialog.qml
Normal file
61
electrum/gui/qml/components/MessageDialog.qml
Normal file
@@ -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
Normal file
57
electrum/gui/qml/components/NotificationPopup.qml
Normal file
@@ -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()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -169,62 +169,13 @@ ApplicationWindow
|
|||||||
property alias messageDialog: _messageDialog
|
property alias messageDialog: _messageDialog
|
||||||
Component {
|
Component {
|
||||||
id: _messageDialog
|
id: _messageDialog
|
||||||
Dialog {
|
MessageDialog {}
|
||||||
id: dialog
|
}
|
||||||
title: qsTr("Message")
|
|
||||||
|
|
||||||
property bool yesno: false
|
property alias notificationPopup: _notificationPopup
|
||||||
property alias text: message.text
|
Component {
|
||||||
|
id: _notificationPopup
|
||||||
signal yesClicked
|
NotificationPopup {}
|
||||||
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()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
|
|||||||
Reference in New Issue
Block a user