novelWriter 2.7rc1__tar.gz → 2.7.1__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.7rc1 → novelwriter-2.7.1}/CHANGELOG.md +67 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/CREDITS.md +4 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/PKG-INFO +2 -2
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelWriter.egg-info/PKG-INFO +2 -2
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelWriter.egg-info/SOURCES.txt +2 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/__init__.py +3 -3
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_cs_CZ.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_de_DE.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_en_US.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_es_419.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_fr_FR.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_it_IT.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_ja_JP.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_nb_NO.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_nl_NL.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_pl_PL.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_pt_BR.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_ru_RU.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_zh_CN.qm +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_cs_CZ.json +2 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_de_DE.json +3 -1
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_en_US.json +2 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_it_IT.json +2 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_ja_JP.json +2 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_nb_NO.json +2 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_nn_NO.json +5 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_pl_PL.json +2 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_pt_BR.json +2 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_ru_RU.json +2 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_zh_CN.json +2 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/manual.pdf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/manual_fr.pdf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/sample.zip +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/text/credits_en.htm +6 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/constants.py +4 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/buildsettings.py +1 -1
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/index.py +16 -10
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/item.py +1 -1
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/doceditor.py +8 -7
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/tools/manussettings.py +14 -7
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/pkgutils.py +6 -18
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/pyproject.toml +2 -2
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/appimage_launcher.sh +1 -1
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/novelwriter.desktop +1 -1
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/debian/control +1 -7
- novelwriter-2.7.1/setup/icons/novelwriter.png +0 -0
- novelwriter-2.7.1/setup/icons/x-novelwriter-project.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/Info.plist.template +1 -1
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/build.sh +4 -4
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/make_pip.sh +1 -1
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/LICENSE.md +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/MANIFEST.in +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/README.md +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelWriter.egg-info/dependency_links.txt +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelWriter.egg-info/entry_points.txt +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelWriter.egg-info/requires.txt +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelWriter.egg-info/top_level.txt +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_en_GB.json +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_es_419.json +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_fr_FR.json +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_nl_NL.json +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/font_awesome.icons +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/material_filled_bold.icons +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/material_filled_normal.icons +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/material_filled_thin.icons +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/material_rounded_bold.icons +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/material_rounded_normal.icons +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/material_rounded_thin.icons +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/none.svg +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/novelwriter.ico +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/novelwriter.svg +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/remix_filled.icons +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/remix_outline.icons +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/x-novelwriter-project.ico +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/icons/x-novelwriter-project.svg +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/images/novelwriter-text-dark.svg +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/images/novelwriter-text-light.svg +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/images/splash.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/images/welcome-dark.jpg +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/images/welcome-light.jpg +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/cyberpunk_night.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/default_dark.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/default_light.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/dracula.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/grey_dark.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/grey_light.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/light_owl.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/night_owl.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/snazzy.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/solarized_dark.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/solarized_light.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/tango.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/tomorrow.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/tomorrow_night.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/tomorrow_night_blue.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/tomorrow_night_bright.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/syntax/tomorrow_night_eighties.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/text/lipsum.txt +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/themes/cyberpunk_night.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/themes/default.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/themes/default_dark.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/themes/default_light.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/themes/dracula.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/themes/snazzy.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/themes/solarized_dark.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/assets/themes/solarized_light.conf +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/common.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/config.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/coretools.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/docbuild.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/document.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/indexdata.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/itemmodel.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/novelmodel.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/options.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/project.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/projectdata.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/projectxml.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/sessions.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/spellcheck.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/status.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/storage.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/core/tree.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/dialogs/about.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/dialogs/docmerge.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/dialogs/docsplit.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/dialogs/editlabel.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/dialogs/preferences.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/dialogs/projectsettings.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/dialogs/quotes.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/dialogs/wordlist.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/enum.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/error.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/extensions/configlayout.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/extensions/eventfilters.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/extensions/modified.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/extensions/novelselector.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/extensions/pagedsidebar.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/extensions/progressbars.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/extensions/statusled.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/extensions/switch.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/extensions/switchbox.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/extensions/versioninfo.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/formats/shared.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/formats/todocx.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/formats/tohtml.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/formats/tokenizer.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/formats/tomarkdown.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/formats/toodt.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/formats/toqdoc.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/formats/toraw.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/dochighlight.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/docviewer.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/docviewerpanel.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/editordocument.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/itemdetails.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/mainmenu.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/noveltree.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/outline.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/projtree.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/search.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/sidebar.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/statusbar.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/gui/theme.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/guimain.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/shared.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/splash.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/text/comments.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/text/counting.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/text/patterns.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/tools/dictionaries.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/tools/lipsum.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/tools/manusbuild.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/tools/manuscript.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/tools/noveldetails.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/tools/welcome.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/tools/writingstats.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/novelwriter/types.py +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/128x128/apps/novelwriter.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/128x128/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/16x16/apps/novelwriter.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/16x16/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/24x24/apps/novelwriter.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/24x24/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/256x256/apps/novelwriter.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/256x256/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/32x32/apps/novelwriter.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/32x32/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/48x48/apps/novelwriter.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/48x48/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/512x512/apps/novelwriter.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/512x512/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/64x64/apps/novelwriter.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/64x64/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/scalable/apps/novelwriter.svg +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/hicolor/scalable/mimetypes/application-x-novelwriter-project.svg +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/novelwriter.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/data/x-novelwriter-project.xml +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/debian/compat +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/debian/copyright +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/debian/install +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/debian/py3dist-overrides +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/debian/rules +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/debian/source/format +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/description_pypi.md +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/description_short.txt +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/icons/novelwriter.ico +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/icons/novelwriter.svg +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/icons/x-novelwriter-project.ico +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/icons/x-novelwriter-project.svg +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/iss_license.txt +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/App.entitlements +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_128x128.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_128x128@2x.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_16x16.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_16x16@2x.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_256x256.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_256x256@2x.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_32x32.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_32x32@2x.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_512x512.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_512x512@2x.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/make_clean.sh +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/make_release.sh +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/novelwriter.appdata.xml +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/novelwriter_readme.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/novelwriter_text.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/screenshot.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/signpath_logo.png +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/win_setup_embed.iss +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/windows/CMakeLists.txt +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/windows/launcher.rc +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/windows/main.cpp +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/windows/make.ps1 +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/windows/novelWriter.exe +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup/windows/novelWriter.ico +0 -0
- {novelwriter-2.7rc1 → novelwriter-2.7.1}/setup.cfg +0 -0
@@ -1,5 +1,72 @@
|
|
1
1
|
# novelWriter Changelog
|
2
2
|
|
3
|
+
## Version 2.7.1 [2025-06-09]
|
4
|
+
|
5
|
+
### Release Notes
|
6
|
+
|
7
|
+
This is a patch release that fixes some issues with tags and references, and issue with the
|
8
|
+
auto-complete menu on Windows, and issues with the AppImage on Linux. The Czech translation for
|
9
|
+
2.7 has been completed.
|
10
|
+
|
11
|
+
### Detailed Changelog
|
12
|
+
|
13
|
+
**Bugfixes**
|
14
|
+
|
15
|
+
* Fix a bug where tags would be listed in the auto-complete menu for mentions even if the file
|
16
|
+
defining it had been moved to Archive or Trash. Issue #2387. PR #2389.
|
17
|
+
* Fixed a bug that seems to only have occurred on Windows where the auto-complete menu would hold
|
18
|
+
on to the return and arrow keys even when it was hidden. Issue #2386. PR #2389.
|
19
|
+
|
20
|
+
**Improvements**
|
21
|
+
|
22
|
+
* The auto-complete menu in the editor no longer shows any suggestions when defining the tag.
|
23
|
+
This never made sense anyway. PR #2389.
|
24
|
+
|
25
|
+
**Internationalisation**
|
26
|
+
|
27
|
+
* Updated the Czech. PR #2393.
|
28
|
+
|
29
|
+
**Packaging**
|
30
|
+
|
31
|
+
* Fixed an issue with the AppImage release where on some platforms `libxcb-cursor0` was missing.
|
32
|
+
The library is now included in the AppImage. Issue #2374. PR #2392.
|
33
|
+
|
34
|
+
----
|
35
|
+
|
36
|
+
## Version 2.7 [2025-06-01]
|
37
|
+
|
38
|
+
### Release Notes
|
39
|
+
|
40
|
+
The 2.7 release updates the 2.7 RC 1 release and makes an improvement to the build settings tool.
|
41
|
+
It also updates most translations and updates the French version of the documentation.
|
42
|
+
|
43
|
+
See the website for complete [Release Notes](https://novelwriter.io/releases/release_2_7.html).
|
44
|
+
|
45
|
+
### Detailed Changelog
|
46
|
+
|
47
|
+
**Improvement**
|
48
|
+
|
49
|
+
* The Manuscript Build Settings dialog now works on a copy of the settings so that if the dialog
|
50
|
+
box is closed without saving, all changes are discarded. It should also now detect any change
|
51
|
+
made to properly raise a confirmation prompt when closing without saving. Issue #2350. PR #2351.
|
52
|
+
|
53
|
+
**Documentation**
|
54
|
+
|
55
|
+
* The user documentation has been restructured, and the Getting Started section has been made less
|
56
|
+
technical. The install instructions have been moved out and into the main website. The technical
|
57
|
+
and in-depth parts of the documentation have been kept, but moved further back so that the
|
58
|
+
documentation can be read from the start and to the point where the user has enough information.
|
59
|
+
The larger sections have also been split up so that it should be easier to find the wanted
|
60
|
+
information directly from the menu. Issue #2345. PR #2355.
|
61
|
+
|
62
|
+
**Internationalisation**
|
63
|
+
|
64
|
+
* Updated US English, Japanese, Norwegian. German, Italian, Polish, Brazilian Portuguese and
|
65
|
+
Chinese translation files. PR #2353.
|
66
|
+
* French documentation updated by @Karduin. Issue #2360. PR #2361.
|
67
|
+
|
68
|
+
----
|
69
|
+
|
3
70
|
## Version 2.7 RC 1 [2025-05-19]
|
4
71
|
|
5
72
|
### Release Notes
|
@@ -39,6 +39,10 @@ Additional larger translation contributions:
|
|
39
39
|
* **French:** Albert Aribaud (aaribaud)
|
40
40
|
* **Portuguese:** Oli Maia (olimaia)
|
41
41
|
|
42
|
+
Translations of the documentation:
|
43
|
+
|
44
|
+
* **French:** Jean-Michel Heras (Karduin)
|
45
|
+
|
42
46
|
Translations are managed on [Crowdin](https://crowdin.com/project/novelwriter), and more
|
43
47
|
contributions are listed on the project's Members page.
|
44
48
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: novelWriter
|
3
|
-
Version: 2.
|
4
|
-
Summary: A
|
3
|
+
Version: 2.7.1
|
4
|
+
Summary: A plain text editor for planning and writing novels
|
5
5
|
Author-email: Veronica Berglyd Olsen <code@vkbo.net>
|
6
6
|
License: GNU General Public License v3
|
7
7
|
Project-URL: Homepage, https://novelwriter.io
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: novelWriter
|
3
|
-
Version: 2.
|
4
|
-
Summary: A
|
3
|
+
Version: 2.7.1
|
4
|
+
Summary: A plain text editor for planning and writing novels
|
5
5
|
Author-email: Veronica Berglyd Olsen <code@vkbo.net>
|
6
6
|
License: GNU General Public License v3
|
7
7
|
Project-URL: Homepage, https://novelwriter.io
|
@@ -209,8 +209,10 @@ setup/debian/py3dist-overrides
|
|
209
209
|
setup/debian/rules
|
210
210
|
setup/debian/source/format
|
211
211
|
setup/icons/novelwriter.ico
|
212
|
+
setup/icons/novelwriter.png
|
212
213
|
setup/icons/novelwriter.svg
|
213
214
|
setup/icons/x-novelwriter-project.ico
|
215
|
+
setup/icons/x-novelwriter-project.png
|
214
216
|
setup/icons/x-novelwriter-project.svg
|
215
217
|
setup/macos/App.entitlements
|
216
218
|
setup/macos/Info.plist.template
|
@@ -49,9 +49,9 @@ __license__ = "GPLv3"
|
|
49
49
|
__author__ = "Veronica Berglyd Olsen"
|
50
50
|
__maintainer__ = "Veronica Berglyd Olsen"
|
51
51
|
__email__ = "code@vkbo.net"
|
52
|
-
__version__ = "2.
|
53
|
-
__hexversion__ = "
|
54
|
-
__date__ = "2025-
|
52
|
+
__version__ = "2.7.1"
|
53
|
+
__hexversion__ = "0x020701f0"
|
54
|
+
__date__ = "2025-06-09"
|
55
55
|
__status__ = "Stable"
|
56
56
|
__domain__ = "novelwriter.io"
|
57
57
|
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,8 +1,10 @@
|
|
1
1
|
{
|
2
|
-
"Synopsis": "
|
2
|
+
"Synopsis": "Zusammenfassung",
|
3
3
|
"Short Description": "Kurzbeschreibung",
|
4
4
|
"Footnotes": "Fußnoten",
|
5
5
|
"Comment": "Kommentar",
|
6
|
+
"Story Structure": "Struktur",
|
7
|
+
"Note": "Notiz",
|
6
8
|
"Notes": "Notizen",
|
7
9
|
"Tag": "Schlagwort",
|
8
10
|
"Point of View": "Perspektive",
|
@@ -1,6 +1,10 @@
|
|
1
1
|
{
|
2
2
|
"Synopsis": "Samandrag",
|
3
|
+
"Short Description": "Kort beskriving",
|
4
|
+
"Footnotes": "Fotnotar",
|
3
5
|
"Comment": "Kommentar",
|
6
|
+
"Story Structure": "Tekst-element",
|
7
|
+
"Note": "Notat",
|
4
8
|
"Notes": "Notat",
|
5
9
|
"Tag": "Knagg",
|
6
10
|
"Point of View": "Perspektiv",
|
@@ -12,6 +16,7 @@
|
|
12
16
|
"Objects": "Objekt",
|
13
17
|
"Entities": "Eining",
|
14
18
|
"Custom": "Anna",
|
19
|
+
"New Page": "Ny side",
|
15
20
|
"0": "null",
|
16
21
|
"1": "ein",
|
17
22
|
"2": "to",
|
@@ -1,6 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"Synopsis": "Сводка",
|
3
3
|
"Short Description": "Краткое описание",
|
4
|
+
"Footnotes": "Примечания",
|
4
5
|
"Comment": "Комментарий",
|
5
6
|
"Notes": "Заметки",
|
6
7
|
"Tag": "Тэг",
|
@@ -13,6 +14,7 @@
|
|
13
14
|
"Objects": "Объекты",
|
14
15
|
"Entities": "Сущности",
|
15
16
|
"Custom": "Другое",
|
17
|
+
"New Page": "Новая страница",
|
16
18
|
"0": "Ноль",
|
17
19
|
"1": "Один",
|
18
20
|
"2": "Два",
|
Binary file
|
Binary file
|
Binary file
|
@@ -47,6 +47,12 @@ translators for the languages currently available:</p>
|
|
47
47
|
<li><b>Portuguese:</b> Oli Maia (olimaia)</li>
|
48
48
|
</ul>
|
49
49
|
|
50
|
+
<p>Translations of the documentation:</p>
|
51
|
+
|
52
|
+
<ul>
|
53
|
+
<li><b>French:</b> Jean-Michel Heras (Karduin)</li>
|
54
|
+
</ul>
|
55
|
+
|
50
56
|
<p>Translations are managed on <a href="https://crowdin.com/project/novelwriter">Crowdin</a>, and
|
51
57
|
more contributions are listed on the project's Members page.</p>
|
52
58
|
|
@@ -184,6 +184,10 @@ class nwKeyWords:
|
|
184
184
|
POV_KEY, FOCUS_KEY, CHAR_KEY, PLOT_KEY, TIME_KEY, WORLD_KEY,
|
185
185
|
OBJECT_KEY, ENTITY_KEY, CUSTOM_KEY,
|
186
186
|
]
|
187
|
+
CAN_LOOKUP: Final[list[str]] = [
|
188
|
+
POV_KEY, FOCUS_KEY, CHAR_KEY, PLOT_KEY, TIME_KEY, WORLD_KEY,
|
189
|
+
OBJECT_KEY, ENTITY_KEY, CUSTOM_KEY, STORY_KEY, MENTION_KEY,
|
190
|
+
]
|
187
191
|
|
188
192
|
# Set of Valid Keys
|
189
193
|
VALID_KEYS: Final[set[str]] = set(ALL_KEYS)
|
@@ -390,7 +390,7 @@ class BuildSettings:
|
|
390
390
|
def setValue(self, key: str, value: T_BuildValue) -> None:
|
391
391
|
"""Set a specific value for a build setting."""
|
392
392
|
if (d := SETTINGS_TEMPLATE.get(key)) and len(d) == 2 and isinstance(value, d[0]):
|
393
|
-
self._changed
|
393
|
+
self._changed |= (value != self._settings[key])
|
394
394
|
self._settings[key] = value
|
395
395
|
return
|
396
396
|
|
@@ -131,12 +131,6 @@ class Index:
|
|
131
131
|
self._novelExtra = extra
|
132
132
|
return
|
133
133
|
|
134
|
-
def setItemClass(self, tHandle: str, itemClass: nwItemClass) -> None:
|
135
|
-
"""Update the class for all tags of a handle."""
|
136
|
-
logger.info("Updating class for '%s'", tHandle)
|
137
|
-
self._tagsIndex.updateClass(tHandle, itemClass.name)
|
138
|
-
return
|
139
|
-
|
140
134
|
##
|
141
135
|
# Public Methods
|
142
136
|
##
|
@@ -183,6 +177,16 @@ class Index:
|
|
183
177
|
self.scanText(tHandle, self._project.storage.getDocumentText(tHandle))
|
184
178
|
return
|
185
179
|
|
180
|
+
def refreshHandle(self, tHandle: str) -> None:
|
181
|
+
"""Update the class for all tags of a handle."""
|
182
|
+
if item := self._project.tree[tHandle]:
|
183
|
+
logger.info("Updating class for '%s'", tHandle)
|
184
|
+
if item.isInactiveClass():
|
185
|
+
self.deleteHandle(tHandle)
|
186
|
+
else:
|
187
|
+
self._tagsIndex.updateClass(tHandle, item.itemClass.name)
|
188
|
+
return
|
189
|
+
|
186
190
|
def indexChangedSince(self, checkTime: int | float) -> bool:
|
187
191
|
"""Check if the index has changed since a given time."""
|
188
192
|
return self._indexChange > float(checkTime)
|
@@ -753,10 +757,12 @@ class Index:
|
|
753
757
|
"""Return all tags used by a specific document."""
|
754
758
|
return self._itemIndex.allItemTags(tHandle) if tHandle else []
|
755
759
|
|
756
|
-
def
|
757
|
-
"""Return all tags
|
758
|
-
|
759
|
-
|
760
|
+
def getKeyWordTags(self, keyWord: str) -> list[str]:
|
761
|
+
"""Return all tags usable for a specific keyword."""
|
762
|
+
if keyWord in nwKeyWords.CAN_LOOKUP:
|
763
|
+
itemClass = nwKeyWords.KEY_CLASS.get(keyWord)
|
764
|
+
return self._tagsIndex.filterTagNames(itemClass.name if itemClass else None)
|
765
|
+
return []
|
760
766
|
|
761
767
|
def getTagsData(
|
762
768
|
self, activeOnly: bool = True
|
@@ -439,7 +439,7 @@ class NWItem:
|
|
439
439
|
self.setClass(itemClass)
|
440
440
|
if self._type == nwItemType.FILE:
|
441
441
|
# Notify the index of the class change
|
442
|
-
self._project.index.
|
442
|
+
self._project.index.refreshHandle(self._handle)
|
443
443
|
|
444
444
|
if self._layout == nwItemLayout.NO_LAYOUT:
|
445
445
|
# If no layout is set, pick one
|
@@ -1090,11 +1090,14 @@ class GuiDocEditor(QPlainTextEdit):
|
|
1090
1090
|
show = self._completer.updateMetaText(text, bPos)
|
1091
1091
|
else:
|
1092
1092
|
show = self._completer.updateCommentText(text, bPos)
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1093
|
+
if show:
|
1094
|
+
point = self.cursorRect().bottomRight()
|
1095
|
+
self._completer.move(viewport.mapToGlobal(point))
|
1096
|
+
self._completer.show()
|
1097
|
+
else:
|
1098
|
+
self._completer.close()
|
1096
1099
|
else:
|
1097
|
-
self._completer.
|
1100
|
+
self._completer.close()
|
1098
1101
|
|
1099
1102
|
if self._doReplace and added == 1:
|
1100
1103
|
cursor = self.textCursor()
|
@@ -2113,9 +2116,7 @@ class CommandCompleter(QMenu):
|
|
2113
2116
|
length = len(lookup)
|
2114
2117
|
suffix = ""
|
2115
2118
|
options = sorted(filter(
|
2116
|
-
lambda x: lookup in x.lower(), SHARED.project.index.
|
2117
|
-
nwKeyWords.KEY_CLASS.get(kw.strip())
|
2118
|
-
)
|
2119
|
+
lambda x: lookup in x.lower(), SHARED.project.index.getKeyWordTags(kw.strip())
|
2119
2120
|
))[:15]
|
2120
2121
|
|
2121
2122
|
if not options:
|
@@ -80,7 +80,8 @@ class GuiBuildSettings(NToolDialog):
|
|
80
80
|
logger.debug("Create: GuiBuildSettings")
|
81
81
|
self.setObjectName("GuiBuildSettings")
|
82
82
|
|
83
|
-
|
83
|
+
# Make a copy of the build object
|
84
|
+
self._build = BuildSettings.fromDict(build.pack())
|
84
85
|
|
85
86
|
self.setWindowTitle(self.tr("Manuscript Build Settings"))
|
86
87
|
self.setMinimumSize(700, 400)
|
@@ -184,6 +185,7 @@ class GuiBuildSettings(NToolDialog):
|
|
184
185
|
settings.
|
185
186
|
"""
|
186
187
|
logger.debug("Closing: GuiBuildSettings")
|
188
|
+
self._applyChanges()
|
187
189
|
self._askToSaveBuild()
|
188
190
|
self._saveSettings()
|
189
191
|
event.accept()
|
@@ -211,11 +213,14 @@ class GuiBuildSettings(NToolDialog):
|
|
211
213
|
"""Handle button clicks from the dialog button box."""
|
212
214
|
role = self.buttonBox.buttonRole(button)
|
213
215
|
if role == QtRoleApply:
|
216
|
+
self._applyChanges()
|
214
217
|
self._emitBuildData()
|
215
218
|
elif role == QtRoleAccept:
|
219
|
+
self._applyChanges()
|
216
220
|
self._emitBuildData()
|
217
221
|
self.close()
|
218
222
|
elif role == QtRoleReject:
|
223
|
+
self._build.resetChangedState()
|
219
224
|
self.close()
|
220
225
|
return
|
221
226
|
|
@@ -228,10 +233,9 @@ class GuiBuildSettings(NToolDialog):
|
|
228
233
|
whether the user wants to save them.
|
229
234
|
"""
|
230
235
|
if self._build.changed:
|
231
|
-
|
236
|
+
if SHARED.question(self.tr(
|
232
237
|
"Do you want to save your changes to '{0}'?"
|
233
|
-
).format(self._build.name))
|
234
|
-
if response:
|
238
|
+
).format(self._build.name)):
|
235
239
|
self._emitBuildData()
|
236
240
|
self._build.resetChangedState()
|
237
241
|
return
|
@@ -246,14 +250,17 @@ class GuiBuildSettings(NToolDialog):
|
|
246
250
|
pOptions.setValue("GuiBuildSettings", "treeWidth", treeWidth)
|
247
251
|
pOptions.setValue("GuiBuildSettings", "filterWidth", filterWidth)
|
248
252
|
pOptions.saveSettings()
|
249
|
-
|
250
253
|
return
|
251
254
|
|
252
|
-
def
|
253
|
-
"""
|
255
|
+
def _applyChanges(self) -> None:
|
256
|
+
"""Apply all settings changes to the build object."""
|
254
257
|
self._build.setName(self.editBuildName.text())
|
255
258
|
self.optTabHeadings.saveContent()
|
256
259
|
self.optTabFormatting.saveContent()
|
260
|
+
return
|
261
|
+
|
262
|
+
def _emitBuildData(self) -> None:
|
263
|
+
"""Assemble the build data and emit the signal."""
|
257
264
|
self.newSettingsReady.emit(self._build)
|
258
265
|
self._build.resetChangedState()
|
259
266
|
return
|
@@ -272,24 +272,12 @@ if __name__ == "__main__":
|
|
272
272
|
cmdBuildUbuntu.set_defaults(func=utils.build_debian.launchpad)
|
273
273
|
|
274
274
|
# Build AppImage
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
)
|
281
|
-
cmdBuildAppImage.add_argument(
|
282
|
-
"--linux-tag",
|
283
|
-
default="manylinux_2_28_x86_64",
|
284
|
-
help=(
|
285
|
-
"Linux compatibility tag (e.g. manylinux_2_28_x86_64) "
|
286
|
-
"see https://python-appimage.readthedocs.io/en/latest/#available-python-appimages "
|
287
|
-
"and https://github.com/pypa/manylinux for a list of valid tags."
|
288
|
-
),
|
289
|
-
)
|
290
|
-
cmdBuildAppImage.add_argument(
|
291
|
-
"--python-version", default="3.13", help="Python version (e.g. 3.13)"
|
292
|
-
)
|
275
|
+
# See https://github.com/pypa/manylinux
|
276
|
+
# See https://python-appimage.readthedocs.io/en/latest/#available-python-appimages
|
277
|
+
cmdBuildAppImage = parsers.add_parser("build-appimage", help="Build an AppImage.")
|
278
|
+
cmdBuildAppImage.add_argument("linux", help="Manylinux version, e.g. manylinux_2_28.")
|
279
|
+
cmdBuildAppImage.add_argument("arch", help="Architecture, e.g. x86_64.")
|
280
|
+
cmdBuildAppImage.add_argument("python", help="Python version, e.g. 3.13.")
|
293
281
|
cmdBuildAppImage.set_defaults(func=utils.build_appimage.appImage)
|
294
282
|
|
295
283
|
# Build Windows Inno Setup Installer
|
@@ -1,5 +1,5 @@
|
|
1
1
|
[build-system]
|
2
|
-
requires = ["setuptools"]
|
2
|
+
requires = ["setuptools >= 77.0.3"]
|
3
3
|
build-backend = "setuptools.build_meta"
|
4
4
|
|
5
5
|
[project]
|
@@ -7,7 +7,7 @@ name = "novelWriter"
|
|
7
7
|
authors = [
|
8
8
|
{name = "Veronica Berglyd Olsen", email = "code@vkbo.net"},
|
9
9
|
]
|
10
|
-
description = "A
|
10
|
+
description = "A plain text editor for planning and writing novels"
|
11
11
|
readme = {file = "setup/description_pypi.md", content-type = "text/markdown"}
|
12
12
|
license = {text = "GNU General Public License v3"}
|
13
13
|
classifiers = [
|
@@ -24,7 +24,7 @@ cat > $HOME/.local/share/applications/novelWriter.desktop <<EOF
|
|
24
24
|
[Desktop Entry]
|
25
25
|
Type=Application
|
26
26
|
Name=novelWriter
|
27
|
-
Comment=A
|
27
|
+
Comment=A plain text editor for planning and writing novels
|
28
28
|
Exec=${IMGPATH} %f
|
29
29
|
Icon=${ICONPATH}
|
30
30
|
Categories=Qt;Office;WordProcessor;
|
@@ -10,10 +10,4 @@ X-Python3-Version: >= 3.10
|
|
10
10
|
Package: novelwriter
|
11
11
|
Architecture: all
|
12
12
|
Depends: ${misc:Depends}, ${python3:Depends}, python3 (>=3.10), python3-pyqt6 (>= 6.4), python3-pyqt6.qtsvg (>= 6.4), python3-enchant (>= 2.0)
|
13
|
-
Description: A
|
14
|
-
novelWriter is a plain text editor designed for writing novels assembled from
|
15
|
-
many smaller text documents. It uses a minimal formatting syntax inspired by
|
16
|
-
Markdown, and adds a meta data syntax for comments, synopsis, and
|
17
|
-
cross-referencing. It's designed to be a simple text editor that allows for
|
18
|
-
easy organisation of text and notes, using human readable text files as
|
19
|
-
storage for robustness.
|
13
|
+
Description: A plain text editor for planning and writing novels
|
Binary file
|
Binary file
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<key>CFBundleExecutable</key>
|
12
12
|
<string>novelWriter</string>
|
13
13
|
<key>CFBundleGetInfoString</key>
|
14
|
-
<string>novelWriter: A
|
14
|
+
<string>novelWriter: A plain text editor for planning and writing novels.</string>
|
15
15
|
<key>CFBundleIconFile</key>
|
16
16
|
<string>novelwriter.icns</string>
|
17
17
|
<key>CFBundleIdentifier</key>
|
@@ -174,7 +174,7 @@ rm lib/python3.*/site-packages/PyQt6/QtWebEngine* || true
|
|
174
174
|
rm -r lib/python3.*/site-packages/PyQt6/Qt6/translations/qtwebengine* || true
|
175
175
|
rm -r lib/python3.*/site-packages/PyQt6/Qt6/plugins/webview/libqtwebview* || true
|
176
176
|
|
177
|
-
# Remove unneeded QtQuick/
|
177
|
+
# Remove unneeded QtQuick/Declarative components
|
178
178
|
rm lib/python3.*/site-packages/PyQt6/QtQml* || true
|
179
179
|
rm lib/python3.*/site-packages/PyQt6/QtQuick* || true
|
180
180
|
rm lib/python3.*/site-packages/PyQt6/WebChannel* || true
|
@@ -200,16 +200,16 @@ mkdir -p $RLS_DIR
|
|
200
200
|
# --- Create DMG -------------------------------------------------------------------------------- #
|
201
201
|
|
202
202
|
# Generate .dmg
|
203
|
-
echo "
|
203
|
+
echo "Packaging DMG ..."
|
204
204
|
brew install create-dmg
|
205
205
|
|
206
206
|
create-dmg --volname "novelWriter $VERSION" --volicon $SRC_DIR/setup/macos/novelwriter.icns \
|
207
207
|
--window-pos 200 120 --window-size 800 400 --icon-size 100 \
|
208
208
|
--icon novelWriter.app 200 190 --hide-extension novelWriter.app \
|
209
|
-
--app-drop-link 600 185 $RLS_DIR/
|
209
|
+
--app-drop-link 600 185 $RLS_DIR/novelwriter-"${VERSION}"-$ARCH.dmg "$BUILD_DIR"/
|
210
210
|
|
211
211
|
pushd $RLS_DIR || exit 1
|
212
|
-
shasum -a 256
|
212
|
+
shasum -a 256 novelwriter-"${VERSION}"-$ARCH.dmg | tee novelwriter-"${VERSION}"-$ARCH.dmg.sha256
|
213
213
|
popd || exit 1
|
214
214
|
|
215
215
|
rm -r $CONDA_PATH
|
File without changes
|
File without changes
|
File without changes
|