예제 #1
0
        def update_gui(new_files):
            len_files_old = len(
                self.main.settings_custom['files']['files_open'])

            for new_file in new_files:
                file_names = [
                    file['name'] for file in self.main.settings_custom['files']
                    ['files_open']
                ]
                new_file['name'] = new_file[
                    'name_old'] = wl_checking_misc.check_new_name(
                        new_file['name'], file_names)

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

            self.update_table()

            len_files_new = len(
                self.main.settings_custom['files']['files_open'])

            if len_files_new - len_files_old == 0:
                self.main.statusBar().showMessage('No files are newly opened!')
            elif len_files_new - len_files_old == 1:
                self.main.statusBar().showMessage(
                    '1 file has been successfully opened.')
            else:
                self.main.statusBar().showMessage(
                    f'{len_files_new - len_files_old} files have been successfully opened.'
                )
예제 #2
0
    def _add_item(self, text='', row=None):
        if text:
            item_text = wl_checking_misc.check_new_name(
                text,
                self.model().stringList())
        else:
            item_text = wl_checking_misc.check_new_name(
                self.new_item_text,
                self.model().stringList())

        data = self.model().stringList()

        if row is None:
            data.append(item_text)
            self.items_old.append(item_text)
        else:
            data.insert(row, item_text)
            self.items_old.insert(row, item_text)

        self.model().setStringList(data)

        self.model().dataChanged.emit(QModelIndex(), QModelIndex())
예제 #3
0
    def _add_row(self, row=None, texts=None):
        if texts is None:
            type_, level, opening_tag, _ = self.defaults_row

            # HTML tags
            if opening_tag.startswith('<') and opening_tag.endswith('>'):
                opening_tags = [
                    re.sub(r'^<|>$', r'',
                           self.model().item(i, 2).text())
                    for i in range(self.model().rowCount())
                ]
                opening_tag = f"<{wl_checking_misc.check_new_name(opening_tag[1:-1], opening_tags, separator = '')}>"
            else:
                opening_tags = [
                    self.model().item(i, 2).text()
                    for i in range(self.model().rowCount())
                ]
                opening_tag = wl_checking_misc.check_new_name(opening_tag,
                                                              opening_tags,
                                                              separator='')

            opening_tag = re.sub(r'\s\(([0-9]+)\)', r'\1', opening_tag)
        else:
            type_, level, opening_tag, _ = texts

        item_opening_tag = QStandardItem(opening_tag)
        item_opening_tag.text_old = opening_tag

        if row is None:
            self.model().appendRow([
                QStandardItem(type_),
                QStandardItem(level), item_opening_tag,
                QStandardItem(),
                QStandardItem()
            ])
        else:
            self.model().insertRow(row, [
                QStandardItem(type_),
                QStandardItem(level), item_opening_tag,
                QStandardItem(),
                QStandardItem()
            ])

        self.model().itemChanged.emit(item_opening_tag)
예제 #4
0
    def _add_items(self, texts, row=None):
        data = self.model().stringList()
        texts = [
            wl_checking_misc.check_new_name(text, data)
            for text in list(dict.fromkeys(texts))
        ]

        if row is None:
            data.extend(texts)
            self.items_old.extend(texts)

            self.model().setStringList(data)
        else:
            data[row:row] = texts
            self.items_old[row:row] = texts

            self.model().setStringList(data)

        self.model().dataChanged.emit(QModelIndex(), QModelIndex())
예제 #5
0
def test_check_new_name():
    assert wl_checking_misc.check_new_name('new_name', ['new_name', 'new_name (2)', 'new_name (4)']) == 'new_name (3)'