add more features to settings dialog
This commit is contained in:
100
gui/kivy/uix/dialogs/settings.py
Normal file
100
gui/kivy/uix/dialogs/settings.py
Normal file
@@ -0,0 +1,100 @@
|
||||
from kivy.app import App
|
||||
from kivy.factory import Factory
|
||||
from kivy.properties import ObjectProperty
|
||||
from kivy.lang import Builder
|
||||
|
||||
from electrum.i18n import _
|
||||
from electrum.util import base_units
|
||||
from electrum.i18n import languages, set_language
|
||||
|
||||
Builder.load_string('''
|
||||
<SettingsDialog@Popup>
|
||||
id: settings
|
||||
title: _('Settings')
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
SettingsItem:
|
||||
lang: settings.get_language_name()
|
||||
title: _('Language') + ' (%s)'%self.lang
|
||||
description: _("Language")
|
||||
on_release:
|
||||
settings.language_dialog(self)
|
||||
CardSeparator
|
||||
SettingsItem:
|
||||
title: _('PIN Code') + ' (%s)'%('ON' if app.wallet.use_encryption else 'OFF')
|
||||
description: _("Your PIN code will be required in order to spend bitcoins.")
|
||||
on_release:
|
||||
app.change_password()
|
||||
self.title = _('PIN Code') + ' (%s)'%('ON' if app.wallet.use_encryption else 'OFF')
|
||||
CardSeparator
|
||||
SettingsItem:
|
||||
bu: app.base_unit
|
||||
title: _('Denomination') + ' (' + self.bu + ')'
|
||||
description: _("Base unit for Bitcoin amounts.")
|
||||
on_release:
|
||||
settings.unit_dialog(self)
|
||||
CardSeparator
|
||||
SettingsItem:
|
||||
title: _('Fiat Currency')
|
||||
description: "Select the local fiat currency."
|
||||
on_release:
|
||||
settings.fiat_dialog(self)
|
||||
CardSeparator
|
||||
SettingsItem:
|
||||
title: _('OpenAlias')
|
||||
description: "Email-like address."
|
||||
on_release:
|
||||
settings.openalias_dialog()
|
||||
Widget:
|
||||
size_hint: 1, 1
|
||||
BoxLayout:
|
||||
Widget:
|
||||
size_hint: 0.5, None
|
||||
Button:
|
||||
size_hint: 0.5, None
|
||||
height: '48dp'
|
||||
text: _('OK')
|
||||
on_release:
|
||||
settings.dismiss()
|
||||
''')
|
||||
|
||||
class SettingsDialog(Factory.Popup):
|
||||
|
||||
def __init__(self, app):
|
||||
self.app = app
|
||||
Factory.Popup.__init__(self)
|
||||
|
||||
def get_language_name(self):
|
||||
return languages.get(self.app.electrum_config.get('language', 'en_UK'), '')
|
||||
|
||||
def language_dialog(self, item):
|
||||
from choice_dialog import ChoiceDialog
|
||||
l = self.app.electrum_config.get('language', 'en_UK')
|
||||
def cb(key):
|
||||
set_language(key)
|
||||
self.app.electrum_config.set_key("language", key, True)
|
||||
item.lang = self.get_language_name()
|
||||
d = ChoiceDialog(_('Language'), languages, l, cb)
|
||||
d.open()
|
||||
|
||||
def unit_dialog(self, item):
|
||||
from choice_dialog import ChoiceDialog
|
||||
def cb(text):
|
||||
self.app._set_bu(text)
|
||||
item.bu = self.app.base_unit
|
||||
d = ChoiceDialog(_('Denomination'), dict(map(lambda x: (x,x), base_units)), self.app.base_unit, cb)
|
||||
d.open()
|
||||
|
||||
def fiat_dialog(self, item):
|
||||
from choice_dialog import ChoiceDialog
|
||||
def cb(text):
|
||||
pass
|
||||
d = ChoiceDialog(_('Fiat Currency'), {}, '', cb)
|
||||
d.open()
|
||||
|
||||
def openalias_dialog(self):
|
||||
from label_dialog import LabelDialog
|
||||
def callback(text):
|
||||
pass
|
||||
d = LabelDialog(_('OpenAlias'), '', callback)
|
||||
d.open()
|
||||
Reference in New Issue
Block a user