OSDN Git Service

File system path for statndalone version
[minimpy2/mp2.git] / config.py
1 import sys
2
3 from PySide2 import QtWidgets as qtw
4
5 from config_dialog import Ui_ConfigDialog
6 from utils import resource_path
7
8
9 class Config(qtw.QDialog):
10     def __init__(self, parent):
11         super(Config, self).__init__(parent)
12         self.parent = parent
13         self.ui = Ui_ConfigDialog()
14         self.ui.setupUi(self)
15         lines = open(resource_path('locales/languages.lst'), encoding='utf8').readlines()
16         self.lang_codes = []
17         cur_lang = self.parent.settings.value('language', 'en_US', type=str)
18         cur_index = 0
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'))
22                 sys.exit(1)
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]:
27                 cur_index = index
28         self.ui.languageComboBox.setCurrentIndex(cur_index)
29         if len(lines) < 2:
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)
37         else:
38             self.ui.randomEnginComboBox.setCurrentIndex(1)
39         self.ui.savePushButton.clicked.connect(self.on_save_config)
40
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])
46         self.close()