def preferred_encodings(self): """ The list of user defined encodings, for display in the encodings menu/combobox. """ from pyqode.core.api import encodings return json.loads(self._settings.value( 'userDefinedEncodings', '["%s"]' % encodings.convert_to_codec_key( locale.getpreferredencoding())))
def preferred_encodings(self): """ The list of user defined encodings, for display in the encodings menu/combobox. """ from pyqode.core.api import encodings return json.loads( self._settings.value( 'userDefinedEncodings', '["%s"]' % encodings.convert_to_codec_key(locale.getpreferredencoding())))
def _load_preferred(self): self._load_available() # setup preferred encodings self.ui.tableWidgetPreferred.setColumnCount(2) self.ui.tableWidgetPreferred.setSelectionMode( self.ui.tableWidgetPreferred.SingleSelection) self.ui.tableWidgetPreferred.setSelectionBehavior( self.ui.tableWidgetPreferred.SelectRows) self.ui.tableWidgetPreferred.setHorizontalHeaderLabels([ 'Encoding', 'Language']) self.ui.tableWidgetPreferred.verticalHeader().hide() self.ui.tableWidgetPreferred.setSortingEnabled(True) for i, encoding in enumerate(Cache().preferred_encodings): encoding = encodings.convert_to_codec_key(encoding) value = encodings.ENCODINGS_MAP[encoding] row = self.ui.tableWidgetPreferred.rowCount() self.ui.tableWidgetPreferred.insertRow(row) for column in range(2): item = QtWidgets.QTableWidgetItem(value[column].strip()) item.setData(QtCore.Qt.UserRole, encoding) self.ui.tableWidgetPreferred.setItem(row, column, item) self.ui.tableWidgetPreferred.sortByColumn(0, QtCore.Qt.AscendingOrder)
def _load_preferred(self): self._load_available() # setup preferred encodings self.ui.tableWidgetPreferred.setColumnCount(2) self.ui.tableWidgetPreferred.setSelectionMode( self.ui.tableWidgetPreferred.SingleSelection) self.ui.tableWidgetPreferred.setSelectionBehavior( self.ui.tableWidgetPreferred.SelectRows) self.ui.tableWidgetPreferred.setHorizontalHeaderLabels( ['Encoding', 'Language']) self.ui.tableWidgetPreferred.verticalHeader().hide() self.ui.tableWidgetPreferred.setSortingEnabled(True) for i, encoding in enumerate(Cache().preferred_encodings): encoding = encodings.convert_to_codec_key(encoding) value = encodings.ENCODINGS_MAP[encoding] row = self.ui.tableWidgetPreferred.rowCount() self.ui.tableWidgetPreferred.insertRow(row) for column in range(2): item = QtWidgets.QTableWidgetItem(value[column].strip()) item.setData(QtCore.Qt.UserRole, encoding) self.ui.tableWidgetPreferred.setItem(row, column, item) self.ui.tableWidgetPreferred.sortByColumn(0, QtCore.Qt.AscendingOrder)
def _transfer_selected_items(self, source, destination): # keeping sorting enabled cause bug for the second transferred item destination.setSortingEnabled(False) row = source.currentRow() if row != -1: # take items from source items = [] encoding = source.item(row, 0).data(QtCore.Qt.UserRole) is_locale = encoding == encodings.convert_to_codec_key( locale.getpreferredencoding()) if source == self.ui.tableWidgetPreferred and is_locale: destination.setSortingEnabled(True) return for i in range(2): items.append(source.takeItem(row, i)) source.removeRow(row) # insert a new row in the taken items into destination row = destination.rowCount() destination.insertRow(row) for col, item in enumerate(items): item = QtWidgets.QTableWidgetItem(item) destination.setItem(row, col, item) destination.setSortingEnabled(True)
def _transfer_selected_items(self, source, destination): # keeping sorting enabled cause bug for the second transferred item destination.setSortingEnabled(False) row = source.currentRow() if row != -1: # take items from source items = [] encoding = source.item(row, 0).data(QtCore.Qt.UserRole) is_locale = encoding == encodings.convert_to_codec_key( locale.getpreferredencoding()) if source == self.ui.tableWidgetPreferred and is_locale: destination.setSortingEnabled(True) return for i in range(2): items.append(source.takeItem(row, i)) source.removeRow(row) # insert a new row in the taken items into destination row = destination.rowCount() destination.insertRow(row) for col, item in enumerate(items): item = QtWidgets.QTableWidgetItem(item) destination.setItem(row, col, item) destination.setSortingEnabled(True)
def preferred_encodings(self, value): from pyqode.core.api import encodings lst = [encodings.convert_to_codec_key(v) for v in value] self._settings.setValue('userDefinedEncodings', json.dumps(list(set(lst))))
def preferred_encodings(self, value): from pyqode.core.api import encodings lst = [encodings.convert_to_codec_key(v) for v in value] self._settings.setValue('userDefinedEncodings', json.dumps(list(set(lst))))
def test_convert_to_code_key(): assert encodings.convert_to_codec_key('UTF-8') == 'utf_8'