qml: add HelpDialog and HelpButton for showing additional info
This commit is contained in:
20
electrum/gui/qml/components/controls/HelpButton.qml
Normal file
20
electrum/gui/qml/components/controls/HelpButton.qml
Normal file
@@ -0,0 +1,20 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Controls.Material
|
||||
|
||||
ToolButton {
|
||||
id: root
|
||||
property string heading
|
||||
property string helptext
|
||||
|
||||
icon.source: Qt.resolvedUrl('../../../icons/info.png')
|
||||
icon.color: 'transparent'
|
||||
onClicked: {
|
||||
var dialog = app.helpDialog.createObject(app, {
|
||||
heading: root.heading,
|
||||
text: root.helptext
|
||||
})
|
||||
dialog.open()
|
||||
}
|
||||
}
|
||||
60
electrum/gui/qml/components/controls/HelpDialog.qml
Normal file
60
electrum/gui/qml/components/controls/HelpDialog.qml
Normal file
@@ -0,0 +1,60 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Controls.Material
|
||||
|
||||
ElDialog {
|
||||
id: dialog
|
||||
|
||||
header: Item { }
|
||||
|
||||
property string text
|
||||
property string heading
|
||||
|
||||
z: 1 // raise z so it also covers dialogs using overlay as parent
|
||||
|
||||
anchors.centerIn: parent
|
||||
|
||||
padding: 0
|
||||
|
||||
width: rootPane.width
|
||||
|
||||
Overlay.modal: Rectangle {
|
||||
color: "#55000000"
|
||||
}
|
||||
|
||||
Pane {
|
||||
id: rootPane
|
||||
width: rootLayout.width + leftPadding + rightPadding
|
||||
padding: constants.paddingLarge
|
||||
|
||||
ColumnLayout {
|
||||
id: rootLayout
|
||||
width: dialog.parent.width * 2/3
|
||||
|
||||
RowLayout {
|
||||
Image {
|
||||
source: Qt.resolvedUrl('../../../icons/info.png')
|
||||
Layout.preferredWidth: constants.iconSizeSmall
|
||||
Layout.preferredHeight: constants.iconSizeSmall
|
||||
}
|
||||
Label {
|
||||
text: dialog.heading
|
||||
font.underline: true
|
||||
font.italic: true
|
||||
}
|
||||
}
|
||||
TextArea {
|
||||
id: message
|
||||
Layout.fillWidth: true
|
||||
readOnly: true
|
||||
text: dialog.text
|
||||
wrapMode: TextInput.WordWrap
|
||||
textFormat: TextEdit.RichText
|
||||
background: Rectangle {
|
||||
color: 'transparent'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -361,6 +361,14 @@ ApplicationWindow
|
||||
}
|
||||
}
|
||||
|
||||
property alias helpDialog: _helpDialog
|
||||
Component {
|
||||
id: _helpDialog
|
||||
HelpDialog {
|
||||
onClosed: destroy()
|
||||
}
|
||||
}
|
||||
|
||||
property alias passwordDialog: _passwordDialog
|
||||
Component {
|
||||
id: _passwordDialog
|
||||
|
||||
Reference in New Issue
Block a user