3 from PySide2 import QtWidgets as qtw
5 from config_dialog import Ui_ConfigDialog
6 from utils import resource_path
9 class Config(qtw.QDialog):
10 def __init__(self, parent):
11 super(Config, self).__init__(parent)
13 self.ui = Ui_ConfigDialog()
15 lines = open(resource_path('locales/languages.lst'), encoding='utf8').readlines()
17 cur_lang = self.parent.settings.value('language', 'en_US', type=str)
19 for index, line in enumerate(lines):
20 if line.count(':') != 1:
21 qtw.QMessageBox.critical(self, parent.tr('Error'), parent.tr('Error in languages.lst file format\nPlease see the READ.ME file in locales folder'))
23 parts = line.strip().split(":")
24 self.lang_codes.append(parts[0])
25 self.ui.languageComboBox.addItem(parts[1])
26 if cur_lang == parts[0]:
28 self.ui.languageComboBox.setCurrentIndex(cur_index)
30 self.ui.languageComboBox.setVisible(False)
31 self.ui.langLabel.setVisible(False)
32 self.ui.randomEnginComboBox.addItem('Random')
33 self.ui.randomEnginComboBox.addItem('Secret')
34 cur_engine = self.parent.settings.value('random_engine', 'random', type=str)
35 if cur_engine == 'random':
36 self.ui.randomEnginComboBox.setCurrentIndex(0)
38 self.ui.randomEnginComboBox.setCurrentIndex(1)
39 self.ui.savePushButton.clicked.connect(self.on_save_config)
41 def on_save_config(self):
42 lang_index = self.ui.languageComboBox.currentIndex()
43 self.parent.settings.setValue('language', self.lang_codes[lang_index])
44 random_index = self.ui.randomEnginComboBox.currentIndex()
45 self.parent.settings.setValue('random_engine', ('random', 'secret')[random_index])