diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 3d02228ca..b24bc6992 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -378,6 +378,12 @@ class BibleImportForm(OpenLPWizard): self.permissions_edit = QtWidgets.QLineEdit(self.license_details_page) self.permissions_edit.setObjectName('PermissionsEdit') self.license_details_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.permissions_edit) + self.full_license_label = QtWidgets.QLabel(self.license_details_page) + self.full_license_label.setObjectName('FullLicenseLabel') + self.license_details_layout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.full_license_label) + self.full_license_edit = QtWidgets.QPlainTextEdit(self.license_details_page) + self.full_license_edit.setObjectName('FullLicenseEdit') + self.license_details_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.full_license_edit) self.addPage(self.license_details_page) def retranslateUi(self): @@ -448,6 +454,7 @@ class BibleImportForm(OpenLPWizard): self.version_name_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Version name:')) self.copyright_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Copyright:')) self.permissions_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Permissions:')) + self.full_license_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Full license:')) self.progress_page.setTitle(WizardStrings.Importing) self.progress_page.setSubTitle(translate('BiblesPlugin.ImportWizardForm', 'Please wait while your Bible is imported.')) @@ -471,6 +478,7 @@ class BibleImportForm(OpenLPWizard): elif self.currentPage() == self.select_page: self.version_name_edit.clear() self.permissions_edit.clear() + self.full_license_edit.clear() self.copyright_edit.clear() if self.field('source_format') == BibleFormat.OSIS: if not self.field('osis_location'): @@ -715,6 +723,7 @@ class BibleImportForm(OpenLPWizard): self.license_details_page.registerField('license_version', self.version_name_edit) self.license_details_page.registerField('license_copyright', self.copyright_edit) self.license_details_page.registerField('license_permissions', self.permissions_edit) + self.license_details_page.registerField('license_full_license', self.full_license_edit) def set_defaults(self): """ @@ -741,6 +750,7 @@ class BibleImportForm(OpenLPWizard): self.setField('license_version', self.version_name_edit.text()) self.setField('license_copyright', self.copyright_edit.text()) self.setField('license_permissions', self.permissions_edit.text()) + self.setField('license_full_license', self.full_license_edit.toPlainText()) self.on_web_source_combo_box_index_changed(WebDownload.Crosswalk) settings.endGroup() @@ -764,6 +774,7 @@ class BibleImportForm(OpenLPWizard): license_version = self.field('license_version') license_copyright = self.field('license_copyright') license_permissions = self.field('license_permissions') + license_full_license = self.field('license_full_license') importer = None if bible_type == BibleFormat.OSIS: # Import an OSIS bible. @@ -810,7 +821,8 @@ class BibleImportForm(OpenLPWizard): sword_key=self.sword_zipbible_combo_box.itemData( self.sword_zipbible_combo_box.currentIndex())) if importer.do_import(license_version): - self.manager.save_meta_data(license_version, license_version, license_copyright, license_permissions) + self.manager.save_meta_data(license_version, license_version, + license_copyright, license_permissions, license_full_license) self.manager.reload_bibles() if bible_type == BibleFormat.WebDownload: self.progress_label.setText( diff --git a/openlp/plugins/bibles/forms/editbibledialog.py b/openlp/plugins/bibles/forms/editbibledialog.py index 58769014c..f326f2af0 100644 --- a/openlp/plugins/bibles/forms/editbibledialog.py +++ b/openlp/plugins/bibles/forms/editbibledialog.py @@ -68,14 +68,12 @@ class Ui_EditBibleDialog(object): self.permissions_edit.setObjectName('permissions_edit') self.permissions_label.setBuddy(self.permissions_edit) self.license_details_layout.addRow(self.permissions_label, self.permissions_edit) - # QTextEdit self.full_license_label = QtWidgets.QLabel(self.license_details_group_box) self.full_license_label.setObjectName('full_license_label') self.full_license_edit = QtWidgets.QPlainTextEdit(self.license_details_group_box) self.full_license_edit.setObjectName('full_license_edit') self.full_license_label.setBuddy(self.full_license_edit) self.license_details_layout.addRow(self.full_license_label, self.full_license_edit) - self.meta_tab_layout.addWidget(self.license_details_group_box) self.language_selection_group_box = QtWidgets.QGroupBox(self.meta_tab) self.language_selection_group_box.setObjectName('language_selection_group_box') diff --git a/openlp/plugins/bibles/forms/editbibleform.py b/openlp/plugins/bibles/forms/editbibleform.py index b3947c43a..58b764371 100644 --- a/openlp/plugins/bibles/forms/editbibleform.py +++ b/openlp/plugins/bibles/forms/editbibleform.py @@ -61,11 +61,20 @@ class EditBibleForm(QtWidgets.QDialog, Ui_EditBibleDialog, RegistryProperties): """ log.debug('Load Bible') self.bible = bible - self.version_name_edit.setText(self.manager.get_meta_data(self.bible, 'name').value) - self.copyright_edit.setText(self.manager.get_meta_data(self.bible, 'copyright').value) - self.permissions_edit.setText(self.manager.get_meta_data(self.bible, 'permissions').value) - self.full_license_edit.setPlainText(self.manager.get_meta_data(self.bible, 'full_license').value) - book_name_language = self.manager.get_meta_data(self.bible, 'book_name_language') + """ + Try loading the metadata, if the field does not exist in the metadata, continue executing the code, + missing fields will be created on "self.accept" (save). Also set "book_name_language", + there would otherwise be a traceback for reference before assignment. + """ + try: + self.version_name_edit.setText(self.manager.get_meta_data(self.bible, 'name').value) + self.copyright_edit.setText(self.manager.get_meta_data(self.bible, 'copyright').value) + self.permissions_edit.setText(self.manager.get_meta_data(self.bible, 'permissions').value) + self.full_license_edit.setPlainText(self.manager.get_meta_data(self.bible, 'full_license').value) + book_name_language = self.manager.get_meta_data(self.bible, 'book_name_language') + except AttributeError: + book_name_language = self.manager.get_meta_data(self.bible, 'book_name_language') + pass if book_name_language and book_name_language.value != 'None': self.language_selection_combo_box.setCurrentIndex(int(book_name_language.value) + 1) self.books = {}