Browse Source

qml: add HelpDialog and HelpButton for showing additional info

master
Sander van Grieken 2 years ago
parent
commit
b0227c7e03
No known key found for this signature in database
GPG Key ID: 9BCF8209EA402EBA
  1. 20
      electrum/gui/qml/components/controls/HelpButton.qml
  2. 60
      electrum/gui/qml/components/controls/HelpDialog.qml
  3. 8
      electrum/gui/qml/components/main.qml

20
electrum/gui/qml/components/controls/HelpButton.qml

@ -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

@ -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'
}
}
}
}
}

8
electrum/gui/qml/components/main.qml

@ -361,6 +361,14 @@ ApplicationWindow
}
}
property alias helpDialog: _helpDialog
Component {
id: _helpDialog
HelpDialog {
onClosed: destroy()
}
}
property alias passwordDialog: _passwordDialog
Component {
id: _passwordDialog

Loading…
Cancel
Save