1
0

fix #2614: define non-linear scale for static fees

This commit is contained in:
ThomasV
2017-10-21 11:15:59 +02:00
parent 1d2253f0d8
commit 198cc9d737
4 changed files with 16 additions and 24 deletions

View File

@@ -58,7 +58,6 @@ class FeeDialog(Factory.Popup):
Factory.Popup.__init__(self)
self.app = app
self.config = config
self.fee_step = self.config.max_fee_rate() / 10
self.fee_rate = self.config.fee_per_kb()
self.callback = callback
self.dynfees = self.config.get('dynamic_fees', True)
@@ -77,9 +76,9 @@ class FeeDialog(Factory.Popup):
slider.step = 1
slider.value = self.config.get('fee_level', 2)
else:
slider.range = (1, 10)
slider.range = (0, 9)
slider.step = 1
slider.value = min(self.fee_rate / self.fee_step, 10)
slider.value = self.config.static_fee_index(self.fee_rate)
def get_fee_text(self, value):
if self.ids.dynfees.active:
@@ -88,7 +87,7 @@ class FeeDialog(Factory.Popup):
dynfee = self.config.dynfee(value)
tooltip += '\n' + (self.app.format_amount_and_units(dynfee)) + '/kB'
else:
fee_rate = value * self.fee_step
fee_rate = self.config.static_fee(value)
tooltip = self.app.format_amount_and_units(fee_rate) + '/kB'
if self.config.has_fee_estimates():
i = self.config.reverse_dynfee(fee_rate)
@@ -101,7 +100,7 @@ class FeeDialog(Factory.Popup):
if self.dynfees:
self.config.set_key('fee_level', value, True)
else:
self.config.set_key('fee_per_kb', value * self.fee_step, True)
self.config.set_key('fee_per_kb', self.config.static_fee(value), True)
self.callback()
def on_slider(self, value):

View File

@@ -28,7 +28,7 @@ class FeeSlider(QSlider):
def moved(self, pos):
with self.lock:
fee_rate = self.config.dynfee(pos) if self.dyn else pos * self.fee_step
fee_rate = self.config.dynfee(pos) if self.dyn else self.config.static_fee(pos)
tooltip = self.get_tooltip(pos, fee_rate)
QToolTip.showText(QCursor.pos(), tooltip, self)
self.setToolTip(tooltip)
@@ -55,10 +55,9 @@ class FeeSlider(QSlider):
self.setRange(0, 4)
self.setValue(pos)
else:
self.fee_step = self.config.max_fee_rate() / 10
fee_rate = self.config.fee_per_kb()
pos = min(fee_rate / self.fee_step, 10)
self.setRange(1, 10)
pos = self.config.static_fee_index(fee_rate)
self.setRange(0, 9)
self.setValue(pos)
tooltip = self.get_tooltip(pos, fee_rate)
self.setToolTip(tooltip)

View File

@@ -2437,21 +2437,6 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
fee_widgets.append((dynfee_cb, None))
dynfee_cb.stateChanged.connect(on_dynfee)
def on_maxfee(x):
m = maxfee_e.get_amount()
if m: self.config.set_key('max_fee_rate', m)
self.fee_slider.update()
def update_maxfee():
d = self.config.is_dynfee()
maxfee_e.setDisabled(d)
maxfee_label.setDisabled(d)
maxfee_label = HelpLabel(_('Max static fee'), _('Max value of the static fee slider'))
maxfee_e = BTCkBEdit(self.get_decimal_point)
maxfee_e.setAmount(self.config.max_fee_rate())
maxfee_e.textChanged.connect(on_maxfee)
update_maxfee()
fee_widgets.append((maxfee_label, maxfee_e))
feebox_cb = QCheckBox(_('Edit fees manually'))
feebox_cb.setChecked(self.config.get('show_fee', False))
feebox_cb.setToolTip(_("Show fee edit box in send tab."))