1
0

qml: add language selection to qeconfig.py/Preferences

This commit is contained in:
Sander van Grieken
2023-01-30 14:01:29 +01:00
parent e58a61a135
commit 264cb7846f
2 changed files with 35 additions and 1 deletions

View File

@@ -46,7 +46,20 @@ Pane {
ElComboBox {
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 {
@@ -355,6 +368,7 @@ Pane {
}
Component.onCompleted: {
language.currentIndex = language.indexOfValue(Config.language)
baseUnit.currentIndex = _baseunits.indexOf(Config.baseUnit)
thousands.checked = Config.thousandsSeparator
currencies.currentIndex = currencies.indexOfValue(Daemon.fx.fiatCurrency)

View File

@@ -2,6 +2,7 @@ from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject
from decimal import Decimal
from electrum.i18n import set_language, languages
from electrum.logging import get_logger
from electrum.util import DECIMAL_POINT_DEFAULT, format_satoshis
from electrum.invoices import PR_DEFAULT_EXPIRATION_WHEN_CREATING
@@ -16,6 +17,25 @@ class QEConfig(AuthMixin, QObject):
super().__init__(parent)
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()
@pyqtProperty(bool, notify=autoConnectChanged)
def autoConnect(self):