qt/fee_slider: add type hints, small API change, qt parenting
This commit is contained in:
@@ -182,7 +182,7 @@ class TxEditor(WindowModalDialog):
|
||||
self.feerate_e.textChanged.connect(self.entry_changed)
|
||||
|
||||
self.fee_target = QLabel('')
|
||||
self.fee_slider = FeeSlider(self, self.fee_policy, self.fee_slider_callback)
|
||||
self.fee_slider = FeeSlider(parent=self, network=self.network, fee_policy=self.fee_policy, callback=self.fee_slider_callback)
|
||||
self.fee_combo = FeeComboBox(self.fee_slider)
|
||||
self.fee_combo.setFocusPolicy(Qt.FocusPolicy.NoFocus)
|
||||
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
import threading
|
||||
from typing import Callable, Optional
|
||||
|
||||
from PyQt6.QtGui import QCursor
|
||||
from PyQt6.QtCore import Qt
|
||||
from PyQt6.QtWidgets import QSlider, QToolTip, QComboBox
|
||||
from PyQt6.QtWidgets import QSlider, QToolTip, QComboBox, QWidget
|
||||
|
||||
from electrum.i18n import _
|
||||
from electrum.fee_policy import FeeMethod
|
||||
from electrum.fee_policy import FeeMethod, FeePolicy
|
||||
from electrum.network import Network
|
||||
|
||||
|
||||
class FeeComboBox(QComboBox):
|
||||
|
||||
def __init__(self, fee_slider):
|
||||
def __init__(self, fee_slider: 'FeeSlider'):
|
||||
QComboBox.__init__(self)
|
||||
self.fee_slider = fee_slider
|
||||
self.addItems([x.name_for_GUI() for x in FeeMethod.slider_values()])
|
||||
@@ -32,10 +34,16 @@ class FeeComboBox(QComboBox):
|
||||
|
||||
class FeeSlider(QSlider):
|
||||
|
||||
def __init__(self, window, fee_policy, callback):
|
||||
QSlider.__init__(self, Qt.Orientation.Horizontal)
|
||||
self.window = window
|
||||
self.network = window.network
|
||||
def __init__(
|
||||
self,
|
||||
*,
|
||||
parent: Optional[QWidget],
|
||||
network: Network,
|
||||
fee_policy: FeePolicy,
|
||||
callback: Callable[[Optional[int]], None],
|
||||
):
|
||||
QSlider.__init__(self, Qt.Orientation.Horizontal, parent=parent)
|
||||
self.network = network
|
||||
self.callback = callback
|
||||
self.fee_policy = fee_policy
|
||||
self.lock = threading.RLock()
|
||||
@@ -44,10 +52,10 @@ class FeeSlider(QSlider):
|
||||
self._active = True
|
||||
|
||||
@property
|
||||
def dyn(self):
|
||||
def dyn(self) -> bool:
|
||||
return self.fee_policy.use_dynamic_estimates
|
||||
|
||||
def get_policy(self):
|
||||
def get_policy(self) -> FeePolicy:
|
||||
return self.fee_policy
|
||||
|
||||
def moved(self, pos):
|
||||
|
||||
@@ -2704,7 +2704,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener):
|
||||
def on_rate(fee_rate):
|
||||
fee = get_child_fee_from_total_feerate(fee_rate)
|
||||
fee_e.setAmount(fee)
|
||||
fee_slider = FeeSlider(self, fee_policy, on_rate)
|
||||
fee_slider = FeeSlider(parent=self, network=self.network, fee_policy=fee_policy, callback=on_rate)
|
||||
fee_combo = FeeComboBox(fee_slider)
|
||||
fee_slider.update()
|
||||
grid.addWidget(fee_slider, 4, 1)
|
||||
|
||||
@@ -78,7 +78,7 @@ class SwapDialog(WindowModalDialog, QtEventListener):
|
||||
self.recv_amount_e.setEnabled(recv_amount_sat is None)
|
||||
self.max_button.setEnabled(recv_amount_sat is None)
|
||||
self.fee_policy = FeePolicy(self.config.FEE_POLICY)
|
||||
fee_slider = FeeSlider(self.window, self.fee_policy, self.fee_slider_callback)
|
||||
fee_slider = FeeSlider(parent=self, network=self.network, fee_policy=self.fee_policy, callback=self.fee_slider_callback)
|
||||
fee_combo = FeeComboBox(fee_slider)
|
||||
fee_slider.update()
|
||||
self.fee_label = QLabel()
|
||||
|
||||
Reference in New Issue
Block a user