From 8c001883485f035c07e82e3e330078aecc855d48 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Thu, 9 Feb 2023 10:52:09 +0100 Subject: [PATCH] TxEditor: set locktime --- electrum/gui/qt/confirm_tx_dialog.py | 9 +++++++++ electrum/gui/qt/locktimeedit.py | 9 ++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/electrum/gui/qt/confirm_tx_dialog.py b/electrum/gui/qt/confirm_tx_dialog.py index 164595f49..98ab9f50f 100644 --- a/electrum/gui/qt/confirm_tx_dialog.py +++ b/electrum/gui/qt/confirm_tx_dialog.py @@ -77,6 +77,7 @@ class TxEditor(WindowModalDialog): self.is_preview = False self.locktime_e = LockTimeEdit(self) + self.locktime_e.valueEdited.connect(self._trigger_update) self.locktime_label = QLabel(_("LockTime") + ": ") self.io_widget = TxInOutWidget(self.main_window, self.wallet) self.create_fee_controls() @@ -109,6 +110,7 @@ class TxEditor(WindowModalDialog): def timer_actions(self): if self.needs_update: self.update_tx() + self.set_locktime() self.update() self.needs_update = False @@ -559,6 +561,13 @@ class ConfirmTxDialog(TxEditor): raise self.tx.set_rbf(True) + def set_locktime(self): + if not self.tx: + return + locktime = self.locktime_e.get_locktime() + if locktime is not None: + self.tx.locktime = locktime + def have_enough_funds_assuming_zero_fees(self) -> bool: # called in send_tab.py try: diff --git a/electrum/gui/qt/locktimeedit.py b/electrum/gui/qt/locktimeedit.py index d8dc2b1ad..2ac30b709 100644 --- a/electrum/gui/qt/locktimeedit.py +++ b/electrum/gui/qt/locktimeedit.py @@ -6,7 +6,7 @@ import time from datetime import datetime from typing import Optional, Any -from PyQt5.QtCore import Qt, QDateTime +from PyQt5.QtCore import Qt, QDateTime, pyqtSignal from PyQt5.QtGui import QPalette, QPainter from PyQt5.QtWidgets import (QWidget, QLineEdit, QStyle, QStyleOptionFrame, QComboBox, QHBoxLayout, QDateTimeEdit) @@ -19,6 +19,8 @@ from .util import char_width_in_lineedit, ColorScheme class LockTimeEdit(QWidget): + valueEdited = pyqtSignal() + def __init__(self, parent=None): QWidget.__init__(self, parent) @@ -63,6 +65,11 @@ class LockTimeEdit(QWidget): hbox.addWidget(w) hbox.addStretch(1) + self.locktime_height_e.textEdited.connect(self.valueEdited.emit) + self.locktime_raw_e.textEdited.connect(self.valueEdited.emit) + self.locktime_date_e.dateTimeChanged.connect(self.valueEdited.emit) + self.combo.currentIndexChanged.connect(self.valueEdited.emit) + def get_locktime(self) -> Optional[int]: return self.editor.get_locktime()