novelWriter 2.5.3__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 (126) hide show
  1. {novelWriter-2.5.3.dist-info → novelWriter-2.6.dist-info}/METADATA +2 -2
  2. {novelWriter-2.5.3.dist-info → novelWriter-2.6.dist-info}/RECORD +123 -103
  3. {novelWriter-2.5.3.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 +2 -0
  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_zh_CN.json +2 -0
  27. novelwriter/assets/icons/typicons_dark/icons.conf +8 -0
  28. novelwriter/assets/icons/typicons_dark/mixed_copy.svg +4 -0
  29. novelwriter/assets/icons/typicons_dark/mixed_margin-bottom.svg +6 -0
  30. novelwriter/assets/icons/typicons_dark/mixed_margin-left.svg +6 -0
  31. novelwriter/assets/icons/typicons_dark/mixed_margin-right.svg +6 -0
  32. novelwriter/assets/icons/typicons_dark/mixed_margin-top.svg +6 -0
  33. novelwriter/assets/icons/typicons_dark/mixed_size-height.svg +6 -0
  34. novelwriter/assets/icons/typicons_dark/mixed_size-width.svg +6 -0
  35. novelwriter/assets/icons/typicons_dark/nw_toolbar.svg +5 -0
  36. novelwriter/assets/icons/typicons_light/icons.conf +8 -0
  37. novelwriter/assets/icons/typicons_light/mixed_copy.svg +4 -0
  38. novelwriter/assets/icons/typicons_light/mixed_margin-bottom.svg +6 -0
  39. novelwriter/assets/icons/typicons_light/mixed_margin-left.svg +6 -0
  40. novelwriter/assets/icons/typicons_light/mixed_margin-right.svg +6 -0
  41. novelwriter/assets/icons/typicons_light/mixed_margin-top.svg +6 -0
  42. novelwriter/assets/icons/typicons_light/mixed_size-height.svg +6 -0
  43. novelwriter/assets/icons/typicons_light/mixed_size-width.svg +6 -0
  44. novelwriter/assets/icons/typicons_light/nw_toolbar.svg +5 -0
  45. novelwriter/assets/manual.pdf +0 -0
  46. novelwriter/assets/sample.zip +0 -0
  47. novelwriter/common.py +101 -3
  48. novelwriter/config.py +30 -17
  49. novelwriter/constants.py +189 -81
  50. novelwriter/core/buildsettings.py +74 -40
  51. novelwriter/core/coretools.py +146 -148
  52. novelwriter/core/docbuild.py +133 -171
  53. novelwriter/core/document.py +1 -1
  54. novelwriter/core/index.py +39 -38
  55. novelwriter/core/item.py +42 -9
  56. novelwriter/core/itemmodel.py +518 -0
  57. novelwriter/core/options.py +5 -2
  58. novelwriter/core/project.py +68 -90
  59. novelwriter/core/projectdata.py +8 -2
  60. novelwriter/core/projectxml.py +1 -1
  61. novelwriter/core/sessions.py +1 -1
  62. novelwriter/core/spellcheck.py +10 -15
  63. novelwriter/core/status.py +24 -8
  64. novelwriter/core/storage.py +1 -1
  65. novelwriter/core/tree.py +269 -288
  66. novelwriter/dialogs/about.py +1 -1
  67. novelwriter/dialogs/docmerge.py +8 -18
  68. novelwriter/dialogs/docsplit.py +1 -1
  69. novelwriter/dialogs/editlabel.py +1 -1
  70. novelwriter/dialogs/preferences.py +47 -34
  71. novelwriter/dialogs/projectsettings.py +149 -99
  72. novelwriter/dialogs/quotes.py +1 -1
  73. novelwriter/dialogs/wordlist.py +11 -10
  74. novelwriter/enum.py +37 -24
  75. novelwriter/error.py +2 -2
  76. novelwriter/extensions/configlayout.py +28 -13
  77. novelwriter/extensions/eventfilters.py +1 -1
  78. novelwriter/extensions/modified.py +30 -6
  79. novelwriter/extensions/novelselector.py +4 -3
  80. novelwriter/extensions/pagedsidebar.py +9 -9
  81. novelwriter/extensions/progressbars.py +4 -4
  82. novelwriter/extensions/statusled.py +3 -3
  83. novelwriter/extensions/switch.py +3 -3
  84. novelwriter/extensions/switchbox.py +1 -1
  85. novelwriter/extensions/versioninfo.py +1 -1
  86. novelwriter/formats/shared.py +156 -0
  87. novelwriter/formats/todocx.py +1191 -0
  88. novelwriter/formats/tohtml.py +454 -0
  89. novelwriter/{core → formats}/tokenizer.py +497 -495
  90. novelwriter/formats/tomarkdown.py +218 -0
  91. novelwriter/{core → formats}/toodt.py +312 -433
  92. novelwriter/formats/toqdoc.py +486 -0
  93. novelwriter/formats/toraw.py +91 -0
  94. novelwriter/gui/doceditor.py +347 -287
  95. novelwriter/gui/dochighlight.py +97 -85
  96. novelwriter/gui/docviewer.py +90 -33
  97. novelwriter/gui/docviewerpanel.py +18 -26
  98. novelwriter/gui/editordocument.py +18 -3
  99. novelwriter/gui/itemdetails.py +27 -29
  100. novelwriter/gui/mainmenu.py +130 -64
  101. novelwriter/gui/noveltree.py +46 -48
  102. novelwriter/gui/outline.py +202 -256
  103. novelwriter/gui/projtree.py +590 -1242
  104. novelwriter/gui/search.py +11 -19
  105. novelwriter/gui/sidebar.py +8 -7
  106. novelwriter/gui/statusbar.py +20 -3
  107. novelwriter/gui/theme.py +11 -6
  108. novelwriter/guimain.py +101 -201
  109. novelwriter/shared.py +67 -28
  110. novelwriter/text/counting.py +3 -1
  111. novelwriter/text/patterns.py +169 -61
  112. novelwriter/tools/dictionaries.py +3 -3
  113. novelwriter/tools/lipsum.py +1 -1
  114. novelwriter/tools/manusbuild.py +15 -13
  115. novelwriter/tools/manuscript.py +121 -79
  116. novelwriter/tools/manussettings.py +424 -291
  117. novelwriter/tools/noveldetails.py +1 -1
  118. novelwriter/tools/welcome.py +6 -6
  119. novelwriter/tools/writingstats.py +4 -4
  120. novelwriter/types.py +25 -9
  121. novelwriter/core/tohtml.py +0 -530
  122. novelwriter/core/tomarkdown.py +0 -252
  123. novelwriter/core/toqdoc.py +0 -419
  124. {novelWriter-2.5.3.dist-info → novelWriter-2.6.dist-info}/LICENSE.md +0 -0
  125. {novelWriter-2.5.3.dist-info → novelWriter-2.6.dist-info}/entry_points.txt +0 -0
  126. {novelWriter-2.5.3.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.3
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
@@ -1,47 +1,48 @@
1
- novelwriter/__init__.py,sha256=Xw_5nsng19Co6cRmSNqylgg6icULBKm3u9Gm3feuWM8,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=BxGP5FpA2LtJCaz_DEMaLExW9FNLXalYP28fLfBKmaI,2733563
11
- novelwriter/assets/sample.zip,sha256=IYTSbrleoKfOB4xtUWdTmMQntjDWhMOd2QSKFYGhjR0,27805
12
- novelwriter/assets/i18n/nw_de_DE.qm,sha256=tyew6MnnKP9s5zEkwO_MiLJ2EH2sOO21BPaDnP5ebRU,100540
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=zGC7PbMD6NlbNYmZ2IiV8B9xxdTE7yBpaFhSeaBQSzU,101706
22
- novelwriter/assets/i18n/nw_ru_RU.qm,sha256=DOaPZyREPxMrOuLLs1Sboj43QA6HfK6okU8WJGue5wE,98115
23
- novelwriter/assets/i18n/nw_zh_CN.qm,sha256=poSDKRXapJ8zHBmiRdA85KcIN1nm6gnowDMlpoJwAKE,69647
24
- novelwriter/assets/i18n/project_de_DE.json,sha256=fuEYohM2xm0mLXmibbU0TISr0BCZb2yOiBLCUmKhDJQ,2810
25
- novelwriter/assets/i18n/project_en_GB.json,sha256=7c9W2YJAELCSwx4zN_2qYZ3xsGncinCrGNhaj_FVkxk,2511
26
- 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
27
27
  novelwriter/assets/i18n/project_es_419.json,sha256=Z6CAhc0hzekUZFDM-0ykRRsckJG4c2AETy4Xa_f2T7s,2730
28
28
  novelwriter/assets/i18n/project_fr_FR.json,sha256=CBojo05gdhxev5pFg889ENe_CKOHSDv3oj8SmkBFqGg,2788
29
- novelwriter/assets/i18n/project_it_IT.json,sha256=C_S5P86hGHaJ_sE-B3ceQGJgDzkXalyjF816oClf9h0,2566
30
- novelwriter/assets/i18n/project_ja_JP.json,sha256=8P03f2D9o2TlSxFU5ugRa-DJDeDZr_I_omDWN-xv3lY,2393
31
- novelwriter/assets/i18n/project_nb_NO.json,sha256=e8E9c188KRPJfgZa298hDiaLEuhjHMxbRMaIF8HaVew,2298
32
- 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
33
33
  novelwriter/assets/i18n/project_nn_NO.json,sha256=7ZfmtFWHcDMiLVqdOEDHQWHbpoC_bv5ESmf_-CoYiks,2250
34
- novelwriter/assets/i18n/project_pl_PL.json,sha256=msXu3rNhJ19ytVespoXQ95nZ-mFis5rlLeCPK4A3zS8,3461
35
- novelwriter/assets/i18n/project_pt_BR.json,sha256=FDxIeSlf3v8AcrWfgwk7UOMRDmb2hWdDoabsBq5rkL8,2763
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
36
  novelwriter/assets/i18n/project_ru_RU.json,sha256=Lq8msxzjhkFHXPJAmEEyjoFOUV28CLJXmayY3h3jiAo,4075
37
- novelwriter/assets/i18n/project_zh_CN.json,sha256=cfl0TsnbISYUvygOw015y0x0REDG97xR0yjyJ85Jm34,2322
37
+ novelwriter/assets/i18n/project_zh_CN.json,sha256=CGnJO6ElV40fm7yElNtDwHYsd_32d-cR7h1jG4xx4eY,2377
38
38
  novelwriter/assets/icons/none.svg,sha256=NRN9vMzohg7Ner71GwPthrCG0uA81TpY8UmKb8-L-pM,251
39
39
  novelwriter/assets/icons/novelwriter.ico,sha256=OJRIeeUcmS7Di51NA3uF5_Ov4V8T47gQ9qWv6C7qDeA,171059
40
40
  novelwriter/assets/icons/novelwriter.svg,sha256=Ad_SgOdXSDJtFR3DLCx6Afme15I78r38_YxCfO9F2z4,8511
41
41
  novelwriter/assets/icons/x-novelwriter-project.ico,sha256=MXdZSYi3j95aIsT5bZo6CkhxmS75cThP9O_38UR7sjg,170697
42
42
  novelwriter/assets/icons/x-novelwriter-project.svg,sha256=VHf1aClkA91tZVYb3LFk9bi_Dw25QBVSjUJAjSD-YX4,5143
43
43
  novelwriter/assets/icons/typicons_dark/README.md,sha256=6ZxJq-19PNrMdeuVeVg84aLjxhr9oF7dLwuMFVGQyq0,1065
44
- 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
45
46
  novelwriter/assets/icons/typicons_dark/mixed_document-chapter.svg,sha256=POP_Cs3bkkKAmrS_fTgjj90eyNK0bipNGgOhDDlXKu0,1650
46
47
  novelwriter/assets/icons/typicons_dark/mixed_document-new.svg,sha256=EIVU3_ecC0d6rpCHXBfKoA_mWJyilqe7iA6XLQb9oRw,1849
47
48
  novelwriter/assets/icons/typicons_dark/mixed_document-note.svg,sha256=OaPRbvkA7h4GA4mnFXJRORv80h2nAsJTmlIR8Msrwt8,1650
@@ -53,7 +54,13 @@ novelwriter/assets/icons/typicons_dark/mixed_import.svg,sha256=XiitW007_GjKNMzby
53
54
  novelwriter/assets/icons/typicons_dark/mixed_input-checked.svg,sha256=sjBBHcHWBwf6P3UIcLThccrDqaGLHUgV-ov6v6WXsAw,1208
54
55
  novelwriter/assets/icons/typicons_dark/mixed_input-none.svg,sha256=1uSgoXznt31ynAj3MHC-vVdDuaszmtEKbfofepNs7g4,1058
55
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
56
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
57
64
  novelwriter/assets/icons/typicons_dark/nw_deco-h0.svg,sha256=ssrqNUVY1vz4LtYE5pdINmP6qI5IZHFbokfYPzG-CTM,225
58
65
  novelwriter/assets/icons/typicons_dark/nw_deco-h1.svg,sha256=nY2JYxPpGTsKCgp8pM0BdscFk6OoESNDVj53m4PMkM0,222
59
66
  novelwriter/assets/icons/typicons_dark/nw_deco-h2-narrow.svg,sha256=NkZKLECgrrhPF9oI3OuZeSyuMiSN93T-qUGg2n99c_0,225
@@ -81,6 +88,7 @@ novelwriter/assets/icons/typicons_dark/nw_tb-strike.svg,sha256=uO12-KZ3Nx4GEL2mI
81
88
  novelwriter/assets/icons/typicons_dark/nw_tb-subscript.svg,sha256=dOhhKxlsdWuQ7tq8HkBcShjNOUBpyEKgUP1RoFDlPLs,1550
82
89
  novelwriter/assets/icons/typicons_dark/nw_tb-superscript.svg,sha256=0TpY0nIinD4dwgwh0Nyfs0C4rJDcc2JsgxnXSE0flco,1549
83
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
84
92
  novelwriter/assets/icons/typicons_dark/typ_arrow-down-thick-grey.svg,sha256=PsEm_GCebnkMvtVm1OUbVU0hvA2nL8bWlrlyrAWh0tE,519
85
93
  novelwriter/assets/icons/typicons_dark/typ_arrow-forward.svg,sha256=Io2wWbs2Z0z5GHzDkmf3AkNZZqyfSC0ilWVDvGv5Q5U,538
86
94
  novelwriter/assets/icons/typicons_dark/typ_arrow-maximise.svg,sha256=m4w3ZUHy3R2aTtvLKZpmd6FPijjkaG6A5jhiqfTp9mg,1029
@@ -141,7 +149,8 @@ novelwriter/assets/icons/typicons_dark/typ_unfold-visible.svg,sha256=IvVXmxlkrTy
141
149
  novelwriter/assets/icons/typicons_dark/typ_user.svg,sha256=00gZEDr59B1A7A4o0w5VjCJOHnQHANsgXBhnB_VTMU4,733
142
150
  novelwriter/assets/icons/typicons_dark/typ_warning-full.svg,sha256=zqqV82C37dWH_yHoSuPo-BLsErg0sl8_VlB6fzXL4VE,970
143
151
  novelwriter/assets/icons/typicons_light/README.md,sha256=nyGvWLJ8cusLYP8YsjX_l213NkDE_GHrwctZ-I_JQUg,1066
144
- 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
145
154
  novelwriter/assets/icons/typicons_light/mixed_document-chapter.svg,sha256=kXNwPbeKR3eupIrqtDQrNGq5sL8vdExLfPMrMX2sEsw,1650
146
155
  novelwriter/assets/icons/typicons_light/mixed_document-new.svg,sha256=u0YYfp6hTUEYLsrPleUqYocaG2hl62w-B85INvkm6S4,1825
147
156
  novelwriter/assets/icons/typicons_light/mixed_document-note.svg,sha256=XpKQ2Fj7J3I3BT9mAQkjk_A4eP7uy94vPeDBA62fOYI,1650
@@ -153,7 +162,13 @@ novelwriter/assets/icons/typicons_light/mixed_import.svg,sha256=lad5N1wOjDrTLxEz
153
162
  novelwriter/assets/icons/typicons_light/mixed_input-checked.svg,sha256=uevUoQv7D-6g1RgE0gG2ZWek3118qIAcgkqg7zxK8Zs,1208
154
163
  novelwriter/assets/icons/typicons_light/mixed_input-none.svg,sha256=V6uPJ1f85DYXpuuC3n4-lV1U8zfyXYMbOHYBy9-uiQs,1055
155
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
156
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
157
172
  novelwriter/assets/icons/typicons_light/nw_deco-h0.svg,sha256=ssrqNUVY1vz4LtYE5pdINmP6qI5IZHFbokfYPzG-CTM,225
158
173
  novelwriter/assets/icons/typicons_light/nw_deco-h1.svg,sha256=nuzuJ9h9Lb1HpdOq6NfRKzSGlUVo53fC4TnHHpdkOu0,225
159
174
  novelwriter/assets/icons/typicons_light/nw_deco-h2-narrow.svg,sha256=dkAEvmLO4DkRDe_rfRB-0L7yM7mEGj24XW1gFf3B-BA,225
@@ -181,6 +196,7 @@ novelwriter/assets/icons/typicons_light/nw_tb-strike.svg,sha256=HtAYlTga42JVpoUJ
181
196
  novelwriter/assets/icons/typicons_light/nw_tb-subscript.svg,sha256=j8qncFQqiC5vZfFELENtX9COMcrI7NnyED17ki7tC08,1551
182
197
  novelwriter/assets/icons/typicons_light/nw_tb-superscript.svg,sha256=-B-iVCPsoCaz9ZiVkHN6em2BJOI65_ssjFqZM75wxZ0,1550
183
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
184
200
  novelwriter/assets/icons/typicons_light/typ_arrow-down-thick-grey.svg,sha256=FZFt51KLkvqrP0nM_bnCjKkELcLT7KMWB059gvSMKk4,523
185
201
  novelwriter/assets/icons/typicons_light/typ_arrow-forward.svg,sha256=vDYZrsNe2Afo8-MqS9HV_gsz6aFraYZUyJeAdOXaE4Y,541
186
202
  novelwriter/assets/icons/typicons_light/typ_arrow-maximise.svg,sha256=bz93DwuiB_2Baf-oG5SsMdWGccYogyNqR2Yq3OQ4bDY,1032
@@ -270,71 +286,75 @@ novelwriter/assets/themes/default_light.conf,sha256=2a4SXzlbZpyV9EX3BuFSRFYuLuzu
270
286
  novelwriter/assets/themes/dracula.conf,sha256=pUvu7FS1nRPj3PyU3NZMR0WSb5sIa0oLpSa2XTzsh98,1425
271
287
  novelwriter/assets/themes/solarized_dark.conf,sha256=7dDjs8aiFuAjl--hqMJQEExrfCgAapiPY82CL6aAo-I,916
272
288
  novelwriter/assets/themes/solarized_light.conf,sha256=psCPVWcjAKB5y8H_E_h5zYUifxh5YpdFdBzxFofIHa0,918
273
- novelwriter/core/buildsettings.py,sha256=cx-yjeja6VeYUdVZwNhLr6Ka_EXT8xCTwzQtv1Cmrec,22689
274
- novelwriter/core/coretools.py,sha256=mItCKIHMMu1zrW3q2-FhF_lVfzjOKhbPtTEaXLt6U-o,21048
275
- novelwriter/core/docbuild.py,sha256=h1jCFgkzyuoDgusjvuctBQpyDdNWBCHL2CNwQN0aEeM,14236
276
- novelwriter/core/document.py,sha256=T8FlxyEMlR3t2HNE92InseWUMylWFTMnr2fP-Ge5LQc,12130
277
- novelwriter/core/index.py,sha256=soGv-bDdAHk77ubqr1OfftGtyB1aJAJNODyfOq2nZm8,48450
278
- novelwriter/core/item.py,sha256=0p_o3eCf8ZK30MiUR1rd1fDXb63lqNB4lHZeLMA6Wys,17635
279
- novelwriter/core/options.py,sha256=8yAQoTkDhTCZY7EGg29Fq7Lj4n4Hd2i-Kx7TlgnausM,7372
280
- novelwriter/core/project.py,sha256=tdD6GrwicCttvlM2jt0Tx8A9VpfFi5g4sTsM2h497R4,22066
281
- novelwriter/core/projectdata.py,sha256=bt-LDNJsM2K4VwTcyZU_V2KOUZJFRKrNXNIwbU1v3Eo,9799
282
- novelwriter/core/projectxml.py,sha256=dbgm2ryPCOa1BFsFay-6vEK2itE8TWYRUiwCBpPp59g,22013
283
- novelwriter/core/sessions.py,sha256=V9eBXaUMcXTZjYXR5dgi6E14COIlcLIkNwS6pDrn75U,4405
284
- novelwriter/core/spellcheck.py,sha256=MwkRPp3MJa2X-6yRWX6Rc-sq2vLsbLnjNnyUpAbRFiE,7176
285
- novelwriter/core/status.py,sha256=FW20GK6_gxsYCiD7ZDg_gGIgp6yw3y1PS5mBN5HlARo,11592
286
- novelwriter/core/storage.py,sha256=mNM9EMW0VRMwEkmTKnzotPVdJk4tJDDUNAHNH9yG5mw,20926
287
- novelwriter/core/tohtml.py,sha256=ldJRk2J2RQ5IHPNUtVWCLy64QkVbOm2WfyMcSln-YUg,19211
288
- novelwriter/core/tokenizer.py,sha256=M4hbOqPtaeLFFPwVlQs03eHgSDHEWjZKw3_zzWtgqB0,47975
289
- novelwriter/core/tomarkdown.py,sha256=sZG64PLyTjDuIxnPQVMdcMSF-obsp4C06B1dUKhlbHU,7925
290
- novelwriter/core/toodt.py,sha256=Hrb6FJkwf2wwcKE6f7lw5o0PZqKsf1TWqvJbrJWrijU,62529
291
- novelwriter/core/toqdoc.py,sha256=p8_4WwwXcnEuPw2XsU4Xq76YTyT2JMk7NQR1arCjVd8,15500
292
- novelwriter/core/tree.py,sha256=mmOB7kN0tjWda_AdT1WuZyFrewuc6uRAlqCfX6opwek,18681
293
- novelwriter/dialogs/about.py,sha256=0iBYkifACc5vZj4KwG0G2Dll_Wp4acAHUfNTto74MFU,4755
294
- novelwriter/dialogs/docmerge.py,sha256=HtJvmu56CGb_G27XGRgF3kl0jPR_14SBVsOKv_UyVX8,6286
295
- novelwriter/dialogs/docsplit.py,sha256=nPb7U68vtZ5yuJtUIr-2yTWCfADCtK4T1h7LgL0Hx8c,9281
296
- novelwriter/dialogs/editlabel.py,sha256=cs8ztrK1Gi3lEZozvs978dNAR6rnlV8cWr9dZArD51I,2963
297
- novelwriter/dialogs/preferences.py,sha256=HSH8JrJUi3r_bBiTkkLtLUbsCIZpMI3LECOWDHpqhMU,38050
298
- novelwriter/dialogs/projectsettings.py,sha256=EfMcfCDGn59XuzkJGuuKhS9UFdYTNIxTJPEiQB71zGg,27525
299
- novelwriter/dialogs/quotes.py,sha256=JCgoz9I8HepxYYVBXOzQac6aFpzNMF4CRdw4CnAnuNM,4727
300
- novelwriter/dialogs/wordlist.py,sha256=yuQebLRuasVk2QUm2zWGn7ZzuWM4lFGyXz0egQPyILw,8511
301
- novelwriter/extensions/configlayout.py,sha256=rQfK0kAwSZn30WEtqJKP8RoNWOjVP4C3gYTAXXkm5u0,10443
302
- novelwriter/extensions/eventfilters.py,sha256=mTU_sMQPOEocRfvLcwQyXUpkm314tH32WsID61ss1CI,2522
303
- novelwriter/extensions/modified.py,sha256=kXntkvw1ZWeRxseZyA444bV3O9RbmbErtaDDafu0DwY,5756
304
- novelwriter/extensions/novelselector.py,sha256=etVtoDkHGJIP4ab__vStJQCREKYt5sWLfK1vyuO3hLI,3794
305
- novelwriter/extensions/pagedsidebar.py,sha256=Brgl_d8KXnWWJov-sTkj9tMQu7Xrz8v7rXcnvpAaRK8,7232
306
- novelwriter/extensions/progressbars.py,sha256=BpJHycboSNGYWIfAEMqIy1Qxf32Cg8TeWM3hogzakTs,4628
307
- novelwriter/extensions/statusled.py,sha256=QdgkMSMKMfQRM9kiEXCuH-wbrq_AH9Sh8zBvYfvJE6Q,2943
308
- novelwriter/extensions/switch.py,sha256=4kXJ3EHEhaivj1D69iBi46hkkPBGAt-Rt5EjVK3V4Aw,4299
309
- novelwriter/extensions/switchbox.py,sha256=5tCiFWkT9WF9xh2c__BnNAJHFLw2nRso3fJZfwzDqRE,4198
310
- novelwriter/extensions/versioninfo.py,sha256=R2_U6B678be0WNxbnhUntpxR5PnZVGf6eeyENp-S-Xo,5035
311
- novelwriter/gui/doceditor.py,sha256=Cv9_sMKpSozKrIPusvcLDzlgD6rr8JxDHkzIoApOfMc,113720
312
- novelwriter/gui/dochighlight.py,sha256=4JNWQkfaEc0p-EvRRkbBWwQdrFqVotgremzu2WWw9hA,19463
313
- novelwriter/gui/docviewer.py,sha256=eXnUE-q_hrwIaJ7FBJf5XrTiQOkWz_r_oAsoYe9w3PI,32251
314
- novelwriter/gui/docviewerpanel.py,sha256=CCCzSc-Ol5jCmoEfpZ-RD-tcwzkyM7g_iBSQNeljGgE,20040
315
- novelwriter/gui/editordocument.py,sha256=5_v-gwZ9-CwJHGs7lFUGdY3paR7F1PW2FjD6_fbq5wY,4087
316
- novelwriter/gui/itemdetails.py,sha256=0U3hghK4Vue3AwtLBRY6YJMN3vOCjatvvzXhJDn4UXo,9688
317
- novelwriter/gui/mainmenu.py,sha256=PaJjO38DQ72UL9hMyvSbh2I1daxOZBSbJhNsov771fw,38908
318
- novelwriter/gui/noveltree.py,sha256=rAU_f6efrt5uAsew6jGqo3X3E3ggrZaoQh2prm13wD8,27635
319
- novelwriter/gui/outline.py,sha256=Id6hSEe1iLls6qPckX-b3U21rPOOndlfe7r4VsNC3G8,42312
320
- novelwriter/gui/projtree.py,sha256=GF7StUyPpgp-mcnG2AQIOta7o4gjBuDn69-9piYmtbU,78380
321
- novelwriter/gui/search.py,sha256=HnS0_vOg15f3woXeZ8MS_ZAblx9aFIuN7BSa195tY1M,13262
322
- novelwriter/gui/sidebar.py,sha256=jBkOinx69lwt4m1GovQ7nF44lF-g_SOk3yTT96KlbFY,6212
323
- novelwriter/gui/statusbar.py,sha256=-rF6bIJXGKFRswVKWE1c5In5x3sX4iXMfp0AGxZxt0c,9053
324
- novelwriter/gui/theme.py,sha256=M1ZbEKAZcU-INROiYyanUsDFNHcAZurArpEDvmg8870,31974
325
- novelwriter/text/counting.py,sha256=tkWKWS_scPYmBG8xLpIL1KLIjyF2HOlkrloQa5PZmDc,4304
326
- novelwriter/text/patterns.py,sha256=sEBPf9buLtJvYeoYquZzDcSC6gfKBHIUPGbD31y5H-g,3843
327
- novelwriter/tools/dictionaries.py,sha256=92GNCSEOK1EI7t2DiayT8p7nzKW7LwxJJz98F6kn3Vg,9243
328
- novelwriter/tools/lipsum.py,sha256=NcmoxWzrbEybh_w1FzxuxHmeTr8N03OrxjxsPWEbae4,4794
329
- novelwriter/tools/manusbuild.py,sha256=c3NdpkAqUPTKN2BpGX_xleFtZPi1G8uv80XBZEp27Bw,14071
330
- novelwriter/tools/manuscript.py,sha256=UgLSm6TFfftSc_cttzaic6Y06pwdMOMmSBhVWzdCSYA,38009
331
- novelwriter/tools/manussettings.py,sha256=Uz7QpCb2l_SftpQ5N7x0qHdq41-6fvTRHv7bxWvDLWg,56145
332
- novelwriter/tools/noveldetails.py,sha256=xNpTf5-hFu-K_flPhMLug6tNboKvDWV7OEetpHx6Lsc,18481
333
- novelwriter/tools/welcome.py,sha256=KLSlBTih_HOTJ3nmyv4IU4ec8XNJDL5AwXMZ6amqmIw,28027
334
- novelwriter/tools/writingstats.py,sha256=f5nbmE5V9VsQ8qi_DlvfF5yVIupEbVDavtuMbTzU7IA,22753
335
- novelWriter-2.5.3.dist-info/LICENSE.md,sha256=2GirkkLrPfQqx7fACKRJjtKJUegKc8067erGvcDVQHM,32197
336
- novelWriter-2.5.3.dist-info/METADATA,sha256=ADeNRKWKkQDtlf-XyVKsOHPcX8hjmX1umCivlQppZcY,2581
337
- novelWriter-2.5.3.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
338
- novelWriter-2.5.3.dist-info/entry_points.txt,sha256=YDUG1w361LtLsjD3YhxoTDTwM17JA5-nigjC6j5C74A,45
339
- novelWriter-2.5.3.dist-info/top_level.txt,sha256=wFFEucjEeNC_Ap5ULBuEutg5a1Uc0-YO9uFT5L2naNI,12
340
- novelWriter-2.5.3.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.6.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.3"
51
- __hexversion__ = "0x020503f0"
52
- __date__ = "2024-11-26"
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,6 +1,7 @@
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",
@@ -13,6 +14,7 @@
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",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "Synopsis": "Synopsis",
3
3
  "Short Description": "Korte beschrijving",
4
+ "Footnotes": "Voetnoten",
4
5
  "Comment": "Opmerking",
5
6
  "Notes": "Notities",
6
7
  "Tag": "Label",
@@ -13,6 +14,7 @@
13
14
  "Objects": "Objecten",
14
15
  "Entities": "Entiteiten",
15
16
  "Custom": "Aangepast",
17
+ "New Page": "Nieuwe pagina",
16
18
  "0": "nul",
17
19
  "1": "één",
18
20
  "2": "twee",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "Synopsis": "Streszczenie",
3
3
  "Short Description": "Krótki opis",
4
+ "Footnotes": "Przypisy",
4
5
  "Comment": "Komentarz",
5
6
  "Notes": "Notatki",
6
7
  "Tag": "Znacznik",
@@ -13,6 +14,7 @@
13
14
  "Objects": "Obiekty",
14
15
  "Entities": "Podmioty",
15
16
  "Custom": "Różne",
17
+ "New Page": "Nowa strona",
16
18
  "0": "zero",
17
19
  "1": "pierwszy",
18
20
  "2": "drugi",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "Synopsis": "Sinopse",
3
3
  "Short Description": "Descrição breve",
4
+ "Footnotes": "Notas de rodapé",
4
5
  "Comment": "Comentário",
5
6
  "Notes": "Notas",
6
7
  "Tag": "Etiqueta",
@@ -13,6 +14,7 @@
13
14
  "Objects": "Objetos",
14
15
  "Entities": "Entidades",
15
16
  "Custom": "Outros",
17
+ "New Page": "Nova página",
16
18
  "0": "Zero",
17
19
  "1": "Um",
18
20
  "2": "Dois",