qml: add language selection to qeconfig.py/Preferences
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user