diff --git a/crowd_anki/importer/anki_importer.py b/crowd_anki/importer/anki_importer.py index 01ef1f3..52e6ca3 100644 --- a/crowd_anki/importer/anki_importer.py +++ b/crowd_anki/importer/anki_importer.py @@ -89,8 +89,13 @@ def read_import_config(directory_path, deck_json): import_dict = yaml.full_load(meta_file) import_dialog = ImportDialog(deck_json, import_dict) - if import_dialog.exec_() == QDialog.Rejected: - return None + # Qt5/Qt6 compat + try: + if import_dialog.exec() == QDialog.DialogCode.Rejected: + return None + except AttributeError: + if import_dialog.exec_() == QDialog.Rejected: + return None return import_dialog.final_import_config diff --git a/crowd_anki/importer/import_dialog.py b/crowd_anki/importer/import_dialog.py index 1211afa..2c6142f 100644 --- a/crowd_anki/importer/import_dialog.py +++ b/crowd_anki/importer/import_dialog.py @@ -95,15 +95,24 @@ def setup_personal_field_selection(self): def add_header(name): heading_ui = QListWidgetItem(name) - heading_ui.setFlags(Qt.ItemIsEnabled) + # Qt5/Qt6 compat + try: + heading_ui.setFlags(Qt.ItemFlag.ItemIsEnabled) + except AttributeError: + heading_ui.setFlags(Qt.ItemIsEnabled) heading_ui.setSizeHint(QSize(self.form.list_personal_fields.width(), 30)) heading_ui.setFont(heading_font) self.form.list_personal_fields.addItem(heading_ui) def add_field(name, is_personal) -> QListWidgetItem: field_ui = QListWidgetItem(name) - field_ui.setCheckState(Qt.Checked if is_personal else Qt.Unchecked) - field_ui.setFlags(Qt.ItemIsEnabled | Qt.ItemIsUserCheckable) + # Qt5/Qt6 compat + try: + field_ui.setCheckState(Qt.CheckState.Checked if is_personal else Qt.CheckState.Unchecked) + field_ui.setFlags(Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsUserCheckable) + except AttributeError: + field_ui.setCheckState(Qt.Checked if is_personal else Qt.Unchecked) + field_ui.setFlags(Qt.ItemIsEnabled | Qt.ItemIsUserCheckable) self.form.list_personal_fields.addItem(field_ui) return field_ui @@ -121,7 +130,11 @@ def setup_misc(self): self.form.import_message_textbox.setText(self.import_defaults.import_message) if self.import_defaults.suggest_tag_imported_cards: - self.form.cb_tag_cards.setCheckState(Qt.Checked) + # Qt5/Qt6 compat + try: + self.form.cb_tag_cards.setCheckState(Qt.CheckState.Checked) + except AttributeError: + self.form.cb_tag_cards.setCheckState(Qt.Checked) self.form.cb_tag_cards.setText("Tag Cards (Suggested by Deck Maintainer!)") # else: # set as default from config settings @@ -131,7 +144,11 @@ def setup_misc(self): def setup_deck_part_checkboxes(self): def set_checked_and_text(checkbox, text, count, checked: bool = True): - checkbox.setCheckState(Qt.Checked if checked else Qt.Unchecked) + # Qt5/Qt6 compat + try: + checkbox.setCheckState(Qt.CheckState.Checked if checked else Qt.CheckState.Unchecked) + except AttributeError: + checkbox.setCheckState(Qt.Checked if checked else Qt.Unchecked) if count is not None: text = f"{text}: {'{:,}'.format(count)}" checkbox.setText(text) @@ -159,5 +176,10 @@ def read_import_config(self): def read_personal_fields(self, config): for model_name, fields_dict in self.personal_field_ui_dict.items(): for field_name, widget_item in fields_dict.items(): - if widget_item.checkState() == Qt.Checked: - config.add_field(model_name, field_name) + # Qt5/Qt6 compat + try: + if widget_item.checkState() == Qt.CheckState.Checked: + config.add_field(model_name, field_name) + except AttributeError: + if widget_item.checkState() == Qt.Checked: + config.add_field(model_name, field_name)