novelWriter 2.7b1__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.7b1 → novelwriter-2.7.1}/CHANGELOG.md +148 -3
- {novelwriter-2.7b1 → novelwriter-2.7.1}/CREDITS.md +4 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/PKG-INFO +2 -2
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelWriter.egg-info/PKG-INFO +2 -2
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelWriter.egg-info/SOURCES.txt +5 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/__init__.py +17 -4
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_cs_CZ.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_de_DE.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_en_US.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_es_419.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_fr_FR.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_it_IT.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_ja_JP.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_nb_NO.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_nl_NL.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_pl_PL.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_pt_BR.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_ru_RU.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/nw_zh_CN.qm +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_cs_CZ.json +2 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_de_DE.json +3 -1
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_en_GB.json +1 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_en_US.json +2 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_it_IT.json +2 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_ja_JP.json +2 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_nb_NO.json +2 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_nn_NO.json +5 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_pl_PL.json +2 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_pt_BR.json +2 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_ru_RU.json +2 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_zh_CN.json +2 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/remix_filled.icons +1 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/remix_outline.icons +1 -0
- novelwriter-2.7.1/novelwriter/assets/images/splash.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/manual.pdf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/manual_fr.pdf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/sample.zip +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/snazzy.conf +3 -3
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/text/credits_en.htm +6 -0
- novelwriter-2.7.1/novelwriter/assets/themes/snazzy.conf +48 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/common.py +10 -1
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/config.py +96 -25
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/constants.py +21 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/buildsettings.py +3 -1
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/coretools.py +41 -34
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/docbuild.py +1 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/index.py +35 -5
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/indexdata.py +4 -1
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/item.py +35 -24
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/itemmodel.py +17 -13
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/novelmodel.py +2 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/project.py +14 -14
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/projectdata.py +42 -24
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/projectxml.py +17 -7
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/sessions.py +29 -13
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/tree.py +9 -5
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/dialogs/docmerge.py +2 -1
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/dialogs/docsplit.py +6 -3
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/dialogs/editlabel.py +11 -8
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/dialogs/preferences.py +37 -26
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/dialogs/projectsettings.py +3 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/extensions/configlayout.py +6 -2
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/extensions/switch.py +16 -15
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/extensions/switchbox.py +1 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/formats/tokenizer.py +2 -1
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/doceditor.py +106 -47
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/noveltree.py +11 -5
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/outline.py +9 -1
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/projtree.py +1 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/search.py +1 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/statusbar.py +14 -6
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/theme.py +25 -10
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/guimain.py +29 -9
- novelwriter-2.7.1/novelwriter/splash.py +74 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/tools/lipsum.py +2 -1
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/tools/manuscript.py +1 -1
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/tools/manussettings.py +52 -20
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/tools/noveldetails.py +9 -8
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/tools/welcome.py +1 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/tools/writingstats.py +68 -45
- {novelwriter-2.7b1 → novelwriter-2.7.1}/pkgutils.py +6 -18
- {novelwriter-2.7b1 → novelwriter-2.7.1}/pyproject.toml +2 -2
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/appimage_launcher.sh +1 -1
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/novelwriter.desktop +1 -1
- {novelwriter-2.7b1 → 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.7b1 → novelwriter-2.7.1}/setup/macos/Info.plist.template +1 -1
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/macos/build.sh +4 -4
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/make_pip.sh +1 -1
- {novelwriter-2.7b1 → novelwriter-2.7.1}/LICENSE.md +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/MANIFEST.in +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/README.md +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelWriter.egg-info/dependency_links.txt +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelWriter.egg-info/entry_points.txt +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelWriter.egg-info/requires.txt +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelWriter.egg-info/top_level.txt +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_es_419.json +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_fr_FR.json +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/i18n/project_nl_NL.json +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/font_awesome.icons +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/material_filled_bold.icons +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/material_filled_normal.icons +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/material_filled_thin.icons +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/material_rounded_bold.icons +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/material_rounded_normal.icons +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/material_rounded_thin.icons +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/none.svg +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/novelwriter.ico +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/novelwriter.svg +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/x-novelwriter-project.ico +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/icons/x-novelwriter-project.svg +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/images/novelwriter-text-dark.svg +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/images/novelwriter-text-light.svg +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/images/welcome-dark.jpg +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/images/welcome-light.jpg +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/cyberpunk_night.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/default_dark.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/default_light.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/dracula.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/grey_dark.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/grey_light.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/light_owl.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/night_owl.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/solarized_dark.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/solarized_light.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/tango.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/tomorrow.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/tomorrow_night.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/tomorrow_night_blue.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/tomorrow_night_bright.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/syntax/tomorrow_night_eighties.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/text/lipsum.txt +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/themes/cyberpunk_night.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/themes/default.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/themes/default_dark.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/themes/default_light.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/themes/dracula.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/themes/solarized_dark.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/assets/themes/solarized_light.conf +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/document.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/options.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/spellcheck.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/status.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/core/storage.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/dialogs/about.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/dialogs/quotes.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/dialogs/wordlist.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/enum.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/error.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/extensions/eventfilters.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/extensions/modified.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/extensions/novelselector.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/extensions/pagedsidebar.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/extensions/progressbars.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/extensions/statusled.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/extensions/versioninfo.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/formats/shared.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/formats/todocx.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/formats/tohtml.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/formats/tomarkdown.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/formats/toodt.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/formats/toqdoc.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/formats/toraw.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/dochighlight.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/docviewer.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/docviewerpanel.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/editordocument.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/itemdetails.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/mainmenu.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/gui/sidebar.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/shared.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/text/comments.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/text/counting.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/text/patterns.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/tools/dictionaries.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/tools/manusbuild.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/novelwriter/types.py +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/128x128/apps/novelwriter.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/128x128/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/16x16/apps/novelwriter.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/16x16/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/24x24/apps/novelwriter.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/24x24/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/256x256/apps/novelwriter.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/256x256/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/32x32/apps/novelwriter.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/32x32/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/48x48/apps/novelwriter.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/48x48/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/512x512/apps/novelwriter.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/512x512/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/64x64/apps/novelwriter.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/64x64/mimetypes/application-x-novelwriter-project.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/scalable/apps/novelwriter.svg +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/hicolor/scalable/mimetypes/application-x-novelwriter-project.svg +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/novelwriter.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/data/x-novelwriter-project.xml +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/debian/compat +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/debian/copyright +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/debian/install +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/debian/py3dist-overrides +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/debian/rules +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/debian/source/format +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/description_pypi.md +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/description_short.txt +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/icons/novelwriter.ico +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/icons/novelwriter.svg +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/icons/x-novelwriter-project.ico +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/icons/x-novelwriter-project.svg +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/iss_license.txt +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/macos/App.entitlements +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_128x128.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_128x128@2x.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_16x16.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_16x16@2x.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_256x256.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_256x256@2x.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_32x32.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_32x32@2x.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_512x512.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/macos/novelwriter.iconset/icon_512x512@2x.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/make_clean.sh +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/make_release.sh +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/novelwriter.appdata.xml +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/novelwriter_readme.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/novelwriter_text.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/screenshot.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/signpath_logo.png +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/win_setup_embed.iss +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/windows/CMakeLists.txt +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/windows/launcher.rc +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/windows/main.cpp +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/windows/make.ps1 +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/windows/novelWriter.exe +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup/windows/novelWriter.ico +0 -0
- {novelwriter-2.7b1 → novelwriter-2.7.1}/setup.cfg +0 -0
@@ -1,5 +1,151 @@
|
|
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
|
+
|
70
|
+
## Version 2.7 RC 1 [2025-05-19]
|
71
|
+
|
72
|
+
### Release Notes
|
73
|
+
|
74
|
+
This is a release candidate of the next release version, and is intended for testing purposes.
|
75
|
+
Please be careful when using this version on live writing projects, and make sure you take frequent
|
76
|
+
backups.
|
77
|
+
|
78
|
+
### Detailed Changelog
|
79
|
+
|
80
|
+
**New Features**
|
81
|
+
|
82
|
+
* It is now possible to set character count as the main statistics displayed on the GUI instead of
|
83
|
+
word count. The setting is available under the "Appearance" section in Preferences. Issue #1657.
|
84
|
+
PR #2323.
|
85
|
+
* Comments can now be marked as "Manuscript Notes" with the `%Note.term:` syntax. The term is a
|
86
|
+
free form value that is displayed alongside the note when exported to the manuscript. Each term
|
87
|
+
is also added as a column in exports from the Outline View. Issue #1133. PR #2346.
|
88
|
+
* A completer drop down menu has been added to comments as well in the editor. It is triggered when
|
89
|
+
a new line starts with `%`. It will show the options of Synopsis, Short, Story and Note, and when
|
90
|
+
a period is added after the latter two, show a list of previously used Story and Note keys.
|
91
|
+
Issue #1784. PR #2290.
|
92
|
+
|
93
|
+
**Improvements**
|
94
|
+
|
95
|
+
* The dialogue colour of the Snazzy Light syntax theme has changed from yellow to blue, which
|
96
|
+
should make it easier to read. PR #2336.
|
97
|
+
* The Snazzy Light theme has also been added as a GUI theme. PR #2334.
|
98
|
+
* The auto-generated title page for new projects should now make a little more sense in terms of
|
99
|
+
default values filled in for the author. PR #2333.
|
100
|
+
* The new project form on the Welcome dialog now remembers the previous author name filled in, so
|
101
|
+
there should be no need to type it again every time. PR #2333.
|
102
|
+
* Project name and author name values are now also used for new example projects. PR #2333.
|
103
|
+
* The narrator break symbol settings for dialogue have been changed from a free text field to a
|
104
|
+
dropdown list of dashes. This helps to avoid misunderstandings where the field was populated with
|
105
|
+
other symbols, like quote symbols (see #2320). Issue #2324. PR #2327.
|
106
|
+
* A splash screen is now shown at startup, providing some information about the initialisation
|
107
|
+
steps the startup script is running before the GUI is launched. Since loading system fonts can be
|
108
|
+
quote heavy, this at least gives some user feedback to users running on systems where there is a
|
109
|
+
significant delay. In particular, there is a long delay when loading fonts with poor Unicode
|
110
|
+
support, in which case the Qt library will look for replacement glyphs when the symbols are first
|
111
|
+
encountered. Previously, the delay happened when the Welcome dialog was being drawn, since this
|
112
|
+
is the first time a non-Ascii Unicode character is used. Now these Unicode characters are probed
|
113
|
+
when the config is loaded, with progress output on the splash screen. Issue #2315. PR #2316.
|
114
|
+
|
115
|
+
**Bugfixes**
|
116
|
+
|
117
|
+
* Moving a note between root folders of a different type will now update the class the tags defined
|
118
|
+
within the note are associated with. This association is used to populate the tag auto-completion
|
119
|
+
in the editor. Issue #2330. PR #2343.
|
120
|
+
* The story structure comments now appear under the correct column when exported to CSV from the
|
121
|
+
Outline View. Issue #2313. PR #2343.
|
122
|
+
* A new unique ID is now assigned to new example projects. Creating multiple example projects would
|
123
|
+
previously retain the original ID, causing the Welcome dialog to override them rather than list
|
124
|
+
them as unique projects. PR #2333.
|
125
|
+
* In Qt6, or probably in PyQt6, the datetime type from Python was truncated to a date variable when
|
126
|
+
localising it. This has been fixed by explicitly converting the Python datetime to a QDateTime
|
127
|
+
before passing it to the PyQt wrapper. This is probably a bug in PyQt6. Issue #2325. PR #2326.
|
128
|
+
* A missing Remix icon for project copy has been added. Issue #2314. PR #2317.
|
129
|
+
|
130
|
+
**Accessibility**
|
131
|
+
|
132
|
+
* Trees and lists on the GUI have been assigned names so that screen readers can more easily
|
133
|
+
identify them. Switches on the GUI have also been associated with their labels so the screen
|
134
|
+
reader can pick up the label text. Icons on the project tree also have an accessibility label.
|
135
|
+
Issues #2106 and #2107. PR #2337.
|
136
|
+
* Switches should now show a highlighted border when they have focus, and the toggle animation also
|
137
|
+
now works properly when a switch is toggled using the keyboard. This should improve keyboard
|
138
|
+
navigation. PR #2337.
|
139
|
+
* The default status and importance labels for new projects now use shapes for icons, to make the
|
140
|
+
defaults more accessible for people with reduced colour vision. Issue #2332. PR #2333.
|
141
|
+
|
142
|
+
**Code Improvements**
|
143
|
+
|
144
|
+
* New tests have been added for the custom data models, using the Qt model tester framework that
|
145
|
+
ensures the models have all the virtual methods implemented. PR #2331.
|
146
|
+
|
147
|
+
----
|
148
|
+
|
3
149
|
## Version 2.7 Beta 1 [2025-04-20]
|
4
150
|
|
5
151
|
### Release Notes
|
@@ -49,8 +195,7 @@ careful when using this version on live writing projects, and make sure you take
|
|
49
195
|
* The move to Qt6 is complete, and the new minimum requirement is Qt 6.4. Issues #864, #1142,
|
50
196
|
#2192, #2193, #2194 and #2195. PRs #2184, #2187, #2190, #2191, #2196, #2204, #2301 and #2306.
|
51
197
|
* Support for Python 3.9 has been dropped. Due to the Qt6 change, older distros are no longer
|
52
|
-
supported. The oldest Ubuntu release still supported is
|
53
|
-
PR #2182.
|
198
|
+
supported. The oldest Ubuntu release still supported is 24.04. PR #2182.
|
54
199
|
* The Windows release now uses a custom novelWriter.exe launcher rather than calling the Python exe
|
55
200
|
directly with novelWriter.pyw as an argument. This means novelWriter can also be launched from
|
56
201
|
its install folder, and desktop shortcuts created directly. It also simplifies the registry
|
@@ -66,7 +211,7 @@ careful when using this version on live writing projects, and make sure you take
|
|
66
211
|
**Code Improvements**
|
67
212
|
|
68
213
|
* The log output now obeys the `NO_COLOR` and `FORCE_COLOR` environment variables. PR #2228.
|
69
|
-
* The CI/CD pipeline now runs type checking on the code base using Pyright.
|
214
|
+
* The CI/CD pipeline now runs type checking on the code base using Pyright. PR #2279.
|
70
215
|
* The CI/CD pipeline now uses Ruff to check code style and format. PRs #2281, #2282 and #2287.
|
71
216
|
* The code base has been updated to conform to new linting rules. PR #2201.
|
72
217
|
|
@@ -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
|
@@ -19,6 +19,7 @@ novelwriter/enum.py
|
|
19
19
|
novelwriter/error.py
|
20
20
|
novelwriter/guimain.py
|
21
21
|
novelwriter/shared.py
|
22
|
+
novelwriter/splash.py
|
22
23
|
novelwriter/types.py
|
23
24
|
novelwriter/assets/manual.pdf
|
24
25
|
novelwriter/assets/manual_fr.pdf
|
@@ -67,6 +68,7 @@ novelwriter/assets/icons/x-novelwriter-project.ico
|
|
67
68
|
novelwriter/assets/icons/x-novelwriter-project.svg
|
68
69
|
novelwriter/assets/images/novelwriter-text-dark.svg
|
69
70
|
novelwriter/assets/images/novelwriter-text-light.svg
|
71
|
+
novelwriter/assets/images/splash.png
|
70
72
|
novelwriter/assets/images/welcome-dark.jpg
|
71
73
|
novelwriter/assets/images/welcome-light.jpg
|
72
74
|
novelwriter/assets/syntax/cyberpunk_night.conf
|
@@ -93,6 +95,7 @@ novelwriter/assets/themes/default.conf
|
|
93
95
|
novelwriter/assets/themes/default_dark.conf
|
94
96
|
novelwriter/assets/themes/default_light.conf
|
95
97
|
novelwriter/assets/themes/dracula.conf
|
98
|
+
novelwriter/assets/themes/snazzy.conf
|
96
99
|
novelwriter/assets/themes/solarized_dark.conf
|
97
100
|
novelwriter/assets/themes/solarized_light.conf
|
98
101
|
novelwriter/core/buildsettings.py
|
@@ -206,8 +209,10 @@ setup/debian/py3dist-overrides
|
|
206
209
|
setup/debian/rules
|
207
210
|
setup/debian/source/format
|
208
211
|
setup/icons/novelwriter.ico
|
212
|
+
setup/icons/novelwriter.png
|
209
213
|
setup/icons/novelwriter.svg
|
210
214
|
setup/icons/x-novelwriter-project.ico
|
215
|
+
setup/icons/x-novelwriter-project.png
|
211
216
|
setup/icons/x-novelwriter-project.svg
|
212
217
|
setup/macos/App.entitlements
|
213
218
|
setup/macos/Info.plist.template
|
@@ -35,6 +35,7 @@ from PyQt6.QtWidgets import QApplication, QErrorMessage
|
|
35
35
|
from novelwriter.config import Config
|
36
36
|
from novelwriter.error import exceptionHandler
|
37
37
|
from novelwriter.shared import SharedData
|
38
|
+
from novelwriter.splash import NSplashScreen
|
38
39
|
|
39
40
|
if TYPE_CHECKING:
|
40
41
|
from novelwriter.guimain import GuiMain
|
@@ -48,9 +49,9 @@ __license__ = "GPLv3"
|
|
48
49
|
__author__ = "Veronica Berglyd Olsen"
|
49
50
|
__maintainer__ = "Veronica Berglyd Olsen"
|
50
51
|
__email__ = "code@vkbo.net"
|
51
|
-
__version__ = "2.
|
52
|
-
__hexversion__ = "
|
53
|
-
__date__ = "2025-
|
52
|
+
__version__ = "2.7.1"
|
53
|
+
__hexversion__ = "0x020701f0"
|
54
|
+
__date__ = "2025-06-09"
|
54
55
|
__status__ = "Stable"
|
55
56
|
__domain__ = "novelwriter.io"
|
56
57
|
|
@@ -267,13 +268,25 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
|
|
267
268
|
# Connect the exception handler before making the main GUI
|
268
269
|
sys.excepthook = exceptionHandler
|
269
270
|
|
271
|
+
splash = NSplashScreen()
|
272
|
+
splash.show()
|
273
|
+
|
274
|
+
splash.showStatus("")
|
275
|
+
splash.showStatus("Starting novelWriter ...")
|
276
|
+
|
270
277
|
# Run Config steps that require the QApplication
|
271
|
-
CONFIG.loadConfig()
|
278
|
+
CONFIG.loadConfig(splash)
|
272
279
|
CONFIG.initLocalisation(app)
|
273
280
|
SHARED.initTheme(GuiTheme())
|
274
281
|
|
275
282
|
# Launch main GUI
|
276
283
|
nwGUI = GuiMain()
|
284
|
+
nwGUI.showNormal()
|
285
|
+
splash.finish(nwGUI)
|
286
|
+
|
287
|
+
CONFIG.finishStartup()
|
288
|
+
del splash
|
289
|
+
|
277
290
|
nwGUI.postLaunchTasks(cmdOpen)
|
278
291
|
|
279
292
|
sys.exit(app.exec())
|
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": "Два",
|
@@ -94,6 +94,7 @@ icon:noncheckable = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 2
|
|
94
94
|
icon:open = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M16 2L21 7V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5447 3 21.0082V2.9918C3 2.44405 3.44495 2 3.9934 2H16ZM13 12H16L12 8L8 12H11V16H13V12Z" /></svg>
|
95
95
|
icon:panel = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M22 16V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V16H22ZM21 3C21.5523 3 22 3.44772 22 4V14H2V4C2 3.44772 2.44772 3 3 3H21Z" /></svg>
|
96
96
|
icon:pin = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M22.3126 10.1753L20.8984 11.5895L20.1913 10.8824L15.9486 15.125L15.2415 18.6606L13.8273 20.0748L9.58466 15.8321L4.63492 20.7819L3.2207 19.3677L8.17045 14.4179L3.92781 10.1753L5.34202 8.76107L8.87756 8.05396L13.1202 3.81132L12.4131 3.10422L13.8273 1.69L22.3126 10.1753Z" /></svg>
|
97
|
+
icon:project_copy = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M6.9998 6V3C6.9998 2.44772 7.44752 2 7.9998 2H19.9998C20.5521 2 20.9998 2.44772 20.9998 3V17C20.9998 17.5523 20.5521 18 19.9998 18H16.9998V20.9991C16.9998 21.5519 16.5499 22 15.993 22H4.00666C3.45059 22 3 21.5554 3 20.9991L3.0026 7.00087C3.0027 6.44811 3.45264 6 4.00942 6H6.9998ZM8.9998 6H16.9998V16H18.9998V4H8.9998V6ZM6.9998 11V13H12.9998V11H6.9998ZM6.9998 15V17H12.9998V15H6.9998Z" /></svg>
|
97
98
|
icon:quote = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M19.4167 6.67891C20.4469 7.77257 21.0001 9 21.0001 10.9897C21.0001 14.4891 18.5436 17.6263 14.9695 19.1768L14.0768 17.7992C17.4121 15.9946 18.0639 13.6539 18.3245 12.178C17.7875 12.4557 17.0845 12.5533 16.3954 12.4895C14.591 12.3222 13.1689 10.8409 13.1689 9C13.1689 7.067 14.7359 5.5 16.6689 5.5C17.742 5.5 18.7681 5.99045 19.4167 6.67891ZM9.41669 6.67891C10.4469 7.77257 11.0001 9 11.0001 10.9897C11.0001 14.4891 8.54359 17.6263 4.96951 19.1768L4.07682 17.7992C7.41206 15.9946 8.06392 13.6539 8.32447 12.178C7.78747 12.4557 7.08452 12.5533 6.39539 12.4895C4.59102 12.3222 3.16895 10.8409 3.16895 9C3.16895 7.067 4.73595 5.5 6.66895 5.5C7.742 5.5 8.76814 5.99045 9.41669 6.67891Z" /></svg>
|
98
99
|
icon:refresh = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M5.46257 4.43262C7.21556 2.91688 9.5007 2 12 2C17.5228 2 22 6.47715 22 12C22 14.1361 21.3302 16.1158 20.1892 17.7406L17 12H20C20 7.58172 16.4183 4 12 4C9.84982 4 7.89777 4.84827 6.46023 6.22842L5.46257 4.43262ZM18.5374 19.5674C16.7844 21.0831 14.4993 22 12 22C6.47715 22 2 17.5228 2 12C2 9.86386 2.66979 7.88416 3.8108 6.25944L7 12H4C4 16.4183 7.58172 20 12 20C14.1502 20 16.1022 19.1517 17.5398 17.7716L18.5374 19.5674Z" /></svg>
|
99
100
|
icon:remove = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M19 11H5V13H19V11Z" /></svg>
|
@@ -94,6 +94,7 @@ icon:noncheckable = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 2
|
|
94
94
|
icon:open = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M15 4H5V20H19V8H15V4ZM3 2.9918C3 2.44405 3.44749 2 3.9985 2H16L20.9997 7L21 20.9925C21 21.5489 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5447 3 21.0082V2.9918ZM13 12V16H11V12H8L12 8L16 12H13Z" /></svg>
|
95
95
|
icon:panel = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M21 3C21.5523 3 22 3.44772 22 4V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4C2 3.44772 2.44772 3 3 3H21ZM4 16V19H20V16H4ZM4 14H20V5H4V14Z" /></svg>
|
96
96
|
icon:pin = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M13.8273 1.69L22.3126 10.1753L20.8984 11.5895L20.1913 10.8824L15.9486 15.125L15.2415 18.6606L13.8273 20.0748L9.58466 15.8321L4.63492 20.7819L3.2207 19.3677L8.17045 14.4179L3.92781 10.1753L5.34202 8.76107L8.87756 8.05396L13.1202 3.81132L12.4131 3.10422L13.8273 1.69ZM14.5344 5.22554L9.86358 9.89637L7.0417 10.4607L13.5418 16.9609L14.1062 14.139L18.7771 9.46818L14.5344 5.22554Z" /></svg>
|
97
|
+
icon:project_copy = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M6.9998 6V3C6.9998 2.44772 7.44752 2 7.9998 2H19.9998C20.5521 2 20.9998 2.44772 20.9998 3V17C20.9998 17.5523 20.5521 18 19.9998 18H16.9998V20.9991C16.9998 21.5519 16.5499 22 15.993 22H4.00666C3.45059 22 3 21.5554 3 20.9991L3.0026 7.00087C3.0027 6.44811 3.45264 6 4.00942 6H6.9998ZM5.00242 8L5.00019 20H14.9998V8H5.00242ZM8.9998 6H16.9998V16H18.9998V4H8.9998V6ZM7 11H13V13H7V11ZM7 15H13V17H7V15Z" /></svg>
|
97
98
|
icon:quote = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M19.4167 6.67891C20.4469 7.77257 21.0001 9 21.0001 10.9897C21.0001 14.4891 18.5436 17.6263 14.9695 19.1768L14.0768 17.7992C17.4121 15.9946 18.0639 13.6539 18.3245 12.178C17.7875 12.4557 17.0845 12.5533 16.3954 12.4895C14.591 12.3222 13.1689 10.8409 13.1689 9C13.1689 7.067 14.7359 5.5 16.6689 5.5C17.742 5.5 18.7681 5.99045 19.4167 6.67891ZM9.41669 6.67891C10.4469 7.77257 11.0001 9 11.0001 10.9897C11.0001 14.4891 8.54359 17.6263 4.96951 19.1768L4.07682 17.7992C7.41206 15.9946 8.06392 13.6539 8.32447 12.178C7.78747 12.4557 7.08452 12.5533 6.39539 12.4895C4.59102 12.3222 3.16895 10.8409 3.16895 9C3.16895 7.067 4.73595 5.5 6.66895 5.5C7.742 5.5 8.76814 5.99045 9.41669 6.67891Z" /></svg>
|
98
99
|
icon:refresh = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M5.46257 4.43262C7.21556 2.91688 9.5007 2 12 2C17.5228 2 22 6.47715 22 12C22 14.1361 21.3302 16.1158 20.1892 17.7406L17 12H20C20 7.58172 16.4183 4 12 4C9.84982 4 7.89777 4.84827 6.46023 6.22842L5.46257 4.43262ZM18.5374 19.5674C16.7844 21.0831 14.4993 22 12 22C6.47715 22 2 17.5228 2 12C2 9.86386 2.66979 7.88416 3.8108 6.25944L7 12H4C4 16.4183 7.58172 20 12 20C14.1502 20 16.1022 19.1517 17.5398 17.7716L18.5374 19.5674Z" /></svg>
|
99
100
|
icon:remove = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" height="128" width="128"><path d="M5 11V13H19V11H5Z" /></svg>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -25,15 +25,15 @@ text = 86, 88, 105
|
|
25
25
|
link = 9, 161, 237
|
26
26
|
headertext = 45, 174, 88
|
27
27
|
headertag = 45, 174, 88, 160
|
28
|
-
emphasis =
|
29
|
-
dialog =
|
28
|
+
emphasis = 247, 103, 187
|
29
|
+
dialog = 9, 161, 237
|
30
30
|
altdialog = 207, 156, 0
|
31
31
|
note = 120, 187, 185
|
32
32
|
hidden = 145, 148, 162
|
33
33
|
shortcode = 247, 103, 187
|
34
34
|
keyword = 9, 161, 237
|
35
35
|
tag = 45, 174, 88
|
36
|
-
value =
|
36
|
+
value = 207, 156, 0
|
37
37
|
optional = 207, 156, 0
|
38
38
|
spellcheckline = 255, 92, 87
|
39
39
|
errorline = 45, 174, 88
|
@@ -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
|
|
@@ -0,0 +1,48 @@
|
|
1
|
+
[Main]
|
2
|
+
name = Snazzy Light
|
3
|
+
author = Veronica Berglyd Olsen (adaptation)
|
4
|
+
credit = Florian Reuschel (color theme)
|
5
|
+
url = https://github.com/loilo/vscode-snazzy-light
|
6
|
+
license = MIT License
|
7
|
+
licenseurl = https://github.com/loilo/vscode-snazzy-light/blob/master/LICENSE
|
8
|
+
|
9
|
+
[Icons]
|
10
|
+
default = 86, 88, 105
|
11
|
+
faded = 84, 85, 84
|
12
|
+
red = 255, 92, 87
|
13
|
+
orange = 245, 185, 0
|
14
|
+
yellow = 207, 156, 0
|
15
|
+
green = 45, 174, 88
|
16
|
+
aqua = 19, 187, 183
|
17
|
+
blue = 9, 161, 237
|
18
|
+
purple = 247, 103, 187
|
19
|
+
|
20
|
+
[Project]
|
21
|
+
root = 9, 161, 237
|
22
|
+
folder = 207, 156, 0
|
23
|
+
file = 84, 85, 84
|
24
|
+
title = 45, 174, 88
|
25
|
+
chapter = 255, 92, 87
|
26
|
+
scene = 9, 161, 237
|
27
|
+
note = 207, 156, 0
|
28
|
+
|
29
|
+
[Palette]
|
30
|
+
window = 243, 244, 245
|
31
|
+
windowtext = 86, 88, 105
|
32
|
+
base = 250, 251, 252
|
33
|
+
alternatebase = 234, 234, 235
|
34
|
+
text = 86, 88, 105
|
35
|
+
tooltipbase = 245, 233, 194
|
36
|
+
tooltiptext = 86, 88, 105
|
37
|
+
button = 250, 251, 252
|
38
|
+
buttontext = 86, 88, 105
|
39
|
+
brighttext = 255, 255, 255
|
40
|
+
highlight = 9, 161, 237
|
41
|
+
highlightedtext = 255, 255, 255
|
42
|
+
link = 9, 161, 237
|
43
|
+
linkvisited = 9, 161, 237
|
44
|
+
|
45
|
+
[GUI]
|
46
|
+
helptext = 9, 161, 237
|
47
|
+
fadedtext = 84, 85, 84
|
48
|
+
errortext = 255, 92, 87
|
@@ -40,7 +40,7 @@ from PyQt6.QtCore import QCoreApplication, QMimeData, QUrl
|
|
40
40
|
from PyQt6.QtGui import QAction, QDesktopServices, QFont, QFontDatabase, QFontInfo
|
41
41
|
from PyQt6.QtWidgets import QMenu, QMenuBar, QWidget
|
42
42
|
|
43
|
-
from novelwriter.constants import nwConst, nwLabels, nwUnicode, trConst
|
43
|
+
from novelwriter.constants import nwConst, nwLabels, nwQuotes, nwUnicode, trConst
|
44
44
|
from novelwriter.enum import nwItemClass, nwItemLayout, nwItemType
|
45
45
|
from novelwriter.error import logException
|
46
46
|
|
@@ -298,6 +298,15 @@ def uniqueCompact(text: str) -> str:
|
|
298
298
|
return "".join(sorted(set(compact(text))))
|
299
299
|
|
300
300
|
|
301
|
+
def processDialogSymbols(symbols: str) -> str:
|
302
|
+
"""Process dialogue line symbols."""
|
303
|
+
result = ""
|
304
|
+
for c in uniqueCompact(symbols):
|
305
|
+
if c in nwQuotes.ALLOWED:
|
306
|
+
result += c
|
307
|
+
return result
|
308
|
+
|
309
|
+
|
301
310
|
def elide(text: str, length: int) -> str:
|
302
311
|
"""Elide a piece of text to a maximum length."""
|
303
312
|
if len(text) > (cut := max(4, length)):
|