novelWriter 2.5.2__py3-none-any.whl → 2.6__py3-none-any.whl

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 (129) hide show
  1. {novelWriter-2.5.2.dist-info → novelWriter-2.6.dist-info}/METADATA +5 -4
  2. {novelWriter-2.5.2.dist-info → novelWriter-2.6.dist-info}/RECORD +126 -105
  3. {novelWriter-2.5.2.dist-info → novelWriter-2.6.dist-info}/WHEEL +1 -1
  4. novelwriter/__init__.py +50 -11
  5. novelwriter/assets/i18n/nw_de_DE.qm +0 -0
  6. novelwriter/assets/i18n/nw_en_US.qm +0 -0
  7. novelwriter/assets/i18n/nw_es_419.qm +0 -0
  8. novelwriter/assets/i18n/nw_fr_FR.qm +0 -0
  9. novelwriter/assets/i18n/nw_it_IT.qm +0 -0
  10. novelwriter/assets/i18n/nw_ja_JP.qm +0 -0
  11. novelwriter/assets/i18n/nw_nb_NO.qm +0 -0
  12. novelwriter/assets/i18n/nw_nl_NL.qm +0 -0
  13. novelwriter/assets/i18n/nw_pl_PL.qm +0 -0
  14. novelwriter/assets/i18n/nw_pt_BR.qm +0 -0
  15. novelwriter/assets/i18n/nw_ru_RU.qm +0 -0
  16. novelwriter/assets/i18n/nw_zh_CN.qm +0 -0
  17. novelwriter/assets/i18n/project_de_DE.json +4 -2
  18. novelwriter/assets/i18n/project_en_GB.json +1 -0
  19. novelwriter/assets/i18n/project_en_US.json +2 -0
  20. novelwriter/assets/i18n/project_it_IT.json +2 -0
  21. novelwriter/assets/i18n/project_ja_JP.json +2 -0
  22. novelwriter/assets/i18n/project_nb_NO.json +2 -0
  23. novelwriter/assets/i18n/project_nl_NL.json +2 -0
  24. novelwriter/assets/i18n/project_pl_PL.json +2 -0
  25. novelwriter/assets/i18n/project_pt_BR.json +2 -0
  26. novelwriter/assets/i18n/project_ru_RU.json +11 -0
  27. novelwriter/assets/i18n/project_zh_CN.json +2 -0
  28. novelwriter/assets/icons/typicons_dark/icons.conf +8 -0
  29. novelwriter/assets/icons/typicons_dark/mixed_copy.svg +4 -0
  30. novelwriter/assets/icons/typicons_dark/mixed_margin-bottom.svg +6 -0
  31. novelwriter/assets/icons/typicons_dark/mixed_margin-left.svg +6 -0
  32. novelwriter/assets/icons/typicons_dark/mixed_margin-right.svg +6 -0
  33. novelwriter/assets/icons/typicons_dark/mixed_margin-top.svg +6 -0
  34. novelwriter/assets/icons/typicons_dark/mixed_size-height.svg +6 -0
  35. novelwriter/assets/icons/typicons_dark/mixed_size-width.svg +6 -0
  36. novelwriter/assets/icons/typicons_dark/nw_toolbar.svg +5 -0
  37. novelwriter/assets/icons/typicons_light/icons.conf +8 -0
  38. novelwriter/assets/icons/typicons_light/mixed_copy.svg +4 -0
  39. novelwriter/assets/icons/typicons_light/mixed_margin-bottom.svg +6 -0
  40. novelwriter/assets/icons/typicons_light/mixed_margin-left.svg +6 -0
  41. novelwriter/assets/icons/typicons_light/mixed_margin-right.svg +6 -0
  42. novelwriter/assets/icons/typicons_light/mixed_margin-top.svg +6 -0
  43. novelwriter/assets/icons/typicons_light/mixed_size-height.svg +6 -0
  44. novelwriter/assets/icons/typicons_light/mixed_size-width.svg +6 -0
  45. novelwriter/assets/icons/typicons_light/nw_toolbar.svg +5 -0
  46. novelwriter/assets/manual.pdf +0 -0
  47. novelwriter/assets/sample.zip +0 -0
  48. novelwriter/assets/text/credits_en.htm +1 -0
  49. novelwriter/assets/themes/default_light.conf +2 -2
  50. novelwriter/common.py +101 -3
  51. novelwriter/config.py +30 -17
  52. novelwriter/constants.py +189 -81
  53. novelwriter/core/buildsettings.py +74 -40
  54. novelwriter/core/coretools.py +146 -148
  55. novelwriter/core/docbuild.py +133 -171
  56. novelwriter/core/document.py +1 -1
  57. novelwriter/core/index.py +39 -38
  58. novelwriter/core/item.py +42 -9
  59. novelwriter/core/itemmodel.py +518 -0
  60. novelwriter/core/options.py +5 -2
  61. novelwriter/core/project.py +68 -90
  62. novelwriter/core/projectdata.py +8 -2
  63. novelwriter/core/projectxml.py +1 -1
  64. novelwriter/core/sessions.py +1 -1
  65. novelwriter/core/spellcheck.py +10 -15
  66. novelwriter/core/status.py +24 -8
  67. novelwriter/core/storage.py +1 -1
  68. novelwriter/core/tree.py +269 -288
  69. novelwriter/dialogs/about.py +1 -1
  70. novelwriter/dialogs/docmerge.py +8 -18
  71. novelwriter/dialogs/docsplit.py +1 -1
  72. novelwriter/dialogs/editlabel.py +1 -1
  73. novelwriter/dialogs/preferences.py +47 -34
  74. novelwriter/dialogs/projectsettings.py +149 -99
  75. novelwriter/dialogs/quotes.py +1 -1
  76. novelwriter/dialogs/wordlist.py +11 -10
  77. novelwriter/enum.py +37 -24
  78. novelwriter/error.py +2 -2
  79. novelwriter/extensions/configlayout.py +28 -13
  80. novelwriter/extensions/eventfilters.py +1 -1
  81. novelwriter/extensions/modified.py +30 -6
  82. novelwriter/extensions/novelselector.py +4 -3
  83. novelwriter/extensions/pagedsidebar.py +9 -9
  84. novelwriter/extensions/progressbars.py +4 -4
  85. novelwriter/extensions/statusled.py +3 -3
  86. novelwriter/extensions/switch.py +3 -3
  87. novelwriter/extensions/switchbox.py +1 -1
  88. novelwriter/extensions/versioninfo.py +1 -1
  89. novelwriter/formats/shared.py +156 -0
  90. novelwriter/formats/todocx.py +1191 -0
  91. novelwriter/formats/tohtml.py +454 -0
  92. novelwriter/{core → formats}/tokenizer.py +497 -495
  93. novelwriter/formats/tomarkdown.py +218 -0
  94. novelwriter/{core → formats}/toodt.py +312 -433
  95. novelwriter/formats/toqdoc.py +486 -0
  96. novelwriter/formats/toraw.py +91 -0
  97. novelwriter/gui/doceditor.py +347 -287
  98. novelwriter/gui/dochighlight.py +97 -85
  99. novelwriter/gui/docviewer.py +90 -33
  100. novelwriter/gui/docviewerpanel.py +18 -26
  101. novelwriter/gui/editordocument.py +18 -3
  102. novelwriter/gui/itemdetails.py +27 -29
  103. novelwriter/gui/mainmenu.py +130 -64
  104. novelwriter/gui/noveltree.py +46 -48
  105. novelwriter/gui/outline.py +202 -256
  106. novelwriter/gui/projtree.py +590 -1238
  107. novelwriter/gui/search.py +11 -19
  108. novelwriter/gui/sidebar.py +8 -7
  109. novelwriter/gui/statusbar.py +20 -3
  110. novelwriter/gui/theme.py +11 -6
  111. novelwriter/guimain.py +101 -201
  112. novelwriter/shared.py +67 -28
  113. novelwriter/text/counting.py +3 -1
  114. novelwriter/text/patterns.py +169 -61
  115. novelwriter/tools/dictionaries.py +3 -3
  116. novelwriter/tools/lipsum.py +1 -1
  117. novelwriter/tools/manusbuild.py +15 -13
  118. novelwriter/tools/manuscript.py +121 -79
  119. novelwriter/tools/manussettings.py +424 -291
  120. novelwriter/tools/noveldetails.py +1 -1
  121. novelwriter/tools/welcome.py +6 -6
  122. novelwriter/tools/writingstats.py +4 -4
  123. novelwriter/types.py +25 -9
  124. novelwriter/core/tohtml.py +0 -530
  125. novelwriter/core/tomarkdown.py +0 -252
  126. novelwriter/core/toqdoc.py +0 -419
  127. {novelWriter-2.5.2.dist-info → novelWriter-2.6.dist-info}/LICENSE.md +0 -0
  128. {novelWriter-2.5.2.dist-info → novelWriter-2.6.dist-info}/entry_points.txt +0 -0
  129. {novelWriter-2.5.2.dist-info → novelWriter-2.6.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: novelWriter
3
- Version: 2.5.2
3
+ Version: 2.6
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
@@ -23,8 +24,8 @@ Classifier: Topic :: Text Editors
23
24
  Requires-Python: >=3.9
24
25
  Description-Content-Type: text/markdown
25
26
  License-File: LICENSE.md
26
- Requires-Dist: pyqt5 >=5.15
27
- Requires-Dist: pyenchant >=3.0.0
27
+ Requires-Dist: pyqt5>=5.15
28
+ Requires-Dist: pyenchant>=3.0.0
28
29
 
29
30
  <img src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/novelwriter_text.png">
30
31
 
@@ -1,46 +1,48 @@
1
- novelwriter/__init__.py,sha256=vemA3ERUhjeVgO3BDRRw_WJPGdtiFt0DLbrn2gO3WKA,7552
2
- novelwriter/common.py,sha256=qg7jqTVqLOk4zlhKkFoLgYfBdtrBweZYkZeNn7OXX5k,18494
3
- novelwriter/config.py,sha256=cUL4S-JOKhxEes--NxCiV84NpanvVbcbW_K5v74dS3w,39081
4
- novelwriter/constants.py,sha256=y-UjNZxtU2lzn0Ji9lKiNU3233RmoJuK-3JWHT6GIvc,21368
5
- novelwriter/enum.py,sha256=c1IS9rmpWMtqnMzftpWoQFtfRqcK9VMTO0vbMsf7pLM,3501
6
- novelwriter/error.py,sha256=iIx1OzyXTT7Ngk2mXW_5c0YqVdFBD0NIkUFgAXNNBlM,6813
7
- novelwriter/guimain.py,sha256=i3qIrDKlwsaF0BgaTzldHWPOozs1wYpmvwQTVro06_c,53662
8
- novelwriter/shared.py,sha256=LMgMXZK28LJUnRDbcTqTp4ZDVCKBt3EJYZMnIdu4R18,15906
9
- novelwriter/types.py,sha256=tV-XFc10wsk7zH__S2dEuEfidI6_adgOetpAVbnmJmI,4691
10
- novelwriter/assets/manual.pdf,sha256=Js2sAkX3shCh5xqRhXFL2aiMEeqbQzRqo1TXlwwbG_I,2739813
11
- novelwriter/assets/sample.zip,sha256=KRzxNo7kIYdcYX4HZvcQhaz2ewmH9wJHcmMuKeATcNI,27805
12
- novelwriter/assets/i18n/nw_de_DE.qm,sha256=__e0mtl0hfBX61eICSrJhR4mY0r7W9IkI5fYCwvLrYw,100554
13
- novelwriter/assets/i18n/nw_en_US.qm,sha256=Mueo40jL6hBXcV0Vxac-Jd-GAsLASSqEV_7W96sFkZ8,93304
14
- novelwriter/assets/i18n/nw_es_419.qm,sha256=eHiRXnf86BPH5MGvJuo8bR_nBaf-HULE-nRW76o9-yU,103131
15
- novelwriter/assets/i18n/nw_fr_FR.qm,sha256=mB2TCRNjttTFoC34iGbri5OVt2ygCNtxPS5g48CA-HA,103616
16
- novelwriter/assets/i18n/nw_it_IT.qm,sha256=Lg7F4YjU3FE1axKalwcoF9kFvEXS0KDqVNYqHQqhVi4,103350
17
- novelwriter/assets/i18n/nw_ja_JP.qm,sha256=ILDwq_8kHCiorjZabSbUYer9xB9q7hf-NQyAlReVKf8,77169
18
- novelwriter/assets/i18n/nw_nb_NO.qm,sha256=g2raFt2Lw5RcE0IJM1_f7GJsqt8G_uSv7m6sD6zFe_0,95946
19
- novelwriter/assets/i18n/nw_nl_NL.qm,sha256=SnEtdqHaSb8xWA4-EpnWxXD_uK8BeBs44I32AwlST3M,99906
20
- novelwriter/assets/i18n/nw_pl_PL.qm,sha256=Em13jYHYnTbLZp_JaodgZntmcpxBrvbitOZhM8ZQXig,98702
21
- novelwriter/assets/i18n/nw_pt_BR.qm,sha256=EXqtpkEPafPipTd0rCBN6cQ5SlqVyeMPwyMfgpTKjMs,101680
22
- novelwriter/assets/i18n/nw_zh_CN.qm,sha256=poSDKRXapJ8zHBmiRdA85KcIN1nm6gnowDMlpoJwAKE,69647
23
- novelwriter/assets/i18n/project_de_DE.json,sha256=85ud9rxRHyXm85QDmW_LKcUE8h0L1Bvukaf5Tjt-wpg,2818
24
- novelwriter/assets/i18n/project_en_GB.json,sha256=7c9W2YJAELCSwx4zN_2qYZ3xsGncinCrGNhaj_FVkxk,2511
25
- novelwriter/assets/i18n/project_en_US.json,sha256=EcQAVEiQgRL3qobuzkPTfOWIxAc3Om-tA7nXUFFXEdI,2483
1
+ novelwriter/__init__.py,sha256=EN_wLgu8KP9OkOkFopxWIETCL7fnVcQCvIaW5Idnu9o,8841
2
+ novelwriter/common.py,sha256=i5kxxzOOg0W60uZ8w1HhwlgEUYKqv60F1JTlu4KEjrY,21751
3
+ novelwriter/config.py,sha256=My3slBOz4I2n5mZaLYjHCoVZcOKA24ONA1UIq0k54nI,39789
4
+ novelwriter/constants.py,sha256=sPAjs_SwLlr5YVDvXrU2ZeJo6m7732oilnWY3jK7KuY,25948
5
+ novelwriter/enum.py,sha256=wbYnMgViyvuWEqeAGpNJDnk7AfnXDtxLey8Y4WbWkUo,3713
6
+ novelwriter/error.py,sha256=Pq4ogfb4GlqTBC698o9bJ537Ce5kXzyNw2JZxMGmZJM,6849
7
+ novelwriter/guimain.py,sha256=MqYuge0OPjfgyysjcQs_pdnSXcwAZq-DxnJJcvpVLBU,49628
8
+ novelwriter/shared.py,sha256=MaIQuDHX3XvW4SbhGaDlfI6YFn_yxzeq92IKi1ri810,17511
9
+ novelwriter/types.py,sha256=-qQovORltSnUMWn5Hcjv2FJV18t_DumGkggjch_oFRE,5098
10
+ novelwriter/assets/manual.pdf,sha256=1qSdqcGJbljonvyQL2rSwL3BKBxyhWK6sFdLemh5CcE,2687604
11
+ novelwriter/assets/sample.zip,sha256=ceddJJdmI5kLEek3LkrF8m5R4gcoJe_InowPl3BdAVI,28033
12
+ novelwriter/assets/i18n/nw_de_DE.qm,sha256=aPKr2orWxdz-6HbvNCZZS5tZuUHl12QA5I1k1-_-_jw,102115
13
+ novelwriter/assets/i18n/nw_en_US.qm,sha256=F99Y_xLYqxsmRW1abrO_0O1X_Y42OZnc8D3U49vR47Y,94871
14
+ novelwriter/assets/i18n/nw_es_419.qm,sha256=LCNGv7RUpgTCWkA6oOyfPckGl-sKO1hmdGl_naQO8AY,99798
15
+ novelwriter/assets/i18n/nw_fr_FR.qm,sha256=BwHQadfuvJyx2koKC2McMWrjJI7KQTEYq8mLe6n1wfI,100161
16
+ novelwriter/assets/i18n/nw_it_IT.qm,sha256=GdXPbMdI_h50-StveaQDGzSWXCTjMYQSPF9FB3d4KN4,105093
17
+ novelwriter/assets/i18n/nw_ja_JP.qm,sha256=g2k2b7H2O9v7HwXr2vo78dPZJZnM5enI7V6tQk2K5cU,78526
18
+ novelwriter/assets/i18n/nw_nb_NO.qm,sha256=OC7hNGozfStkjQrEG4PtD3ECMfMqGUz6Ox0lXlk9m9o,97451
19
+ novelwriter/assets/i18n/nw_nl_NL.qm,sha256=WCnVcavSwehklScJQTU-AhogQzrtN1IHYT2cK5B-9gg,96703
20
+ novelwriter/assets/i18n/nw_pl_PL.qm,sha256=Z0my1MlIzxkZhidJPPD0uSccHF-k8aH7OvMJVdA9v0M,100313
21
+ novelwriter/assets/i18n/nw_pt_BR.qm,sha256=D6O4qwlfF7GlxdQSiVWRlx7obOxmSYXjr4s40xkWWsw,102987
22
+ novelwriter/assets/i18n/nw_ru_RU.qm,sha256=W10A9BAdYhRbZRzHCpaN03G7Xba7hzl02L6bGveL_0o,94842
23
+ novelwriter/assets/i18n/nw_zh_CN.qm,sha256=VTL4XIvOIujnm4pg2NgyYxUV-3H_ckxWCXoS47VYYtA,70468
24
+ novelwriter/assets/i18n/project_de_DE.json,sha256=-9-FF2zYD9ulez9dXAKLbFWsbEX2KLXKE1cJS8csx1g,2866
25
+ novelwriter/assets/i18n/project_en_GB.json,sha256=CvBOO8kaW0k7NlwvxFi62Br9HYKJKQLDk1nQfvXOj48,2537
26
+ novelwriter/assets/i18n/project_en_US.json,sha256=CvBOO8kaW0k7NlwvxFi62Br9HYKJKQLDk1nQfvXOj48,2537
26
27
  novelwriter/assets/i18n/project_es_419.json,sha256=Z6CAhc0hzekUZFDM-0ykRRsckJG4c2AETy4Xa_f2T7s,2730
27
28
  novelwriter/assets/i18n/project_fr_FR.json,sha256=CBojo05gdhxev5pFg889ENe_CKOHSDv3oj8SmkBFqGg,2788
28
- novelwriter/assets/i18n/project_it_IT.json,sha256=C_S5P86hGHaJ_sE-B3ceQGJgDzkXalyjF816oClf9h0,2566
29
- novelwriter/assets/i18n/project_ja_JP.json,sha256=8P03f2D9o2TlSxFU5ugRa-DJDeDZr_I_omDWN-xv3lY,2393
30
- novelwriter/assets/i18n/project_nb_NO.json,sha256=e8E9c188KRPJfgZa298hDiaLEuhjHMxbRMaIF8HaVew,2298
31
- novelwriter/assets/i18n/project_nl_NL.json,sha256=qUEEjLMRtvt9VuNmjb_qOVCXqUCENHskCEyp5YlPMc4,2683
29
+ novelwriter/assets/i18n/project_it_IT.json,sha256=LHbGZT6MOHOmIKrl6HD1-Tl_RxKbeEL0eXqPVK0VwM8,2633
30
+ novelwriter/assets/i18n/project_ja_JP.json,sha256=CK8yvTAr_58mDMSU-XAXYk3ny9Iryp21EZ80dGJ60E8,2451
31
+ novelwriter/assets/i18n/project_nb_NO.json,sha256=CS4nU-8AnnmQLiET5wAsFa4F7UHimjCTbxzmtGugw0A,2350
32
+ novelwriter/assets/i18n/project_nl_NL.json,sha256=wlXDfy4rMKyXP0X3r22qSNFuseO33bePAHqvIVk_tHQ,2742
32
33
  novelwriter/assets/i18n/project_nn_NO.json,sha256=7ZfmtFWHcDMiLVqdOEDHQWHbpoC_bv5ESmf_-CoYiks,2250
33
- novelwriter/assets/i18n/project_pl_PL.json,sha256=msXu3rNhJ19ytVespoXQ95nZ-mFis5rlLeCPK4A3zS8,3461
34
- novelwriter/assets/i18n/project_pt_BR.json,sha256=FDxIeSlf3v8AcrWfgwk7UOMRDmb2hWdDoabsBq5rkL8,2763
35
- novelwriter/assets/i18n/project_ru_RU.json,sha256=F4QkD6VVDCtGdil7uoXCmuczvUpe9tv-1L-3Eyc8sKE,3699
36
- novelwriter/assets/i18n/project_zh_CN.json,sha256=cfl0TsnbISYUvygOw015y0x0REDG97xR0yjyJ85Jm34,2322
34
+ novelwriter/assets/i18n/project_pl_PL.json,sha256=2mAchml-aT95ZT9qi3pAEMyyze5swkRa-OCWq6ZMoGk,3517
35
+ novelwriter/assets/i18n/project_pt_BR.json,sha256=lCtbr_i2gN3Atii1EgMn-B5SMP71_x4YsF7wXx7Hi7s,2828
36
+ novelwriter/assets/i18n/project_ru_RU.json,sha256=Lq8msxzjhkFHXPJAmEEyjoFOUV28CLJXmayY3h3jiAo,4075
37
+ novelwriter/assets/i18n/project_zh_CN.json,sha256=CGnJO6ElV40fm7yElNtDwHYsd_32d-cR7h1jG4xx4eY,2377
37
38
  novelwriter/assets/icons/none.svg,sha256=NRN9vMzohg7Ner71GwPthrCG0uA81TpY8UmKb8-L-pM,251
38
39
  novelwriter/assets/icons/novelwriter.ico,sha256=OJRIeeUcmS7Di51NA3uF5_Ov4V8T47gQ9qWv6C7qDeA,171059
39
40
  novelwriter/assets/icons/novelwriter.svg,sha256=Ad_SgOdXSDJtFR3DLCx6Afme15I78r38_YxCfO9F2z4,8511
40
41
  novelwriter/assets/icons/x-novelwriter-project.ico,sha256=MXdZSYi3j95aIsT5bZo6CkhxmS75cThP9O_38UR7sjg,170697
41
42
  novelwriter/assets/icons/x-novelwriter-project.svg,sha256=VHf1aClkA91tZVYb3LFk9bi_Dw25QBVSjUJAjSD-YX4,5143
42
43
  novelwriter/assets/icons/typicons_dark/README.md,sha256=6ZxJq-19PNrMdeuVeVg84aLjxhr9oF7dLwuMFVGQyq0,1065
43
- novelwriter/assets/icons/typicons_dark/icons.conf,sha256=9sQ88muSh0xjI7_xYBcgjR5Kh2qRf_DVvlKemDkQCp0,4492
44
+ novelwriter/assets/icons/typicons_dark/icons.conf,sha256=FDqhLubF2BeVDpjIeysmhu5ceUXvTw9Q5slUwGbIH7w,4799
45
+ novelwriter/assets/icons/typicons_dark/mixed_copy.svg,sha256=lUcY81wxepOd1XaPZb47oRmrsX3ZIHCLOEUBDPQyYoU,633
44
46
  novelwriter/assets/icons/typicons_dark/mixed_document-chapter.svg,sha256=POP_Cs3bkkKAmrS_fTgjj90eyNK0bipNGgOhDDlXKu0,1650
45
47
  novelwriter/assets/icons/typicons_dark/mixed_document-new.svg,sha256=EIVU3_ecC0d6rpCHXBfKoA_mWJyilqe7iA6XLQb9oRw,1849
46
48
  novelwriter/assets/icons/typicons_dark/mixed_document-note.svg,sha256=OaPRbvkA7h4GA4mnFXJRORv80h2nAsJTmlIR8Msrwt8,1650
@@ -52,7 +54,13 @@ novelwriter/assets/icons/typicons_dark/mixed_import.svg,sha256=XiitW007_GjKNMzby
52
54
  novelwriter/assets/icons/typicons_dark/mixed_input-checked.svg,sha256=sjBBHcHWBwf6P3UIcLThccrDqaGLHUgV-ov6v6WXsAw,1208
53
55
  novelwriter/assets/icons/typicons_dark/mixed_input-none.svg,sha256=1uSgoXznt31ynAj3MHC-vVdDuaszmtEKbfofepNs7g4,1058
54
56
  novelwriter/assets/icons/typicons_dark/mixed_input-unchecked.svg,sha256=Ml28wWspg9oipeuBbEOQnS2t0K67A4CO49p6nBKl8EI,1272
57
+ novelwriter/assets/icons/typicons_dark/mixed_margin-bottom.svg,sha256=nPTb6-YjsVN0W0Yysh6KgC4mONOa9B-jmgdeAVMTxh4,713
58
+ novelwriter/assets/icons/typicons_dark/mixed_margin-left.svg,sha256=Bz-iUWO19TBhCD_IVUtoKohq3wmP6wzSEnJ-6EV-nXc,711
59
+ novelwriter/assets/icons/typicons_dark/mixed_margin-right.svg,sha256=RQSwJZoTQDeJuIoEcNtBzZOFYe5hu6N_LG9G934xg0k,711
60
+ novelwriter/assets/icons/typicons_dark/mixed_margin-top.svg,sha256=eJOM0VEI0pFZWNfqKcFGl0jAxDpfohNoroR7gOWzbXw,712
55
61
  novelwriter/assets/icons/typicons_dark/mixed_search-replace.svg,sha256=h2tBf_BthV5HnR9GB861PDMpIsc4OzzccuiKaUgBRAE,2163
62
+ novelwriter/assets/icons/typicons_dark/mixed_size-height.svg,sha256=bfHbAnXj7l5m-xPvTmzwng-D1ZLUsyjPu7e-H5xoWXQ,921
63
+ novelwriter/assets/icons/typicons_dark/mixed_size-width.svg,sha256=ouRcLqZKhRxoTwHDf53JzkmXDqDggZJeM2xcHpaAidU,919
56
64
  novelwriter/assets/icons/typicons_dark/nw_deco-h0.svg,sha256=ssrqNUVY1vz4LtYE5pdINmP6qI5IZHFbokfYPzG-CTM,225
57
65
  novelwriter/assets/icons/typicons_dark/nw_deco-h1.svg,sha256=nY2JYxPpGTsKCgp8pM0BdscFk6OoESNDVj53m4PMkM0,222
58
66
  novelwriter/assets/icons/typicons_dark/nw_deco-h2-narrow.svg,sha256=NkZKLECgrrhPF9oI3OuZeSyuMiSN93T-qUGg2n99c_0,225
@@ -80,6 +88,7 @@ novelwriter/assets/icons/typicons_dark/nw_tb-strike.svg,sha256=uO12-KZ3Nx4GEL2mI
80
88
  novelwriter/assets/icons/typicons_dark/nw_tb-subscript.svg,sha256=dOhhKxlsdWuQ7tq8HkBcShjNOUBpyEKgUP1RoFDlPLs,1550
81
89
  novelwriter/assets/icons/typicons_dark/nw_tb-superscript.svg,sha256=0TpY0nIinD4dwgwh0Nyfs0C4rJDcc2JsgxnXSE0flco,1549
82
90
  novelwriter/assets/icons/typicons_dark/nw_tb-underline.svg,sha256=Z0ooKzRV_g298UX22uuUxZPC21Z9DN-1y4sY3vVIaZE,1121
91
+ novelwriter/assets/icons/typicons_dark/nw_toolbar.svg,sha256=gWxZ0epbAPaMP4Pi0B-1OmiAw56Rr8g8ilITkKDo1G8,389
83
92
  novelwriter/assets/icons/typicons_dark/typ_arrow-down-thick-grey.svg,sha256=PsEm_GCebnkMvtVm1OUbVU0hvA2nL8bWlrlyrAWh0tE,519
84
93
  novelwriter/assets/icons/typicons_dark/typ_arrow-forward.svg,sha256=Io2wWbs2Z0z5GHzDkmf3AkNZZqyfSC0ilWVDvGv5Q5U,538
85
94
  novelwriter/assets/icons/typicons_dark/typ_arrow-maximise.svg,sha256=m4w3ZUHy3R2aTtvLKZpmd6FPijjkaG6A5jhiqfTp9mg,1029
@@ -140,7 +149,8 @@ novelwriter/assets/icons/typicons_dark/typ_unfold-visible.svg,sha256=IvVXmxlkrTy
140
149
  novelwriter/assets/icons/typicons_dark/typ_user.svg,sha256=00gZEDr59B1A7A4o0w5VjCJOHnQHANsgXBhnB_VTMU4,733
141
150
  novelwriter/assets/icons/typicons_dark/typ_warning-full.svg,sha256=zqqV82C37dWH_yHoSuPo-BLsErg0sl8_VlB6fzXL4VE,970
142
151
  novelwriter/assets/icons/typicons_light/README.md,sha256=nyGvWLJ8cusLYP8YsjX_l213NkDE_GHrwctZ-I_JQUg,1066
143
- novelwriter/assets/icons/typicons_light/icons.conf,sha256=TnqiHJ4CnvKqT4_5BPmsqJdTUKtDswlwL8c2xjYNLlw,4495
152
+ novelwriter/assets/icons/typicons_light/icons.conf,sha256=ib9tQ1R0baMWBT7-8n73S5M4behYWG-uJmU3iIvD3PI,4802
153
+ novelwriter/assets/icons/typicons_light/mixed_copy.svg,sha256=ojZVpxuFzlJFGEav5vg8Kr4SgDxffu0awEe3De5iB6U,636
144
154
  novelwriter/assets/icons/typicons_light/mixed_document-chapter.svg,sha256=kXNwPbeKR3eupIrqtDQrNGq5sL8vdExLfPMrMX2sEsw,1650
145
155
  novelwriter/assets/icons/typicons_light/mixed_document-new.svg,sha256=u0YYfp6hTUEYLsrPleUqYocaG2hl62w-B85INvkm6S4,1825
146
156
  novelwriter/assets/icons/typicons_light/mixed_document-note.svg,sha256=XpKQ2Fj7J3I3BT9mAQkjk_A4eP7uy94vPeDBA62fOYI,1650
@@ -152,7 +162,13 @@ novelwriter/assets/icons/typicons_light/mixed_import.svg,sha256=lad5N1wOjDrTLxEz
152
162
  novelwriter/assets/icons/typicons_light/mixed_input-checked.svg,sha256=uevUoQv7D-6g1RgE0gG2ZWek3118qIAcgkqg7zxK8Zs,1208
153
163
  novelwriter/assets/icons/typicons_light/mixed_input-none.svg,sha256=V6uPJ1f85DYXpuuC3n4-lV1U8zfyXYMbOHYBy9-uiQs,1055
154
164
  novelwriter/assets/icons/typicons_light/mixed_input-unchecked.svg,sha256=uKyeneabnW80b04DpK2k0Y7-uyoC-R3HLse19aSkVww,1269
165
+ novelwriter/assets/icons/typicons_light/mixed_margin-bottom.svg,sha256=aWFc7bwBS3ucj6R6s18hF8DO3Xu7qInFu4sxP-ufOdY,707
166
+ novelwriter/assets/icons/typicons_light/mixed_margin-left.svg,sha256=L-usVSQF9c05bgCibtYBuRvmoRJsL35JPp9XJ4aS_v4,705
167
+ novelwriter/assets/icons/typicons_light/mixed_margin-right.svg,sha256=wvcxiNqxDNShnRkXcTDcGx-4jVaDCHvnbxKkEsm5Nig,705
168
+ novelwriter/assets/icons/typicons_light/mixed_margin-top.svg,sha256=gfrkJLV_7SLH6NJaqbgycXnFwE9sL4DOPAgXpjeNFzQ,706
155
169
  novelwriter/assets/icons/typicons_light/mixed_search-replace.svg,sha256=eGKRJPxZhtwX9qQZ-kw3UmfLBdZqovqn7GVR2g4drnQ,2169
170
+ novelwriter/assets/icons/typicons_light/mixed_size-height.svg,sha256=z24yLe0SRlKJDA7g3HRbFSFTB-qfpbFBs4JX5wgL0TY,921
171
+ novelwriter/assets/icons/typicons_light/mixed_size-width.svg,sha256=HhZuLItCJlD6QU5hLioBpQwQBdfnRxAgSNIC17sDI_k,922
156
172
  novelwriter/assets/icons/typicons_light/nw_deco-h0.svg,sha256=ssrqNUVY1vz4LtYE5pdINmP6qI5IZHFbokfYPzG-CTM,225
157
173
  novelwriter/assets/icons/typicons_light/nw_deco-h1.svg,sha256=nuzuJ9h9Lb1HpdOq6NfRKzSGlUVo53fC4TnHHpdkOu0,225
158
174
  novelwriter/assets/icons/typicons_light/nw_deco-h2-narrow.svg,sha256=dkAEvmLO4DkRDe_rfRB-0L7yM7mEGj24XW1gFf3B-BA,225
@@ -180,6 +196,7 @@ novelwriter/assets/icons/typicons_light/nw_tb-strike.svg,sha256=HtAYlTga42JVpoUJ
180
196
  novelwriter/assets/icons/typicons_light/nw_tb-subscript.svg,sha256=j8qncFQqiC5vZfFELENtX9COMcrI7NnyED17ki7tC08,1551
181
197
  novelwriter/assets/icons/typicons_light/nw_tb-superscript.svg,sha256=-B-iVCPsoCaz9ZiVkHN6em2BJOI65_ssjFqZM75wxZ0,1550
182
198
  novelwriter/assets/icons/typicons_light/nw_tb-underline.svg,sha256=rxSFWY2lNpSuF2jbUk_jyfoHk_B5d2bLncaCY-2LT7w,1141
199
+ novelwriter/assets/icons/typicons_light/nw_toolbar.svg,sha256=6zQlA4M31aKNHxOo4wnbJ5tpFJk-58bYAYgAhzorJ9c,395
183
200
  novelwriter/assets/icons/typicons_light/typ_arrow-down-thick-grey.svg,sha256=FZFt51KLkvqrP0nM_bnCjKkELcLT7KMWB059gvSMKk4,523
184
201
  novelwriter/assets/icons/typicons_light/typ_arrow-forward.svg,sha256=vDYZrsNe2Afo8-MqS9HV_gsz6aFraYZUyJeAdOXaE4Y,541
185
202
  novelwriter/assets/icons/typicons_light/typ_arrow-maximise.svg,sha256=bz93DwuiB_2Baf-oG5SsMdWGccYogyNqR2Yq3OQ4bDY,1032
@@ -260,80 +277,84 @@ novelwriter/assets/syntax/tomorrow_night.conf,sha256=mWPneIV_6tszLEK4-Eo-kcJmUbr
260
277
  novelwriter/assets/syntax/tomorrow_night_blue.conf,sha256=L42gcekFfNpCCB45m9Lhzmz8Y6Lvbpik3AADi_1Aao8,1549
261
278
  novelwriter/assets/syntax/tomorrow_night_bright.conf,sha256=h8_775Ed8hl2XhfCoxAY2kT43vi-UvG8UHik1aI4eRw,1554
262
279
  novelwriter/assets/syntax/tomorrow_night_eighties.conf,sha256=stO_xH5RzMN0jaZeYr53LVXbpqSmIXALBFGVLlJBDLA,1557
263
- novelwriter/assets/text/credits_en.htm,sha256=jeEMRXuD-ZpGgRPtS3oZQ4HdIe6pwSnB3ZifvYiZLjU,2904
280
+ novelwriter/assets/text/credits_en.htm,sha256=wZgQGDQgIvd_2aT6oaJB88jOUjhtWYbn9tA6IfoGq3k,2958
264
281
  novelwriter/assets/text/lipsum.txt,sha256=sGA6AC_p4jrUifxLxy3cSODeRwkpBNXDPGgX6YRTm2s,62937
265
282
  novelwriter/assets/themes/cyberpunk_night.conf,sha256=FvG_YVfEnMwJV1XUDEdpi9qoHQ5sdyVEaR_Y3WfWNA8,923
266
283
  novelwriter/assets/themes/default.conf,sha256=K0LZ64lODpCtUg3pISTAP4UKvEYMvPkmIYN9RDEaWwk,72
267
284
  novelwriter/assets/themes/default_dark.conf,sha256=obPCLVOXL1Zp973DbbROldyQOoUPGWlPKLbetZqMZe8,989
268
- novelwriter/assets/themes/default_light.conf,sha256=zNjrtkRs2hLEcefFt3uys2-tei3Lxdth-yThO9InNz4,992
285
+ novelwriter/assets/themes/default_light.conf,sha256=2a4SXzlbZpyV9EX3BuFSRFYuLuzu4hapa_3iwez6yAc,992
269
286
  novelwriter/assets/themes/dracula.conf,sha256=pUvu7FS1nRPj3PyU3NZMR0WSb5sIa0oLpSa2XTzsh98,1425
270
287
  novelwriter/assets/themes/solarized_dark.conf,sha256=7dDjs8aiFuAjl--hqMJQEExrfCgAapiPY82CL6aAo-I,916
271
288
  novelwriter/assets/themes/solarized_light.conf,sha256=psCPVWcjAKB5y8H_E_h5zYUifxh5YpdFdBzxFofIHa0,918
272
- novelwriter/core/buildsettings.py,sha256=cx-yjeja6VeYUdVZwNhLr6Ka_EXT8xCTwzQtv1Cmrec,22689
273
- novelwriter/core/coretools.py,sha256=mItCKIHMMu1zrW3q2-FhF_lVfzjOKhbPtTEaXLt6U-o,21048
274
- novelwriter/core/docbuild.py,sha256=h1jCFgkzyuoDgusjvuctBQpyDdNWBCHL2CNwQN0aEeM,14236
275
- novelwriter/core/document.py,sha256=T8FlxyEMlR3t2HNE92InseWUMylWFTMnr2fP-Ge5LQc,12130
276
- novelwriter/core/index.py,sha256=soGv-bDdAHk77ubqr1OfftGtyB1aJAJNODyfOq2nZm8,48450
277
- novelwriter/core/item.py,sha256=0p_o3eCf8ZK30MiUR1rd1fDXb63lqNB4lHZeLMA6Wys,17635
278
- novelwriter/core/options.py,sha256=8yAQoTkDhTCZY7EGg29Fq7Lj4n4Hd2i-Kx7TlgnausM,7372
279
- novelwriter/core/project.py,sha256=tdD6GrwicCttvlM2jt0Tx8A9VpfFi5g4sTsM2h497R4,22066
280
- novelwriter/core/projectdata.py,sha256=bt-LDNJsM2K4VwTcyZU_V2KOUZJFRKrNXNIwbU1v3Eo,9799
281
- novelwriter/core/projectxml.py,sha256=dbgm2ryPCOa1BFsFay-6vEK2itE8TWYRUiwCBpPp59g,22013
282
- novelwriter/core/sessions.py,sha256=V9eBXaUMcXTZjYXR5dgi6E14COIlcLIkNwS6pDrn75U,4405
283
- novelwriter/core/spellcheck.py,sha256=MwkRPp3MJa2X-6yRWX6Rc-sq2vLsbLnjNnyUpAbRFiE,7176
284
- novelwriter/core/status.py,sha256=FW20GK6_gxsYCiD7ZDg_gGIgp6yw3y1PS5mBN5HlARo,11592
285
- novelwriter/core/storage.py,sha256=mNM9EMW0VRMwEkmTKnzotPVdJk4tJDDUNAHNH9yG5mw,20926
286
- novelwriter/core/tohtml.py,sha256=NxM4c52q2ZFNW-XdHOI9L5lqTSiw9J5KZAELhdmN_9I,19211
287
- novelwriter/core/tokenizer.py,sha256=M4hbOqPtaeLFFPwVlQs03eHgSDHEWjZKw3_zzWtgqB0,47975
288
- novelwriter/core/tomarkdown.py,sha256=sZG64PLyTjDuIxnPQVMdcMSF-obsp4C06B1dUKhlbHU,7925
289
- novelwriter/core/toodt.py,sha256=Hrb6FJkwf2wwcKE6f7lw5o0PZqKsf1TWqvJbrJWrijU,62529
290
- novelwriter/core/toqdoc.py,sha256=p8_4WwwXcnEuPw2XsU4Xq76YTyT2JMk7NQR1arCjVd8,15500
291
- novelwriter/core/tree.py,sha256=mmOB7kN0tjWda_AdT1WuZyFrewuc6uRAlqCfX6opwek,18681
292
- novelwriter/dialogs/about.py,sha256=0iBYkifACc5vZj4KwG0G2Dll_Wp4acAHUfNTto74MFU,4755
293
- novelwriter/dialogs/docmerge.py,sha256=HtJvmu56CGb_G27XGRgF3kl0jPR_14SBVsOKv_UyVX8,6286
294
- novelwriter/dialogs/docsplit.py,sha256=nPb7U68vtZ5yuJtUIr-2yTWCfADCtK4T1h7LgL0Hx8c,9281
295
- novelwriter/dialogs/editlabel.py,sha256=cs8ztrK1Gi3lEZozvs978dNAR6rnlV8cWr9dZArD51I,2963
296
- novelwriter/dialogs/preferences.py,sha256=HSH8JrJUi3r_bBiTkkLtLUbsCIZpMI3LECOWDHpqhMU,38050
297
- novelwriter/dialogs/projectsettings.py,sha256=EfMcfCDGn59XuzkJGuuKhS9UFdYTNIxTJPEiQB71zGg,27525
298
- novelwriter/dialogs/quotes.py,sha256=JCgoz9I8HepxYYVBXOzQac6aFpzNMF4CRdw4CnAnuNM,4727
299
- novelwriter/dialogs/wordlist.py,sha256=yuQebLRuasVk2QUm2zWGn7ZzuWM4lFGyXz0egQPyILw,8511
300
- novelwriter/extensions/configlayout.py,sha256=rQfK0kAwSZn30WEtqJKP8RoNWOjVP4C3gYTAXXkm5u0,10443
301
- novelwriter/extensions/eventfilters.py,sha256=mTU_sMQPOEocRfvLcwQyXUpkm314tH32WsID61ss1CI,2522
302
- novelwriter/extensions/modified.py,sha256=kXntkvw1ZWeRxseZyA444bV3O9RbmbErtaDDafu0DwY,5756
303
- novelwriter/extensions/novelselector.py,sha256=etVtoDkHGJIP4ab__vStJQCREKYt5sWLfK1vyuO3hLI,3794
304
- novelwriter/extensions/pagedsidebar.py,sha256=Brgl_d8KXnWWJov-sTkj9tMQu7Xrz8v7rXcnvpAaRK8,7232
305
- novelwriter/extensions/progressbars.py,sha256=BpJHycboSNGYWIfAEMqIy1Qxf32Cg8TeWM3hogzakTs,4628
306
- novelwriter/extensions/statusled.py,sha256=QdgkMSMKMfQRM9kiEXCuH-wbrq_AH9Sh8zBvYfvJE6Q,2943
307
- novelwriter/extensions/switch.py,sha256=4kXJ3EHEhaivj1D69iBi46hkkPBGAt-Rt5EjVK3V4Aw,4299
308
- novelwriter/extensions/switchbox.py,sha256=5tCiFWkT9WF9xh2c__BnNAJHFLw2nRso3fJZfwzDqRE,4198
309
- novelwriter/extensions/versioninfo.py,sha256=R2_U6B678be0WNxbnhUntpxR5PnZVGf6eeyENp-S-Xo,5035
310
- novelwriter/gui/doceditor.py,sha256=Cv9_sMKpSozKrIPusvcLDzlgD6rr8JxDHkzIoApOfMc,113720
311
- novelwriter/gui/dochighlight.py,sha256=4JNWQkfaEc0p-EvRRkbBWwQdrFqVotgremzu2WWw9hA,19463
312
- novelwriter/gui/docviewer.py,sha256=eXnUE-q_hrwIaJ7FBJf5XrTiQOkWz_r_oAsoYe9w3PI,32251
313
- novelwriter/gui/docviewerpanel.py,sha256=CCCzSc-Ol5jCmoEfpZ-RD-tcwzkyM7g_iBSQNeljGgE,20040
314
- novelwriter/gui/editordocument.py,sha256=5_v-gwZ9-CwJHGs7lFUGdY3paR7F1PW2FjD6_fbq5wY,4087
315
- novelwriter/gui/itemdetails.py,sha256=0U3hghK4Vue3AwtLBRY6YJMN3vOCjatvvzXhJDn4UXo,9688
316
- novelwriter/gui/mainmenu.py,sha256=PaJjO38DQ72UL9hMyvSbh2I1daxOZBSbJhNsov771fw,38908
317
- novelwriter/gui/noveltree.py,sha256=rAU_f6efrt5uAsew6jGqo3X3E3ggrZaoQh2prm13wD8,27635
318
- novelwriter/gui/outline.py,sha256=Id6hSEe1iLls6qPckX-b3U21rPOOndlfe7r4VsNC3G8,42312
319
- novelwriter/gui/projtree.py,sha256=iMsMf8IcaV3Dvsbx3thWvWffHFqM5kTWP2AC69Fsvg0,78027
320
- novelwriter/gui/search.py,sha256=HnS0_vOg15f3woXeZ8MS_ZAblx9aFIuN7BSa195tY1M,13262
321
- novelwriter/gui/sidebar.py,sha256=jBkOinx69lwt4m1GovQ7nF44lF-g_SOk3yTT96KlbFY,6212
322
- novelwriter/gui/statusbar.py,sha256=-rF6bIJXGKFRswVKWE1c5In5x3sX4iXMfp0AGxZxt0c,9053
323
- novelwriter/gui/theme.py,sha256=M1ZbEKAZcU-INROiYyanUsDFNHcAZurArpEDvmg8870,31974
324
- novelwriter/text/counting.py,sha256=tkWKWS_scPYmBG8xLpIL1KLIjyF2HOlkrloQa5PZmDc,4304
325
- novelwriter/text/patterns.py,sha256=sEBPf9buLtJvYeoYquZzDcSC6gfKBHIUPGbD31y5H-g,3843
326
- novelwriter/tools/dictionaries.py,sha256=92GNCSEOK1EI7t2DiayT8p7nzKW7LwxJJz98F6kn3Vg,9243
327
- novelwriter/tools/lipsum.py,sha256=NcmoxWzrbEybh_w1FzxuxHmeTr8N03OrxjxsPWEbae4,4794
328
- novelwriter/tools/manusbuild.py,sha256=c3NdpkAqUPTKN2BpGX_xleFtZPi1G8uv80XBZEp27Bw,14071
329
- novelwriter/tools/manuscript.py,sha256=UgLSm6TFfftSc_cttzaic6Y06pwdMOMmSBhVWzdCSYA,38009
330
- novelwriter/tools/manussettings.py,sha256=Uz7QpCb2l_SftpQ5N7x0qHdq41-6fvTRHv7bxWvDLWg,56145
331
- novelwriter/tools/noveldetails.py,sha256=xNpTf5-hFu-K_flPhMLug6tNboKvDWV7OEetpHx6Lsc,18481
332
- novelwriter/tools/welcome.py,sha256=KLSlBTih_HOTJ3nmyv4IU4ec8XNJDL5AwXMZ6amqmIw,28027
333
- novelwriter/tools/writingstats.py,sha256=f5nbmE5V9VsQ8qi_DlvfF5yVIupEbVDavtuMbTzU7IA,22753
334
- novelWriter-2.5.2.dist-info/LICENSE.md,sha256=2GirkkLrPfQqx7fACKRJjtKJUegKc8067erGvcDVQHM,32197
335
- novelWriter-2.5.2.dist-info/METADATA,sha256=76vgcoOL-Qfwlxjkg274DhfbxHgJN_AjHJnNN26Tb5Y,2532
336
- novelWriter-2.5.2.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
337
- novelWriter-2.5.2.dist-info/entry_points.txt,sha256=YDUG1w361LtLsjD3YhxoTDTwM17JA5-nigjC6j5C74A,45
338
- novelWriter-2.5.2.dist-info/top_level.txt,sha256=wFFEucjEeNC_Ap5ULBuEutg5a1Uc0-YO9uFT5L2naNI,12
339
- novelWriter-2.5.2.dist-info/RECORD,,
289
+ novelwriter/core/buildsettings.py,sha256=JZ56-8aBXUFxIygktZ_r62y3eWVLgLz1GAVvdZR0Hjo,24683
290
+ novelwriter/core/coretools.py,sha256=sjhU0disSrOrc7X1ObahcjIUwXxyZhG3LiAUBvwBh4I,21175
291
+ novelwriter/core/docbuild.py,sha256=svK66k4-x203zMYp6P5T5TMKPJDQRLuRAsDUfauIRBs,13778
292
+ novelwriter/core/document.py,sha256=t52H5RrKu3Un-55Lhdd6cu_MN2-__bdXIJZDWzl72TM,12155
293
+ novelwriter/core/index.py,sha256=_hbKqnisf-5-WUYtju5EqpPKhfo2gsaiT28ZGXfalgc,48610
294
+ novelwriter/core/item.py,sha256=hPhR5vtn-FfEgx8OSJ7IbuYCqZOQ2kiPf_SDxbkUBFw,18819
295
+ novelwriter/core/itemmodel.py,sha256=1W7A-uLI1g2sOe7gietKiV15McF6rMY1VMVJ4L0PpAc,18025
296
+ novelwriter/core/options.py,sha256=wJ3PJrtwbLPCs-WEvMLTWTOdlX-bn8oaUBZqYNZLY5w,7482
297
+ novelwriter/core/project.py,sha256=11g3CTQFqzwJBKfNG0AqTsrEonb97vdymC_cM4Ggjz0,21067
298
+ novelwriter/core/projectdata.py,sha256=EPgvvC8U8qAL3UMZSSuUNiMc9kifULJaexQ3N09Wj4A,10006
299
+ novelwriter/core/projectxml.py,sha256=Y7_cTzd-kNK0yyvJIiWkdDvZJo6f2WveYM6IqZllHJY,22038
300
+ novelwriter/core/sessions.py,sha256=XMp6JQcZYLpWRqio28pBFMTmj4EVak61rL7c3qC9TQY,4430
301
+ novelwriter/core/spellcheck.py,sha256=6T14_EHi7WaK7VFIUwiDSmaFJw9_PnDPBxZRZJygBRY,7176
302
+ novelwriter/core/status.py,sha256=rP0bBsIauH6P-vIAUIPpUaDx8zF7YU32NhoK29zLRQU,12236
303
+ novelwriter/core/storage.py,sha256=ndB0PigeoRrQn3tUSjwbDc9FySEYOugeIARFUMld-AY,20951
304
+ novelwriter/core/tree.py,sha256=awKPagDBkX9negFwiSlydMj-RsowUJaJlGwzBctoGW0,18741
305
+ novelwriter/dialogs/about.py,sha256=TPdkAPpPsAx7zhCbfBrSn-GhXfz-xG1OSJIePdI-E1k,4780
306
+ novelwriter/dialogs/docmerge.py,sha256=8Xu_kan7u9LI2__HCnEsDZjLcfn5XP-tFjWvE8VXrDs,6120
307
+ novelwriter/dialogs/docsplit.py,sha256=nt5L_SuB7QlfDYgBecd57bir5RVIcbpptCMdIBg4-Fs,9306
308
+ novelwriter/dialogs/editlabel.py,sha256=3x34vjqkdIvS1EdR6D1DHJgVcR_Ny-BkhMR6PKtnUOc,2988
309
+ novelwriter/dialogs/preferences.py,sha256=__cUBVg5pMk0Er9f4GoVE0Wk7GOgiL2gBYDg3wViW2Q,38747
310
+ novelwriter/dialogs/projectsettings.py,sha256=uTTDKL5oZhj-DdCfxCOgvN8ZkoDg1Ds7j1wrYMHssHo,29949
311
+ novelwriter/dialogs/quotes.py,sha256=t8VfrjcBknebtU88rgNEkgQK28qbAd7BN8HNFa0EuOA,4752
312
+ novelwriter/dialogs/wordlist.py,sha256=zUPmeTp57_VEiIv-lnpuqfYWOYwo1GTrmgiZaXvFJ8U,8700
313
+ novelwriter/extensions/configlayout.py,sha256=mw5n6bT4J5xJKtzy9dVf3RZCzejxOMSyIhzwbiMbDMQ,10828
314
+ novelwriter/extensions/eventfilters.py,sha256=82DcBd900zQNce-3XQkQWXBuUuYfYpO_zlNt-p4NXBw,2547
315
+ novelwriter/extensions/modified.py,sha256=EHkhJV5gR9DV2oOni0eiorFE0yfCfO860Bee3i3RHrA,6428
316
+ novelwriter/extensions/novelselector.py,sha256=g8pBkUoJxvHA1LX681ogfhIEhzHHPWjSY7tFJKSiIiE,3822
317
+ novelwriter/extensions/pagedsidebar.py,sha256=Vw3creX1eHRHPSQQrQAhWZPw5-U-SjTlY_xhEfLnv8g,7273
318
+ novelwriter/extensions/progressbars.py,sha256=fbFmfhO9FVNUSQqRB0mzEC4TyHvqpVvGXI2XObBMb6U,4653
319
+ novelwriter/extensions/statusled.py,sha256=pgmoMimVLITcSVs-25Fy0rB7z-zXYNylxPjNciGsDy8,2968
320
+ novelwriter/extensions/switch.py,sha256=W3K4of_fjhGj90P-5AeBSH9rukdfKAAckB5AbA3Ly_8,4324
321
+ novelwriter/extensions/switchbox.py,sha256=xDdCKXqd4qOjZFciU6eJRrOYEv74MB2oQivEXx1sztg,4223
322
+ novelwriter/extensions/versioninfo.py,sha256=gpV-sr1-nK_IjfkAC3ad3uqteFy7Lf2sYT46Osbcp6k,5060
323
+ novelwriter/formats/shared.py,sha256=Ni6bYdxOeeDmrLE-8TkgpF0OTlblGTmgrY6rcHC_R08,4666
324
+ novelwriter/formats/todocx.py,sha256=5gCtY18--9LPRTQJzb99lG4_5u9sEPQGWZRZ3D02_rI,40296
325
+ novelwriter/formats/tohtml.py,sha256=t9B2uZPKKLubjsEttb3INf3esCvK-GArgynFnY7EkGE,17128
326
+ novelwriter/formats/tokenizer.py,sha256=LbLV1XYo8KuAhR3v4CgVTYqzJB-vNIlFSLIYsFFBWA8,48659
327
+ novelwriter/formats/tomarkdown.py,sha256=95k9DOGtXiB5nTHBephGSSb1GxGgoTctr3rXXBubauM,6983
328
+ novelwriter/formats/toodt.py,sha256=lX-KvH8kyOPhyvNOcWIPy6ffjyG6ccZssWJJyuB0J4I,58411
329
+ novelwriter/formats/toqdoc.py,sha256=mJzNyKLzyx4w2m04N-gh-ch4i6iY8VRsrHGzYduDGzA,18081
330
+ novelwriter/formats/toraw.py,sha256=niaFt6tVSIwGfMAEP-suDfzzTRN8M08V3KJClbG3hcU,2842
331
+ novelwriter/gui/doceditor.py,sha256=5FD4_do2EV04wPXCIDMKZcIUHmCcyQTR0b6NDUwn2JA,116636
332
+ novelwriter/gui/dochighlight.py,sha256=z6WcQfkHzSlXg4-DALtJUHl_8wnikP-YT0iIZmnCV8I,19680
333
+ novelwriter/gui/docviewer.py,sha256=SJ38_Zn6CMmSRdVF3EPztTQe907yWSqQr5B-0Mg6iVo,34518
334
+ novelwriter/gui/docviewerpanel.py,sha256=3MXehPMyf__mpNaKPNow1I-9CUme_8cpXd-cOCAxWls,19726
335
+ novelwriter/gui/editordocument.py,sha256=opqrQc_GMNa9InQBAWW_WugSHVO_5cievX7DuF1Cbm4,4723
336
+ novelwriter/gui/itemdetails.py,sha256=HQ2E1p9EiDsuNTgULEV__AzqW1DJ6qjB5DWILtlkeyg,9678
337
+ novelwriter/gui/mainmenu.py,sha256=VKMgE8_jxRM8973ycArOpGMaTwHy-7ju2TIzm2-Zqqo,41629
338
+ novelwriter/gui/noveltree.py,sha256=-XKR_zBGjbO44hEknhZt64NeW00LIC_31LQURgjsv_U,27136
339
+ novelwriter/gui/outline.py,sha256=e1U_KakgnJX044nmP5NsXzbrSVd-G_t0tJ_531zMXZI,38446
340
+ novelwriter/gui/projtree.py,sha256=ffXSwCIZotT28n6zIvN7UhwA5az1dgWh9Mff6gc4h2Y,53062
341
+ novelwriter/gui/search.py,sha256=xP5M4iEA-6Hulgk2JwNqg8_myWi2KT8Yk9ufw4H3gh0,12844
342
+ novelwriter/gui/sidebar.py,sha256=oPlbPu7jlE5J1P5Jn9X5YtvLgInzPz2Jr7AC98Z2S4k,6286
343
+ novelwriter/gui/statusbar.py,sha256=XVonGSeSu35nweE6uXrhFzrBEIaijIJsLLWY64hQ6lk,9632
344
+ novelwriter/gui/theme.py,sha256=__9xz8RxP7fSEdpi_8-ZzewjBsBc7sxn82uE744Sw7U,32249
345
+ novelwriter/text/counting.py,sha256=JEU-kv5BCdiFfTQc8Uk5Sym2WbRgJ4AKtixlwQIZe1M,4407
346
+ novelwriter/text/patterns.py,sha256=T2BpUcVvXXFIadIdOqOYF1eih4LFBiRAZ7CtRuO85c8,7687
347
+ novelwriter/tools/dictionaries.py,sha256=EhBGOvAW9AJnA29_GYan5XcRfciL6tSq7ZB-mmF8Ums,9250
348
+ novelwriter/tools/lipsum.py,sha256=NZdCJ5TNwKdfwYqtRXtQ5pDbtVFbQzxiGoNPctpCHDk,4819
349
+ novelwriter/tools/manusbuild.py,sha256=fUAGp7uaPY2rFUXRaGyE8Fce49z4-xkz1i8GAV2fXlI,14107
350
+ novelwriter/tools/manuscript.py,sha256=ib5FKpcQR_A6jBWuTfQCHpx32ySvE4YFtz56a8pLAxE,40053
351
+ novelwriter/tools/manussettings.py,sha256=jn8E6SroiuwHv5NINvRgYgaW85ji2li2bZW2NSobvTI,60883
352
+ novelwriter/tools/noveldetails.py,sha256=k17ZH21M7yfLNEhY_qD-GREia5CxanN9dbVWt1selkk,18506
353
+ novelwriter/tools/welcome.py,sha256=kE8HWfgvvncwEQnfXPoFipNzugpe2JemcVJr2kNiHIc,28020
354
+ novelwriter/tools/writingstats.py,sha256=tuIkHkkiAPJv4zUBIFyh6_mVHRK-beYSc_zBUKG8MnM,22792
355
+ novelWriter-2.6.dist-info/LICENSE.md,sha256=2GirkkLrPfQqx7fACKRJjtKJUegKc8067erGvcDVQHM,32197
356
+ novelWriter-2.6.dist-info/METADATA,sha256=4CZK4xAM5E4PB0FqAyyrTtSrW5h0A-RBY6zKOZ8jhyk,2579
357
+ novelWriter-2.6.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
358
+ novelWriter-2.6.dist-info/entry_points.txt,sha256=YDUG1w361LtLsjD3YhxoTDTwM17JA5-nigjC6j5C74A,45
359
+ novelWriter-2.6.dist-info/top_level.txt,sha256=wFFEucjEeNC_Ap5ULBuEutg5a1Uc0-YO9uFT5L2naNI,12
360
+ novelWriter-2.6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
novelwriter/__init__.py CHANGED
@@ -3,10 +3,10 @@ novelWriter – Init File
3
3
  =======================
4
4
 
5
5
  File History:
6
- Created: 2018-09-22 [0.0.1]
6
+ Created: 2018-09-22 [0.0.1] main
7
7
 
8
8
  This file is a part of novelWriter
9
- Copyright 2018–2024, Veronica Berglyd Olsen
9
+ Copyright (C) 2018 Veronica Berglyd Olsen and novelWriter contributors
10
10
 
11
11
  This program is free software: you can redistribute it and/or modify
12
12
  it under the terms of the GNU General Public License as published by
@@ -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.6"
51
+ __hexversion__ = "0x020600f0"
52
+ __date__ = "2025-01-26"
53
53
  __status__ = "Stable"
54
54
  __domain__ = "novelwriter.io"
55
55
 
@@ -60,10 +60,26 @@ logger = logging.getLogger(__name__)
60
60
  # Main Program
61
61
  ##
62
62
 
63
- # Global config and data singletons
63
+ # Globals Singletons
64
64
  CONFIG = Config()
65
65
  SHARED = SharedData()
66
66
 
67
+ # ANSI Colours
68
+ C_RED = "\033[91m"
69
+ C_GREEN = "\033[92m"
70
+ C_YELLOW = "\033[93m"
71
+ C_BLUE = "\033[94m"
72
+ C_WHITE = "\033[97m"
73
+ C_END = "\033[0m"
74
+
75
+ # Log Formats
76
+ L_TIME = "[{asctime:}]"
77
+ L_FILE = "{filename:>18}"
78
+ L_LINE = "{lineno:<4d}"
79
+ L_LVLP = "{levelname:8}"
80
+ L_LVLC = "{levelname:17}"
81
+ L_TEXT = "{message:}"
82
+
67
83
 
68
84
  def main(sysArgs: list | None = None) -> GuiMain | None:
69
85
  """Parse command line, set up logging, and launch main GUI."""
@@ -77,6 +93,7 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
77
93
  "version",
78
94
  "info",
79
95
  "debug",
96
+ "color",
80
97
  "style=",
81
98
  "config=",
82
99
  "data=",
@@ -98,6 +115,7 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
98
115
  " -v, --version Print program version and exit.\n"
99
116
  " --info Print additional runtime information.\n"
100
117
  " --debug Print debug output. Includes --info.\n"
118
+ " --color Add ANSI colors to log output.\n"
101
119
  " --meminfo Show memory usage information in the status bar.\n"
102
120
  " --style= Sets Qt5 style flag. Defaults to 'Fusion'.\n"
103
121
  " --config= Alternative config file.\n"
@@ -106,12 +124,12 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
106
124
 
107
125
  # Defaults
108
126
  logLevel = logging.WARN
109
- logFormat = "{levelname:8} {message:}"
127
+ fmtFlags = 0b00
110
128
  confPath = None
111
129
  dataPath = None
112
130
  testMode = False
113
- qtStyle = "Fusion"
114
- cmdOpen = None
131
+ qtStyle = "Fusion"
132
+ cmdOpen = None
115
133
 
116
134
  # Parse Options
117
135
  try:
@@ -135,8 +153,10 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
135
153
  logLevel = logging.INFO
136
154
  elif inOpt == "--debug":
137
155
  CONFIG.isDebug = True
156
+ fmtFlags = fmtFlags | 0b10
138
157
  logLevel = logging.DEBUG
139
- logFormat = "[{asctime:}] {filename:>18}:{lineno:<4d} {levelname:8} {message:}"
158
+ elif inOpt == "--color":
159
+ fmtFlags = fmtFlags | 0b01
140
160
  elif inOpt == "--style":
141
161
  qtStyle = inArg
142
162
  elif inOpt == "--config":
@@ -148,13 +168,32 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
148
168
  elif inOpt == "--meminfo":
149
169
  CONFIG.memInfo = True
150
170
 
171
+ if fmtFlags & 0b01:
172
+ # This will overwrite the default level names, and also ensure that
173
+ # they can be converted back to integer levels
174
+ logging.addLevelName(logging.DEBUG, f"{C_BLUE}DEBUG{C_END}")
175
+ logging.addLevelName(logging.INFO, f"{C_GREEN}INFO{C_END}")
176
+ logging.addLevelName(logging.WARNING, f"{C_YELLOW}WARNING{C_END}")
177
+ logging.addLevelName(logging.ERROR, f"{C_RED}ERROR{C_END}")
178
+ logging.addLevelName(logging.CRITICAL, f"{C_RED}CRITICAL{C_END}")
179
+
180
+ # Determine Log Format
181
+ if fmtFlags == 0b00:
182
+ logFmt = f"{L_LVLP} {L_TEXT}"
183
+ elif fmtFlags == 0b01:
184
+ logFmt = f"{L_LVLC} {L_TEXT}"
185
+ elif fmtFlags == 0b10:
186
+ logFmt = f"{L_TIME} {L_FILE}:{L_LINE} {L_LVLP} {L_TEXT}"
187
+ elif fmtFlags == 0b11:
188
+ logFmt = f"{L_TIME} {C_BLUE}{L_FILE}{C_END}:{C_WHITE}{L_LINE}{C_END} {L_LVLC} {L_TEXT}"
189
+
151
190
  # Setup Logging
152
191
  pkgLogger = logging.getLogger(__package__)
153
192
  pkgLogger.setLevel(logLevel)
154
193
  if len(pkgLogger.handlers) == 0:
155
194
  # Make sure we only create one logger (mostly an issue with tests)
156
195
  cHandle = logging.StreamHandler()
157
- cHandle.setFormatter(logging.Formatter(fmt=logFormat, style="{"))
196
+ cHandle.setFormatter(logging.Formatter(fmt=logFmt, style="{"))
158
197
  pkgLogger.addHandler(cHandle)
159
198
 
160
199
  logger.info("Starting novelWriter %s (%s) %s", __version__, __hexversion__, __date__)
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,18 +1,20 @@
1
1
  {
2
2
  "Synopsis": "Synopsis",
3
3
  "Short Description": "Kurzbeschreibung",
4
+ "Footnotes": "Fußnoten",
4
5
  "Comment": "Kommentar",
5
6
  "Notes": "Notizen",
6
7
  "Tag": "Schlagwort",
7
8
  "Point of View": "Perspektive",
8
- "Focus": "Mittelpunkt",
9
+ "Focus": "Fokus",
9
10
  "Characters": "Charaktere",
10
- "Plot": "Handlungen",
11
+ "Plot": "Handlung",
11
12
  "Timeline": "Zeitleiste",
12
13
  "Locations": "Schauplätze",
13
14
  "Objects": "Objekte",
14
15
  "Entities": "Organisationen",
15
16
  "Custom": "Benutzerdefiniert",
17
+ "New Page": "Neue Seite",
16
18
  "0": "Null",
17
19
  "1": "Eins",
18
20
  "2": "Zwei",
@@ -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",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "Synopsis": "Synopsis",
3
3
  "Short Description": "Short Description",
4
+ "Footnotes": "Footnotes",
4
5
  "Comment": "Comment",
5
6
  "Notes": "Notes",
6
7
  "Tag": "Tag",
@@ -13,6 +14,7 @@
13
14
  "Objects": "Objects",
14
15
  "Entities": "Entities",
15
16
  "Custom": "Custom",
17
+ "New Page": "New Page",
16
18
  "0": "Zero",
17
19
  "1": "One",
18
20
  "2": "Two",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "Synopsis": "Sinossi",
3
3
  "Short Description": "Breve descrizione",
4
+ "Footnotes": "Note a piè pagina",
4
5
  "Comment": "Commento",
5
6
  "Notes": "Note",
6
7
  "Tag": "Etichetta",
@@ -13,6 +14,7 @@
13
14
  "Objects": "Oggetti",
14
15
  "Entities": "Enti",
15
16
  "Custom": "Personalizzato",
17
+ "New Page": "Nuova pagina",
16
18
  "0": "Zero",
17
19
  "1": "Uno",
18
20
  "2": "Due",
@@ -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": "二",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "Synopsis": "Sammendrag",
3
3
  "Short Description": "Kort beskrivelse",
4
+ "Footnotes": "Fotnoter",
4
5
  "Comment": "Kommentar",
5
6
  "Notes": "Notat",
6
7
  "Tag": "Knagg",
@@ -13,6 +14,7 @@
13
14
  "Objects": "Objekter",
14
15
  "Entities": "Enheter",
15
16
  "Custom": "Annet",
17
+ "New Page": "Ny side",
16
18
  "0": "null",
17
19
  "1": "én",
18
20
  "2": "to",