Browse Source

qml: add language selection to qeconfig.py/Preferences

Sander van Grieken 3 years ago
parent
commit
264cb7846f
  1. 16
      electrum/gui/qml/components/Preferences.qml
  2. 20
      electrum/gui/qml/qeconfig.py

16
electrum/gui/qml/components/Preferences.qml

@ -46,7 +46,20 @@ Pane {
ElComboBox { ElComboBox {
id: language id: language
enabled: false textRole: 'text'
valueRole: 'value'
model: Config.languagesAvailable
onCurrentValueChanged: {
if (activeFocus) {
if (Config.language != currentValue) {
Config.language = currentValue
var dialog = app.messageDialog.createObject(app, {
text: qsTr('Please restart Electrum to activate the new GUI settings')
})
dialog.open()
}
}
}
} }
Label { Label {
@ -355,6 +368,7 @@ Pane {
} }
Component.onCompleted: { Component.onCompleted: {
language.currentIndex = language.indexOfValue(Config.language)
baseUnit.currentIndex = _baseunits.indexOf(Config.baseUnit) baseUnit.currentIndex = _baseunits.indexOf(Config.baseUnit)
thousands.checked = Config.thousandsSeparator thousands.checked = Config.thousandsSeparator
currencies.currentIndex = currencies.indexOfValue(Daemon.fx.fiatCurrency) currencies.currentIndex = currencies.indexOfValue(Daemon.fx.fiatCurrency)

20
electrum/gui/qml/qeconfig.py

@ -2,6 +2,7 @@ from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject
from decimal import Decimal from decimal import Decimal
from electrum.i18n import set_language, languages
from electrum.logging import get_logger from electrum.logging import get_logger
from electrum.util import DECIMAL_POINT_DEFAULT, format_satoshis from electrum.util import DECIMAL_POINT_DEFAULT, format_satoshis
from electrum.invoices import PR_DEFAULT_EXPIRATION_WHEN_CREATING from electrum.invoices import PR_DEFAULT_EXPIRATION_WHEN_CREATING
@ -16,6 +17,25 @@ class QEConfig(AuthMixin, QObject):
super().__init__(parent) super().__init__(parent)
self.config = config self.config = config
languageChanged = pyqtSignal()
@pyqtProperty(str, notify=languageChanged)
def language(self):
return self.config.get('language')
@language.setter
def language(self, language):
if language not in languages:
return
if self.config.get('language') != language:
self.config.set_key('language', language)
set_language(language)
self.languageChanged.emit()
languagesChanged = pyqtSignal()
@pyqtProperty('QVariantList', notify=languagesChanged)
def languagesAvailable(self):
return list(map(lambda x: {'value': x[0], 'text': x[1]}, languages.items()))
autoConnectChanged = pyqtSignal() autoConnectChanged = pyqtSignal()
@pyqtProperty(bool, notify=autoConnectChanged) @pyqtProperty(bool, notify=autoConnectChanged)
def autoConnect(self): def autoConnect(self):

Loading…
Cancel
Save