def test_to_encoding_code(encoding_text):
    len_encoding_text = max([
        len(encoding_text)
        for encoding_text in main.settings_global['file_encodings']
    ])
    encoding_code = wordless_conversion.to_encoding_code(main, encoding_text)

    assert encoding_code == main.settings_global['file_encodings'][
        encoding_text]
    def file_item_changed(self):
        if any([self.item(0, i) for i in range(self.columnCount())]):
            # Check duplicate file name
            for row in range(self.rowCount()):
                file_name = self.item(row, 0).text()
                file_path = self.item(row, 3).text()

                file = self.main.wordless_files.find_file_by_path(file_path)

                if file_name != file['name_old']:
                    if self.main.wordless_files.find_file_by_name(file_name):
                        self.blockSignals(True)

                        self.item(row, 0).setText(file['name_old'])

                        self.blockSignals(False)

                        wordless_msg_box.wordless_msg_box_duplicate_file_name(
                            self.main)

                        self.closePersistentEditor(self.item(row, 0))
                        self.editItem(self.item(row, 0))

                    break

            self.main.settings_custom['files']['files_open'].clear()

            for row in range(self.rowCount()):
                new_file = {}

                lang_text = self.cellWidget(row, 1).currentText()
                text_type_text = self.cellWidget(row, 2).currentText()
                encoding_text = self.cellWidget(row, 4).currentText()

                new_file['selected'] = True if self.item(
                    row, 0).checkState() == Qt.Checked else False
                new_file['name'] = new_file['name_old'] = self.item(row,
                                                                    0).text()
                new_file['lang'] = wordless_conversion.to_lang_code(
                    self.main, lang_text)
                new_file['text_type'] = wordless_conversion.to_text_type_code(
                    self.main, text_type_text)
                new_file['path'] = self.item(row, 3).text()
                new_file['encoding'] = wordless_conversion.to_encoding_code(
                    self.main, encoding_text)

                self.main.settings_custom['files']['files_open'].append(
                    new_file)

            self.button_select_all.setEnabled(True)
            self.button_invert_selection.setEnabled(True)
            self.button_deselect_all.setEnabled(True)

            self.button_close_all.setEnabled(True)
        else:
            self.button_select_all.setEnabled(False)
            self.button_invert_selection.setEnabled(False)
            self.button_deselect_all.setEnabled(False)

            self.button_close_all.setEnabled(False)

        if self.main.settings_custom['files']['files_closed']:
            self.button_reopen.setEnabled(True)
        else:
            self.button_reopen.setEnabled(False)

        # Menu
        if any([self.item(0, i) for i in range(self.columnCount())]):
            self.main.find_menu_item(self.tr('Select All')).setEnabled(True)
            self.main.find_menu_item(
                self.tr('Invert Selection')).setEnabled(True)
            self.main.find_menu_item(self.tr('Deselect All')).setEnabled(True)

            self.main.find_menu_item(self.tr('Close All')).setEnabled(True)
        else:
            self.main.find_menu_item(self.tr('Select All')).setEnabled(False)
            self.main.find_menu_item(
                self.tr('Invert Selection')).setEnabled(False)
            self.main.find_menu_item(self.tr('Deselect All')).setEnabled(False)

            self.main.find_menu_item(self.tr('Close All')).setEnabled(False)

        if self.main.settings_custom['files']['files_closed']:
            self.main.find_menu_item(
                self.tr('Reopen Closed File(s)')).setEnabled(True)
        else:
            self.main.find_menu_item(
                self.tr('Reopen Closed File(s)')).setEnabled(False)

        if self.rowCount() == 0:
            self.setRowCount(1)

        self.file_selection_changed()