novelWriter 2.5.2__tar.gz → 2.6b1__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.
Files changed (415) hide show
  1. {novelwriter-2.5.2 → novelwriter-2.6b1}/CHANGELOG.md +72 -0
  2. {novelwriter-2.5.2 → novelwriter-2.6b1}/PKG-INFO +2 -1
  3. {novelwriter-2.5.2 → novelwriter-2.6b1}/README.md +9 -0
  4. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelWriter.egg-info/PKG-INFO +2 -1
  5. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelWriter.egg-info/SOURCES.txt +11 -5
  6. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/__init__.py +3 -3
  7. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_en_GB.json +1 -0
  8. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/icons.conf +1 -0
  9. novelwriter-2.6b1/novelwriter/assets/icons/typicons_dark/mixed_copy.svg +4 -0
  10. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/icons.conf +1 -0
  11. novelwriter-2.6b1/novelwriter/assets/icons/typicons_light/mixed_copy.svg +4 -0
  12. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/manual.pdf +0 -0
  13. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/sample.zip +0 -0
  14. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/themes/default_light.conf +2 -2
  15. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/common.py +63 -0
  16. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/config.py +10 -3
  17. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/constants.py +153 -60
  18. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/buildsettings.py +66 -39
  19. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/coretools.py +34 -22
  20. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/docbuild.py +130 -169
  21. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/index.py +29 -18
  22. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/item.py +2 -2
  23. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/options.py +4 -1
  24. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/spellcheck.py +9 -14
  25. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/dialogs/preferences.py +45 -32
  26. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/dialogs/projectsettings.py +3 -3
  27. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/enum.py +29 -23
  28. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/extensions/configlayout.py +24 -11
  29. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/extensions/modified.py +13 -1
  30. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/extensions/pagedsidebar.py +5 -5
  31. novelwriter-2.6b1/novelwriter/formats/shared.py +155 -0
  32. novelwriter-2.6b1/novelwriter/formats/todocx.py +1195 -0
  33. novelwriter-2.6b1/novelwriter/formats/tohtml.py +452 -0
  34. {novelwriter-2.5.2/novelwriter/core → novelwriter-2.6b1/novelwriter/formats}/tokenizer.py +476 -484
  35. novelwriter-2.6b1/novelwriter/formats/tomarkdown.py +217 -0
  36. {novelwriter-2.5.2/novelwriter/core → novelwriter-2.6b1/novelwriter/formats}/toodt.py +270 -320
  37. novelwriter-2.6b1/novelwriter/formats/toqdoc.py +436 -0
  38. novelwriter-2.6b1/novelwriter/formats/toraw.py +91 -0
  39. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/doceditor.py +240 -193
  40. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/dochighlight.py +96 -84
  41. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/docviewer.py +54 -26
  42. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/docviewerpanel.py +3 -3
  43. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/editordocument.py +17 -2
  44. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/itemdetails.py +8 -4
  45. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/mainmenu.py +121 -60
  46. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/noveltree.py +35 -37
  47. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/outline.py +186 -238
  48. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/projtree.py +142 -131
  49. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/sidebar.py +7 -6
  50. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/theme.py +5 -4
  51. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/guimain.py +43 -155
  52. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/shared.py +14 -4
  53. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/text/counting.py +2 -0
  54. novelwriter-2.6b1/novelwriter/text/patterns.py +209 -0
  55. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/tools/manusbuild.py +1 -1
  56. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/tools/manuscript.py +120 -78
  57. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/tools/manussettings.py +403 -260
  58. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/tools/welcome.py +4 -4
  59. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/tools/writingstats.py +3 -3
  60. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/types.py +16 -6
  61. {novelwriter-2.5.2 → novelwriter-2.6b1}/pyproject.toml +7 -0
  62. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/launchpad_setup.cfg +1 -0
  63. novelwriter-2.6b1/setup/signpath_logo.png +0 -0
  64. novelwriter-2.5.2/novelwriter/core/tohtml.py +0 -530
  65. novelwriter-2.5.2/novelwriter/core/tomarkdown.py +0 -252
  66. novelwriter-2.5.2/novelwriter/core/toqdoc.py +0 -419
  67. novelwriter-2.5.2/novelwriter/text/patterns.py +0 -113
  68. {novelwriter-2.5.2 → novelwriter-2.6b1}/CREDITS.md +0 -0
  69. {novelwriter-2.5.2 → novelwriter-2.6b1}/LICENSE.md +0 -0
  70. {novelwriter-2.5.2 → novelwriter-2.6b1}/MANIFEST.in +0 -0
  71. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelWriter.egg-info/dependency_links.txt +0 -0
  72. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelWriter.egg-info/entry_points.txt +0 -0
  73. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelWriter.egg-info/requires.txt +0 -0
  74. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelWriter.egg-info/top_level.txt +0 -0
  75. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/nw_de_DE.qm +0 -0
  76. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/nw_en_US.qm +0 -0
  77. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/nw_es_419.qm +0 -0
  78. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/nw_fr_FR.qm +0 -0
  79. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/nw_it_IT.qm +0 -0
  80. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/nw_ja_JP.qm +0 -0
  81. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/nw_nb_NO.qm +0 -0
  82. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/nw_nl_NL.qm +0 -0
  83. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/nw_pl_PL.qm +0 -0
  84. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/nw_pt_BR.qm +0 -0
  85. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/nw_zh_CN.qm +0 -0
  86. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_de_DE.json +0 -0
  87. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_en_US.json +0 -0
  88. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_es_419.json +0 -0
  89. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_fr_FR.json +0 -0
  90. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_it_IT.json +0 -0
  91. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_ja_JP.json +0 -0
  92. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_nb_NO.json +0 -0
  93. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_nl_NL.json +0 -0
  94. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_nn_NO.json +0 -0
  95. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_pl_PL.json +0 -0
  96. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_pt_BR.json +0 -0
  97. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_ru_RU.json +0 -0
  98. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/i18n/project_zh_CN.json +0 -0
  99. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/none.svg +0 -0
  100. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/novelwriter.ico +0 -0
  101. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/novelwriter.svg +0 -0
  102. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/README.md +0 -0
  103. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/mixed_document-chapter.svg +0 -0
  104. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/mixed_document-new.svg +0 -0
  105. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/mixed_document-note.svg +0 -0
  106. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/mixed_document-scene.svg +0 -0
  107. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/mixed_document-section.svg +0 -0
  108. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/mixed_document-title.svg +0 -0
  109. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/mixed_edit.svg +0 -0
  110. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/mixed_import.svg +0 -0
  111. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/mixed_input-checked.svg +0 -0
  112. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/mixed_input-none.svg +0 -0
  113. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/mixed_input-unchecked.svg +0 -0
  114. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/mixed_search-replace.svg +0 -0
  115. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_deco-h0.svg +0 -0
  116. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_deco-h1.svg +0 -0
  117. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_deco-h2-narrow.svg +0 -0
  118. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_deco-h2.svg +0 -0
  119. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_deco-h3-narrow.svg +0 -0
  120. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_deco-h3.svg +0 -0
  121. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_deco-h4-narrow.svg +0 -0
  122. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_deco-h4.svg +0 -0
  123. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_deco-note.svg +0 -0
  124. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_deco-noveltree-more.svg +0 -0
  125. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_font.svg +0 -0
  126. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_panel.svg +0 -0
  127. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_quote.svg +0 -0
  128. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_search-case.svg +0 -0
  129. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_search-preserve.svg +0 -0
  130. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_search-regex.svg +0 -0
  131. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_search-word.svg +0 -0
  132. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_tb-bold-md.svg +0 -0
  133. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_tb-bold.svg +0 -0
  134. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_tb-italic-md.svg +0 -0
  135. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_tb-italic.svg +0 -0
  136. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_tb-mark.svg +0 -0
  137. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_tb-strike-md.svg +0 -0
  138. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_tb-strike.svg +0 -0
  139. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_tb-subscript.svg +0 -0
  140. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_tb-superscript.svg +0 -0
  141. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/nw_tb-underline.svg +0 -0
  142. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_arrow-down-thick-grey.svg +0 -0
  143. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_arrow-forward.svg +0 -0
  144. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_arrow-maximise.svg +0 -0
  145. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_arrow-minimise.svg +0 -0
  146. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_arrow-repeat-grey.svg +0 -0
  147. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_book-grey.svg +0 -0
  148. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_book.svg +0 -0
  149. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_bookmark.svg +0 -0
  150. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_calendar.svg +0 -0
  151. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_cancel-grey.svg +0 -0
  152. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_cancel.svg +0 -0
  153. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_chart-bar-grey.svg +0 -0
  154. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_chevron-down.svg +0 -0
  155. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_chevron-left.svg +0 -0
  156. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_chevron-right.svg +0 -0
  157. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_chevron-up.svg +0 -0
  158. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_cog.svg +0 -0
  159. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_delete-full.svg +0 -0
  160. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_delete.svg +0 -0
  161. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_directions-full.svg +0 -0
  162. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_document-add.svg +0 -0
  163. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_document-text.svg +0 -0
  164. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_document.svg +0 -0
  165. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_export-grey.svg +0 -0
  166. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_export.svg +0 -0
  167. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_eye.svg +0 -0
  168. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_flag.svg +0 -0
  169. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_folder-open.svg +0 -0
  170. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_folder.svg +0 -0
  171. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_globe-grey.svg +0 -0
  172. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_key.svg +0 -0
  173. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_lightbulb-full.svg +0 -0
  174. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_location.svg +0 -0
  175. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_media-pause-grey.svg +0 -0
  176. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_media-record-outline.svg +0 -0
  177. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_media-record.svg +0 -0
  178. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_minus.svg +0 -0
  179. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_pencil.svg +0 -0
  180. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_pin-outline.svg +0 -0
  181. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_pin.svg +0 -0
  182. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_plus.svg +0 -0
  183. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_puzzle-outline.svg +0 -0
  184. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_puzzle.svg +0 -0
  185. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_refresh-flipped.svg +0 -0
  186. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_refresh.svg +0 -0
  187. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_search-grey.svg +0 -0
  188. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_search.svg +0 -0
  189. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_star.svg +0 -0
  190. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_stopwatch-grey.svg +0 -0
  191. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_th-dot-menu.svg +0 -0
  192. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_th-dot-more.svg +0 -0
  193. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_th-list-grey.svg +0 -0
  194. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_th-list.svg +0 -0
  195. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_times.svg +0 -0
  196. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_trash.svg +0 -0
  197. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_unfold-hidden.svg +0 -0
  198. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_unfold-visible.svg +0 -0
  199. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_user.svg +0 -0
  200. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_dark/typ_warning-full.svg +0 -0
  201. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/README.md +0 -0
  202. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/mixed_document-chapter.svg +0 -0
  203. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/mixed_document-new.svg +0 -0
  204. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/mixed_document-note.svg +0 -0
  205. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/mixed_document-scene.svg +0 -0
  206. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/mixed_document-section.svg +0 -0
  207. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/mixed_document-title.svg +0 -0
  208. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/mixed_edit.svg +0 -0
  209. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/mixed_import.svg +0 -0
  210. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/mixed_input-checked.svg +0 -0
  211. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/mixed_input-none.svg +0 -0
  212. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/mixed_input-unchecked.svg +0 -0
  213. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/mixed_search-replace.svg +0 -0
  214. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_deco-h0.svg +0 -0
  215. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_deco-h1.svg +0 -0
  216. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_deco-h2-narrow.svg +0 -0
  217. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_deco-h2.svg +0 -0
  218. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_deco-h3-narrow.svg +0 -0
  219. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_deco-h3.svg +0 -0
  220. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_deco-h4-narrow.svg +0 -0
  221. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_deco-h4.svg +0 -0
  222. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_deco-note.svg +0 -0
  223. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_deco-noveltree-more.svg +0 -0
  224. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_font.svg +0 -0
  225. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_panel.svg +0 -0
  226. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_quote.svg +0 -0
  227. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_search-case.svg +0 -0
  228. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_search-preserve.svg +0 -0
  229. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_search-regex.svg +0 -0
  230. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_search-word.svg +0 -0
  231. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_tb-bold-md.svg +0 -0
  232. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_tb-bold.svg +0 -0
  233. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_tb-italic-md.svg +0 -0
  234. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_tb-italic.svg +0 -0
  235. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_tb-mark.svg +0 -0
  236. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_tb-strike-md.svg +0 -0
  237. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_tb-strike.svg +0 -0
  238. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_tb-subscript.svg +0 -0
  239. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_tb-superscript.svg +0 -0
  240. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/nw_tb-underline.svg +0 -0
  241. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_arrow-down-thick-grey.svg +0 -0
  242. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_arrow-forward.svg +0 -0
  243. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_arrow-maximise.svg +0 -0
  244. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_arrow-minimise.svg +0 -0
  245. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_arrow-repeat-grey.svg +0 -0
  246. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_book-grey.svg +0 -0
  247. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_book.svg +0 -0
  248. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_bookmark.svg +0 -0
  249. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_calendar.svg +0 -0
  250. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_cancel-grey.svg +0 -0
  251. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_cancel.svg +0 -0
  252. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_chart-bar-grey.svg +0 -0
  253. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_chevron-down.svg +0 -0
  254. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_chevron-left.svg +0 -0
  255. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_chevron-right.svg +0 -0
  256. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_chevron-up.svg +0 -0
  257. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_cog.svg +0 -0
  258. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_delete-full.svg +0 -0
  259. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_delete.svg +0 -0
  260. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_directions-full.svg +0 -0
  261. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_document-add.svg +0 -0
  262. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_document-text.svg +0 -0
  263. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_document.svg +0 -0
  264. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_export-grey.svg +0 -0
  265. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_export.svg +0 -0
  266. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_eye.svg +0 -0
  267. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_flag.svg +0 -0
  268. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_folder-open.svg +0 -0
  269. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_folder.svg +0 -0
  270. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_globe-grey.svg +0 -0
  271. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_key.svg +0 -0
  272. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_lightbulb-full.svg +0 -0
  273. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_location.svg +0 -0
  274. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_media-pause-grey.svg +0 -0
  275. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_media-record-outline.svg +0 -0
  276. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_media-record.svg +0 -0
  277. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_minus.svg +0 -0
  278. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_pencil.svg +0 -0
  279. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_pin-outline.svg +0 -0
  280. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_pin.svg +0 -0
  281. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_plus.svg +0 -0
  282. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_puzzle-outline.svg +0 -0
  283. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_puzzle.svg +0 -0
  284. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_refresh-flipped.svg +0 -0
  285. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_refresh.svg +0 -0
  286. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_search-grey.svg +0 -0
  287. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_search.svg +0 -0
  288. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_star.svg +0 -0
  289. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_stopwatch-grey.svg +0 -0
  290. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_th-dot-menu.svg +0 -0
  291. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_th-dot-more.svg +0 -0
  292. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_th-list-grey.svg +0 -0
  293. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_th-list.svg +0 -0
  294. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_times.svg +0 -0
  295. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_trash.svg +0 -0
  296. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_unfold-hidden.svg +0 -0
  297. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_unfold-visible.svg +0 -0
  298. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_user.svg +0 -0
  299. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/typicons_light/typ_warning-full.svg +0 -0
  300. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/x-novelwriter-project.ico +0 -0
  301. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/icons/x-novelwriter-project.svg +0 -0
  302. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/images/novelwriter-text-dark.svg +0 -0
  303. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/images/novelwriter-text-light.svg +0 -0
  304. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/images/welcome-dark.jpg +0 -0
  305. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/images/welcome-light.jpg +0 -0
  306. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/cyberpunk_night.conf +0 -0
  307. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/default_dark.conf +0 -0
  308. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/default_light.conf +0 -0
  309. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/dracula.conf +0 -0
  310. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/grey_dark.conf +0 -0
  311. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/grey_light.conf +0 -0
  312. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/light_owl.conf +0 -0
  313. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/night_owl.conf +0 -0
  314. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/snazzy.conf +0 -0
  315. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/solarized_dark.conf +0 -0
  316. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/solarized_light.conf +0 -0
  317. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/tango.conf +0 -0
  318. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/tomorrow.conf +0 -0
  319. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/tomorrow_night.conf +0 -0
  320. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/tomorrow_night_blue.conf +0 -0
  321. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/tomorrow_night_bright.conf +0 -0
  322. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/syntax/tomorrow_night_eighties.conf +0 -0
  323. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/text/credits_en.htm +0 -0
  324. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/text/lipsum.txt +0 -0
  325. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/themes/cyberpunk_night.conf +0 -0
  326. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/themes/default.conf +0 -0
  327. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/themes/default_dark.conf +0 -0
  328. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/themes/dracula.conf +0 -0
  329. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/themes/solarized_dark.conf +0 -0
  330. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/assets/themes/solarized_light.conf +0 -0
  331. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/document.py +0 -0
  332. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/project.py +0 -0
  333. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/projectdata.py +0 -0
  334. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/projectxml.py +0 -0
  335. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/sessions.py +0 -0
  336. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/status.py +0 -0
  337. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/storage.py +0 -0
  338. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/core/tree.py +0 -0
  339. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/dialogs/about.py +0 -0
  340. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/dialogs/docmerge.py +0 -0
  341. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/dialogs/docsplit.py +0 -0
  342. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/dialogs/editlabel.py +0 -0
  343. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/dialogs/quotes.py +0 -0
  344. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/dialogs/wordlist.py +0 -0
  345. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/error.py +0 -0
  346. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/extensions/eventfilters.py +0 -0
  347. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/extensions/novelselector.py +0 -0
  348. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/extensions/progressbars.py +0 -0
  349. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/extensions/statusled.py +0 -0
  350. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/extensions/switch.py +0 -0
  351. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/extensions/switchbox.py +0 -0
  352. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/extensions/versioninfo.py +0 -0
  353. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/search.py +0 -0
  354. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/gui/statusbar.py +0 -0
  355. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/tools/dictionaries.py +0 -0
  356. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/tools/lipsum.py +0 -0
  357. {novelwriter-2.5.2 → novelwriter-2.6b1}/novelwriter/tools/noveldetails.py +0 -0
  358. {novelwriter-2.5.2 → novelwriter-2.6b1}/pkgutils.py +0 -0
  359. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/appimage_launcher.sh +0 -0
  360. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/128x128/apps/novelwriter.png +0 -0
  361. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/128x128/mimetypes/application-x-novelwriter-project.png +0 -0
  362. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/16x16/apps/novelwriter.png +0 -0
  363. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/16x16/mimetypes/application-x-novelwriter-project.png +0 -0
  364. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/24x24/apps/novelwriter.png +0 -0
  365. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/24x24/mimetypes/application-x-novelwriter-project.png +0 -0
  366. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/256x256/apps/novelwriter.png +0 -0
  367. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/256x256/mimetypes/application-x-novelwriter-project.png +0 -0
  368. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/32x32/apps/novelwriter.png +0 -0
  369. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/32x32/mimetypes/application-x-novelwriter-project.png +0 -0
  370. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/48x48/apps/novelwriter.png +0 -0
  371. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/48x48/mimetypes/application-x-novelwriter-project.png +0 -0
  372. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/512x512/apps/novelwriter.png +0 -0
  373. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/512x512/mimetypes/application-x-novelwriter-project.png +0 -0
  374. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/64x64/apps/novelwriter.png +0 -0
  375. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/64x64/mimetypes/application-x-novelwriter-project.png +0 -0
  376. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/scalable/apps/novelwriter.svg +0 -0
  377. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/hicolor/scalable/mimetypes/application-x-novelwriter-project.svg +0 -0
  378. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/novelwriter.desktop +0 -0
  379. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/novelwriter.png +0 -0
  380. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/data/x-novelwriter-project.xml +0 -0
  381. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/debian/compat +0 -0
  382. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/debian/control +0 -0
  383. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/debian/copyright +0 -0
  384. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/debian/install +0 -0
  385. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/debian/py3dist-overrides +0 -0
  386. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/debian/rules +0 -0
  387. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/debian/source/format +0 -0
  388. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/description_pypi.md +0 -0
  389. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/description_short.txt +0 -0
  390. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/icons/novelwriter.ico +0 -0
  391. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/icons/novelwriter.svg +0 -0
  392. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/icons/x-novelwriter-project.ico +0 -0
  393. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/icons/x-novelwriter-project.svg +0 -0
  394. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/iss_license.txt +0 -0
  395. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/App.entitlements +0 -0
  396. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/Info.plist.template +0 -0
  397. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/build.sh +0 -0
  398. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/novelwriter.iconset/icon_128x128.png +0 -0
  399. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/novelwriter.iconset/icon_128x128@2x.png +0 -0
  400. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/novelwriter.iconset/icon_16x16.png +0 -0
  401. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/novelwriter.iconset/icon_16x16@2x.png +0 -0
  402. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/novelwriter.iconset/icon_256x256.png +0 -0
  403. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/novelwriter.iconset/icon_256x256@2x.png +0 -0
  404. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/novelwriter.iconset/icon_32x32.png +0 -0
  405. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/novelwriter.iconset/icon_32x32@2x.png +0 -0
  406. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/novelwriter.iconset/icon_512x512.png +0 -0
  407. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/macos/novelwriter.iconset/icon_512x512@2x.png +0 -0
  408. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/make_clean.sh +0 -0
  409. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/make_pip.sh +0 -0
  410. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/make_release.sh +0 -0
  411. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/novelwriter.appdata.xml +0 -0
  412. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/novelwriter_readme.png +0 -0
  413. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/novelwriter_text.png +0 -0
  414. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup/win_setup_embed.iss +0 -0
  415. {novelwriter-2.5.2 → novelwriter-2.6b1}/setup.cfg +0 -0
@@ -1,5 +1,77 @@
1
1
  # novelWriter Changelog
2
2
 
3
+ ## Version 2.6 Beta 1 [2024-11-12]
4
+
5
+ ### Release Notes
6
+
7
+ This is a beta release of the next release version, and is intended for testing purposes. Please be
8
+ careful when using this version on live writing projects, and make sure you take frequent backups.
9
+
10
+ ### Detailed Changelog
11
+
12
+ **New Features**
13
+
14
+ * Added PDF build format. Issue #2046. PR #2048.
15
+ * Added DocX (MS Word) format. Issue #1537. PR #2056.
16
+ * The Build settings tool has the following changes: Ability to control page break and centring of
17
+ main titles, an option to disable styling for headings altogether, and the ODT section has been
18
+ generalised to apply to all document formats. Issue #2023. PR #2045.
19
+ * Text and heading margin can now be control in the Manuscript Build tool. Issue #2023. PR #2051.
20
+ * Word counts and other such statistics can now be inserted into the manuscript. This is done
21
+ through new insert actions in the Insert menu, and processed at build time. Issue #2024.
22
+ PR #2073.
23
+ * Forced line breaks can now be inserted as a shortcode. This is useful when line breaks in
24
+ paragraphs are ignored when building the manuscript. Issue #1991. PR #2063.
25
+ * A new `@mentions` keyword has been added that can list any tag in the project as being mentioned
26
+ in the current section. These are listed separately from tags present in the story section.
27
+ Issue #1822. PR #2064.
28
+ * Tags in novel documents can now be referenced with the `@story` keyword. Issue #1990. PR #2072.
29
+ * URLs starting with http/https are now recognised and clickable in the editor, viewer, and
30
+ manuscript preview. Issue #1426. PR #2067.
31
+ * Added dialogue highlighting for Portuguese and Polish dialogue styles. Issues #2066 and #2070.
32
+ Related to #1773. PRs #2068, #2079, #2081 and #2082.
33
+ * Four dashes in the editor are now replaced by a horizontal bar. This is useful as a replacement
34
+ symbol for em dash when using dialogue highlighting to avoid triggering it. The horizontal bar is
35
+ replaced with an em dash in the manuscript. Issue #2070. PR #2079.
36
+ * Manuscript Build settings can now be duplicated. Issue #1931. PR #2084.
37
+ * Page breaks can optionally be made visible in the Manuscript preview. PR #2086.
38
+ * The document status label can now be selected in the Outline View. Issue #1909. PR #2088.
39
+ * The document viewer now has an edit button to open the document in the editor. Issue #1963.
40
+ PR #2089.
41
+
42
+ **User Interface**
43
+
44
+ * The Manuscript Build settings have now been moved into a single scrollable page, using the same
45
+ layout as in Preferences. The heading and filtering pages are still separate forms, as they are
46
+ of a more complex nature. PR #2031.
47
+ * The currently open document in the editor is now highlighted in the project tree, just like it is
48
+ in the novel view. Issue #1981. PR #2077.
49
+ * The details panel in the Outline view is now resizable. PR #2078.
50
+
51
+ **Improvements**
52
+
53
+ * Add an option to ignore a word in the spell checker. An ignored word is ignored only for the
54
+ current writing session. PR #2030.
55
+ * Word counts and other such statistics is now exported as custom variables to ODT files, and can
56
+ be inserted in the text in LibreOffice, and similar. Issue #2033. PR #2035.
57
+
58
+ **Code Improvements**
59
+
60
+ * Added Python 3.13 coverage to ensure the new Python release is supported. Issue #2040. PR #2044.
61
+ * Preparation for Qt6: Clean up Qt enums. PR #2025.
62
+ * Preparation for Qt6: Replace Qt regular expression tools with the internal Python re module for
63
+ markup processing and syntax highlighting. It is both slightly faster, and there are issues with
64
+ text encoding in at least some versions of Qt6 or PyQt6. PRs #2028 and #2043.
65
+ * Preparation for Qt6: Added a wrapper function for connecting signals to slots that has a
66
+ different function signature. Python lambdas generate warnings inn Qt6. PR #2075.
67
+ * Refactored manuscript formats and moved most of the processing to the Tokenizer class to simplify
68
+ the format classes and also make them more consistent. PRs #2060, #2061 and #2062.
69
+ * The document builder has been refactored to support more generalised format classes. PR #2047.
70
+ * Action parent assignment has been rafactored in the main menu. #2075.
71
+ * Raw text format output has been refactored and reduced to just appending documents. PR #2087.
72
+
73
+ ----
74
+
3
75
  ## Version 2.5.2 [2024-09-17]
4
76
 
5
77
  ### Release Notes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: novelWriter
3
- Version: 2.5.2
3
+ Version: 2.6b1
4
4
  Summary: A markdown-like 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
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3.9
13
13
  Classifier: Programming Language :: Python :: 3.10
14
14
  Classifier: Programming Language :: Python :: 3.11
15
15
  Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
16
17
  Classifier: Programming Language :: Python :: Implementation :: CPython
17
18
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
18
19
  Classifier: Development Status :: 5 - Production/Stable
@@ -29,6 +29,15 @@ documentation.
29
29
  * PyPi Project: [pypi.org/project/novelWriter](https://pypi.org/project/novelWriter)
30
30
  * Social Media: [fosstodon.org/@novelwriter](https://fosstodon.org/@novelwriter)
31
31
 
32
+ ## Sponsors
33
+
34
+ <table style="border: none;">
35
+ <tr>
36
+ <td><img align="left" style="height: 25px;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/signpath_logo.png"></td>
37
+ <td>Free code signing on Windows provided by <a href="https://about.signpath.io/">SignPath.io</a>, certificate by <a href="https://signpath.org/">SignPath Foundation</a>.</td>
38
+ </tr>
39
+ </table>
40
+
32
41
  ## Implementation
33
42
 
34
43
  novelWriter is written with Python 3 (3.9+) using Qt5 and PyQt5 (5.15 only), and is released on
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: novelWriter
3
- Version: 2.5.2
3
+ Version: 2.6b1
4
4
  Summary: A markdown-like 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
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3.9
13
13
  Classifier: Programming Language :: Python :: 3.10
14
14
  Classifier: Programming Language :: Python :: 3.11
15
15
  Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
16
17
  Classifier: Programming Language :: Python :: Implementation :: CPython
17
18
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
18
19
  Classifier: Development Status :: 5 - Production/Stable
@@ -54,6 +54,7 @@ novelwriter/assets/icons/x-novelwriter-project.ico
54
54
  novelwriter/assets/icons/x-novelwriter-project.svg
55
55
  novelwriter/assets/icons/typicons_dark/README.md
56
56
  novelwriter/assets/icons/typicons_dark/icons.conf
57
+ novelwriter/assets/icons/typicons_dark/mixed_copy.svg
57
58
  novelwriter/assets/icons/typicons_dark/mixed_document-chapter.svg
58
59
  novelwriter/assets/icons/typicons_dark/mixed_document-new.svg
59
60
  novelwriter/assets/icons/typicons_dark/mixed_document-note.svg
@@ -154,6 +155,7 @@ novelwriter/assets/icons/typicons_dark/typ_user.svg
154
155
  novelwriter/assets/icons/typicons_dark/typ_warning-full.svg
155
156
  novelwriter/assets/icons/typicons_light/README.md
156
157
  novelwriter/assets/icons/typicons_light/icons.conf
158
+ novelwriter/assets/icons/typicons_light/mixed_copy.svg
157
159
  novelwriter/assets/icons/typicons_light/mixed_document-chapter.svg
158
160
  novelwriter/assets/icons/typicons_light/mixed_document-new.svg
159
161
  novelwriter/assets/icons/typicons_light/mixed_document-note.svg
@@ -296,11 +298,6 @@ novelwriter/core/sessions.py
296
298
  novelwriter/core/spellcheck.py
297
299
  novelwriter/core/status.py
298
300
  novelwriter/core/storage.py
299
- novelwriter/core/tohtml.py
300
- novelwriter/core/tokenizer.py
301
- novelwriter/core/tomarkdown.py
302
- novelwriter/core/toodt.py
303
- novelwriter/core/toqdoc.py
304
301
  novelwriter/core/tree.py
305
302
  novelwriter/dialogs/about.py
306
303
  novelwriter/dialogs/docmerge.py
@@ -320,6 +317,14 @@ novelwriter/extensions/statusled.py
320
317
  novelwriter/extensions/switch.py
321
318
  novelwriter/extensions/switchbox.py
322
319
  novelwriter/extensions/versioninfo.py
320
+ novelwriter/formats/shared.py
321
+ novelwriter/formats/todocx.py
322
+ novelwriter/formats/tohtml.py
323
+ novelwriter/formats/tokenizer.py
324
+ novelwriter/formats/tomarkdown.py
325
+ novelwriter/formats/toodt.py
326
+ novelwriter/formats/toqdoc.py
327
+ novelwriter/formats/toraw.py
323
328
  novelwriter/gui/doceditor.py
324
329
  novelwriter/gui/dochighlight.py
325
330
  novelwriter/gui/docviewer.py
@@ -355,6 +360,7 @@ setup/make_release.sh
355
360
  setup/novelwriter.appdata.xml
356
361
  setup/novelwriter_readme.png
357
362
  setup/novelwriter_text.png
363
+ setup/signpath_logo.png
358
364
  setup/win_setup_embed.iss
359
365
  setup/data/novelwriter.desktop
360
366
  setup/data/novelwriter.png
@@ -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.5.2"
51
- __hexversion__ = "0x020502f0"
52
- __date__ = "2024-09-17"
50
+ __version__ = "2.6b1"
51
+ __hexversion__ = "0x020600b1"
52
+ __date__ = "2024-11-12"
53
53
  __status__ = "Stable"
54
54
  __domain__ = "novelwriter.io"
55
55
 
@@ -14,6 +14,7 @@
14
14
  "Objects": "Objects",
15
15
  "Entities": "Entities",
16
16
  "Custom": "Custom",
17
+ "New Page": "New Page",
17
18
  "0": "Zero",
18
19
  "1": "One",
19
20
  "2": "Two",
@@ -44,6 +44,7 @@ cls_template = mixed_document-new.svg
44
44
  cls_timeline = typ_calendar.svg
45
45
  cls_trash = typ_trash.svg
46
46
  cls_world = typ_location.svg
47
+ copy = mixed_copy.svg
47
48
  cross = typ_times.svg
48
49
  document = typ_document.svg
49
50
  down = typ_chevron-down.svg
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="m7.8824 2c-1.2988 0-2.3529 1.0541-2.3529 2.3529v2.3529h-1.1765c-1.2988 0-2.3529 1.0541-2.3529 2.3529v10.588c0 1.2988 1.0541 2.3529 2.3529 2.3529h10.588c1.2988 0 2.3529-1.0541 2.3529-2.3529v-1.1765h2.3529c1.2988 0 2.3529-1.0541 2.3529-2.3529v-11.765c0-1.2988-1.0541-2.3529-2.3529-2.3529zm0 2.3529h11.765v11.765h-2.3529v-7.0588c0-1.2988-1.0541-2.3529-2.3529-2.3529h-7.0588zm-3.5294 4.7059h10.588c0.32353 0 0-0.32353 0 0v10.588h-10.588v-9.8943z" fill="#69c" stroke-width="1.1765"/>
4
+ </svg>
@@ -44,6 +44,7 @@ cls_template = mixed_document-new.svg
44
44
  cls_timeline = typ_calendar.svg
45
45
  cls_trash = typ_trash.svg
46
46
  cls_world = typ_location.svg
47
+ copy = mixed_copy.svg
47
48
  cross = typ_times.svg
48
49
  document = typ_document.svg
49
50
  down = typ_chevron-down.svg
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="m7.8824 2c-1.2988 0-2.3529 1.0541-2.3529 2.3529v2.3529h-1.1765c-1.2988 0-2.3529 1.0541-2.3529 2.3529v10.588c0 1.2988 1.0541 2.3529 2.3529 2.3529h10.588c1.2988 0 2.3529-1.0541 2.3529-2.3529v-1.1765h2.3529c1.2988 0 2.3529-1.0541 2.3529-2.3529v-11.765c0-1.2988-1.0541-2.3529-2.3529-2.3529zm0 2.3529h11.765v11.765h-2.3529v-7.0588c0-1.2988-1.0541-2.3529-2.3529-2.3529h-7.0588zm-3.5294 4.7059h10.588c0.32353 0 0-0.32353 0 0v10.588h-10.588v-9.8943z" fill="#4271ae" stroke-width="1.1765"/>
4
+ </svg>
@@ -29,5 +29,5 @@ helptext = 92, 92, 92
29
29
  fadedtext = 108, 108, 108
30
30
  errortext = 255, 92, 92
31
31
  statusnone = 120, 120, 120
32
- statussaved = 200, 15, 39
33
- statusunsaved = 2, 133, 37
32
+ statussaved = 2, 133, 37
33
+ statusunsaved = 200, 15, 39
@@ -29,6 +29,7 @@ import unicodedata
29
29
  import uuid
30
30
  import xml.etree.ElementTree as ET
31
31
 
32
+ from collections.abc import Callable
32
33
  from configparser import ConfigParser
33
34
  from datetime import datetime
34
35
  from pathlib import Path
@@ -204,6 +205,14 @@ def checkIntTuple(value: int, valid: tuple | list | set, default: int) -> int:
204
205
  return default
205
206
 
206
207
 
208
+ def firstFloat(*args: Any) -> float:
209
+ """Return the first value that is a float."""
210
+ for arg in args:
211
+ if isinstance(arg, float):
212
+ return arg
213
+ return 0.0
214
+
215
+
207
216
  ##
208
217
  # Formatting Functions
209
218
  ##
@@ -406,6 +415,10 @@ def numberToRoman(value: int, toLower: bool = False) -> str:
406
415
  return roman.lower() if toLower else roman
407
416
 
408
417
 
418
+ ##
419
+ # Qt Helpers
420
+ ##
421
+
409
422
  def cssCol(col: QColor, alpha: int | None = None) -> str:
410
423
  """Convert a QColor object to an rgba entry to use in CSS."""
411
424
  return f"rgba({col.red()}, {col.green()}, {col.blue()}, {alpha or col.alpha()})"
@@ -421,6 +434,13 @@ def describeFont(font: QFont) -> str:
421
434
  return "Error"
422
435
 
423
436
 
437
+ def qtLambda(func: Callable, *args: Any, **kwargs: Any) -> Callable:
438
+ """A replacement for Python lambdas that works for Qt slots."""
439
+ def wrapper(*a_: Any) -> None:
440
+ func(*args, **kwargs)
441
+ return wrapper
442
+
443
+
424
444
  ##
425
445
  # Encoder Functions
426
446
  ##
@@ -472,6 +492,10 @@ def jsonEncode(data: dict | list | tuple, n: int = 0, nmax: int = 0) -> str:
472
492
  return "".join(buffer)
473
493
 
474
494
 
495
+ ##
496
+ # XML Helpers
497
+ ##
498
+
475
499
  def xmlIndent(tree: ET.Element | ET.ElementTree) -> None:
476
500
  """A modified version of the XML indent function in the standard
477
501
  library. It behaves more closely to how the one from lxml does.
@@ -515,6 +539,45 @@ def xmlIndent(tree: ET.Element | ET.ElementTree) -> None:
515
539
  return
516
540
 
517
541
 
542
+ def xmlElement(
543
+ tag: str,
544
+ text: str | int | float | bool | None = None,
545
+ *,
546
+ attrib: dict | None = None,
547
+ tail: str | None = None,
548
+ ) -> ET.Element:
549
+ """A custom implementation of Element with more arguments."""
550
+ xSub = ET.Element(tag, attrib=attrib or {})
551
+ if text is not None:
552
+ if isinstance(text, bool):
553
+ xSub.text = str(text).lower()
554
+ else:
555
+ xSub.text = str(text)
556
+ if tail is not None:
557
+ xSub.tail = tail
558
+ return xSub
559
+
560
+
561
+ def xmlSubElem(
562
+ parent: ET.Element,
563
+ tag: str,
564
+ text: str | int | float | bool | None = None,
565
+ *,
566
+ attrib: dict | None = None,
567
+ tail: str | None = None,
568
+ ) -> ET.Element:
569
+ """A custom implementation of SubElement with more arguments."""
570
+ xSub = ET.SubElement(parent, tag, attrib=attrib or {})
571
+ if text is not None:
572
+ if isinstance(text, bool):
573
+ xSub.text = str(text).lower()
574
+ else:
575
+ xSub.text = str(text)
576
+ if tail is not None:
577
+ xSub.tail = tail
578
+ return xSub
579
+
580
+
518
581
  ##
519
582
  # File and File System Functions
520
583
  ##
@@ -161,8 +161,9 @@ class Config:
161
161
 
162
162
  self.dialogStyle = 2 # Quote type to use for dialogue
163
163
  self.allowOpenDial = True # Allow open-ended dialogue quotes
164
- self.narratorBreak = "" # Symbol to use for narrator break
165
164
  self.dialogLine = "" # Symbol to use for dialogue line
165
+ self.narratorBreak = "" # Symbol to use for narrator break
166
+ self.narratorDialog = "" # Symbol for alternating between dialogue and narrator
166
167
  self.altDialogOpen = "" # Alternative dialog symbol, open
167
168
  self.altDialogClose = "" # Alternative dialog symbol, close
168
169
  self.highlightEmph = True # Add colour to text emphasis
@@ -252,6 +253,10 @@ class Config:
252
253
  def hasError(self) -> bool:
253
254
  return self._hasError
254
255
 
256
+ @property
257
+ def locale(self) -> QLocale:
258
+ return self._dLocale
259
+
255
260
  @property
256
261
  def recentProjects(self) -> RecentProjects:
257
262
  return self._recentProjects
@@ -653,10 +658,11 @@ class Config:
653
658
  self.showFullPath = conf.rdBool(sec, "showfullpath", self.showFullPath)
654
659
  self.dialogStyle = conf.rdInt(sec, "dialogstyle", self.dialogStyle)
655
660
  self.allowOpenDial = conf.rdBool(sec, "allowopendial", self.allowOpenDial)
661
+ self.dialogLine = conf.rdStr(sec, "dialogline", self.dialogLine)
656
662
  self.narratorBreak = conf.rdStr(sec, "narratorbreak", self.narratorBreak)
663
+ self.narratorDialog = conf.rdStr(sec, "narratordialog", self.narratorDialog)
657
664
  self.altDialogOpen = conf.rdStr(sec, "altdialogopen", self.altDialogOpen)
658
665
  self.altDialogClose = conf.rdStr(sec, "altdialogclose", self.altDialogClose)
659
- self.dialogLine = conf.rdStr(sec, "dialogline", self.dialogLine)
660
666
  self.highlightEmph = conf.rdBool(sec, "highlightemph", self.highlightEmph)
661
667
  self.stopWhenIdle = conf.rdBool(sec, "stopwhenidle", self.stopWhenIdle)
662
668
  self.userIdleTime = conf.rdInt(sec, "useridletime", self.userIdleTime)
@@ -762,10 +768,11 @@ class Config:
762
768
  "showfullpath": str(self.showFullPath),
763
769
  "dialogstyle": str(self.dialogStyle),
764
770
  "allowopendial": str(self.allowOpenDial),
771
+ "dialogline": str(self.dialogLine),
765
772
  "narratorbreak": str(self.narratorBreak),
773
+ "narratordialog": str(self.narratorDialog),
766
774
  "altdialogopen": str(self.altDialogOpen),
767
775
  "altdialogclose": str(self.altDialogClose),
768
- "dialogline": str(self.dialogLine),
769
776
  "highlightemph": str(self.highlightEmph),
770
777
  "stopwhenidle": str(self.stopWhenIdle),
771
778
  "useridletime": str(self.userIdleTime),