novelWriter 2.4.1__tar.gz → 2.4.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {novelwriter-2.4.1 → novelwriter-2.4.3}/CHANGELOG.md +47 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/PKG-INFO +1 -1
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelWriter.egg-info/PKG-INFO +1 -1
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/__init__.py +3 -3
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/nw_nl_NL.qm +0 -0
- novelwriter-2.4.3/novelwriter/assets/i18n/nw_zh_CN.qm +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/manual.pdf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/sample.zip +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/doceditor.py +55 -27
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/docviewer.py +33 -21
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/theme.py +3 -3
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/tools/dictionaries.py +5 -4
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/tools/manuscript.py +11 -5
- novelwriter-2.4.1/novelwriter/assets/i18n/nw_zh_CN.qm +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/CREDITS.md +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/LICENSE.md +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/MANIFEST.in +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/README.md +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelWriter.egg-info/SOURCES.txt +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelWriter.egg-info/dependency_links.txt +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelWriter.egg-info/entry_points.txt +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelWriter.egg-info/requires.txt +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelWriter.egg-info/top_level.txt +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/nw_de_DE.qm +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/nw_en_US.qm +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/nw_es_419.qm +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/nw_fr_FR.qm +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/nw_it_IT.qm +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/nw_ja_JP.qm +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/nw_nb_NO.qm +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/nw_pt_BR.qm +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_de_DE.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_en_GB.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_en_US.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_es_419.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_fr_FR.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_it_IT.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_ja_JP.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_nb_NO.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_nl_NL.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_nn_NO.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_pt_BR.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_ru_RU.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/i18n/project_zh_CN.json +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/none.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/novelwriter.ico +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/novelwriter.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/README.md +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/icons.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_document-chapter.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_document-new.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_document-note.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_document-scene.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_document-section.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_document-title.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_edit.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_import.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_input-checked.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_input-none.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_input-unchecked.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_search-replace.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-h0.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-h1.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-h2-narrow.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-h2.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-h3-narrow.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-h3.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-h4-narrow.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-h4.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-note.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-noveltree-more.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_panel.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_search-case.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_search-preserve.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_search-regex.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_search-word.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_tb-bold-md.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_tb-bold.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_tb-italic-md.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_tb-italic.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_tb-mark.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_tb-strike-md.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_tb-strike.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_tb-subscript.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_tb-superscript.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_tb-underline.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_arrow-down-thick-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_arrow-forward.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_arrow-maximise.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_arrow-minimise.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_arrow-repeat-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_book-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_book.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_bookmark.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_calendar.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_cancel-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_cancel.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_chart-bar-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_chevron-down.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_chevron-left.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_chevron-right.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_chevron-up.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_cog.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_delete-full.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_delete.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_directions-full.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_document-add.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_document-text.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_document.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_export-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_export.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_eye.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_flag.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_folder-open.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_folder.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_globe-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_key.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_lightbulb-full.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_location.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_media-pause-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_media-record-outline.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_media-record.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_minus.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_pencil.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_pin-outline.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_pin.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_plus.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_puzzle-outline.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_puzzle.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_refresh-flipped.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_refresh.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_search-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_search.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_star.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_stopwatch-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_th-dot-menu.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_th-dot-more.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_th-list-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_th-list.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_times.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_trash.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_unfold-hidden.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_unfold-visible.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_user.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/typ_warning-full.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/README.md +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/icons.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/mixed_document-chapter.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/mixed_document-new.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/mixed_document-note.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/mixed_document-scene.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/mixed_document-section.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/mixed_document-title.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/mixed_edit.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/mixed_import.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/mixed_input-checked.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/mixed_input-none.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/mixed_input-unchecked.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/mixed_search-replace.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_deco-h0.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_deco-h1.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_deco-h2-narrow.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_deco-h2.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_deco-h3-narrow.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_deco-h3.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_deco-h4-narrow.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_deco-h4.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_deco-note.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_deco-noveltree-more.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_panel.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_search-case.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_search-preserve.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_search-regex.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_search-word.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_tb-bold-md.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_tb-bold.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_tb-italic-md.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_tb-italic.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_tb-mark.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_tb-strike-md.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_tb-strike.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_tb-subscript.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_tb-superscript.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/nw_tb-underline.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_arrow-down-thick-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_arrow-forward.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_arrow-maximise.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_arrow-minimise.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_arrow-repeat-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_book-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_book.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_bookmark.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_calendar.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_cancel-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_cancel.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_chart-bar-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_chevron-down.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_chevron-left.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_chevron-right.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_chevron-up.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_cog.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_delete-full.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_delete.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_directions-full.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_document-add.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_document-text.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_document.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_export-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_export.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_eye.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_flag.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_folder-open.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_folder.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_globe-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_key.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_lightbulb-full.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_location.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_media-pause-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_media-record-outline.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_media-record.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_minus.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_pencil.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_pin-outline.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_pin.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_plus.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_puzzle-outline.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_puzzle.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_refresh-flipped.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_refresh.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_search-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_search.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_star.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_stopwatch-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_th-dot-menu.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_th-dot-more.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_th-list-grey.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_th-list.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_times.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_trash.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_unfold-hidden.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_unfold-visible.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_user.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_light/typ_warning-full.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/x-novelwriter-project.ico +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/x-novelwriter-project.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/images/novelwriter-text-dark.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/images/novelwriter-text-light.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/images/welcome-dark.jpg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/images/welcome-light.jpg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/cyberpunk_night.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/default_dark.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/default_light.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/grey_dark.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/grey_light.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/light_owl.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/night_owl.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/solarized_dark.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/solarized_light.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/tango.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/tomorrow.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/tomorrow_night.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/tomorrow_night_blue.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/tomorrow_night_bright.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/syntax/tomorrow_night_eighties.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/text/credits_en.htm +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/text/lipsum.txt +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/themes/cyberpunk_night.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/themes/default.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/themes/default_dark.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/themes/default_light.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/themes/solarized_dark.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/themes/solarized_light.conf +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/common.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/config.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/constants.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/buildsettings.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/coretools.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/docbuild.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/document.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/index.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/item.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/options.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/project.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/projectdata.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/projectxml.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/sessions.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/spellcheck.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/status.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/storage.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/tohtml.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/tokenizer.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/tomd.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/toodt.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/core/tree.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/dialogs/about.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/dialogs/docmerge.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/dialogs/docsplit.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/dialogs/editlabel.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/dialogs/preferences.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/dialogs/projectsettings.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/dialogs/quotes.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/dialogs/wordlist.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/enum.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/error.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/extensions/circularprogress.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/extensions/configlayout.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/extensions/eventfilters.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/extensions/modified.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/extensions/novelselector.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/extensions/pagedsidebar.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/extensions/simpleprogress.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/extensions/statusled.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/extensions/switch.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/extensions/switchbox.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/extensions/versioninfo.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/dochighlight.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/docviewerpanel.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/editordocument.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/itemdetails.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/mainmenu.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/noveltree.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/outline.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/projtree.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/search.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/sidebar.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/gui/statusbar.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/guimain.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/shared.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/text/counting.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/tools/lipsum.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/tools/manusbuild.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/tools/manussettings.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/tools/noveldetails.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/tools/welcome.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/tools/writingstats.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/types.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/pkgutils.py +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/pyproject.toml +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/appimage_launcher.sh +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/128x128/apps/novelwriter.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/128x128/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/16x16/apps/novelwriter.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/16x16/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/24x24/apps/novelwriter.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/24x24/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/256x256/apps/novelwriter.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/256x256/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/32x32/apps/novelwriter.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/32x32/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/48x48/apps/novelwriter.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/48x48/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/512x512/apps/novelwriter.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/512x512/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/64x64/apps/novelwriter.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/64x64/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/scalable/apps/novelwriter.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/hicolor/scalable/mimetypes/application-x-novelwriter-project.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/novelwriter.desktop +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/novelwriter.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/data/x-novelwriter-project.xml +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/debian/compat +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/debian/control +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/debian/copyright +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/debian/install +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/debian/py3dist-overrides +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/debian/rules +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/debian/source/format +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/description_pypi.md +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/description_short.txt +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/icons/novelwriter.ico +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/icons/novelwriter.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/icons/x-novelwriter-project.ico +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/icons/x-novelwriter-project.svg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/iss_license.txt +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/launchpad_setup.cfg +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/App.entitlements +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/Info.plist.template +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/build.sh +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/novelwriter.iconset/icon_128x128.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/novelwriter.iconset/icon_128x128@2x.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/novelwriter.iconset/icon_16x16.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/novelwriter.iconset/icon_16x16@2x.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/novelwriter.iconset/icon_256x256.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/novelwriter.iconset/icon_256x256@2x.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/novelwriter.iconset/icon_32x32.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/novelwriter.iconset/icon_32x32@2x.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/novelwriter.iconset/icon_512x512.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/macos/novelwriter.iconset/icon_512x512@2x.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/make_clean.sh +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/make_pip.sh +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/make_release.sh +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/novelwriter.appdata.xml +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/novelwriter_readme.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/novelwriter_text.png +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/win_setup_embed.iss +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/windows_install.bat +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup/windows_uninstall.bat +0 -0
- {novelwriter-2.4.1 → novelwriter-2.4.3}/setup.cfg +0 -0
@@ -1,5 +1,52 @@
|
|
1
1
|
# novelWriter Changelog
|
2
2
|
|
3
|
+
## Version 2.4.3 [2024-05-20]
|
4
|
+
|
5
|
+
### Release Notes
|
6
|
+
|
7
|
+
This is a patch release that fixes issues with the document font in the editor, viewer and
|
8
|
+
manuscript preview on some Linux distros, and also fixes a potential crash on Windows when using
|
9
|
+
the spell check dictionary install tool.
|
10
|
+
|
11
|
+
### Detailed Changelog
|
12
|
+
|
13
|
+
**Bugfixes**
|
14
|
+
|
15
|
+
* Fix a crash in the dictionaries install tool on Windows if the config folder reported by the
|
16
|
+
third party Enchant spell checker tool didn't already exist prior to adding new dictionaries.
|
17
|
+
The folder is now created when the tool is opened if it doesn't exist. Issue #1874. PR #1876.
|
18
|
+
* Fix issues setting a different text font for the editor and viewer, and related issues with the
|
19
|
+
preview in the Manuscript Build tool, on certain platforms. Changing the font and setting
|
20
|
+
non-standard font sizes produced unexpected results when reloading. The issue seems to be related
|
21
|
+
to Qt 5.15.3, but that is not fully confirmed. However, the only place so far where the issue is
|
22
|
+
observed is on Mint 21.3. Issues #1862 and #1875. PR #1877.
|
23
|
+
|
24
|
+
----
|
25
|
+
|
26
|
+
## Version 2.4.2 [2024-05-18]
|
27
|
+
|
28
|
+
### Release Notes
|
29
|
+
|
30
|
+
This is a patch release that fixes two minor font issues and updates the Dutch and Chinese
|
31
|
+
translations.
|
32
|
+
|
33
|
+
### Detailed Changelog
|
34
|
+
|
35
|
+
**Bugfixes**
|
36
|
+
|
37
|
+
* Change the preview widget in the Manuscript Build tool to use the document font only for the
|
38
|
+
document itself, not the yellow heading stating the age of the previewed text. PR #1863.
|
39
|
+
* Fixes the syntax highlighter so that it is re-initialised when the document editor is
|
40
|
+
re-initialised, so that changes to document font size regenerates the heading font sizes as well.
|
41
|
+
Issue #1865. PR #1866.
|
42
|
+
|
43
|
+
**Internationalisation**
|
44
|
+
|
45
|
+
* Dutch translation updated by Martijn van der Kleijn (@mvdkleijn). PR #1872.
|
46
|
+
* Chinese translation updated by @longqzh. PR #1872.
|
47
|
+
|
48
|
+
----
|
49
|
+
|
3
50
|
## Version 2.4.1 [2024-05-06]
|
4
51
|
|
5
52
|
### Release Notes
|
@@ -47,9 +47,9 @@ __license__ = "GPLv3"
|
|
47
47
|
__author__ = "Veronica Berglyd Olsen"
|
48
48
|
__maintainer__ = "Veronica Berglyd Olsen"
|
49
49
|
__email__ = "code@vkbo.net"
|
50
|
-
__version__ = "2.4.
|
51
|
-
__hexversion__ = "
|
52
|
-
__date__ = "2024-05-
|
50
|
+
__version__ = "2.4.3"
|
51
|
+
__hexversion__ = "0x020403f0"
|
52
|
+
__date__ = "2024-05-20"
|
53
53
|
__status__ = "Stable"
|
54
54
|
__domain__ = "novelwriter.io"
|
55
55
|
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -43,8 +43,8 @@ from PyQt5.QtCore import (
|
|
43
43
|
pyqtSignal, pyqtSlot
|
44
44
|
)
|
45
45
|
from PyQt5.QtGui import (
|
46
|
-
QColor, QCursor,
|
47
|
-
|
46
|
+
QColor, QCursor, QKeyEvent, QKeySequence, QMouseEvent, QPalette, QPixmap,
|
47
|
+
QResizeEvent, QTextBlock, QTextCursor, QTextDocument, QTextOption
|
48
48
|
)
|
49
49
|
from PyQt5.QtWidgets import (
|
50
50
|
QAction, QApplication, QFrame, QGridLayout, QHBoxLayout, QLabel, QLineEdit,
|
@@ -301,8 +301,6 @@ class GuiDocEditor(QPlainTextEdit):
|
|
301
301
|
self.docHeader.matchColours()
|
302
302
|
self.docFooter.matchColours()
|
303
303
|
|
304
|
-
self._qDocument.syntaxHighlighter.initHighlighter()
|
305
|
-
|
306
304
|
return
|
307
305
|
|
308
306
|
def initEditor(self) -> None:
|
@@ -331,10 +329,10 @@ class GuiDocEditor(QPlainTextEdit):
|
|
331
329
|
SHARED.updateSpellCheckLanguage()
|
332
330
|
|
333
331
|
# Set font
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
self._qDocument.
|
332
|
+
self.initFont()
|
333
|
+
|
334
|
+
# Update highlighter settings
|
335
|
+
self._qDocument.syntaxHighlighter.initHighlighter()
|
338
336
|
|
339
337
|
# Set default text margins
|
340
338
|
# Due to cursor visibility, a part of the margin must be
|
@@ -381,6 +379,23 @@ class GuiDocEditor(QPlainTextEdit):
|
|
381
379
|
|
382
380
|
return
|
383
381
|
|
382
|
+
def initFont(self) -> None:
|
383
|
+
"""Set the font of the main widget and sub-widgets. This needs
|
384
|
+
special attention since there appears to be a bug in Qt 5.15.3.
|
385
|
+
See issues #1862 and #1875.
|
386
|
+
"""
|
387
|
+
font = self.font()
|
388
|
+
font.setFamily(CONFIG.textFont)
|
389
|
+
font.setPointSize(CONFIG.textSize)
|
390
|
+
self.setFont(font)
|
391
|
+
|
392
|
+
# Reset sub-widget font to GUI font
|
393
|
+
self.docHeader.updateFont()
|
394
|
+
self.docFooter.updateFont()
|
395
|
+
self.docSearch.updateFont()
|
396
|
+
|
397
|
+
return
|
398
|
+
|
384
399
|
def loadText(self, tHandle: str, tLine: int | None = None) -> bool:
|
385
400
|
"""Load text from a document into the editor. If we have an I/O
|
386
401
|
error, we must handle this and clear the editor so that we don't
|
@@ -2395,9 +2410,6 @@ class GuiDocEditSearch(QFrame):
|
|
2395
2410
|
iSz = SHARED.theme.baseIconSize
|
2396
2411
|
mPx = CONFIG.pxInt(6)
|
2397
2412
|
|
2398
|
-
self.boxFont = SHARED.theme.guiFont
|
2399
|
-
self.boxFont.setPointSizeF(0.9*SHARED.theme.fontPointSize)
|
2400
|
-
|
2401
2413
|
self.setContentsMargins(0, 0, 0, 0)
|
2402
2414
|
self.setAutoFillBackground(True)
|
2403
2415
|
self.setFrameStyle(QFrame.Shape.StyledPanel | QFrame.Shadow.Plain)
|
@@ -2409,12 +2421,10 @@ class GuiDocEditSearch(QFrame):
|
|
2409
2421
|
# ==========
|
2410
2422
|
|
2411
2423
|
self.searchBox = QLineEdit(self)
|
2412
|
-
self.searchBox.setFont(self.boxFont)
|
2413
2424
|
self.searchBox.setPlaceholderText(self.tr("Search for"))
|
2414
2425
|
self.searchBox.returnPressed.connect(self._doSearch)
|
2415
2426
|
|
2416
2427
|
self.replaceBox = QLineEdit(self)
|
2417
|
-
self.replaceBox.setFont(self.boxFont)
|
2418
2428
|
self.replaceBox.setPlaceholderText(self.tr("Replace with"))
|
2419
2429
|
self.replaceBox.returnPressed.connect(self._doReplace)
|
2420
2430
|
|
@@ -2424,12 +2434,9 @@ class GuiDocEditSearch(QFrame):
|
|
2424
2434
|
self.searchOpt.setContentsMargins(0, 0, 0, 0)
|
2425
2435
|
|
2426
2436
|
self.searchLabel = QLabel(self.tr("Search"), self)
|
2427
|
-
self.searchLabel.setFont(self.boxFont)
|
2428
2437
|
self.searchLabel.setIndent(CONFIG.pxInt(6))
|
2429
2438
|
|
2430
2439
|
self.resultLabel = QLabel("?/?", self)
|
2431
|
-
self.resultLabel.setFont(self.boxFont)
|
2432
|
-
self.resultLabel.setMinimumWidth(SHARED.theme.getTextWidth("?/?", self.boxFont))
|
2433
2440
|
|
2434
2441
|
self.toggleCase = QAction(self.tr("Case Sensitive"), self)
|
2435
2442
|
self.toggleCase.setCheckable(True)
|
@@ -2514,6 +2521,7 @@ class GuiDocEditSearch(QFrame):
|
|
2514
2521
|
self.replaceButton.setVisible(False)
|
2515
2522
|
self.adjustSize()
|
2516
2523
|
|
2524
|
+
self.updateFont()
|
2517
2525
|
self.updateTheme()
|
2518
2526
|
|
2519
2527
|
logger.debug("Ready: GuiDocEditSearch")
|
@@ -2597,7 +2605,9 @@ class GuiDocEditSearch(QFrame):
|
|
2597
2605
|
numCount = f"{lim:n}+" if (resCount or 0) > lim else f"{resCount:n}"
|
2598
2606
|
sCurrRes = "?" if currRes is None else str(currRes)
|
2599
2607
|
sResCount = "?" if resCount is None else numCount
|
2600
|
-
minWidth = SHARED.theme.getTextWidth(
|
2608
|
+
minWidth = SHARED.theme.getTextWidth(
|
2609
|
+
f"{sResCount}//{sResCount}", SHARED.theme.guiFontSmall
|
2610
|
+
)
|
2601
2611
|
self.resultLabel.setText(f"{sCurrRes}/{sResCount}")
|
2602
2612
|
self.resultLabel.setMinimumWidth(minWidth)
|
2603
2613
|
self.adjustSize()
|
@@ -2608,6 +2618,18 @@ class GuiDocEditSearch(QFrame):
|
|
2608
2618
|
# Methods
|
2609
2619
|
##
|
2610
2620
|
|
2621
|
+
def updateFont(self) -> None:
|
2622
|
+
"""Update the font settings."""
|
2623
|
+
self.setFont(SHARED.theme.guiFont)
|
2624
|
+
self.searchBox.setFont(SHARED.theme.guiFontSmall)
|
2625
|
+
self.replaceBox.setFont(SHARED.theme.guiFontSmall)
|
2626
|
+
self.searchLabel.setFont(SHARED.theme.guiFontSmall)
|
2627
|
+
self.resultLabel.setFont(SHARED.theme.guiFontSmall)
|
2628
|
+
self.resultLabel.setMinimumWidth(
|
2629
|
+
SHARED.theme.getTextWidth("?/?", SHARED.theme.guiFontSmall)
|
2630
|
+
)
|
2631
|
+
return
|
2632
|
+
|
2611
2633
|
def updateTheme(self) -> None:
|
2612
2634
|
"""Update theme elements."""
|
2613
2635
|
qPalette = QApplication.palette()
|
@@ -2792,10 +2814,6 @@ class GuiDocEditHeader(QWidget):
|
|
2792
2814
|
self.itemTitle.setAlignment(QtAlignCenterTop)
|
2793
2815
|
self.itemTitle.setFixedHeight(iPx)
|
2794
2816
|
|
2795
|
-
lblFont = self.itemTitle.font()
|
2796
|
-
lblFont.setPointSizeF(0.9*SHARED.theme.fontPointSize)
|
2797
|
-
self.itemTitle.setFont(lblFont)
|
2798
|
-
|
2799
2817
|
# Other Widgets
|
2800
2818
|
self.outlineMenu = QMenu(self)
|
2801
2819
|
|
@@ -2849,6 +2867,7 @@ class GuiDocEditHeader(QWidget):
|
|
2849
2867
|
self.setContentsMargins(0, 0, 0, 0)
|
2850
2868
|
self.setMinimumHeight(iPx + 2*mPx)
|
2851
2869
|
|
2870
|
+
self.updateFont()
|
2852
2871
|
self.updateTheme()
|
2853
2872
|
|
2854
2873
|
logger.debug("Ready: GuiDocEditHeader")
|
@@ -2887,6 +2906,12 @@ class GuiDocEditHeader(QWidget):
|
|
2887
2906
|
logger.debug("Document outline updated in %.3f ms", 1000*(time() - tStart))
|
2888
2907
|
return
|
2889
2908
|
|
2909
|
+
def updateFont(self) -> None:
|
2910
|
+
"""Update the font settings."""
|
2911
|
+
self.setFont(SHARED.theme.guiFont)
|
2912
|
+
self.itemTitle.setFont(SHARED.theme.guiFontSmall)
|
2913
|
+
return
|
2914
|
+
|
2890
2915
|
def updateTheme(self) -> None:
|
2891
2916
|
"""Update theme elements."""
|
2892
2917
|
self.tbButton.setThemeIcon("menu")
|
@@ -3000,9 +3025,6 @@ class GuiDocEditFooter(QWidget):
|
|
3000
3025
|
bSp = CONFIG.pxInt(4)
|
3001
3026
|
hSp = CONFIG.pxInt(6)
|
3002
3027
|
|
3003
|
-
lblFont = self.font()
|
3004
|
-
lblFont.setPointSizeF(0.9*SHARED.theme.fontPointSize)
|
3005
|
-
|
3006
3028
|
# Cached Translations
|
3007
3029
|
self._trLineCount = self.tr("Line: {0} ({1})")
|
3008
3030
|
self._trWordCount = self.tr("Words: {0} ({1})")
|
@@ -3025,7 +3047,6 @@ class GuiDocEditFooter(QWidget):
|
|
3025
3047
|
self.statusText.setAutoFillBackground(True)
|
3026
3048
|
self.statusText.setFixedHeight(fPx)
|
3027
3049
|
self.statusText.setAlignment(QtAlignLeftTop)
|
3028
|
-
self.statusText.setFont(lblFont)
|
3029
3050
|
|
3030
3051
|
# Lines
|
3031
3052
|
self.linesIcon = QLabel("", self)
|
@@ -3040,7 +3061,6 @@ class GuiDocEditFooter(QWidget):
|
|
3040
3061
|
self.linesText.setAutoFillBackground(True)
|
3041
3062
|
self.linesText.setFixedHeight(fPx)
|
3042
3063
|
self.linesText.setAlignment(QtAlignLeftTop)
|
3043
|
-
self.linesText.setFont(lblFont)
|
3044
3064
|
|
3045
3065
|
# Words
|
3046
3066
|
self.wordsIcon = QLabel("", self)
|
@@ -3055,7 +3075,6 @@ class GuiDocEditFooter(QWidget):
|
|
3055
3075
|
self.wordsText.setAutoFillBackground(True)
|
3056
3076
|
self.wordsText.setFixedHeight(fPx)
|
3057
3077
|
self.wordsText.setAlignment(QtAlignLeftTop)
|
3058
|
-
self.wordsText.setFont(lblFont)
|
3059
3078
|
|
3060
3079
|
# Assemble Layout
|
3061
3080
|
self.outerBox = QHBoxLayout()
|
@@ -3078,6 +3097,7 @@ class GuiDocEditFooter(QWidget):
|
|
3078
3097
|
self.setMinimumHeight(fPx + 2*mPx)
|
3079
3098
|
|
3080
3099
|
# Fix the Colours
|
3100
|
+
self.updateFont()
|
3081
3101
|
self.updateTheme()
|
3082
3102
|
|
3083
3103
|
# Initialise Info
|
@@ -3091,6 +3111,14 @@ class GuiDocEditFooter(QWidget):
|
|
3091
3111
|
# Methods
|
3092
3112
|
##
|
3093
3113
|
|
3114
|
+
def updateFont(self) -> None:
|
3115
|
+
"""Update the font settings."""
|
3116
|
+
self.setFont(SHARED.theme.guiFont)
|
3117
|
+
self.statusText.setFont(SHARED.theme.guiFontSmall)
|
3118
|
+
self.linesText.setFont(SHARED.theme.guiFontSmall)
|
3119
|
+
self.wordsText.setFont(SHARED.theme.guiFontSmall)
|
3120
|
+
return
|
3121
|
+
|
3094
3122
|
def updateTheme(self) -> None:
|
3095
3123
|
"""Update theme elements."""
|
3096
3124
|
iPx = round(0.9*SHARED.theme.baseIconHeight)
|
@@ -31,10 +31,7 @@ import logging
|
|
31
31
|
from enum import Enum
|
32
32
|
|
33
33
|
from PyQt5.QtCore import QPoint, Qt, QUrl, pyqtSignal, pyqtSlot
|
34
|
-
from PyQt5.QtGui import
|
35
|
-
QCursor, QFont, QMouseEvent, QPalette, QResizeEvent, QTextCursor,
|
36
|
-
QTextOption
|
37
|
-
)
|
34
|
+
from PyQt5.QtGui import QCursor, QMouseEvent, QPalette, QResizeEvent, QTextCursor, QTextOption
|
38
35
|
from PyQt5.QtWidgets import (
|
39
36
|
QAction, QApplication, QFrame, QHBoxLayout, QLabel, QMenu, QTextBrowser,
|
40
37
|
QToolButton, QWidget
|
@@ -141,12 +138,7 @@ class GuiDocViewer(QTextBrowser):
|
|
141
138
|
def initViewer(self) -> None:
|
142
139
|
"""Set editor settings from main config."""
|
143
140
|
self._makeStyleSheet()
|
144
|
-
|
145
|
-
# Set Font
|
146
|
-
font = QFont()
|
147
|
-
font.setFamily(CONFIG.textFont)
|
148
|
-
font.setPointSize(CONFIG.textSize)
|
149
|
-
self.document().setDefaultFont(font)
|
141
|
+
self.initFont()
|
150
142
|
|
151
143
|
# Set the widget colours to match syntax theme
|
152
144
|
mainPalette = self.palette()
|
@@ -189,6 +181,22 @@ class GuiDocViewer(QTextBrowser):
|
|
189
181
|
|
190
182
|
return
|
191
183
|
|
184
|
+
def initFont(self) -> None:
|
185
|
+
"""Set the font of the main widget and sub-widgets. This needs
|
186
|
+
special attention since there appears to be a bug in Qt 5.15.3.
|
187
|
+
See issues #1862 and #1875.
|
188
|
+
"""
|
189
|
+
font = self.font()
|
190
|
+
font.setFamily(CONFIG.textFont)
|
191
|
+
font.setPointSize(CONFIG.textSize)
|
192
|
+
self.setFont(font)
|
193
|
+
|
194
|
+
# Reset sub-widget font to GUI font
|
195
|
+
self.docHeader.updateFont()
|
196
|
+
self.docFooter.updateFont()
|
197
|
+
|
198
|
+
return
|
199
|
+
|
192
200
|
def loadText(self, tHandle: str, updateHistory: bool = True) -> bool:
|
193
201
|
"""Load text into the viewer from an item handle."""
|
194
202
|
if not SHARED.project.tree.checkType(tHandle, nwItemType.FILE):
|
@@ -646,10 +654,6 @@ class GuiDocViewHeader(QWidget):
|
|
646
654
|
self.itemTitle.setAlignment(QtAlignCenterTop)
|
647
655
|
self.itemTitle.setFixedHeight(iPx)
|
648
656
|
|
649
|
-
lblFont = self.itemTitle.font()
|
650
|
-
lblFont.setPointSizeF(0.9*SHARED.theme.fontPointSize)
|
651
|
-
self.itemTitle.setFont(lblFont)
|
652
|
-
|
653
657
|
# Other Widgets
|
654
658
|
self.outlineMenu = QMenu(self)
|
655
659
|
|
@@ -700,7 +704,7 @@ class GuiDocViewHeader(QWidget):
|
|
700
704
|
self.outerBox.setContentsMargins(mPx, mPx, mPx, mPx)
|
701
705
|
self.setMinimumHeight(iPx + 2*mPx)
|
702
706
|
|
703
|
-
|
707
|
+
self.updateFont()
|
704
708
|
self.updateTheme()
|
705
709
|
|
706
710
|
logger.debug("Ready: GuiDocViewHeader")
|
@@ -745,6 +749,12 @@ class GuiDocViewHeader(QWidget):
|
|
745
749
|
self._docOutline = data
|
746
750
|
return
|
747
751
|
|
752
|
+
def updateFont(self) -> None:
|
753
|
+
"""Update the font settings."""
|
754
|
+
self.setFont(SHARED.theme.guiFont)
|
755
|
+
self.itemTitle.setFont(SHARED.theme.guiFontSmall)
|
756
|
+
return
|
757
|
+
|
748
758
|
def updateTheme(self) -> None:
|
749
759
|
"""Update theme elements."""
|
750
760
|
self.outlineButton.setThemeIcon("list")
|
@@ -886,11 +896,6 @@ class GuiDocViewFooter(QWidget):
|
|
886
896
|
self.showSynopsis.toggled.connect(self._doToggleSynopsis)
|
887
897
|
self.showSynopsis.setToolTip(self.tr("Show Synopsis Comments"))
|
888
898
|
|
889
|
-
lblFont = self.font()
|
890
|
-
lblFont.setPointSizeF(0.9*SHARED.theme.fontPointSize)
|
891
|
-
self.showComments.setFont(lblFont)
|
892
|
-
self.showSynopsis.setFont(lblFont)
|
893
|
-
|
894
899
|
# Assemble Layout
|
895
900
|
self.outerBox = QHBoxLayout()
|
896
901
|
self.outerBox.addWidget(self.showHide, 0)
|
@@ -906,7 +911,7 @@ class GuiDocViewFooter(QWidget):
|
|
906
911
|
self.outerBox.setContentsMargins(mPx, mPx, mPx, mPx)
|
907
912
|
self.setMinimumHeight(iPx + 2*mPx)
|
908
913
|
|
909
|
-
|
914
|
+
self.updateFont()
|
910
915
|
self.updateTheme()
|
911
916
|
|
912
917
|
logger.debug("Ready: GuiDocViewFooter")
|
@@ -917,6 +922,13 @@ class GuiDocViewFooter(QWidget):
|
|
917
922
|
# Methods
|
918
923
|
##
|
919
924
|
|
925
|
+
def updateFont(self) -> None:
|
926
|
+
"""Update the font settings."""
|
927
|
+
self.setFont(SHARED.theme.guiFont)
|
928
|
+
self.showComments.setFont(SHARED.theme.guiFontSmall)
|
929
|
+
self.showSynopsis.setFont(SHARED.theme.guiFontSmall)
|
930
|
+
return
|
931
|
+
|
920
932
|
def updateTheme(self) -> None:
|
921
933
|
"""Update theme elements."""
|
922
934
|
# Icons
|
@@ -30,9 +30,7 @@ from math import ceil
|
|
30
30
|
from pathlib import Path
|
31
31
|
|
32
32
|
from PyQt5.QtCore import QSize, Qt
|
33
|
-
from PyQt5.QtGui import
|
34
|
-
QPalette, QColor, QIcon, QFont, QFontMetrics, QFontDatabase, QPixmap
|
35
|
-
)
|
33
|
+
from PyQt5.QtGui import QColor, QFont, QFontDatabase, QFontMetrics, QIcon, QPalette, QPixmap
|
36
34
|
from PyQt5.QtWidgets import QApplication
|
37
35
|
|
38
36
|
from novelwriter import CONFIG
|
@@ -154,6 +152,8 @@ class GuiTheme:
|
|
154
152
|
self.guiFont = QApplication.font()
|
155
153
|
self.guiFontB = QApplication.font()
|
156
154
|
self.guiFontB.setBold(True)
|
155
|
+
self.guiFontSmall = QApplication.font()
|
156
|
+
self.guiFontSmall.setPointSizeF(0.9*self.guiFont.pointSizeF())
|
157
157
|
|
158
158
|
qMetric = QFontMetrics(self.guiFont)
|
159
159
|
fHeight = qMetric.height()
|
@@ -36,7 +36,7 @@ from PyQt5.QtWidgets import (
|
|
36
36
|
)
|
37
37
|
|
38
38
|
from novelwriter import CONFIG, SHARED
|
39
|
-
from novelwriter.common import formatFileFilter,
|
39
|
+
from novelwriter.common import formatFileFilter, formatInt, getFileSize, openExternalPath
|
40
40
|
from novelwriter.error import formatException
|
41
41
|
from novelwriter.extensions.modified import NIconToolButton
|
42
42
|
from novelwriter.types import QtDialogClose
|
@@ -143,11 +143,12 @@ class GuiDictionaries(QDialog):
|
|
143
143
|
try:
|
144
144
|
import enchant
|
145
145
|
path = Path(enchant.get_user_config_dir())
|
146
|
+
self._installPath = Path(path).resolve()
|
147
|
+
self._installPath.mkdir(exist_ok=True, parents=True)
|
146
148
|
except Exception:
|
147
149
|
logger.error("Could not get enchant path")
|
148
150
|
return False
|
149
151
|
|
150
|
-
self._installPath = Path(path).resolve()
|
151
152
|
if path.is_dir():
|
152
153
|
self.inPath.setText(str(path))
|
153
154
|
hunspell = path / "hunspell"
|
@@ -199,9 +200,9 @@ class GuiDictionaries(QDialog):
|
|
199
200
|
if self._installPath:
|
200
201
|
temp = self.huInput.text()
|
201
202
|
if temp and (path := Path(temp)).is_file():
|
202
|
-
hunspell = self._installPath / "hunspell"
|
203
|
-
hunspell.mkdir(exist_ok=True)
|
204
203
|
try:
|
204
|
+
hunspell = self._installPath / "hunspell"
|
205
|
+
hunspell.mkdir(exist_ok=True)
|
205
206
|
nAff, nDic = self._extractDicts(path, hunspell)
|
206
207
|
if nAff == 0 or nDic == 0:
|
207
208
|
self._appendLog(procErr, err=True)
|
@@ -31,7 +31,7 @@ from time import time
|
|
31
31
|
from typing import TYPE_CHECKING
|
32
32
|
|
33
33
|
from PyQt5.QtCore import Qt, QTimer, QUrl, pyqtSignal, pyqtSlot
|
34
|
-
from PyQt5.QtGui import QCloseEvent, QColor, QCursor,
|
34
|
+
from PyQt5.QtGui import QCloseEvent, QColor, QCursor, QPalette, QResizeEvent
|
35
35
|
from PyQt5.QtPrintSupport import QPrinter, QPrintPreviewDialog
|
36
36
|
from PyQt5.QtWidgets import (
|
37
37
|
QAbstractItemView, QApplication, QDialog, QFormLayout, QGridLayout,
|
@@ -761,7 +761,6 @@ class _PreviewWidget(QTextBrowser):
|
|
761
761
|
self.setPalette(dPalette)
|
762
762
|
|
763
763
|
self.setMinimumWidth(40*SHARED.theme.textNWidth)
|
764
|
-
self.setTextFont(CONFIG.textFont, CONFIG.textSize)
|
765
764
|
self.setTabStopDistance(CONFIG.getTabWidth())
|
766
765
|
self.setOpenExternalLinks(False)
|
767
766
|
|
@@ -802,6 +801,8 @@ class _PreviewWidget(QTextBrowser):
|
|
802
801
|
self._updateDocMargins()
|
803
802
|
self._updateBuildAge()
|
804
803
|
|
804
|
+
self.setTextFont(CONFIG.textFont, CONFIG.textSize)
|
805
|
+
|
805
806
|
# Age Timer
|
806
807
|
self.ageTimer = QTimer(self)
|
807
808
|
self.ageTimer.setInterval(10000)
|
@@ -831,12 +832,17 @@ class _PreviewWidget(QTextBrowser):
|
|
831
832
|
return
|
832
833
|
|
833
834
|
def setTextFont(self, family: str, size: int) -> None:
|
834
|
-
"""Set the text font properties.
|
835
|
-
|
836
|
-
|
835
|
+
"""Set the text font properties and then reset for sub-widgets.
|
836
|
+
This needs special attention since there appears to be a bug in
|
837
|
+
Qt 5.15.3. See issues #1862 and #1875.
|
838
|
+
"""
|
839
|
+
if family and size > 4:
|
840
|
+
font = self.font()
|
837
841
|
font.setFamily(family)
|
838
842
|
font.setPointSize(size)
|
839
843
|
self.setFont(font)
|
844
|
+
self.buildProgress.setFont(SHARED.theme.guiFont)
|
845
|
+
self.ageLabel.setFont(SHARED.theme.guiFontSmall)
|
840
846
|
return
|
841
847
|
|
842
848
|
##
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_edit.svg
RENAMED
File without changes
|
{novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_import.svg
RENAMED
File without changes
|
File without changes
|
{novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/mixed_input-none.svg
RENAMED
File without changes
|
File without changes
|
File without changes
|
{novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-h0.svg
RENAMED
File without changes
|
{novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-h1.svg
RENAMED
File without changes
|
{novelwriter-2.4.1 → novelwriter-2.4.3}/novelwriter/assets/icons/typicons_dark/nw_deco-h2-narrow.svg
RENAMED
File without changes
|