Merge pull request #5162 from kpstar/master

android all currencies with history checkbox
This commit is contained in:
ghost43 2019-03-22 19:03:07 +01:00 committed by GitHub
commit 9161d3a5a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 10 deletions

View file

@ -513,8 +513,8 @@ class FxThread(ThreadJob):
self.config.set_key('use_exchange_rate', bool(b))
self.trigger_update()
def get_history_config(self):
return bool(self.config.get('history_rates'))
def get_history_config(self, *, default=False):
return bool(self.config.get('history_rates', default))
def set_history_config(self, b):
self.config.set_key('history_rates', bool(b))

View file

@ -1,6 +1,6 @@
from kivy.app import App
from kivy.factory import Factory
from kivy.properties import ObjectProperty
from kivy.properties import ObjectProperty, BooleanProperty
from kivy.lang import Builder
Builder.load_string('''
@ -27,7 +27,20 @@ Builder.load_string('''
on_text: popup.on_currency(self.text)
Widget:
size_hint: 1, 0.1
size_hint: 1, 0.05
BoxLayout:
orientation: 'horizontal'
size_hint: 1, 0.2
Label:
text: _('History rates')
CheckBox:
id:hist
active: popup.has_history_rates
on_active: popup.on_checkbox_history(self.active)
Widget:
size_hint: 1, 0.05
BoxLayout:
orientation: 'horizontal'
@ -41,7 +54,7 @@ Builder.load_string('''
on_text: popup.on_exchange(self.text)
Widget:
size_hint: 1, 0.2
size_hint: 1, 0.1
BoxLayout:
orientation: 'horizontal'
@ -72,17 +85,22 @@ from functools import partial
class FxDialog(Factory.Popup):
def __init__(self, app, plugins, config, callback):
Factory.Popup.__init__(self)
self.app = app
self.config = config
self.callback = callback
self.fx = self.app.fx
self.fx.set_history_config(True)
self.has_history_rates = self.fx.get_history_config(default=True)
Factory.Popup.__init__(self)
self.add_currencies()
def add_exchanges(self):
exchanges = sorted(self.fx.get_exchanges_by_ccy(self.fx.get_currency(), True)) if self.fx.is_enabled() else []
mx = self.fx.exchange.name() if self.fx.is_enabled() else ''
if self.fx.is_enabled():
exchanges = sorted(self.fx.get_exchanges_by_ccy(self.fx.get_currency(), self.has_history_rates))
mx = self.fx.exchange.name()
else:
exchanges = []
mx = ''
ex = self.ids.exchanges
ex.values = exchanges
ex.text = (mx if mx in exchanges else exchanges[0]) if self.fx.is_enabled() else ''
@ -94,11 +112,17 @@ class FxDialog(Factory.Popup):
self.fx.set_exchange(text)
def add_currencies(self):
currencies = [_('None')] + self.fx.get_currencies(True)
currencies = [_('None')] + self.fx.get_currencies(self.has_history_rates)
my_ccy = self.fx.get_currency() if self.fx.is_enabled() else _('None')
self.ids.ccy.values = currencies
self.ids.ccy.text = my_ccy
def on_checkbox_history(self, checked):
self.fx.set_history_config(checked)
self.has_history_rates = checked
self.add_currencies()
self.on_currency(self.ids.ccy.text)
def on_currency(self, ccy):
b = (ccy != _('None'))
self.fx.set_enabled(b)