novelWriter 2.4.3__py3-none-any.whl → 2.5b1__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 (109) hide show
  1. {novelWriter-2.4.3.dist-info → novelWriter-2.5b1.dist-info}/METADATA +4 -5
  2. {novelWriter-2.4.3.dist-info → novelWriter-2.5b1.dist-info}/RECORD +109 -101
  3. novelwriter/__init__.py +33 -39
  4. novelwriter/assets/i18n/project_en_GB.json +1 -0
  5. novelwriter/assets/icons/typicons_dark/icons.conf +2 -0
  6. novelwriter/assets/icons/typicons_dark/nw_font.svg +4 -0
  7. novelwriter/assets/icons/typicons_dark/nw_quote.svg +4 -0
  8. novelwriter/assets/icons/typicons_light/icons.conf +2 -0
  9. novelwriter/assets/icons/typicons_light/nw_font.svg +4 -0
  10. novelwriter/assets/icons/typicons_light/nw_quote.svg +4 -0
  11. novelwriter/assets/manual.pdf +0 -0
  12. novelwriter/assets/sample.zip +0 -0
  13. novelwriter/assets/syntax/cyberpunk_night.conf +5 -3
  14. novelwriter/assets/syntax/default_dark.conf +32 -18
  15. novelwriter/assets/syntax/default_light.conf +24 -10
  16. novelwriter/assets/syntax/dracula.conf +44 -0
  17. novelwriter/assets/syntax/grey_dark.conf +5 -4
  18. novelwriter/assets/syntax/grey_light.conf +5 -4
  19. novelwriter/assets/syntax/light_owl.conf +7 -6
  20. novelwriter/assets/syntax/night_owl.conf +7 -6
  21. novelwriter/assets/syntax/snazzy.conf +42 -0
  22. novelwriter/assets/syntax/solarized_dark.conf +4 -3
  23. novelwriter/assets/syntax/solarized_light.conf +4 -3
  24. novelwriter/assets/syntax/tango.conf +27 -11
  25. novelwriter/assets/syntax/tomorrow.conf +6 -5
  26. novelwriter/assets/syntax/tomorrow_night.conf +7 -6
  27. novelwriter/assets/syntax/tomorrow_night_blue.conf +6 -5
  28. novelwriter/assets/syntax/tomorrow_night_bright.conf +6 -5
  29. novelwriter/assets/syntax/tomorrow_night_eighties.conf +6 -5
  30. novelwriter/assets/text/credits_en.htm +4 -1
  31. novelwriter/assets/themes/cyberpunk_night.conf +2 -0
  32. novelwriter/assets/themes/default_dark.conf +1 -0
  33. novelwriter/assets/themes/default_light.conf +1 -0
  34. novelwriter/assets/themes/dracula.conf +47 -0
  35. novelwriter/assets/themes/solarized_dark.conf +1 -0
  36. novelwriter/assets/themes/solarized_light.conf +1 -0
  37. novelwriter/common.py +31 -9
  38. novelwriter/config.py +118 -84
  39. novelwriter/constants.py +40 -26
  40. novelwriter/core/buildsettings.py +63 -66
  41. novelwriter/core/coretools.py +2 -22
  42. novelwriter/core/docbuild.py +51 -40
  43. novelwriter/core/document.py +3 -5
  44. novelwriter/core/index.py +115 -45
  45. novelwriter/core/item.py +8 -19
  46. novelwriter/core/options.py +2 -4
  47. novelwriter/core/project.py +23 -57
  48. novelwriter/core/projectdata.py +1 -3
  49. novelwriter/core/projectxml.py +12 -15
  50. novelwriter/core/sessions.py +3 -5
  51. novelwriter/core/spellcheck.py +4 -9
  52. novelwriter/core/status.py +211 -164
  53. novelwriter/core/storage.py +0 -8
  54. novelwriter/core/tohtml.py +94 -100
  55. novelwriter/core/tokenizer.py +199 -112
  56. novelwriter/core/{tomd.py → tomarkdown.py} +97 -78
  57. novelwriter/core/toodt.py +212 -148
  58. novelwriter/core/toqdoc.py +403 -0
  59. novelwriter/core/tree.py +5 -7
  60. novelwriter/dialogs/about.py +3 -5
  61. novelwriter/dialogs/docmerge.py +1 -3
  62. novelwriter/dialogs/docsplit.py +1 -3
  63. novelwriter/dialogs/editlabel.py +0 -2
  64. novelwriter/dialogs/preferences.py +111 -88
  65. novelwriter/dialogs/projectsettings.py +216 -180
  66. novelwriter/dialogs/quotes.py +3 -4
  67. novelwriter/dialogs/wordlist.py +3 -9
  68. novelwriter/enum.py +31 -25
  69. novelwriter/error.py +8 -15
  70. novelwriter/extensions/circularprogress.py +5 -6
  71. novelwriter/extensions/configlayout.py +18 -18
  72. novelwriter/extensions/eventfilters.py +1 -5
  73. novelwriter/extensions/modified.py +50 -13
  74. novelwriter/extensions/novelselector.py +1 -3
  75. novelwriter/extensions/pagedsidebar.py +9 -12
  76. novelwriter/extensions/simpleprogress.py +1 -3
  77. novelwriter/extensions/statusled.py +1 -3
  78. novelwriter/extensions/switch.py +4 -6
  79. novelwriter/extensions/switchbox.py +7 -6
  80. novelwriter/extensions/versioninfo.py +3 -9
  81. novelwriter/gui/doceditor.py +98 -126
  82. novelwriter/gui/dochighlight.py +237 -183
  83. novelwriter/gui/docviewer.py +46 -94
  84. novelwriter/gui/docviewerpanel.py +3 -10
  85. novelwriter/gui/editordocument.py +1 -3
  86. novelwriter/gui/itemdetails.py +7 -11
  87. novelwriter/gui/mainmenu.py +11 -7
  88. novelwriter/gui/noveltree.py +11 -24
  89. novelwriter/gui/outline.py +11 -23
  90. novelwriter/gui/projtree.py +26 -43
  91. novelwriter/gui/search.py +1 -3
  92. novelwriter/gui/sidebar.py +2 -6
  93. novelwriter/gui/statusbar.py +6 -10
  94. novelwriter/gui/theme.py +23 -48
  95. novelwriter/guimain.py +50 -71
  96. novelwriter/shared.py +30 -15
  97. novelwriter/tools/dictionaries.py +8 -12
  98. novelwriter/tools/lipsum.py +2 -4
  99. novelwriter/tools/manusbuild.py +1 -3
  100. novelwriter/tools/manuscript.py +66 -145
  101. novelwriter/tools/manussettings.py +67 -73
  102. novelwriter/tools/noveldetails.py +6 -11
  103. novelwriter/tools/welcome.py +2 -16
  104. novelwriter/tools/writingstats.py +6 -9
  105. novelwriter/types.py +45 -3
  106. {novelWriter-2.4.3.dist-info → novelWriter-2.5b1.dist-info}/LICENSE.md +0 -0
  107. {novelWriter-2.4.3.dist-info → novelWriter-2.5b1.dist-info}/WHEEL +0 -0
  108. {novelWriter-2.4.3.dist-info → novelWriter-2.5b1.dist-info}/entry_points.txt +0 -0
  109. {novelWriter-2.4.3.dist-info → novelWriter-2.5b1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: novelWriter
3
- Version: 2.4.3
3
+ Version: 2.5b1
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
@@ -9,7 +9,6 @@ Project-URL: Documentation, https://docs.novelwriter.io
9
9
  Project-URL: Repository, https://github.com/vkbo/novelWriter
10
10
  Project-URL: Issues, https://github.com/vkbo/novelWriter/issues
11
11
  Classifier: Programming Language :: Python :: 3 :: Only
12
- Classifier: Programming Language :: Python :: 3.8
13
12
  Classifier: Programming Language :: Python :: 3.9
14
13
  Classifier: Programming Language :: Python :: 3.10
15
14
  Classifier: Programming Language :: Python :: 3.11
@@ -21,10 +20,10 @@ Classifier: Operating System :: OS Independent
21
20
  Classifier: Intended Audience :: End Users/Desktop
22
21
  Classifier: Natural Language :: English
23
22
  Classifier: Topic :: Text Editors
24
- Requires-Python: >=3.8
23
+ Requires-Python: >=3.9
25
24
  Description-Content-Type: text/markdown
26
25
  License-File: LICENSE.md
27
- Requires-Dist: pyqt5 >=5.10
26
+ Requires-Dist: pyqt5 >=5.15
28
27
  Requires-Dist: pyenchant >=3.0.0
29
28
 
30
29
  <img src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/novelwriter_text.png">
@@ -39,7 +38,7 @@ synchronisation tools. All text is saved as plain text files with a meta data he
39
38
  project structure is stored in a single project XML file, and other meta data is primarily saved as
40
39
  JSON files.
41
40
 
42
- The application is written with Python 3 (3.8+) using Qt5 and PyQt5 (5.10+). It is developed on
41
+ The application is written with Python 3 (3.9+) using Qt5 and PyQt5 (5.10+). It is developed on
43
42
  Linux, but should in principle work fine on other operating systems as well as long as dependencies
44
43
  are met. It is regularly tested on Debian and Ubuntu Linux, Windows, and MacOS.
45
44
 
@@ -1,14 +1,14 @@
1
- novelwriter/__init__.py,sha256=69BrinWVwpxf8bcMPBuzGtiq4dcE08ewmw29fgV4txA,7744
2
- novelwriter/common.py,sha256=oarn4-2Ezm595b-dHD4MVrytxMFFB_QhITbTMIKD40M,17440
3
- novelwriter/config.py,sha256=Y0c3-0xfmDE-IDcFYW0U_x_WGPMoU2T0sqtNZ8CT4zQ,35841
4
- novelwriter/constants.py,sha256=UIxiF-23cB_gmRfxbQPYmObn8Ib-ygm46uOIG329RLY,19818
5
- novelwriter/enum.py,sha256=MP-nz3vDRp4bWxXitqjdLWO2_RvrDAlRxngiMON9mb8,3305
6
- novelwriter/error.py,sha256=rY3kHVkt7W0MM9iKOBkMY-9qhStlESGlyeOOXwT4BGM,7278
7
- novelwriter/guimain.py,sha256=Be32lkJv1ZF-aOSOQTPBfcH7TFrk3KvpLBmwIl20eRc,53477
8
- novelwriter/shared.py,sha256=t-0ZwgnT7KNHDtz4fBV-uPxh9P0Nw1R0Sj-VW4To6sc,14678
9
- novelwriter/types.py,sha256=6aP2hZraPEolYqBgj5R_5bah3NgelASBfKol6yYOi4g,3316
10
- novelwriter/assets/manual.pdf,sha256=5Z8uh-G3UDm1medGpg8JG1o7DuQF2OWeRGy4QBWmTDc,2691354
11
- novelwriter/assets/sample.zip,sha256=zO0QrKdMr0-SeLG6QizMe50F3SDpe4EkFz4CRgDl2Yg,27358
1
+ novelwriter/__init__.py,sha256=H7RVewswhg3RViwaGImEb4xbTi-NURPn_nSqHXbJXxQ,7552
2
+ novelwriter/common.py,sha256=NcMU6bF9rOecpPo14C8svqZb6gNSZobfq3vzpwObFc4,18257
3
+ novelwriter/config.py,sha256=gyjoWD3NmMmPXm1XbRWVelKffBRVlpqy5E4Tergvj2M,37349
4
+ novelwriter/constants.py,sha256=_E464sJcGwWvDyxqGPmCyILN9h4tlpJ7T8XsrG8IPj0,21372
5
+ novelwriter/enum.py,sha256=ckfliz_klLNSyswJAgD4V5yGlRN_w0FbEYBd6XYayxw,3515
6
+ novelwriter/error.py,sha256=iIx1OzyXTT7Ngk2mXW_5c0YqVdFBD0NIkUFgAXNNBlM,6813
7
+ novelwriter/guimain.py,sha256=ACxMx2sKQedaMoZiOELu7qenEimx0fV_NNS4qjjbNSI,52987
8
+ novelwriter/shared.py,sha256=lSp2Tk3ABCNee5I1Mt7z4MmdBI5gGZAyqExqYl-EXms,15362
9
+ novelwriter/types.py,sha256=s35ESln-3OuXdxBGpYvyyC47kxhzgD225-dGwe7d_0U,4600
10
+ novelwriter/assets/manual.pdf,sha256=bG6KQ6qSXZQai9A8BsSUfImKR29lpDDEGBuHXA1-ZdE,2691769
11
+ novelwriter/assets/sample.zip,sha256=GTQfl86FrrIM_eTxKWzJ4oMapW28RtphI0TMSGtlsSc,27808
12
12
  novelwriter/assets/i18n/nw_de_DE.qm,sha256=PPBpHJ3M0jL0t4xSY8zr3CKaO0umGW4K4Tb7bj0gtlA,97532
13
13
  novelwriter/assets/i18n/nw_en_US.qm,sha256=sZKjLkT2CcPhGAS3WUgKm9XO3ugbBrx2zbwVyhP7vSE,90470
14
14
  novelwriter/assets/i18n/nw_es_419.qm,sha256=8saaQ1As_hOgBI-oyEIqV5KCmLaMg_ldkOT9Q1uJmaY,99857
@@ -20,7 +20,7 @@ novelwriter/assets/i18n/nw_nl_NL.qm,sha256=4RcFVAWj3PGT4jeivxLEp85HfiSr3FvFCnlmj
20
20
  novelwriter/assets/i18n/nw_pt_BR.qm,sha256=2pW_7MFG152nN3Yc721qvvcG01XSRTVe21BvvqdBQvk,79257
21
21
  novelwriter/assets/i18n/nw_zh_CN.qm,sha256=3q2cSsY3kT7dRggXq-fj8Sank88V_G2RKzjXQY5-3nA,67445
22
22
  novelwriter/assets/i18n/project_de_DE.json,sha256=85ud9rxRHyXm85QDmW_LKcUE8h0L1Bvukaf5Tjt-wpg,2818
23
- novelwriter/assets/i18n/project_en_GB.json,sha256=EcQAVEiQgRL3qobuzkPTfOWIxAc3Om-tA7nXUFFXEdI,2483
23
+ novelwriter/assets/i18n/project_en_GB.json,sha256=7c9W2YJAELCSwx4zN_2qYZ3xsGncinCrGNhaj_FVkxk,2511
24
24
  novelwriter/assets/i18n/project_en_US.json,sha256=EcQAVEiQgRL3qobuzkPTfOWIxAc3Om-tA7nXUFFXEdI,2483
25
25
  novelwriter/assets/i18n/project_es_419.json,sha256=Z6CAhc0hzekUZFDM-0ykRRsckJG4c2AETy4Xa_f2T7s,2730
26
26
  novelwriter/assets/i18n/project_fr_FR.json,sha256=CBojo05gdhxev5pFg889ENe_CKOHSDv3oj8SmkBFqGg,2788
@@ -38,7 +38,7 @@ novelwriter/assets/icons/novelwriter.svg,sha256=Ad_SgOdXSDJtFR3DLCx6Afme15I78r38
38
38
  novelwriter/assets/icons/x-novelwriter-project.ico,sha256=MXdZSYi3j95aIsT5bZo6CkhxmS75cThP9O_38UR7sjg,170697
39
39
  novelwriter/assets/icons/x-novelwriter-project.svg,sha256=VHf1aClkA91tZVYb3LFk9bi_Dw25QBVSjUJAjSD-YX4,5143
40
40
  novelwriter/assets/icons/typicons_dark/README.md,sha256=6ZxJq-19PNrMdeuVeVg84aLjxhr9oF7dLwuMFVGQyq0,1065
41
- novelwriter/assets/icons/typicons_dark/icons.conf,sha256=b-OYPcmJe1CBXRa62AFm75XIWev4cfeFarJF5mGgpiY,4431
41
+ novelwriter/assets/icons/typicons_dark/icons.conf,sha256=9sQ88muSh0xjI7_xYBcgjR5Kh2qRf_DVvlKemDkQCp0,4492
42
42
  novelwriter/assets/icons/typicons_dark/mixed_document-chapter.svg,sha256=POP_Cs3bkkKAmrS_fTgjj90eyNK0bipNGgOhDDlXKu0,1650
43
43
  novelwriter/assets/icons/typicons_dark/mixed_document-new.svg,sha256=EIVU3_ecC0d6rpCHXBfKoA_mWJyilqe7iA6XLQb9oRw,1849
44
44
  novelwriter/assets/icons/typicons_dark/mixed_document-note.svg,sha256=OaPRbvkA7h4GA4mnFXJRORv80h2nAsJTmlIR8Msrwt8,1650
@@ -61,7 +61,9 @@ novelwriter/assets/icons/typicons_dark/nw_deco-h4-narrow.svg,sha256=9dksKdaZnYtJ
61
61
  novelwriter/assets/icons/typicons_dark/nw_deco-h4.svg,sha256=ZQzYLzxDZS0vY-EED-4stwaPXKSdlHgUaddrTA004pc,231
62
62
  novelwriter/assets/icons/typicons_dark/nw_deco-note.svg,sha256=aAsfGV-UzemXM4nUFyZ5cS57S8PnUAUvOvPVZVSqQlo,225
63
63
  novelwriter/assets/icons/typicons_dark/nw_deco-noveltree-more.svg,sha256=Vt76I_GrMA0RvB0-0XTUTOgcHqgR8h4SuEIZiuspZns,314
64
+ novelwriter/assets/icons/typicons_dark/nw_font.svg,sha256=fuqUJ3Jazn0mFIX4NXjV-bezGMPaKKTyMFaXcNHascA,267
64
65
  novelwriter/assets/icons/typicons_dark/nw_panel.svg,sha256=ARAHkSVrLwsQmaEYkNU13UXegIG2Q5p6rnlKxdqAzto,912
66
+ novelwriter/assets/icons/typicons_dark/nw_quote.svg,sha256=jNxgM5jWhlfepPLPxnE-FBXggos0xAM3wwfk30HxfKg,1074
65
67
  novelwriter/assets/icons/typicons_dark/nw_search-case.svg,sha256=RTXth9FpdP83AjWpSq4-1VSOO_522dP3_MnHOJatO2w,950
66
68
  novelwriter/assets/icons/typicons_dark/nw_search-preserve.svg,sha256=PSjnk3BbKXGdCOnpaIK623EJml-75gRILs2cJrqo_B4,854
67
69
  novelwriter/assets/icons/typicons_dark/nw_search-regex.svg,sha256=j5u8KQD1LqwWHe7FG_fpyljN3KDWtbsrhI9Jp0eOGcw,746
@@ -136,7 +138,7 @@ novelwriter/assets/icons/typicons_dark/typ_unfold-visible.svg,sha256=IvVXmxlkrTy
136
138
  novelwriter/assets/icons/typicons_dark/typ_user.svg,sha256=00gZEDr59B1A7A4o0w5VjCJOHnQHANsgXBhnB_VTMU4,733
137
139
  novelwriter/assets/icons/typicons_dark/typ_warning-full.svg,sha256=zqqV82C37dWH_yHoSuPo-BLsErg0sl8_VlB6fzXL4VE,970
138
140
  novelwriter/assets/icons/typicons_light/README.md,sha256=nyGvWLJ8cusLYP8YsjX_l213NkDE_GHrwctZ-I_JQUg,1066
139
- novelwriter/assets/icons/typicons_light/icons.conf,sha256=rG7V9Vc0Jx0T7YUD2PpGA_Dg-i6zPPBK-mH-PmUnFCA,4434
141
+ novelwriter/assets/icons/typicons_light/icons.conf,sha256=TnqiHJ4CnvKqT4_5BPmsqJdTUKtDswlwL8c2xjYNLlw,4495
140
142
  novelwriter/assets/icons/typicons_light/mixed_document-chapter.svg,sha256=kXNwPbeKR3eupIrqtDQrNGq5sL8vdExLfPMrMX2sEsw,1650
141
143
  novelwriter/assets/icons/typicons_light/mixed_document-new.svg,sha256=u0YYfp6hTUEYLsrPleUqYocaG2hl62w-B85INvkm6S4,1825
142
144
  novelwriter/assets/icons/typicons_light/mixed_document-note.svg,sha256=XpKQ2Fj7J3I3BT9mAQkjk_A4eP7uy94vPeDBA62fOYI,1650
@@ -159,7 +161,9 @@ novelwriter/assets/icons/typicons_light/nw_deco-h4-narrow.svg,sha256=yKz154CJ85z
159
161
  novelwriter/assets/icons/typicons_light/nw_deco-h4.svg,sha256=Fr___Gtm93VfZUwORTVQ_IHXEWJ0FdSZI8KpsfbAcpM,231
160
162
  novelwriter/assets/icons/typicons_light/nw_deco-note.svg,sha256=99VNGOW5qg0V6avQokkwbur3O9TTv27E94mWwSa0o1k,225
161
163
  novelwriter/assets/icons/typicons_light/nw_deco-noveltree-more.svg,sha256=Vt76I_GrMA0RvB0-0XTUTOgcHqgR8h4SuEIZiuspZns,314
164
+ novelwriter/assets/icons/typicons_light/nw_font.svg,sha256=_6aHZzoGiKo2dwcKVCDfY16qsUNsD4I6wZOCjJqsOmg,274
162
165
  novelwriter/assets/icons/typicons_light/nw_panel.svg,sha256=_btLJwklPw8EzpGnEvbTjvFuFy5Fi5yT2I7fQchJ6z8,919
166
+ novelwriter/assets/icons/typicons_light/nw_quote.svg,sha256=H_4xmi2qjZiC4eAVV-9ngRqVsf0nmhZuU92UUoPUjQY,1059
163
167
  novelwriter/assets/icons/typicons_light/nw_search-case.svg,sha256=cU9e-bOh0vCrI_REFC38aeUmmf45oH2rVE0x-GZKsKQ,974
164
168
  novelwriter/assets/icons/typicons_light/nw_search-preserve.svg,sha256=ggEvIlqfEyjxR_IzP0R0TwVXK5nTaIxyWP4TGgmpLvs,885
165
169
  novelwriter/assets/icons/typicons_light/nw_search-regex.svg,sha256=uYWEIptuiwsVhp5Q30JalDsUTqfMktPosteARZbSXkI,760
@@ -237,93 +241,97 @@ novelwriter/assets/images/novelwriter-text-dark.svg,sha256=gbbDiXd92OV5c6qGREDkA
237
241
  novelwriter/assets/images/novelwriter-text-light.svg,sha256=ziTrfrr0WO9JWBzSfuuKBlYFCkENfEBp3MyOYTNGUYQ,5983
238
242
  novelwriter/assets/images/welcome-dark.jpg,sha256=MPRYUI1yEjzee1uHGWlrR352U1LFSSV92awDheFtmZo,299007
239
243
  novelwriter/assets/images/welcome-light.jpg,sha256=FcS5GA5G6o9KgmADYHktyR3GHquNlPNIUQeQQiscQzA,279989
240
- novelwriter/assets/syntax/cyberpunk_night.conf,sha256=w_22pAqGYDsGMrvzwx7QrOnweFW-mkZZjZ-cRB81yaI,760
241
- novelwriter/assets/syntax/default_dark.conf,sha256=EURI_CPep0nOahQ7Nrx1a4F6yXn0jlnnLI3kQSGPP4Q,844
242
- novelwriter/assets/syntax/default_light.conf,sha256=dJR58BVrHqw19zaX-2R1WihLrEPaHxZ9fwZB4v-9eZA,845
243
- novelwriter/assets/syntax/grey_dark.conf,sha256=umxXOfkt8UBypfb-ELT8YWnLNwg51umEyTAhGGL9YoA,841
244
- novelwriter/assets/syntax/grey_light.conf,sha256=4gveHH8vGuh0t0cjjR4KxumVpLConw1Fvggl7R0qfIM,842
245
- novelwriter/assets/syntax/light_owl.conf,sha256=Sh_dpqjvbYNC42uvrCL8CnOnSIU8CEKFAUmSOcqdwwk,1493
246
- novelwriter/assets/syntax/night_owl.conf,sha256=33KGoEWi3jD8QQZGZKlw1k5JnAjP2a-zhGsas7kLKYk,1493
247
- novelwriter/assets/syntax/solarized_dark.conf,sha256=XJkEeJ-Cg-cOQtRWm6Q-3i-HhuqEg87KTpI6iJ1ciOE,834
248
- novelwriter/assets/syntax/solarized_light.conf,sha256=IrL0_2BgNgURda1QrnDFl8HmZ1tILDad4SGSF9x0qMU,835
249
- novelwriter/assets/syntax/tango.conf,sha256=g_nLKaMW71p3NQ8JywpAnkDBXwIy5gvDfNYJFBmYcFw,635
250
- novelwriter/assets/syntax/tomorrow.conf,sha256=qAJUQyPk3LTo7S9s_GtqakKV1PFYBVmLyv8HTsWqu0g,1491
251
- novelwriter/assets/syntax/tomorrow_night.conf,sha256=2urAH-LHOrJHcKwPy2IqrVc_xhQrsrYpEITImk2W9FE,1503
252
- novelwriter/assets/syntax/tomorrow_night_blue.conf,sha256=UcPosIQ2S8M2E2mT7dzEqebmxxgIBAPlSu_o1xEQKiM,1513
253
- novelwriter/assets/syntax/tomorrow_night_bright.conf,sha256=T7Jzqfo3W_iTG3bR0PZ3ZG5Qgjn5QNU8a3tch4Rq88c,1518
254
- novelwriter/assets/syntax/tomorrow_night_eighties.conf,sha256=VW_ibz0cO828WgmaE62KEY7HMLVcIuFN4IJh-dVz6_0,1521
255
- novelwriter/assets/text/credits_en.htm,sha256=vB9WS-0rrtFRFCa2GnYyhZPbz6Fema0S4qRd07YhMGQ,4005
244
+ novelwriter/assets/syntax/cyberpunk_night.conf,sha256=AMtlu1UnnKHRbQw1s3j4cAekyIdQtBttgyvlFJPhiQg,826
245
+ novelwriter/assets/syntax/default_dark.conf,sha256=2aczHlskobF6c6VQOaucrkygBbTK6jIyc9UlP8_TcMk,1258
246
+ novelwriter/assets/syntax/default_light.conf,sha256=jmUmG1EO0yOyBbr-2DM4VW56MlBnMfaAaVaeLVECF-c,1259
247
+ novelwriter/assets/syntax/dracula.conf,sha256=fWA2tVAvCH9PPYZV0yTriA_9O5SLqamqTnJQnddJ8Mc,1323
248
+ novelwriter/assets/syntax/grey_dark.conf,sha256=L075no7vkh8ErukXVMIQVFe8zDfPQa2wdcYRQ-S80tI,877
249
+ novelwriter/assets/syntax/grey_light.conf,sha256=KulyqCZYTCSY_c8FMI3VSylDNpuYwrsWAS8vCipiHsY,878
250
+ novelwriter/assets/syntax/light_owl.conf,sha256=5sF7omkEIAs0inQCghbwIL-NmfN4vVNglzUP24zPU_Q,1529
251
+ novelwriter/assets/syntax/night_owl.conf,sha256=Tb_urqMBytO2fiy7Bo4ikVis6KT0nzwj22vVeBUsfqM,1529
252
+ novelwriter/assets/syntax/snazzy.conf,sha256=qM5K-3_OgzCZ54MP6kXtGPzsYT3mrCVyseE3YC1NsSE,1304
253
+ novelwriter/assets/syntax/solarized_dark.conf,sha256=BE9KAIcjiWKKY0blggVDqWkkMyD2AS0GbfwPXWYjLvQ,865
254
+ novelwriter/assets/syntax/solarized_light.conf,sha256=E9sA87QmRNp2mzYZM3O9bHzyaVhXX-z9nhhpm3NOFlc,866
255
+ novelwriter/assets/syntax/tango.conf,sha256=9ITFNN2iS0DOTr7NB-w5vlc_XPD32Oc4j5PeXhptsXQ,1124
256
+ novelwriter/assets/syntax/tomorrow.conf,sha256=Oj0TGfnzwvlVBA52CC9xU0BBK_M4NwBHLBeEhbvsTzM,1527
257
+ novelwriter/assets/syntax/tomorrow_night.conf,sha256=mWPneIV_6tszLEK4-Eo-kcJmUbrkzMJHohgKBFKnpaE,1539
258
+ novelwriter/assets/syntax/tomorrow_night_blue.conf,sha256=L42gcekFfNpCCB45m9Lhzmz8Y6Lvbpik3AADi_1Aao8,1549
259
+ novelwriter/assets/syntax/tomorrow_night_bright.conf,sha256=h8_775Ed8hl2XhfCoxAY2kT43vi-UvG8UHik1aI4eRw,1554
260
+ novelwriter/assets/syntax/tomorrow_night_eighties.conf,sha256=stO_xH5RzMN0jaZeYr53LVXbpqSmIXALBFGVLlJBDLA,1557
261
+ novelwriter/assets/text/credits_en.htm,sha256=FLmgB5HLLWyKPBfJp-_P86cb6s9pOGu7OnIpEYpAJqo,4361
256
262
  novelwriter/assets/text/lipsum.txt,sha256=sGA6AC_p4jrUifxLxy3cSODeRwkpBNXDPGgX6YRTm2s,62937
257
- novelwriter/assets/themes/cyberpunk_night.conf,sha256=cwNVyZ1ElGWm-r6Qpzj1Pl2vIhC_ePVsgmtriwMcAms,827
263
+ novelwriter/assets/themes/cyberpunk_night.conf,sha256=G0Mz7k7HoUvP8k6zIL9W-tWE2amWvLHY89O52K2_MuQ,891
258
264
  novelwriter/assets/themes/default.conf,sha256=K0LZ64lODpCtUg3pISTAP4UKvEYMvPkmIYN9RDEaWwk,72
259
- novelwriter/assets/themes/default_dark.conf,sha256=L6xHLbgVb4E4SkQRSgCV7yEoxH9RxPunCjBuLpU8JEY,925
260
- novelwriter/assets/themes/default_light.conf,sha256=o_FJRMidFo-DJYK8bB-jdelcD5qg7MwW4J8lL9nlZUY,928
261
- novelwriter/assets/themes/solarized_dark.conf,sha256=HIP9icMtRljUmMH7PmU0IrcLGUSXVDaG97070Hc0UVM,852
262
- novelwriter/assets/themes/solarized_light.conf,sha256=jUfaCnWXM4GAOI1eUioj_nP0RiMrnr8MEOprSg7qUU4,854
263
- novelwriter/core/buildsettings.py,sha256=SVRYtmsneUlidzoHlmXebgpVPW7ZTei8mwTfVug3o4E,22423
264
- novelwriter/core/coretools.py,sha256=mNrFL7R3dAAQhe3aGT9QTha4rX4XXF5JOlmXykNCJh0,21467
265
- novelwriter/core/docbuild.py,sha256=cvvIe3w3ptY3VE_ak3ppzVkBMvoGS5o0CdzS0ifAVRw,13842
266
- novelwriter/core/document.py,sha256=ERU3GCZ1CHkIE3bV-NQ5G8HZlH5C4bWqa-OxyPgFu4w,12154
267
- novelwriter/core/index.py,sha256=e-Iov2NyeeLWiWsx_UCD758UIw_6KGe1FZ-jegkRgmU,45951
268
- novelwriter/core/item.py,sha256=6a-9Aty4_RIFE-90IxR8t19Fjyl_uHJAwz_TzUn8oRI,18104
269
- novelwriter/core/options.py,sha256=6gMe3cXq4U-oSN3zSoGtfiCOW6hX9xtjDssrbZYrtGY,7397
270
- novelwriter/core/project.py,sha256=dl8mx6uCjPUzb9H-pOcwYbDahQ6rxB5D-rkeb8CX-Kk,22718
271
- novelwriter/core/projectdata.py,sha256=NYhTL6qIbJxJX98-_zZdV4LzI2-tqdWaMvGYi0Xi4WU,9826
272
- novelwriter/core/projectxml.py,sha256=0qylTwEsgoKRlSmDyBgOU4XpGvA3nPMipYs1dNkc-hA,21948
273
- novelwriter/core/sessions.py,sha256=k13qaHO0oAyKBlMrhDogO0dFoAROBA8WNgUULGtIhIA,4431
274
- novelwriter/core/spellcheck.py,sha256=FuTPjunG3DpXZzVrpSp3cHCJR1s72MYiSjOm6ok2ZiE,7256
275
- novelwriter/core/status.py,sha256=TNeEapa-MLJexXPosoHs0UmHgZrK63vQEOegYOD8uuE,8769
276
- novelwriter/core/storage.py,sha256=eJgGL0cvfeQHhGYjc6FiojJ-dnGU-IQJ6FOWa8hFzJQ,20880
277
- novelwriter/core/tohtml.py,sha256=zybIc2qMAQhmWBNVVtcHRijmvqDK_DHidgAYwKUGQP0,17236
278
- novelwriter/core/tokenizer.py,sha256=mwcwUojDL7DW8W4wbXZbtnyPnOdN9soJb11dShrdtbk,40993
279
- novelwriter/core/tomd.py,sha256=xk5r3oyHkz6LOouiPaQLGVJWp6bT0HLe3upr4JmWjG4,7386
280
- novelwriter/core/toodt.py,sha256=nPslo_bEsUaGWk0YCPaPHak41dXS9PpzNKClGOF_cA0,58662
281
- novelwriter/core/tree.py,sha256=bwLJHhNkd2DOKoE-rIwfWwWgaYBlw9xZ8BaQeC0LUJw,18701
282
- novelwriter/dialogs/about.py,sha256=6FF9ssrP8G9TNWYAoZ1Z-Bd0gBrJsc8uPBVAulyDd_U,4888
283
- novelwriter/dialogs/docmerge.py,sha256=FzOmKQnKW8p1fc_z6pvDlP2LlJQgDG_BV355oB1MKzc,6148
284
- novelwriter/dialogs/docsplit.py,sha256=q4kt_lIqrz6-5VpBnCZOeTfvwcZMORZtjO3qrGEynPg,9140
285
- novelwriter/dialogs/editlabel.py,sha256=715nMbwexvqaxPRp2rJThyC3Sokp70zztpCg2ZxGKPw,2964
286
- novelwriter/dialogs/preferences.py,sha256=hQv70JmrQDTXDY5onrkeQVCZ1UiProi4i8c2xQsXTfk,36440
287
- novelwriter/dialogs/projectsettings.py,sha256=IbZkb0oFU9C5PtQxtrY5DJSfdaUoeb_A2qhpZJWG4KY,25750
288
- novelwriter/dialogs/quotes.py,sha256=iDtkACeCnaCQOTXQtW1H75BjeOJIm0SsrP4EzLsFq0E,4647
289
- novelwriter/dialogs/wordlist.py,sha256=EfjKQn_SZ8qUCXXw5WHgqe6hWLAn02cD23mWUTTaxkc,8646
290
- novelwriter/extensions/circularprogress.py,sha256=H0btKccdnvVfijU8ZudYvv4AgrvPYvx7IgznIxASBY0,3856
291
- novelwriter/extensions/configlayout.py,sha256=xHUE_HckNwJsfPKZ3hJjAKAYhxzQFRmNCmBrIh6QtTs,9253
292
- novelwriter/extensions/eventfilters.py,sha256=XehDoXwsnCvI1D3uieuYu5J3kxZggdV6Teo7Z0xZw7E,2581
293
- novelwriter/extensions/modified.py,sha256=s8HbGumHA0mAspnYo-ADIiwOXkccL-w1ThimxywdlNc,4038
294
- novelwriter/extensions/novelselector.py,sha256=5ccEDvqrbvrG7khZBrOiJwxsjjRnkFX-A4ZT-lj_z_g,3821
295
- novelwriter/extensions/pagedsidebar.py,sha256=X0AYo6oKM7gKr57662v-ZZWUTCVf5AbvIUCoLQai8fk,7369
296
- novelwriter/extensions/simpleprogress.py,sha256=13SrFQ9TZTDICyXCdTHeCX0MOtpw4UbBEgxiAmSOjyQ,1836
297
- novelwriter/extensions/statusled.py,sha256=640phDm3ZcLvM9EC_uwVPjG9LD5W3pAjtoqU4QbsZUU,2315
298
- novelwriter/extensions/switch.py,sha256=sZBNX5Wj1qkVA6cHh04GjuWOTbejaatHgLZ5yGzXGv4,4346
299
- novelwriter/extensions/switchbox.py,sha256=y6yuoCAZYYL7miaFlC8h5ymtuB0Xyk2AMmxAFYOYPDA,4210
300
- novelwriter/extensions/versioninfo.py,sha256=eUJzO6eV6SFXgp71uxr9696rjUQctGm84CA7XqxFhGc,5120
301
- novelwriter/gui/doceditor.py,sha256=d96MDOqdLb4y8cR25ah5KGZGvfFADPT33bDBd7O7kzA,114599
302
- novelwriter/gui/dochighlight.py,sha256=9-OP0YrMmljOCsdY-rqZe0G27gkBP7Fzk_R_f3iGGVE,17394
303
- novelwriter/gui/docviewer.py,sha256=RcvChY8OA5gxHzNi6l3xj60ua_6nPxSQ75_apIgeyDg,33559
304
- novelwriter/gui/docviewerpanel.py,sha256=IcQGLN49MmVGfIPg-8IzLGKYn9DbJqfdXWG6jd_JaAI,20009
305
- novelwriter/gui/editordocument.py,sha256=jxODONgq80Kf63lRezzbYtyEelaC-GpvgPEMKQ3m_sg,4116
306
- novelwriter/gui/itemdetails.py,sha256=VIfWDtn9g0IRBYSDFT_AhZgluQ0d7sK5C14lENyvzHg,9774
307
- novelwriter/gui/mainmenu.py,sha256=iTXNqmhEZqVDA6XkIAhpIq-cc1fF5-rZVe2g9z7v8_c,38707
308
- novelwriter/gui/noveltree.py,sha256=F-r6vdgCoIzxFwOI9kvsLEnz7nX2uOs30LOHHijN7NY,27988
309
- novelwriter/gui/outline.py,sha256=q0d21UI2r4K4D9jPARKc3ibWsdpiEnartAHfwxE2AgY,42410
310
- novelwriter/gui/projtree.py,sha256=21B1-NJFYf724oIH5xX0b35YX3YX-zxRcLdYopMdRy8,77888
311
- novelwriter/gui/search.py,sha256=PYsSIhe77PCuXj1fRXb2_7GF1gxLDv_vyq8JsgW5UfY,12996
312
- novelwriter/gui/sidebar.py,sha256=kidGGzXQ5RNQvKuH0kFh-lwoUSlkXffBucEoL15RMd4,6258
313
- novelwriter/gui/statusbar.py,sha256=ru-4pyg8owWkwkXGgj5GEupfq9fbIykYwGpomwzaINk,9353
314
- novelwriter/gui/theme.py,sha256=ANv1e5KghrB8z-uaHZbc3GZdmcl_or6KOpFhyBbgeX4,32781
265
+ novelwriter/assets/themes/default_dark.conf,sha256=1jFL3rMHjN6d_s0SslId1n_Aw6c4nDOM3ybTvHOW1rs,957
266
+ novelwriter/assets/themes/default_light.conf,sha256=h6c0Lnp1PTIJCfSKh3q-4giSqi4ln1L8AsKCZrBWBBM,960
267
+ novelwriter/assets/themes/dracula.conf,sha256=IuGxKRUqVbRXRYaKxQ2RemQwGA9zKkeiGKsRi264wiQ,1393
268
+ novelwriter/assets/themes/solarized_dark.conf,sha256=Prdp6-igYhOlUjW8eTDxYbibj2ezo3MD2z9TiWHy0hE,884
269
+ novelwriter/assets/themes/solarized_light.conf,sha256=m_DmSdBQ6Ufvj1XXqc9yTxMiplyBKjv6u2EUaoS598s,886
270
+ novelwriter/core/buildsettings.py,sha256=4kG4SjZ_tSoc9btHC919PKhteYU0nZJ2YVlJF2keh3k,22537
271
+ novelwriter/core/coretools.py,sha256=CR4rMVchfBUSzO2QsUjEysxhDgmN4-CWc7kGfbL00oA,20950
272
+ novelwriter/core/docbuild.py,sha256=6ORKq1kzS-Ri0Sr3eyqCQ3CowqjdGV4Xei70-ov_abk,14156
273
+ novelwriter/core/document.py,sha256=T8FlxyEMlR3t2HNE92InseWUMylWFTMnr2fP-Ge5LQc,12130
274
+ novelwriter/core/index.py,sha256=soGv-bDdAHk77ubqr1OfftGtyB1aJAJNODyfOq2nZm8,48450
275
+ novelwriter/core/item.py,sha256=0p_o3eCf8ZK30MiUR1rd1fDXb63lqNB4lHZeLMA6Wys,17635
276
+ novelwriter/core/options.py,sha256=8yAQoTkDhTCZY7EGg29Fq7Lj4n4Hd2i-Kx7TlgnausM,7372
277
+ novelwriter/core/project.py,sha256=Y94t4SS-CcO5OxV_NyB6gGw1ZjsGE6p3f4v87vO5V6w,21634
278
+ novelwriter/core/projectdata.py,sha256=bt-LDNJsM2K4VwTcyZU_V2KOUZJFRKrNXNIwbU1v3Eo,9799
279
+ novelwriter/core/projectxml.py,sha256=dbgm2ryPCOa1BFsFay-6vEK2itE8TWYRUiwCBpPp59g,22013
280
+ novelwriter/core/sessions.py,sha256=V9eBXaUMcXTZjYXR5dgi6E14COIlcLIkNwS6pDrn75U,4405
281
+ novelwriter/core/spellcheck.py,sha256=MwkRPp3MJa2X-6yRWX6Rc-sq2vLsbLnjNnyUpAbRFiE,7176
282
+ novelwriter/core/status.py,sha256=pxW43PfS8rRjsNe3N406YSMOzSxOLCV5YrPH0Tw7YqQ,11498
283
+ novelwriter/core/storage.py,sha256=cu3V1YzdUJECW_QEXj9F2991ZKfYJHbCVynmPmMmLn8,20775
284
+ novelwriter/core/tohtml.py,sha256=aDxZD6wfY2JUHzBrWd3Oxy46zL1tNbAXiWBhXzzs--M,16886
285
+ novelwriter/core/tokenizer.py,sha256=m7oHg1Iz1toEwygCuvHAJZeIXZqqmHvPBC4oT-gUCrs,44516
286
+ novelwriter/core/tomarkdown.py,sha256=sZG64PLyTjDuIxnPQVMdcMSF-obsp4C06B1dUKhlbHU,7925
287
+ novelwriter/core/toodt.py,sha256=jiP_fTlk8Oe2YHUQVBohEThzSKYAc5zeF7kfENFV_-M,61580
288
+ novelwriter/core/toqdoc.py,sha256=-idcdDTz1zVJ1TuqacVs6mf3YYLvA9lrHwpYR7I70VM,14784
289
+ novelwriter/core/tree.py,sha256=mmOB7kN0tjWda_AdT1WuZyFrewuc6uRAlqCfX6opwek,18681
290
+ novelwriter/dialogs/about.py,sha256=NRK-1XI0U8bdogDjRAFDTicblEhTxtXq7iPGhdjo5nA,4927
291
+ novelwriter/dialogs/docmerge.py,sha256=WyhU2xV2hIm9zMJZZlaloh6OnGpTvdxrrKtd2_EbrG4,6123
292
+ novelwriter/dialogs/docsplit.py,sha256=KbE0120qd8EEu7nTgPzjaZtiHP5jsFMc7IdxcT7chv0,9115
293
+ novelwriter/dialogs/editlabel.py,sha256=yo_lPnmogsasUMDKF418f4dsjvcwlzx8T_6bBy-MGHA,2938
294
+ novelwriter/dialogs/preferences.py,sha256=fPDW7y0vfpBvzTneRvqqd_FarlqE1rUMDXRzt8-Lr2s,37663
295
+ novelwriter/dialogs/projectsettings.py,sha256=nvEa47ppKwpFkCuq-pft2HSye4CqJVmkJcKo06df-cY,27638
296
+ novelwriter/dialogs/quotes.py,sha256=fmlDEoaqf1qOMJUsA5_1PXGrpJtEcVy6jGo0IGz5XUI,4678
297
+ novelwriter/dialogs/wordlist.py,sha256=Q_xqwF4OL50Dw4lcAT2uBPc-06mZeLSZuByYWfWkqJ8,8512
298
+ novelwriter/extensions/circularprogress.py,sha256=y_T92IvVEziPHE3gFhACnQVn7I5dpkhs-vqhzh0OLpE,3805
299
+ novelwriter/extensions/configlayout.py,sha256=_ihrLuwjqd0ZtuuKJjKpqzk7tuDX7o4y26cDPyAHkl8,9438
300
+ novelwriter/extensions/eventfilters.py,sha256=mTU_sMQPOEocRfvLcwQyXUpkm314tH32WsID61ss1CI,2522
301
+ novelwriter/extensions/modified.py,sha256=hXQeGh6qKdOXjH5mP7OW3nTpZCUksrATVdwyYdjjqRQ,5161
302
+ novelwriter/extensions/novelselector.py,sha256=etVtoDkHGJIP4ab__vStJQCREKYt5sWLfK1vyuO3hLI,3794
303
+ novelwriter/extensions/pagedsidebar.py,sha256=Brgl_d8KXnWWJov-sTkj9tMQu7Xrz8v7rXcnvpAaRK8,7232
304
+ novelwriter/extensions/simpleprogress.py,sha256=Zp50OlnCjO1lxDSWEBnZ6SkdRXOm4E4Qod15MFSr5N8,1807
305
+ novelwriter/extensions/statusled.py,sha256=IWLm8ZbOkICczhnCDu5_zaHrlLYcSEFFsAB_fRb6OVk,2292
306
+ novelwriter/extensions/switch.py,sha256=4kXJ3EHEhaivj1D69iBi46hkkPBGAt-Rt5EjVK3V4Aw,4299
307
+ novelwriter/extensions/switchbox.py,sha256=5tCiFWkT9WF9xh2c__BnNAJHFLw2nRso3fJZfwzDqRE,4198
308
+ novelwriter/extensions/versioninfo.py,sha256=R2_U6B678be0WNxbnhUntpxR5PnZVGf6eeyENp-S-Xo,5035
309
+ novelwriter/gui/doceditor.py,sha256=ru4Ub3-sr3awgjwp8EYlunFP6NSBfMgwFDfVoknOp-c,113245
310
+ novelwriter/gui/dochighlight.py,sha256=RXzCCx_sMr7qOT3QIsELjdRHs5mr2kKqk2geiKfmaWk,19850
311
+ novelwriter/gui/docviewer.py,sha256=9D7n-tcvEL3awQTWahui2g32RoA76M0jQLBt5q4BV3Y,31937
312
+ novelwriter/gui/docviewerpanel.py,sha256=Bh-WT2iSBqhMSxBgWKqNjJ2Erx_Y4BzsXLY_2RkMbMw,19852
313
+ novelwriter/gui/editordocument.py,sha256=5_v-gwZ9-CwJHGs7lFUGdY3paR7F1PW2FjD6_fbq5wY,4087
314
+ novelwriter/gui/itemdetails.py,sha256=0U3hghK4Vue3AwtLBRY6YJMN3vOCjatvvzXhJDn4UXo,9688
315
+ novelwriter/gui/mainmenu.py,sha256=7pLytuDutOSLbqX10PluAEW6soX4-6NuynGEv7OuSfs,38906
316
+ novelwriter/gui/noveltree.py,sha256=rAU_f6efrt5uAsew6jGqo3X3E3ggrZaoQh2prm13wD8,27635
317
+ novelwriter/gui/outline.py,sha256=qH4qdf5_gqKC4J_Uj_AQvDrE3-qaHY8cgMU7v8MuSAA,42218
318
+ novelwriter/gui/projtree.py,sha256=PQdiSbmQccWBve76plCf4Vs22LsDYdQNzh7pENL21fs,77501
319
+ novelwriter/gui/search.py,sha256=mUw9dWTDLz1Jvr9EHelqLMlFygOLpIIn1l-Jr6_0jF8,12958
320
+ novelwriter/gui/sidebar.py,sha256=jBkOinx69lwt4m1GovQ7nF44lF-g_SOk3yTT96KlbFY,6212
321
+ novelwriter/gui/statusbar.py,sha256=fmw9JZ6CyCsSQg6HyW90_Y-FQ4ahC1HIaCTTb0EHAOk,9236
322
+ novelwriter/gui/theme.py,sha256=p9TElPyPn5R_hubKZOOHi7OIbuYU6h0MYLtG0732Ag8,31807
315
323
  novelwriter/text/counting.py,sha256=tkWKWS_scPYmBG8xLpIL1KLIjyF2HOlkrloQa5PZmDc,4304
316
- novelwriter/tools/dictionaries.py,sha256=cEdkqXowPZJV9hD01EmYB6PDGsMFYwVQ7QLEt_jthOk,9308
317
- novelwriter/tools/lipsum.py,sha256=d-qdRSrXLfTkTdzi7vhjeBlWawwGwWQ9Qd_zRSwzgpQ,4901
318
- novelwriter/tools/manusbuild.py,sha256=80kRr4OfvW2lqjhLpnAWO8HiTX7Y3HSivcjT48v_KUE,14101
319
- novelwriter/tools/manuscript.py,sha256=3rPDqmOEfLNm0-b89MT8ZXGO_xKyFRj7Z97WtI8lV38,40510
320
- novelwriter/tools/manussettings.py,sha256=ak4m6cKk8NAg2OmsQJv-x8Ui-jcUtZe-RkyzotXbqRM,55747
321
- novelwriter/tools/noveldetails.py,sha256=KoENyz0hH3TlXfRCEJvRTZ0h7ruOgTIv85AgCl1Ur5o,18503
322
- novelwriter/tools/welcome.py,sha256=BxORHBPjqumEVNZC7SytE3kUasx01GMOKS5QQSagP-M,27954
323
- novelwriter/tools/writingstats.py,sha256=IubrbbLB_Qlnwp9B3muKkeD84xtckPvmTax7E4LnI5g,22797
324
- novelWriter-2.4.3.dist-info/LICENSE.md,sha256=2GirkkLrPfQqx7fACKRJjtKJUegKc8067erGvcDVQHM,32197
325
- novelWriter-2.4.3.dist-info/METADATA,sha256=_vWoqYtsHkZD7do7LnNJQ71Ha8p509_IwWVHw9M5bBY,2582
326
- novelWriter-2.4.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
327
- novelWriter-2.4.3.dist-info/entry_points.txt,sha256=YDUG1w361LtLsjD3YhxoTDTwM17JA5-nigjC6j5C74A,45
328
- novelWriter-2.4.3.dist-info/top_level.txt,sha256=wFFEucjEeNC_Ap5ULBuEutg5a1Uc0-YO9uFT5L2naNI,12
329
- novelWriter-2.4.3.dist-info/RECORD,,
324
+ novelwriter/tools/dictionaries.py,sha256=6w_RwVo0OBYEe7YJfDCCsUfaZ4j1IwVdSB5_e7rz9GA,9363
325
+ novelwriter/tools/lipsum.py,sha256=9A9Z5lFjTSIeWKH0t9TdoMyYWFVmeAjakqyOH71FmWI,4878
326
+ novelwriter/tools/manusbuild.py,sha256=BZGRvORhpliL-G8zLeuGC-ufzUMWdIUhI3FXJ1aFyIU,14061
327
+ novelwriter/tools/manuscript.py,sha256=7Aie12WhbXXvz5GxEhtj14uWMWL778pTdxzFdNIiXvo,37816
328
+ novelwriter/tools/manussettings.py,sha256=yfbeuNcJ17LlaJPFZKx5gac341f1eJWYiBcUcKD1mGk,55845
329
+ novelwriter/tools/noveldetails.py,sha256=i2Gd3pC9wFmO-wJA9T3OGcH62sGoUALolsjNkBS3rKw,18485
330
+ novelwriter/tools/welcome.py,sha256=ZrWQSfY1t3CJGKYx1C8_O2CPfDGsc3ZsHVxHtF7_eyU,27746
331
+ novelwriter/tools/writingstats.py,sha256=gorOg4PDgy5k0b4Y2J2CMhiA3aNiEDR3VHOUex1bcQc,22738
332
+ novelWriter-2.5b1.dist-info/LICENSE.md,sha256=2GirkkLrPfQqx7fACKRJjtKJUegKc8067erGvcDVQHM,32197
333
+ novelWriter-2.5b1.dist-info/METADATA,sha256=XpCwBrY8IT8upLR6jsbFp5LC_pFyYEksFXKKVpaN7Ww,2532
334
+ novelWriter-2.5b1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
335
+ novelWriter-2.5b1.dist-info/entry_points.txt,sha256=YDUG1w361LtLsjD3YhxoTDTwM17JA5-nigjC6j5C74A,45
336
+ novelWriter-2.5b1.dist-info/top_level.txt,sha256=wFFEucjEeNC_Ap5ULBuEutg5a1Uc0-YO9uFT5L2naNI,12
337
+ novelWriter-2.5b1.dist-info/RECORD,,
novelwriter/__init__.py CHANGED
@@ -32,7 +32,7 @@ from typing import TYPE_CHECKING
32
32
  from PyQt5.QtWidgets import QApplication, QErrorMessage
33
33
 
34
34
  from novelwriter.config import Config
35
- from novelwriter.error import exceptionHandler, logException
35
+ from novelwriter.error import exceptionHandler
36
36
  from novelwriter.shared import SharedData
37
37
 
38
38
  if TYPE_CHECKING: # pragma: no cover
@@ -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.4.3"
51
- __hexversion__ = "0x020403f0"
52
- __date__ = "2024-05-20"
50
+ __version__ = "2.5b1"
51
+ __hexversion__ = "0x020500b1"
52
+ __date__ = "2024-05-26"
53
53
  __status__ = "Stable"
54
54
  __domain__ = "novelwriter.io"
55
55
 
@@ -162,19 +162,19 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
162
162
  # Check Packages and Versions
163
163
  errorData = []
164
164
  errorCode = 0
165
- if sys.hexversion < 0x030800f0:
165
+ if sys.hexversion < 0x030900f0:
166
166
  errorData.append(
167
- "At least Python 3.8 is required, found %s" % CONFIG.verPyString
167
+ "At least Python 3.9 is required, found %s" % CONFIG.verPyString
168
168
  )
169
169
  errorCode |= 0x04
170
- if CONFIG.verQtValue < 0x050a00:
170
+ if CONFIG.verQtValue < 0x050f00:
171
171
  errorData.append(
172
- "At least Qt5 version 5.10 is required, found %s" % CONFIG.verQtString
172
+ "At least Qt5 version 5.15.0 is required, found %s" % CONFIG.verQtString
173
173
  )
174
174
  errorCode |= 0x08
175
- if CONFIG.verPyQtValue < 0x050a00:
175
+ if CONFIG.verPyQtValue < 0x050f00:
176
176
  errorData.append(
177
- "At least PyQt5 version 5.10 is required, found %s" % CONFIG.verPyQtString
177
+ "At least PyQt5 version 5.15.0 is required, found %s" % CONFIG.verPyQtString
178
178
  )
179
179
  errorCode |= 0x10
180
180
 
@@ -198,52 +198,46 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
198
198
  # Finish initialising config
199
199
  CONFIG.initConfig(confPath, dataPath)
200
200
 
201
- if CONFIG.osDarwin:
201
+ if sys.platform == "darwin":
202
202
  try:
203
203
  from Foundation import NSBundle # type: ignore
204
204
  bundle = NSBundle.mainBundle()
205
205
  info = bundle.localizedInfoDictionary() or bundle.infoDictionary()
206
206
  info["CFBundleName"] = "novelWriter"
207
207
  except Exception:
208
- logger.error("Failed to set application name")
209
- logException()
210
-
211
- elif CONFIG.osWindows:
208
+ pass # Quietly ignore error
209
+ elif sys.platform == "win32":
212
210
  try:
213
211
  import ctypes
214
212
  appID = f"io.novelwriter.{__version__}"
215
213
  ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(appID) # type: ignore
216
214
  except Exception:
217
- logger.error("Failed to set application name")
218
- logException()
215
+ pass # Quietly ignore error
219
216
 
220
217
  # Import GUI (after dependency checks), and launch
221
218
  from novelwriter.guimain import GuiMain
222
- if testMode:
223
- nwGUI = GuiMain()
224
- return nwGUI
225
219
 
226
- else:
227
- nwApp = QApplication([CONFIG.appName, (f"-style={qtStyle}")])
228
- nwApp.setApplicationName(CONFIG.appName)
229
- nwApp.setApplicationVersion(__version__)
230
- nwApp.setOrganizationDomain(__domain__)
231
- nwApp.setOrganizationName(__domain__)
232
- nwApp.setDesktopFileName(CONFIG.appName)
233
-
234
- # Connect the exception handler before making the main GUI
235
- sys.excepthook = exceptionHandler
220
+ if testMode:
221
+ # Only used for testing where the test framework creates the app
222
+ CONFIG.loadConfig()
223
+ return GuiMain()
236
224
 
237
- # Run Config steps that require the QApplication
238
- CONFIG.initLocalisation(nwApp)
239
- CONFIG.setTextFont(CONFIG.textFont, CONFIG.textSize) # Makes sure these are valid
225
+ app = QApplication([CONFIG.appName, (f"-style={qtStyle}")])
226
+ app.setApplicationName(CONFIG.appName)
227
+ app.setApplicationVersion(__version__)
228
+ app.setOrganizationDomain(__domain__)
229
+ app.setOrganizationName(__domain__)
230
+ app.setDesktopFileName(CONFIG.appName)
240
231
 
241
- # Launch main GUI
242
- nwGUI = GuiMain()
243
- nwGUI.postLaunchTasks(cmdOpen)
232
+ # Connect the exception handler before making the main GUI
233
+ sys.excepthook = exceptionHandler
244
234
 
245
- sys.exit(nwApp.exec())
235
+ # Run Config steps that require the QApplication
236
+ CONFIG.loadConfig()
237
+ CONFIG.initLocalisation(app)
246
238
 
247
- return None
239
+ # Launch main GUI
240
+ nwGUI = GuiMain()
241
+ nwGUI.postLaunchTasks(cmdOpen)
248
242
 
249
- # END Function main
243
+ sys.exit(app.exec())
@@ -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",
@@ -59,6 +59,7 @@ fmt_strike-md = nw_tb-strike-md.svg
59
59
  fmt_subscript = nw_tb-subscript.svg
60
60
  fmt_superscript = nw_tb-superscript.svg
61
61
  fmt_underline = nw_tb-underline.svg
62
+ font = nw_font.svg
62
63
  forward = typ_chevron-right.svg
63
64
  import = mixed_import.svg
64
65
  list = typ_th-list.svg
@@ -78,6 +79,7 @@ proj_scene = mixed_document-scene.svg
78
79
  proj_section = mixed_document-section.svg
79
80
  proj_stats = typ_chart-bar-grey.svg
80
81
  proj_title = mixed_document-title.svg
82
+ quote = nw_quote.svg
81
83
  refresh = typ_refresh.svg
82
84
  remove = typ_minus.svg
83
85
  revert = typ_refresh-flipped.svg
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="m2.5744 5.8208v-4.2853h-1.4527v-1.0064h4.1067v1.0064h-1.4527v4.2853z" fill="#aeaeae" stroke-width="1.1503"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="m1.3715 3.0659q-0.32092-0.25674-0.44928-0.44928-0.12836-0.19255-0.12837-0.44928 0-0.42361 0.28241-0.69319 0.28241-0.28241 0.68035-0.28241 0.25674 0 0.44928 0.10269 0.19255 0.089858 0.3466 0.23106 0.24391 0.4878 0.24391 1.0141 0 0.42361-0.14121 0.82157-0.12837 0.38511-0.37227 0.71886-0.23106 0.33377-0.55199 0.61618-0.30808 0.26958-0.65467 0.46213l-0.25674-0.41078q0.29525-0.21822 0.57766-0.53914 0.28241-0.33375 0.46213-0.73171zm2.7598 0q-0.32092-0.25674-0.44928-0.44928-0.12837-0.19255-0.12837-0.44928 0-0.42361 0.28241-0.69319 0.28241-0.28241 0.68035-0.28241 0.25674 0 0.44928 0.10269 0.19255 0.089858 0.3466 0.23106 0.24391 0.4878 0.24391 1.0141 0 0.42361-0.14121 0.82157-0.12837 0.38511-0.37227 0.71886-0.23106 0.33377-0.55199 0.61618-0.30808 0.26958-0.65467 0.46213l-0.25674-0.41078q0.29525-0.21822 0.57766-0.53914 0.28241-0.33375 0.46213-0.73171z" fill="#aeaeae" fill-opacity=".78039" stroke-width="1.8194"/>
4
+ </svg>
@@ -59,6 +59,7 @@ fmt_strike-md = nw_tb-strike-md.svg
59
59
  fmt_subscript = nw_tb-subscript.svg
60
60
  fmt_superscript = nw_tb-superscript.svg
61
61
  fmt_underline = nw_tb-underline.svg
62
+ font = nw_font.svg
62
63
  forward = typ_chevron-right.svg
63
64
  import = mixed_import.svg
64
65
  list = typ_th-list.svg
@@ -78,6 +79,7 @@ proj_scene = mixed_document-scene.svg
78
79
  proj_section = mixed_document-section.svg
79
80
  proj_stats = typ_chart-bar-grey.svg
80
81
  proj_title = mixed_document-title.svg
82
+ quote = nw_quote.svg
81
83
  refresh = typ_refresh.svg
82
84
  remove = typ_minus.svg
83
85
  revert = typ_refresh-flipped.svg
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="m2.5744 5.8208v-4.2853h-1.4527v-1.0064h4.1067v1.0064h-1.4527v4.2853z" fill-opacity=".78039" stroke-width="1.1503"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="m1.3715 3.0659q-0.32092-0.25674-0.44928-0.44928-0.12836-0.19255-0.12837-0.44928 0-0.42361 0.28241-0.69319 0.28241-0.28241 0.68035-0.28241 0.25674 0 0.44928 0.10269 0.19255 0.089858 0.3466 0.23106 0.24391 0.4878 0.24391 1.0141 0 0.42361-0.14121 0.82157-0.12837 0.38511-0.37227 0.71886-0.23106 0.33377-0.55199 0.61618-0.30808 0.26958-0.65467 0.46213l-0.25674-0.41078q0.29525-0.21822 0.57766-0.53914 0.28241-0.33375 0.46213-0.73171zm2.7598 0q-0.32092-0.25674-0.44928-0.44928-0.12837-0.19255-0.12837-0.44928 0-0.42361 0.28241-0.69319 0.28241-0.28241 0.68035-0.28241 0.25674 0 0.44928 0.10269 0.19255 0.089858 0.3466 0.23106 0.24391 0.4878 0.24391 1.0141 0 0.42361-0.14121 0.82157-0.12837 0.38511-0.37227 0.71886-0.23106 0.33377-0.55199 0.61618-0.30808 0.26958-0.65467 0.46213l-0.25674-0.41078q0.29525-0.21822 0.57766-0.53914 0.28241-0.33375 0.46213-0.73171z" fill-opacity=".78039" stroke-width="1.8194"/>
4
+ </svg>
Binary file
Binary file
@@ -12,15 +12,17 @@ link = 77, 077, 255
12
12
  headertext = 255, 255, 255
13
13
  headertag = 50, 0, 180
14
14
  emphasis = 0, 255, 255
15
- straightquotes = 7, 27, 219
16
- doublequotes = 0, 255, 0
17
- singlequotes = 0, 140, 255
15
+ dialog = 0, 255, 0
16
+ altdialog = 0, 140, 255
17
+ note = 150, 150, 150
18
18
  hidden = 77, 77, 100
19
19
  shortcode = 255, 255, 0
20
20
  keyword = 255, 100, 255
21
+ tag = 255, 150, 10
21
22
  value = 255, 150, 10
22
23
  spellcheckline = 242, 72, 23
23
24
  errorline = 186, 218, 4
24
25
  replacetag = 0, 0, 180
25
26
  modifier = 144, 142, 176
26
27
  optional = 180, 180, 180
28
+ texthighlight = 255, 255, 132, 96
@@ -6,23 +6,37 @@ url = https://github.com/vkbo/novelWriter
6
6
  license = CC BY-SA 4.0
7
7
  licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
8
8
 
9
+ ##
10
+ # Colours:
11
+ # Background = 2a2a2a : 42, 42, 42
12
+ # Foreground = cccccc : 204, 204, 204
13
+ # Comment = 969696 : 150, 150, 150
14
+ # Red = e64250 : 230, 66, 80
15
+ # Orange = f99157 : 249, 145, 87
16
+ # Yellow = ffff84 : 255, 255, 132
17
+ # Green = 99cc99 : 153, 204, 153
18
+ # Blue = 288ed7 : 102, 153, 204
19
+ # Purple = 8c56d7 : 140, 86, 215
20
+ ##
21
+
9
22
  [Syntax]
10
- background = 54, 54, 54
11
- text = 199, 207, 208
12
- link = 184, 200, 0
13
- headertext = 0, 155, 200
14
- headertag = 0, 105, 135
15
- emphasis = 200, 120, 0
16
- straightquotes = 200, 46, 0
17
- doublequotes = 184, 200, 0
18
- singlequotes = 136, 200, 0
23
+ background = 42, 42, 42
24
+ text = 204, 204, 204
25
+ link = 102, 153, 204
26
+ headertext = 153, 204, 153
27
+ headertag = 153, 204, 153, 160
28
+ emphasis = 249, 145, 87
29
+ dialog = 102, 153, 204
30
+ altdialog = 102, 153, 204
31
+ note = 255, 255, 216
19
32
  hidden = 150, 150, 150
20
- shortcode = 0, 155, 200
21
- keyword = 200, 46, 0
22
- value = 184, 200, 0
23
- optional = 0, 155, 200
24
- spellcheckline = 200, 46, 0
25
- errorline = 46, 200, 0
26
- replacetag = 0, 184, 46
27
- modifier = 200, 120, 0
28
- texthighlight = 136, 200, 0, 96
33
+ shortcode = 153, 204, 153
34
+ keyword = 230, 66, 80
35
+ tag = 153, 204, 153
36
+ value = 102, 153, 204
37
+ optional = 153, 204, 153
38
+ spellcheckline = 230, 66, 80
39
+ errorline = 153, 204, 153
40
+ replacetag = 153, 204, 153
41
+ modifier = 153, 204, 153
42
+ texthighlight = 255, 255, 132, 96