From a52c7153045b29e58c6007c3da194197f85437d9 Mon Sep 17 00:00:00 2001 From: Sander van Grieken Date: Mon, 4 Sep 2023 15:02:40 +0200 Subject: [PATCH] qml: show experimental warning before opening first lightning channel. closes #8564 --- electrum/gui/qml/components/Channels.qml | 18 ++++++++++++++++-- electrum/gui/qml/qechannellistmodel.py | 5 +++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/electrum/gui/qml/components/Channels.qml b/electrum/gui/qml/components/Channels.qml index 5609ff324..522c2229b 100644 --- a/electrum/gui/qml/components/Channels.qml +++ b/electrum/gui/qml/components/Channels.qml @@ -136,8 +136,22 @@ Pane { enabled: Daemon.currentWallet.confirmedBalance.satsInt > 0 text: qsTr('Open Channel') onClicked: { - var dialog = openChannelDialog.createObject(root) - dialog.open() + if (Daemon.currentWallet.channelModel.count == 0) { + var txt = Daemon.currentWallet.channelModel.lightningWarningMessage() + '\n\n' + + qsTr('Do you want to create your first channel?') + var confirmdialog = app.messageDialog.createObject(root, { + text: txt, + yesno: true + }) + confirmdialog.accepted.connect(function () { + var dialog = openChannelDialog.createObject(root) + dialog.open() + }) + confirmdialog.open() + } else { + var dialog = openChannelDialog.createObject(root) + dialog.open() + } } icon.source: '../../icons/lightning.png' } diff --git a/electrum/gui/qml/qechannellistmodel.py b/electrum/gui/qml/qechannellistmodel.py index 1036a7f31..d9d83b1af 100644 --- a/electrum/gui/qml/qechannellistmodel.py +++ b/electrum/gui/qml/qechannellistmodel.py @@ -5,11 +5,13 @@ from electrum.lnchannel import ChannelState from electrum.lnutil import LOCAL, REMOTE from electrum.logging import get_logger from electrum.util import Satoshis +from electrum.gui import messages from .qetypes import QEAmount from .util import QtEventListener, qt_event_listener from .qemodelfilter import QEFilterProxyModel + class QEChannelListModel(QAbstractListModel, QtEventListener): _logger = get_logger(__name__) @@ -195,3 +197,6 @@ class QEChannelListModel(QAbstractListModel, QtEventListener): self._fm_nobackups = self.filterModel('is_backup', False) return self._fm_nobackups + @pyqtSlot(result=str) + def lightningWarningMessage(self): + return messages.MSG_LIGHTNING_WARNING