28 super().__init__(parent) |
28 super().__init__(parent) |
29 self.setupUi(self) |
29 self.setupUi(self) |
30 |
30 |
31 self.__model = QStringListModel() |
31 self.__model = QStringListModel() |
32 self.languagesList.setModel(self.__model) |
32 self.languagesList.setModel(self.__model) |
33 self.languagesList.selectionModel().currentChanged.connect(self.__currentChanged) |
33 self.languagesList.selectionModel().currentChanged.connect( |
|
34 self.__currentChanged) |
34 |
35 |
35 languages = Preferences.toList(Preferences.Prefs.settings.value( |
36 languages = Preferences.toList(Preferences.Prefs.settings.value( |
36 "Help/AcceptLanguages", self.defaultAcceptLanguages())) |
37 "Help/AcceptLanguages", self.defaultAcceptLanguages())) |
37 self.__model.setStringList(languages) |
38 self.__model.setStringList(languages) |
38 |
39 |
51 @param previous index of the previously selected item (QModelIndex) |
52 @param previous index of the previously selected item (QModelIndex) |
52 """ |
53 """ |
53 self.removeButton.setEnabled(current.isValid()) |
54 self.removeButton.setEnabled(current.isValid()) |
54 row = current.row() |
55 row = current.row() |
55 self.upButton.setEnabled(row > 0) |
56 self.upButton.setEnabled(row > 0) |
56 self.downButton.setEnabled(row != -1 and row < self.__model.rowCount() - 1) |
57 self.downButton.setEnabled( |
|
58 row != -1 and row < self.__model.rowCount() - 1) |
57 |
59 |
58 @pyqtSlot() |
60 @pyqtSlot() |
59 def on_upButton_clicked(self): |
61 def on_upButton_clicked(self): |
60 """ |
62 """ |
61 Private slot to move a language up. |
63 Private slot to move a language up. |
80 self.languagesList.setCurrentIndex(self.__model.index(currentRow + 1)) |
82 self.languagesList.setCurrentIndex(self.__model.index(currentRow + 1)) |
81 |
83 |
82 @pyqtSlot() |
84 @pyqtSlot() |
83 def on_removeButton_clicked(self): |
85 def on_removeButton_clicked(self): |
84 """ |
86 """ |
85 Private slot to remove a language from the list of acceptable languages. |
87 Private slot to remove a language from the list of acceptable |
|
88 languages. |
86 """ |
89 """ |
87 currentRow = self.languagesList.currentIndex().row() |
90 currentRow = self.languagesList.currentIndex().row() |
88 self.__model.removeRow(currentRow) |
91 self.__model.removeRow(currentRow) |
89 |
92 |
90 @pyqtSlot() |
93 @pyqtSlot() |
114 super().accept() |
117 super().accept() |
115 |
118 |
116 @classmethod |
119 @classmethod |
117 def httpString(cls, languages): |
120 def httpString(cls, languages): |
118 """ |
121 """ |
119 Class method to convert a list of acceptable languages into a byte array that |
122 Class method to convert a list of acceptable languages into a byte |
120 can be sent along with the Accept-Language http header (see RFC 2616). |
123 array. |
|
124 |
|
125 The byte array can be sent along with the Accept-Language http header |
|
126 (see RFC 2616). |
121 |
127 |
122 @param languages list of acceptable languages (list of strings) |
128 @param languages list of acceptable languages (list of strings) |
123 @return converted list (QByteArray) |
129 @return converted list (QByteArray) |
124 """ |
130 """ |
125 processed = [] |
131 processed = [] |
166 allLanguages.append(languageString) |
172 allLanguages.append(languageString) |
167 for country in countries: |
173 for country in countries: |
168 languageString = "{0}/{1} [{2}]"\ |
174 languageString = "{0}/{1} [{2}]"\ |
169 .format(QLocale.languageToString(language), |
175 .format(QLocale.languageToString(language), |
170 QLocale.countryToString(country), |
176 QLocale.countryToString(country), |
171 '-'.join(QLocale(language, country).name().split('_')).lower()) |
177 '-'.join(QLocale(language, country).name() |
|
178 .split('_')).lower()) |
172 if languageString not in allLanguages: |
179 if languageString not in allLanguages: |
173 allLanguages.append(languageString) |
180 allLanguages.append(languageString) |
174 |
181 |
175 return allLanguages |
182 return allLanguages |