commit c02e3621f352b670b7037e17e98ff064e08c922f
parent e20369bf94a2c2c8c22dd9472be3767e90c5774e
Author: Neil Booth <kyuupichan@gmail.com>
Date: Sun, 24 Jan 2016 20:57:34 +0900
Settings: improvements to dynamic fee slider
Fixes #1595
Diffstat:
1 file changed, 20 insertions(+), 8 deletions(-)
diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
@@ -2626,7 +2626,6 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
])
fee_label = HelpLabel(_('Transaction fee per kb') + ':', msg)
fee_e = BTCkBEdit(self.get_decimal_point)
- fee_e.setAmount(self.config.get('fee_per_kb', bitcoin.RECOMMENDED_FEE))
def on_fee(is_done):
if self.config.get('dynamic_fees'):
return
@@ -2637,15 +2636,22 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
fee_e.textEdited.connect(lambda: on_fee(False))
tx_widgets.append((fee_label, fee_e))
+ def slider_moved():
+ mins = timeout_slider.sliderPosition()
+ timeout_minutes.setText(_("%2d minutes") % mins)
+
dynfee_cb = QCheckBox(_('Dynamic fees'))
dynfee_cb.setChecked(self.config.get('dynamic_fees', False))
dynfee_cb.setToolTip(_("Use a fee per kB value recommended by the server."))
dynfee_sl = QSlider(Qt.Horizontal, self)
+ dynfee_sl.setRange(50, 150)
+ dynfee_sl.setTickInterval(10)
+ dynfee_sl.setTickPosition(QSlider.TicksBelow)
dynfee_sl.setValue(self.config.get('fee_factor', 50))
dynfee_sl.setToolTip("Min = 50%, Max = 150%")
- tx_widgets.append((dynfee_cb, None))
- multiplier_label = HelpLabel(_('Fee multiplier'), _("Multiply the recommended fee/kb value by a constant factor. Min = 50%, Max = 150%"))
- tx_widgets.append((multiplier_label, dynfee_sl))
+ multiplier_label = HelpLabel("", _("Multiply the recommended fee/kb value by a constant factor. Min = 50%, Max = 150%"))
+ tx_widgets.append((dynfee_cb, dynfee_sl))
+ tx_widgets.append((None, multiplier_label))
def update_feeperkb():
fee_e.setAmount(self.wallet.fee_per_kb(self.config))
@@ -2653,16 +2659,21 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
dynfee_sl.setEnabled(b)
multiplier_label.setEnabled(b)
fee_e.setEnabled(not b)
- def fee_factor_changed(b):
- self.config.set_key('fee_factor', b, False)
+ def slider_moved():
+ multiplier_label.setText(_('Fee multiplier: %3d%%')
+ % dynfee_sl.sliderPosition())
+ def slider_released():
+ self.config.set_key('fee_factor', dynfee_sl.sliderPosition(), False)
update_feeperkb()
def on_dynfee(x):
dynfee = x == Qt.Checked
self.config.set_key('dynamic_fees', dynfee)
update_feeperkb()
dynfee_cb.stateChanged.connect(on_dynfee)
- dynfee_sl.valueChanged[int].connect(fee_factor_changed)
+ dynfee_sl.valueChanged.connect(slider_moved)
+ dynfee_sl.sliderReleased.connect(slider_released)
update_feeperkb()
+ slider_moved()
msg = _('OpenAlias record, used to receive coins and to sign payment requests.') + '\n\n'\
+ _('The following alias providers are available:') + '\n'\
@@ -2849,7 +2860,8 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
for a,b in widgets:
i = grid.rowCount()
if b:
- grid.addWidget(a, i, 0)
+ if a:
+ grid.addWidget(a, i, 0)
grid.addWidget(b, i, 1)
else:
grid.addWidget(a, i, 0, 1, 2)