novelWriter 2.2b1__py3-none-any.whl → 2.2rc1__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.
- {novelWriter-2.2b1.dist-info → novelWriter-2.2rc1.dist-info}/METADATA +3 -3
- {novelWriter-2.2b1.dist-info → novelWriter-2.2rc1.dist-info}/RECORD +60 -48
- novelwriter/__init__.py +3 -3
- novelwriter/assets/i18n/project_en_GB.json +1 -0
- novelwriter/assets/icons/novelwriter.ico +0 -0
- novelwriter/assets/icons/typicons_dark/icons.conf +8 -1
- novelwriter/assets/icons/typicons_dark/nw_deco-h2-narrow.svg +4 -0
- novelwriter/assets/icons/typicons_dark/nw_deco-h3-narrow.svg +4 -0
- novelwriter/assets/icons/typicons_dark/nw_deco-h4-narrow.svg +4 -0
- novelwriter/assets/icons/typicons_dark/nw_deco-note.svg +4 -0
- novelwriter/assets/icons/typicons_dark/nw_panel.svg +4 -0
- novelwriter/assets/icons/typicons_dark/typ_eye.svg +4 -0
- novelwriter/assets/icons/typicons_light/icons.conf +8 -1
- novelwriter/assets/icons/typicons_light/nw_deco-h2-narrow.svg +4 -0
- novelwriter/assets/icons/typicons_light/nw_deco-h3-narrow.svg +4 -0
- novelwriter/assets/icons/typicons_light/nw_deco-h4-narrow.svg +4 -0
- novelwriter/assets/icons/typicons_light/nw_deco-note.svg +4 -0
- novelwriter/assets/icons/typicons_light/nw_panel.svg +4 -0
- novelwriter/assets/icons/typicons_light/typ_eye.svg +4 -0
- novelwriter/assets/icons/x-novelwriter-project.ico +0 -0
- novelwriter/assets/manual.pdf +0 -0
- novelwriter/assets/sample.zip +0 -0
- novelwriter/assets/text/release_notes.htm +4 -4
- novelwriter/common.py +22 -1
- novelwriter/config.py +12 -27
- novelwriter/constants.py +20 -3
- novelwriter/core/buildsettings.py +1 -1
- novelwriter/core/coretools.py +6 -1
- novelwriter/core/index.py +100 -34
- novelwriter/core/options.py +3 -0
- novelwriter/core/project.py +2 -2
- novelwriter/core/projectdata.py +1 -1
- novelwriter/core/tohtml.py +9 -3
- novelwriter/core/tokenizer.py +27 -20
- novelwriter/core/tomd.py +4 -0
- novelwriter/core/toodt.py +11 -4
- novelwriter/dialogs/preferences.py +80 -82
- novelwriter/dialogs/updates.py +25 -14
- novelwriter/enum.py +14 -4
- novelwriter/gui/doceditor.py +282 -177
- novelwriter/gui/dochighlight.py +7 -9
- novelwriter/gui/docviewer.py +142 -319
- novelwriter/gui/docviewerpanel.py +457 -0
- novelwriter/gui/editordocument.py +1 -1
- novelwriter/gui/mainmenu.py +16 -7
- novelwriter/gui/outline.py +10 -6
- novelwriter/gui/projtree.py +461 -376
- novelwriter/gui/sidebar.py +3 -3
- novelwriter/gui/statusbar.py +1 -1
- novelwriter/gui/theme.py +21 -2
- novelwriter/guimain.py +86 -32
- novelwriter/shared.py +23 -1
- novelwriter/tools/dictionaries.py +268 -0
- novelwriter/tools/manusbuild.py +17 -6
- novelwriter/tools/manuscript.py +1 -1
- novelwriter/tools/writingstats.py +1 -1
- novelwriter/assets/icons/typicons_dark/typ_at.svg +0 -4
- novelwriter/assets/icons/typicons_light/typ_at.svg +0 -4
- {novelWriter-2.2b1.dist-info → novelWriter-2.2rc1.dist-info}/LICENSE.md +0 -0
- {novelWriter-2.2b1.dist-info → novelWriter-2.2rc1.dist-info}/WHEEL +0 -0
- {novelWriter-2.2b1.dist-info → novelWriter-2.2rc1.dist-info}/entry_points.txt +0 -0
- {novelWriter-2.2b1.dist-info → novelWriter-2.2rc1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: novelWriter
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.2rc1
|
4
4
|
Summary: A markdown-like text editor for planning and writing novels
|
5
5
|
Home-page: https://novelwriter.io
|
6
6
|
Author: Veronica Berglyd Olsen
|
@@ -40,9 +40,9 @@ synchronisation tools. All text is saved as plain text files with a meta data he
|
|
40
40
|
project structure is stored in a single project XML file, and other meta data is primarily saved as
|
41
41
|
JSON files.
|
42
42
|
|
43
|
-
The application is written with Python 3 (3.8+) using Qt5 and PyQt5 (5.
|
43
|
+
The application is written with Python 3 (3.8+) using Qt5 and PyQt5 (5.10+). It is developed on
|
44
44
|
Linux, but should in principle work fine on other operating systems as well as long as dependencies
|
45
|
-
are met. It is regularly tested on Debian and Ubuntu Linux, Windows, and
|
45
|
+
are met. It is regularly tested on Debian and Ubuntu Linux, Windows, and MacOS.
|
46
46
|
|
47
47
|
novelWriter is developed and maintained by [Veronica Berglyd Olsen](https://github.com/vkbo).
|
48
48
|
|
@@ -1,13 +1,13 @@
|
|
1
|
-
novelwriter/__init__.py,sha256=
|
2
|
-
novelwriter/common.py,sha256=
|
3
|
-
novelwriter/config.py,sha256=
|
4
|
-
novelwriter/constants.py,sha256=
|
5
|
-
novelwriter/enum.py,sha256=
|
1
|
+
novelwriter/__init__.py,sha256=Z7kta_joip5E8xppMHYnMszF1SGclC5dmkBkFscT6Eg,7366
|
2
|
+
novelwriter/common.py,sha256=J9YAOC6Jlymn60nArjZ8K4x3ewRgzsMxGwLT3O43ZlE,18348
|
3
|
+
novelwriter/config.py,sha256=BNJiwuzvHY4bNRr3rVo4vHw71XgxVqcIdagKIt2KfMQ,34580
|
4
|
+
novelwriter/constants.py,sha256=Ugz41uRVKTlS3ATlw83Arc9ZXfx2VD2jcrbGKii15GQ,19003
|
5
|
+
novelwriter/enum.py,sha256=rslYLYDcd-6CZvaNFCApxGRvoTOQXVat8CjuWo2v_DE,3194
|
6
6
|
novelwriter/error.py,sha256=7zjvsW91F4GgHJeENXjaF0fwjG7I1MV994HPqnw-Q8Q,7125
|
7
|
-
novelwriter/guimain.py,sha256=
|
8
|
-
novelwriter/shared.py,sha256=
|
9
|
-
novelwriter/assets/manual.pdf,sha256=
|
10
|
-
novelwriter/assets/sample.zip,sha256=
|
7
|
+
novelwriter/guimain.py,sha256=KVgmBPaC1y6W8zyPsmHZWnlK1hldGJ_IzYpUOwzfY8M,57176
|
8
|
+
novelwriter/shared.py,sha256=YrP9MbDez5rI9JIGEXG4_mZmULlWH4YwxWRu6dTFJu0,12110
|
9
|
+
novelwriter/assets/manual.pdf,sha256=6pLVmT6LZfflWiveItFJRNwCXGAPSZt5P83CGsLWfhM,2065193
|
10
|
+
novelwriter/assets/sample.zip,sha256=JtPig51XDei34apZYEnVeYRdyr-u5YGGkQyhvzV7h7s,24990
|
11
11
|
novelwriter/assets/i18n/nw_de_DE.qm,sha256=Gv5bnDBWPvCIDT6AhsToQxyy7kjrgdJewUzxjaY9hTM,91303
|
12
12
|
novelwriter/assets/i18n/nw_en_US.qm,sha256=lx4O2_Q8XZbrpa2q_l5PYdQO2pZODzflgijtp-d3vu0,94288
|
13
13
|
novelwriter/assets/i18n/nw_es_419.qm,sha256=Rq4jalFWScVRH-jPn2hQHI0fFaQ7YC7hYR7YxDONAgQ,104427
|
@@ -19,7 +19,7 @@ novelwriter/assets/i18n/nw_nl_NL.qm,sha256=vyljBV5rlP5o4dmVQUj29qKRINjDlqHIYHZsi
|
|
19
19
|
novelwriter/assets/i18n/nw_pt_BR.qm,sha256=JvZ2tXyDdhlfnm25zIq13pcxbvnch5cGte44ENix3LE,103080
|
20
20
|
novelwriter/assets/i18n/nw_zh_CN.qm,sha256=CZKdeKlcqeAyKHirV9BrmZoSLpHwIJ4qF3ywSA7zQHM,61625
|
21
21
|
novelwriter/assets/i18n/project_de_DE.json,sha256=tcq7X3oSsTBx3qH--QT8fevbsaWRVz40Ix9PC5iN6kw,2775
|
22
|
-
novelwriter/assets/i18n/project_en_GB.json,sha256=
|
22
|
+
novelwriter/assets/i18n/project_en_GB.json,sha256=EcQAVEiQgRL3qobuzkPTfOWIxAc3Om-tA7nXUFFXEdI,2483
|
23
23
|
novelwriter/assets/i18n/project_en_US.json,sha256=bT6FMLywiGlsTx4pyUplKbyWzhOpopHACkG5tJ7nRso,2439
|
24
24
|
novelwriter/assets/i18n/project_es_419.json,sha256=_fJ3H7bC0Ffj5OiRuECl7fmEZGywGZ_nX4DSHy5ewVQ,2423
|
25
25
|
novelwriter/assets/i18n/project_fr_FR.json,sha256=etTyCkpNEfE37x8lOV6rHTzXC6AAXVKMXvbUtyM4Rg4,2479
|
@@ -31,12 +31,12 @@ novelwriter/assets/i18n/project_nn_NO.json,sha256=7ZfmtFWHcDMiLVqdOEDHQWHbpoC_bv
|
|
31
31
|
novelwriter/assets/i18n/project_pt_BR.json,sha256=2eZNZeGs6l8_ghbGkAziuo3ERFNZ2hxTnZtB2PR1wFY,2461
|
32
32
|
novelwriter/assets/i18n/project_ru_RU.json,sha256=F4QkD6VVDCtGdil7uoXCmuczvUpe9tv-1L-3Eyc8sKE,3699
|
33
33
|
novelwriter/assets/i18n/project_zh_CN.json,sha256=0Uzhrh7EjUllPTfJ0y0RV5WB_GXGIYBZmmHxDr9TRW4,2044
|
34
|
-
novelwriter/assets/icons/novelwriter.ico,sha256=
|
34
|
+
novelwriter/assets/icons/novelwriter.ico,sha256=OJRIeeUcmS7Di51NA3uF5_Ov4V8T47gQ9qWv6C7qDeA,171059
|
35
35
|
novelwriter/assets/icons/novelwriter.svg,sha256=Ad_SgOdXSDJtFR3DLCx6Afme15I78r38_YxCfO9F2z4,8511
|
36
|
-
novelwriter/assets/icons/x-novelwriter-project.ico,sha256=
|
36
|
+
novelwriter/assets/icons/x-novelwriter-project.ico,sha256=MXdZSYi3j95aIsT5bZo6CkhxmS75cThP9O_38UR7sjg,170697
|
37
37
|
novelwriter/assets/icons/x-novelwriter-project.svg,sha256=VHf1aClkA91tZVYb3LFk9bi_Dw25QBVSjUJAjSD-YX4,5143
|
38
38
|
novelwriter/assets/icons/typicons_dark/README.md,sha256=6ZxJq-19PNrMdeuVeVg84aLjxhr9oF7dLwuMFVGQyq0,1065
|
39
|
-
novelwriter/assets/icons/typicons_dark/icons.conf,sha256=
|
39
|
+
novelwriter/assets/icons/typicons_dark/icons.conf,sha256=vHRXnwxahIQmDr2ml_qGUN85l-NUlOxj2yc1kLiM-yA,3956
|
40
40
|
novelwriter/assets/icons/typicons_dark/mixed_document-chapter.svg,sha256=POP_Cs3bkkKAmrS_fTgjj90eyNK0bipNGgOhDDlXKu0,1650
|
41
41
|
novelwriter/assets/icons/typicons_dark/mixed_document-note.svg,sha256=OaPRbvkA7h4GA4mnFXJRORv80h2nAsJTmlIR8Msrwt8,1650
|
42
42
|
novelwriter/assets/icons/typicons_dark/mixed_document-scene.svg,sha256=9vXiKJZzzTJCfUDxGNr57IAvw2LQ7pitW7GwOOhrEN8,1647
|
@@ -49,10 +49,15 @@ novelwriter/assets/icons/typicons_dark/mixed_input-unchecked.svg,sha256=Ml28wWsp
|
|
49
49
|
novelwriter/assets/icons/typicons_dark/mixed_search-replace.svg,sha256=h2tBf_BthV5HnR9GB861PDMpIsc4OzzccuiKaUgBRAE,2163
|
50
50
|
novelwriter/assets/icons/typicons_dark/nw_deco-h0.svg,sha256=ssrqNUVY1vz4LtYE5pdINmP6qI5IZHFbokfYPzG-CTM,225
|
51
51
|
novelwriter/assets/icons/typicons_dark/nw_deco-h1.svg,sha256=nY2JYxPpGTsKCgp8pM0BdscFk6OoESNDVj53m4PMkM0,222
|
52
|
+
novelwriter/assets/icons/typicons_dark/nw_deco-h2-narrow.svg,sha256=NkZKLECgrrhPF9oI3OuZeSyuMiSN93T-qUGg2n99c_0,225
|
52
53
|
novelwriter/assets/icons/typicons_dark/nw_deco-h2.svg,sha256=Y932Dy4Z_ooeatDIkOTpOqJ4GMOTdUMKFxb5jJgo5xw,234
|
54
|
+
novelwriter/assets/icons/typicons_dark/nw_deco-h3-narrow.svg,sha256=0e0YurPmRY03zwkUwNX-a1VimOuJ0k3HT_uSI_6IbZ8,222
|
53
55
|
novelwriter/assets/icons/typicons_dark/nw_deco-h3.svg,sha256=kVfLtW7OcsZdIihfCbcSNtxpmQLWt4O6q016a19rstI,231
|
56
|
+
novelwriter/assets/icons/typicons_dark/nw_deco-h4-narrow.svg,sha256=9dksKdaZnYtJYp97b9aGzhcQM_X32eguEB5IrBo08rk,222
|
54
57
|
novelwriter/assets/icons/typicons_dark/nw_deco-h4.svg,sha256=ZQzYLzxDZS0vY-EED-4stwaPXKSdlHgUaddrTA004pc,231
|
58
|
+
novelwriter/assets/icons/typicons_dark/nw_deco-note.svg,sha256=aAsfGV-UzemXM4nUFyZ5cS57S8PnUAUvOvPVZVSqQlo,225
|
55
59
|
novelwriter/assets/icons/typicons_dark/nw_deco-noveltree-more.svg,sha256=Vt76I_GrMA0RvB0-0XTUTOgcHqgR8h4SuEIZiuspZns,314
|
60
|
+
novelwriter/assets/icons/typicons_dark/nw_panel.svg,sha256=ARAHkSVrLwsQmaEYkNU13UXegIG2Q5p6rnlKxdqAzto,912
|
56
61
|
novelwriter/assets/icons/typicons_dark/nw_search-case.svg,sha256=RTXth9FpdP83AjWpSq4-1VSOO_522dP3_MnHOJatO2w,950
|
57
62
|
novelwriter/assets/icons/typicons_dark/nw_search-preserve.svg,sha256=PSjnk3BbKXGdCOnpaIK623EJml-75gRILs2cJrqo_B4,854
|
58
63
|
novelwriter/assets/icons/typicons_dark/nw_search-regex.svg,sha256=j5u8KQD1LqwWHe7FG_fpyljN3KDWtbsrhI9Jp0eOGcw,746
|
@@ -70,7 +75,6 @@ novelwriter/assets/icons/typicons_dark/typ_arrow-forward.svg,sha256=Io2wWbs2Z0z5
|
|
70
75
|
novelwriter/assets/icons/typicons_dark/typ_arrow-maximise.svg,sha256=m4w3ZUHy3R2aTtvLKZpmd6FPijjkaG6A5jhiqfTp9mg,1029
|
71
76
|
novelwriter/assets/icons/typicons_dark/typ_arrow-minimise.svg,sha256=4XVXvgIN00s6UfHmL3jXSTu5cRjeTKH_WtbS1ZRcCuM,1135
|
72
77
|
novelwriter/assets/icons/typicons_dark/typ_arrow-repeat-grey.svg,sha256=RNhpFR1pmej9rKW-kvxHZa8zFFK3nVfdyP5NksUDDqM,1217
|
73
|
-
novelwriter/assets/icons/typicons_dark/typ_at.svg,sha256=ds2Ju9UYwAdQx7KwzjWVjb7esOgnt-PXD8I0wSulVQU,944
|
74
78
|
novelwriter/assets/icons/typicons_dark/typ_book-grey.svg,sha256=Nl-pghkCn8BG28Cga1vyVtLMDNgMDjL15Tc4s4DVz7k,807
|
75
79
|
novelwriter/assets/icons/typicons_dark/typ_book.svg,sha256=MaUaVtd_hXt6yGGj2C1UUZGqhkEUzDWL5wmByT4UE7U,1490
|
76
80
|
novelwriter/assets/icons/typicons_dark/typ_bookmark.svg,sha256=I2KqO-t22-kA4ELUYnkKLge3HHcQSH3Lw02PsWRsiq0,909
|
@@ -89,6 +93,7 @@ novelwriter/assets/icons/typicons_dark/typ_directions-full.svg,sha256=zdoD3rN51b
|
|
89
93
|
novelwriter/assets/icons/typicons_dark/typ_document-text.svg,sha256=YLIx9UGJOH-TZVFQy-9DZRVV4NcyGUSLHURfeFmoNVM,2359
|
90
94
|
novelwriter/assets/icons/typicons_dark/typ_export-grey.svg,sha256=B17RWooBQ-QdI1x9Wnc_qzU5R-QnNxLIc6cC3AFNLyc,784
|
91
95
|
novelwriter/assets/icons/typicons_dark/typ_export.svg,sha256=W0474TDm4hGFR3L1l4EI2lnrgwPbzvLF98B3qADnTOQ,772
|
96
|
+
novelwriter/assets/icons/typicons_dark/typ_eye.svg,sha256=i50mrAYP-CIA5GWVw1HoQ37fF42mOsumvdJ4QGFaFK8,872
|
92
97
|
novelwriter/assets/icons/typicons_dark/typ_flag.svg,sha256=CsL5ymuzeRoC7BihBqTSKx2Uzgiv_FVOa8sBY-fALpU,645
|
93
98
|
novelwriter/assets/icons/typicons_dark/typ_folder-open.svg,sha256=bbaKJV_iAl7eXCchQOHcvpMuqzKpob2OBpxH8Mxvwjk,873
|
94
99
|
novelwriter/assets/icons/typicons_dark/typ_folder.svg,sha256=udF27ClfcuOwwxiW3fFMla6HRgsqYxnQK_WJXyNA22o,959
|
@@ -118,7 +123,7 @@ novelwriter/assets/icons/typicons_dark/typ_trash.svg,sha256=XjO0SRcnPDrg9Qe8zR5W
|
|
118
123
|
novelwriter/assets/icons/typicons_dark/typ_user.svg,sha256=00gZEDr59B1A7A4o0w5VjCJOHnQHANsgXBhnB_VTMU4,733
|
119
124
|
novelwriter/assets/icons/typicons_dark/typ_warning-full.svg,sha256=zqqV82C37dWH_yHoSuPo-BLsErg0sl8_VlB6fzXL4VE,970
|
120
125
|
novelwriter/assets/icons/typicons_light/README.md,sha256=nyGvWLJ8cusLYP8YsjX_l213NkDE_GHrwctZ-I_JQUg,1066
|
121
|
-
novelwriter/assets/icons/typicons_light/icons.conf,sha256=
|
126
|
+
novelwriter/assets/icons/typicons_light/icons.conf,sha256=_yPksV343cSJ3qPI2rSzD4QLJ8X0e-Tb1qkiilDRsUk,3959
|
122
127
|
novelwriter/assets/icons/typicons_light/mixed_document-chapter.svg,sha256=kXNwPbeKR3eupIrqtDQrNGq5sL8vdExLfPMrMX2sEsw,1650
|
123
128
|
novelwriter/assets/icons/typicons_light/mixed_document-note.svg,sha256=XpKQ2Fj7J3I3BT9mAQkjk_A4eP7uy94vPeDBA62fOYI,1650
|
124
129
|
novelwriter/assets/icons/typicons_light/mixed_document-scene.svg,sha256=kwNPNaCJixTSpTPRFYxEHt3hVqhpwGJTCfZfu8rJvYE,1650
|
@@ -131,10 +136,15 @@ novelwriter/assets/icons/typicons_light/mixed_input-unchecked.svg,sha256=uKyenea
|
|
131
136
|
novelwriter/assets/icons/typicons_light/mixed_search-replace.svg,sha256=eGKRJPxZhtwX9qQZ-kw3UmfLBdZqovqn7GVR2g4drnQ,2169
|
132
137
|
novelwriter/assets/icons/typicons_light/nw_deco-h0.svg,sha256=ssrqNUVY1vz4LtYE5pdINmP6qI5IZHFbokfYPzG-CTM,225
|
133
138
|
novelwriter/assets/icons/typicons_light/nw_deco-h1.svg,sha256=nuzuJ9h9Lb1HpdOq6NfRKzSGlUVo53fC4TnHHpdkOu0,225
|
139
|
+
novelwriter/assets/icons/typicons_light/nw_deco-h2-narrow.svg,sha256=dkAEvmLO4DkRDe_rfRB-0L7yM7mEGj24XW1gFf3B-BA,225
|
134
140
|
novelwriter/assets/icons/typicons_light/nw_deco-h2.svg,sha256=E8TauJ4lm33Jg2fyguO30H64s_-EVpuMPQ2uAo0Ly8I,234
|
141
|
+
novelwriter/assets/icons/typicons_light/nw_deco-h3-narrow.svg,sha256=0hPf33_jESLZUpwabV3xdOnyWpBy483C-28XcJLhkF0,225
|
135
142
|
novelwriter/assets/icons/typicons_light/nw_deco-h3.svg,sha256=lezYcWdf_d0hDu3MZpSDlgxFq5zN8BeR5jHcoiU4p3c,234
|
143
|
+
novelwriter/assets/icons/typicons_light/nw_deco-h4-narrow.svg,sha256=yKz154CJ85zwE3qwmd--0jsjGMNp6j_mCcbteeyjy9c,222
|
136
144
|
novelwriter/assets/icons/typicons_light/nw_deco-h4.svg,sha256=Fr___Gtm93VfZUwORTVQ_IHXEWJ0FdSZI8KpsfbAcpM,231
|
145
|
+
novelwriter/assets/icons/typicons_light/nw_deco-note.svg,sha256=99VNGOW5qg0V6avQokkwbur3O9TTv27E94mWwSa0o1k,225
|
137
146
|
novelwriter/assets/icons/typicons_light/nw_deco-noveltree-more.svg,sha256=Vt76I_GrMA0RvB0-0XTUTOgcHqgR8h4SuEIZiuspZns,314
|
147
|
+
novelwriter/assets/icons/typicons_light/nw_panel.svg,sha256=_btLJwklPw8EzpGnEvbTjvFuFy5Fi5yT2I7fQchJ6z8,919
|
138
148
|
novelwriter/assets/icons/typicons_light/nw_search-case.svg,sha256=cU9e-bOh0vCrI_REFC38aeUmmf45oH2rVE0x-GZKsKQ,974
|
139
149
|
novelwriter/assets/icons/typicons_light/nw_search-preserve.svg,sha256=ggEvIlqfEyjxR_IzP0R0TwVXK5nTaIxyWP4TGgmpLvs,885
|
140
150
|
novelwriter/assets/icons/typicons_light/nw_search-regex.svg,sha256=uYWEIptuiwsVhp5Q30JalDsUTqfMktPosteARZbSXkI,760
|
@@ -152,7 +162,6 @@ novelwriter/assets/icons/typicons_light/typ_arrow-forward.svg,sha256=vDYZrsNe2Af
|
|
152
162
|
novelwriter/assets/icons/typicons_light/typ_arrow-maximise.svg,sha256=bz93DwuiB_2Baf-oG5SsMdWGccYogyNqR2Yq3OQ4bDY,1032
|
153
163
|
novelwriter/assets/icons/typicons_light/typ_arrow-minimise.svg,sha256=PcnZfvRheewpelAsfj_OF09a0JmB0PPuU_3Yn4buztc,1138
|
154
164
|
novelwriter/assets/icons/typicons_light/typ_arrow-repeat-grey.svg,sha256=HV86TeWDyw24qRllBsIpxn1bT2Oj74hrHJuSKfyLx_0,1224
|
155
|
-
novelwriter/assets/icons/typicons_light/typ_at.svg,sha256=O64OqPdL0TH2AA-eyDSbZDvuNJmDLtV6QV28-g8axR8,947
|
156
165
|
novelwriter/assets/icons/typicons_light/typ_book-grey.svg,sha256=T4pOeWLJxx-Z-gNPTCiIZzryHQ7efwbRcdMcL8pil-g,814
|
157
166
|
novelwriter/assets/icons/typicons_light/typ_book.svg,sha256=vRlJHH06q1982IZHCx56ouOezyVw31SJ2uogs2xUj2k,1490
|
158
167
|
novelwriter/assets/icons/typicons_light/typ_bookmark.svg,sha256=q3I2j4AsNN12OGwr2zvtFXPVmnLAMoPuKw69wW4SnrM,912
|
@@ -171,6 +180,7 @@ novelwriter/assets/icons/typicons_light/typ_directions-full.svg,sha256=U8zciM3cN
|
|
171
180
|
novelwriter/assets/icons/typicons_light/typ_document-text.svg,sha256=AckgX3ABVx5HXrpJH0IG-nKqhaaGhwtS6Vv0g-ydXR0,2262
|
172
181
|
novelwriter/assets/icons/typicons_light/typ_export-grey.svg,sha256=L9YMhoVE0L3lGa0Vlfn7KoI6eHD4gNiCD9Ou5TOLtsE,791
|
173
182
|
novelwriter/assets/icons/typicons_light/typ_export.svg,sha256=qAUqhrxBlNBrpQ6btO_30pbR2QSHWXEgGjxOMuCIAHs,775
|
183
|
+
novelwriter/assets/icons/typicons_light/typ_eye.svg,sha256=GpkDqhF_WvtdOMYbl_iI_ihFc3PJ-5FMM01wbOsrYv4,875
|
174
184
|
novelwriter/assets/icons/typicons_light/typ_flag.svg,sha256=_AKaSDc3Bp-hgTnArc_v2BuHXLegPBy1gl1gXJ_lISU,645
|
175
185
|
novelwriter/assets/icons/typicons_light/typ_folder-open.svg,sha256=ANWrMMQd6WOr1pqfzF7QBuclkHYXbnQw2qGbktBofXQ,880
|
176
186
|
novelwriter/assets/icons/typicons_light/typ_folder.svg,sha256=us9UN7ZOoxY5LrQiH7LizrKTo5XEEZRemlGuC2ZNsDk,959
|
@@ -216,43 +226,43 @@ novelwriter/assets/syntax/tomorrow_night_eighties.conf,sha256=X6uKDP14Ysy3Irmf9I
|
|
216
226
|
novelwriter/assets/text/credits_en.htm,sha256=G1xGdZ2EbhIa3gO3idywyH7C1gTnsxhyhQjw__VMKOQ,3415
|
217
227
|
novelwriter/assets/text/gplv3_en.htm,sha256=SZ3fBrGvJ5385SxMPqeJOInhI4gMrK4W5jJBUhYt83s,34517
|
218
228
|
novelwriter/assets/text/lipsum.txt,sha256=sGA6AC_p4jrUifxLxy3cSODeRwkpBNXDPGgX6YRTm2s,62937
|
219
|
-
novelwriter/assets/text/release_notes.htm,sha256=
|
229
|
+
novelwriter/assets/text/release_notes.htm,sha256=ju0_lVd_AijV6LStW7Nb-vcIfizwhAlppyoBXHNZvbQ,637
|
220
230
|
novelwriter/assets/themes/default.conf,sha256=K0LZ64lODpCtUg3pISTAP4UKvEYMvPkmIYN9RDEaWwk,72
|
221
231
|
novelwriter/assets/themes/default_dark.conf,sha256=oAYqk2l1U8zIpHRlGi0Hm4T2eWE0FfH8O7ilqaeoptw,925
|
222
232
|
novelwriter/assets/themes/default_light.conf,sha256=H1raSvgmlCl63rmcQQbx4rfqa1ZvJeRenaCv9BUrrUI,928
|
223
233
|
novelwriter/assets/themes/solarized_dark.conf,sha256=HIP9icMtRljUmMH7PmU0IrcLGUSXVDaG97070Hc0UVM,852
|
224
234
|
novelwriter/assets/themes/solarized_light.conf,sha256=jUfaCnWXM4GAOI1eUioj_nP0RiMrnr8MEOprSg7qUU4,854
|
225
235
|
novelwriter/core/__init__.py,sha256=IrBU9r8-lBnwqAD79xtpaDMortj23X-t6zQ1RIWluY4,39
|
226
|
-
novelwriter/core/buildsettings.py,sha256=
|
227
|
-
novelwriter/core/coretools.py,sha256=
|
236
|
+
novelwriter/core/buildsettings.py,sha256=_VNtLKSD7DoSY7pnVnI18V57W1uMDZyJvq7XQu8TEuQ,21134
|
237
|
+
novelwriter/core/coretools.py,sha256=jp-w8nrKrswyNkQijXnG4BQfR4Ikum1uYnkotrZ9AcE,16981
|
228
238
|
novelwriter/core/docbuild.py,sha256=J8tKRVyuxdJZzrkaMWPPiaa7THMV-mC5gMKChhiZVKo,11467
|
229
239
|
novelwriter/core/document.py,sha256=M6HVRO7bpI5f4JhHzsWBNdDVk1fd1xImS44Z1d5Wslg,11405
|
230
|
-
novelwriter/core/index.py,sha256=
|
240
|
+
novelwriter/core/index.py,sha256=9vRheMyGvZcvK1uMDuZRbZ81BEhKmEHtHCvF7v58FHQ,47007
|
231
241
|
novelwriter/core/item.py,sha256=9egKCeMpQtZOvSuTuJ-CfsT-aOKUF00wbmvZLrU-sZU,17690
|
232
|
-
novelwriter/core/options.py,sha256=
|
233
|
-
novelwriter/core/project.py,sha256=
|
234
|
-
novelwriter/core/projectdata.py,sha256=
|
242
|
+
novelwriter/core/options.py,sha256=EzPJ0G1hv7w_fUskjz-VHjY7DPwC1A9J-QgGIBDbUj4,7316
|
243
|
+
novelwriter/core/project.py,sha256=6y6DGk0khmU1mLB35BFDojDubufHDPYBmquhH3rWuFk,21873
|
244
|
+
novelwriter/core/projectdata.py,sha256=RcN1vhYtKPxeTqU-mwJ7IRRk1NaiUUY_zk5VeSPhHoc,10188
|
235
245
|
novelwriter/core/projectxml.py,sha256=i56PV_-vXEkhIjGE2peie4hvzOp1u7MrIZqNwKdDAQo,23002
|
236
246
|
novelwriter/core/sessions.py,sha256=ljF9d49-V-wRHzEqPH_Y_NxP1U5mSOv-ZYo6uj_ACV4,4393
|
237
247
|
novelwriter/core/spellcheck.py,sha256=SOQOun8qMpmDXIqOM-I8HqOYccS0M-sF67s8gnBBJjM,7142
|
238
248
|
novelwriter/core/status.py,sha256=2AD6Iigi2T0DiK0o5Yitl78SV9PusCDcEMxTAGzgcyk,8662
|
239
249
|
novelwriter/core/storage.py,sha256=TYntje53e1CqzxG5IlQgKrqKdCRnxtmBTNP7rsJcBro,19239
|
240
|
-
novelwriter/core/tohtml.py,sha256=
|
241
|
-
novelwriter/core/tokenizer.py,sha256=
|
242
|
-
novelwriter/core/tomd.py,sha256=
|
243
|
-
novelwriter/core/toodt.py,sha256=
|
250
|
+
novelwriter/core/tohtml.py,sha256=yH0_T6FCcwMohpNj0jFuVNWCT3aY0mRBYYpXjG0mpNE,17198
|
251
|
+
novelwriter/core/tokenizer.py,sha256=xadHfEh82gcE-55ZVInHm35Dg4vBoFwLsWDJL-PBVsk,30761
|
252
|
+
novelwriter/core/tomd.py,sha256=7NukmXC6n1WJr437qDIBKtmeg5SUU0OGo_Vl6Hm5HA8,7062
|
253
|
+
novelwriter/core/toodt.py,sha256=2wenEYviOzsJoVjjInXJwR_UdElCWKIXQ4DYX0NDrmI,56216
|
244
254
|
novelwriter/core/tree.py,sha256=qG8Q0gweO60CS-gkmx7RlfLiW2iOUxwCXwkpvou34ok,18549
|
245
255
|
novelwriter/dialogs/__init__.py,sha256=8a0BuN7-dtzkgPhkwX2KNq8gG2rqpyCAwI-U06KhU5Y,42
|
246
256
|
novelwriter/dialogs/about.py,sha256=4VOAy1aLO8TLGtx2QJaR6Zy05gyCz_GjJIi7Q61rEc0,8454
|
247
257
|
novelwriter/dialogs/docmerge.py,sha256=y6E-lh5Ke-Wzj3D2EhzLS_89fP7hmn3PgnW8q6iRkko,5603
|
248
258
|
novelwriter/dialogs/docsplit.py,sha256=3X8FZvrPTXXAN3kLFSfAP24Cz99uN0DBHQNgA1ULAeE,8665
|
249
259
|
novelwriter/dialogs/editlabel.py,sha256=4gaELlZVqocb0G4UoRpEhoup3ZHN9wQgKIwN23NnigE,2478
|
250
|
-
novelwriter/dialogs/preferences.py,sha256=
|
260
|
+
novelwriter/dialogs/preferences.py,sha256=LlNpPY_IPPehmQwNosFtTDK_Cm8fuyZaJPyp79fD7CA,38723
|
251
261
|
novelwriter/dialogs/projdetails.py,sha256=vHCS7uR1GHCxzmga36BJwrJMZ3bgh-mADR-xxOZhmmY,17791
|
252
262
|
novelwriter/dialogs/projload.py,sha256=OXhOSZ89CXeFY-js5JDmx7dMAlCFTbdCjE95U8nrajU,10045
|
253
263
|
novelwriter/dialogs/projsettings.py,sha256=jT4P5Sxtql9v5D0NmMz7-egZod7C_RdaS5iQ8fmUrGg,24109
|
254
264
|
novelwriter/dialogs/quotes.py,sha256=ErwylPacaqn4uuzSkoTzgOzH84psEovyYvSSgOzdW9E,4022
|
255
|
-
novelwriter/dialogs/updates.py,sha256=
|
265
|
+
novelwriter/dialogs/updates.py,sha256=dP1p0IlzsTZUuhEqRWHkCxmJ3QeODB3LW5eYGP0ogFY,5364
|
256
266
|
novelwriter/dialogs/wordlist.py,sha256=Yn67GE52sA9r0o_6sGLobSYap1rTMEBocmLTkTG0M8s,5586
|
257
267
|
novelwriter/extensions/__init__.py,sha256=ybwq7BzrU1QYw7pd-QC9iCKoB6MIh_FysriNkkHOSMo,51
|
258
268
|
novelwriter/extensions/circularprogress.py,sha256=Do1KUmLUG0U8U0xCfkCuHPB1GO1m4nfejqXDkRRvUis,3736
|
@@ -266,28 +276,30 @@ novelwriter/extensions/switch.py,sha256=auwFeTdzCjlPb1P5Xia3NzI3UMtu4Md_c0iHeoGo
|
|
266
276
|
novelwriter/extensions/switchbox.py,sha256=rpFA2DvI7Gezq0WmaaIi_2sN7gwpre8emvEMBDNwoUQ,4367
|
267
277
|
novelwriter/extensions/wheeleventfilter.py,sha256=Lt7NSYFjs1KDI760raWaI8UKQSXqAdZ2IBmNJR_nr1Y,2234
|
268
278
|
novelwriter/gui/__init__.py,sha256=8afC6rASWwWCc7KS_6s2whwTpboQt_495AvyGMLLatQ,38
|
269
|
-
novelwriter/gui/doceditor.py,sha256=
|
270
|
-
novelwriter/gui/dochighlight.py,sha256=
|
271
|
-
novelwriter/gui/docviewer.py,sha256=
|
272
|
-
novelwriter/gui/
|
279
|
+
novelwriter/gui/doceditor.py,sha256=6KHPrrmj7P9pUNyn9Ed1lCKK29h4fQFvr8P9qVQ8J_I,113913
|
280
|
+
novelwriter/gui/dochighlight.py,sha256=HoKLkMa7ELL5BYX5sg7hYCo4Yh3UYxpVNbmjnR1JQII,17436
|
281
|
+
novelwriter/gui/docviewer.py,sha256=uhxSkxGybj72K94nLe3NfbUfcBLK49XvHOF3V2z16bk,35041
|
282
|
+
novelwriter/gui/docviewerpanel.py,sha256=TYaZ7HG7eaqFomIMfMcBofRYXoGpgucS0f2N-Bn-46Y,16316
|
283
|
+
novelwriter/gui/editordocument.py,sha256=cd5dudLOQgGqb7OEjvmQXUn7luxqCkHuTu7Yt8fHEt8,3608
|
273
284
|
novelwriter/gui/itemdetails.py,sha256=3OmdR37sXBCUK7jpkzRHDuqbdCu949UT-8P0wJdnMa4,9826
|
274
|
-
novelwriter/gui/mainmenu.py,sha256=
|
285
|
+
novelwriter/gui/mainmenu.py,sha256=2V-AP4gXeyyxYgFASXHp7wQg0LjsY6DpesUUf2VFx54,38017
|
275
286
|
novelwriter/gui/noveltree.py,sha256=fpGw5fKRhzO8OhiRGl1T3xfYkIVWgpUeckBaIEjTFWs,28174
|
276
|
-
novelwriter/gui/outline.py,sha256=
|
277
|
-
novelwriter/gui/projtree.py,sha256
|
278
|
-
novelwriter/gui/sidebar.py,sha256=
|
279
|
-
novelwriter/gui/statusbar.py,sha256=
|
280
|
-
novelwriter/gui/theme.py,sha256=
|
287
|
+
novelwriter/gui/outline.py,sha256=U7yUDCmn3ElhdbomXpl48jHwc4WV7U8SmFKxbzRtJ7A,39956
|
288
|
+
novelwriter/gui/projtree.py,sha256=8UzVJcQ-jibidA4KEiYkSk7z1RN_hbj4L8Rj056jz-M,73389
|
289
|
+
novelwriter/gui/sidebar.py,sha256=a5nV56qbuWD9uXlMHsQhW2HwNHUtyVDVwMai4SZeH38,6493
|
290
|
+
novelwriter/gui/statusbar.py,sha256=0mBqExQATsDiWhx64TYjg3LhypB8zwUmiZJvIMGf0qA,7795
|
291
|
+
novelwriter/gui/theme.py,sha256=2BxMYVhtxzLhUn8pGY1MVLnyWwpHd9OEytRsGLMJ_Ik,29480
|
281
292
|
novelwriter/tools/__init__.py,sha256=1MVOieA7WQw_xjH7d944hko81I4OM7gPAdSomN8zz3M,40
|
293
|
+
novelwriter/tools/dictionaries.py,sha256=ul7fyOJOULi0bnUMmYt1VQrjm_T3PU673DL2Ny6_LNo,9154
|
282
294
|
novelwriter/tools/lipsum.py,sha256=eeYNIHpQDgIv-aQI6gEFh6RDjapyhoT-vL0fW79Qj9c,4478
|
283
|
-
novelwriter/tools/manusbuild.py,sha256=
|
284
|
-
novelwriter/tools/manuscript.py,sha256=
|
295
|
+
novelwriter/tools/manusbuild.py,sha256=B6rYxQmfpzwQCCY2fIymZyeK-4YK44R_H6J48YNQnVI,13776
|
296
|
+
novelwriter/tools/manuscript.py,sha256=BDsy6OUkZgBpj9VzBoHQ7KEFjGfAUmPkU0lK0oLKjqA,29778
|
285
297
|
novelwriter/tools/manussettings.py,sha256=bLdRrX4B-ZqmEAvmiRoNbEEzat499CwONcS5eVXIfT4,48986
|
286
298
|
novelwriter/tools/projwizard.py,sha256=nnH71IEwiws7bxxFbYIvqqh5kD53Hr2nYhv3AfVPqOU,16408
|
287
|
-
novelwriter/tools/writingstats.py,sha256=
|
288
|
-
novelWriter-2.
|
289
|
-
novelWriter-2.
|
290
|
-
novelWriter-2.
|
291
|
-
novelWriter-2.
|
292
|
-
novelWriter-2.
|
293
|
-
novelWriter-2.
|
299
|
+
novelwriter/tools/writingstats.py,sha256=RAZ-Vbh9rbprsj2Z2kIPK8HSLZwU5_WZ0rDoAidsj7c,22299
|
300
|
+
novelWriter-2.2rc1.dist-info/LICENSE.md,sha256=2GirkkLrPfQqx7fACKRJjtKJUegKc8067erGvcDVQHM,32197
|
301
|
+
novelWriter-2.2rc1.dist-info/METADATA,sha256=-DpoCjaQvZM6EmYffzusBV6tA9lPTmGUPVD65fPAsT8,2583
|
302
|
+
novelWriter-2.2rc1.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
|
303
|
+
novelWriter-2.2rc1.dist-info/entry_points.txt,sha256=lN-EspQDlSi_RtYp_OVKtyRsbwZEjPuaux0DK_9i3Ts,98
|
304
|
+
novelWriter-2.2rc1.dist-info/top_level.txt,sha256=wFFEucjEeNC_Ap5ULBuEutg5a1Uc0-YO9uFT5L2naNI,12
|
305
|
+
novelWriter-2.2rc1.dist-info/RECORD,,
|
novelwriter/__init__.py
CHANGED
@@ -42,9 +42,9 @@ __license__ = "GPLv3"
|
|
42
42
|
__author__ = "Veronica Berglyd Olsen"
|
43
43
|
__maintainer__ = "Veronica Berglyd Olsen"
|
44
44
|
__email__ = "code@vkbo.net"
|
45
|
-
__version__ = "2.2-
|
46
|
-
__hexversion__ = "
|
47
|
-
__date__ = "2023-11-
|
45
|
+
__version__ = "2.2-rc1"
|
46
|
+
__hexversion__ = "0x020200c1"
|
47
|
+
__date__ = "2023-11-26"
|
48
48
|
__status__ = "Stable"
|
49
49
|
__domain__ = "novelwriter.io"
|
50
50
|
|
Binary file
|
@@ -59,6 +59,7 @@ maximise = typ_arrow-maximise.svg
|
|
59
59
|
menu = typ_th-dot-menu.svg
|
60
60
|
minimise = typ_arrow-minimise.svg
|
61
61
|
noncheckable = mixed_input-none.svg
|
62
|
+
panel = nw_panel.svg
|
62
63
|
proj_chapter = mixed_document-chapter.svg
|
63
64
|
proj_details = typ_th-list-grey.svg
|
64
65
|
proj_document = typ_document-text.svg
|
@@ -68,7 +69,6 @@ proj_scene = mixed_document-scene.svg
|
|
68
69
|
proj_section = mixed_document-section.svg
|
69
70
|
proj_stats = typ_chart-bar-grey.svg
|
70
71
|
proj_title = mixed_document-title.svg
|
71
|
-
reference = typ_at.svg
|
72
72
|
refresh = typ_refresh.svg
|
73
73
|
remove = typ_minus.svg
|
74
74
|
revert = typ_refresh-flipped.svg
|
@@ -91,14 +91,21 @@ sticky-off = typ_pin-outline.svg
|
|
91
91
|
sticky-on = typ_pin.svg
|
92
92
|
unchecked = mixed_input-unchecked.svg
|
93
93
|
up = typ_chevron-up.svg
|
94
|
+
view = typ_eye.svg
|
94
95
|
view_build = typ_export-grey.svg
|
95
96
|
view_editor = mixed_edit.svg
|
96
97
|
view_novel = typ_book-grey.svg
|
97
98
|
view_outline = typ_puzzle-outline.svg
|
98
99
|
|
99
100
|
deco_doc_h0 = nw_deco-h0.svg
|
101
|
+
deco_doc_h0_n = nw_deco-h0.svg
|
100
102
|
deco_doc_h1 = nw_deco-h1.svg
|
103
|
+
deco_doc_h1_n = nw_deco-h1.svg
|
101
104
|
deco_doc_h2 = nw_deco-h2.svg
|
105
|
+
deco_doc_h2_n = nw_deco-h2-narrow.svg
|
102
106
|
deco_doc_h3 = nw_deco-h3.svg
|
107
|
+
deco_doc_h3_n = nw_deco-h3-narrow.svg
|
103
108
|
deco_doc_h4 = nw_deco-h4.svg
|
109
|
+
deco_doc_h4_n = nw_deco-h4-narrow.svg
|
104
110
|
deco_doc_more = nw_deco-noveltree-more.svg
|
111
|
+
deco_doc_nt_n = nw_deco-note.svg
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
3
|
+
<path d="m17.853 2.0017c-0.14248-0.00428-0.28548-1.936e-4 -0.42925 0.01171h-11.135c-2.3531-0.068148-4.4276 2.1102-4.2808 4.4518 0.00689 3.8473-0.014486 7.6959 0.00976 11.542 0.12963 2.1674 2.0751 4.0505 4.2711 3.9912 3.8794-0.0037 7.7592 0.0071 11.639-0.0059 2.3157-0.05864 4.2507-2.2581 4.0603-4.5591-0.0037-3.7862 0.0071-7.5728-0.0059-11.359-0.054966-2.1716-1.9914-4.0089-4.1286-4.0732zm-11.533 2.8514c0.10262-0.00515 0.20595 1.374e-4 0.30828 0.015613 2.2719-0.00131 4.5437 0.0026 6.8153-0.00195 1.5163 0.01818 3.0369-0.036922 4.5501 0.029275 0.83106 0.14317 1.246 1.0195 1.1395 1.7956-0.0023 1.7714-9.95e-4 3.543 0 5.3144h-14.271c-9.495e-4 -1.9468-0.0019-3.8929 0.00585-5.8394 0.049778-0.75434 0.73334-1.2775 1.4517-1.3135z" fill="#848484" stroke-width=".99912"/>
|
4
|
+
</svg>
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
3
|
+
<path d="m22.803 11.373c-0.0913-0.1309-2.2682-3.2384-5.2724-5.3626-1.5576-1.1033-3.5222-1.7105-5.5309-1.7105-2.0075 0-3.9721 0.60721-5.5331 1.7105-3.0041 2.1241-5.1789 5.2317-5.2702 5.3626-0.2618 0.3773-0.2618 0.87781 0 1.2551 0.091301 0.1309 2.266 3.2384 5.2702 5.3626 1.5609 1.1022 3.5255 1.7094 5.5331 1.7094 2.0086 0 3.9732-0.60721 5.5309-1.7105 3.0041-2.1241 5.1811-5.2317 5.2724-5.3626 0.2629-0.3762 0.2629-0.87781 0-1.254zm-10.803 4.4771c-2.1274 0-3.85-1.727-3.85-3.85 0-2.1274 1.7226-3.85 3.85-3.85 2.123 0 3.85 1.7226 3.85 3.85 0 2.123-1.727 3.85-3.85 3.85zm2.2-3.85c0 1.2122-0.98781 2.2-2.2 2.2-1.2155 0-2.2-0.98781-2.2-2.2 0-1.2155 0.98451-2.2 2.2-2.2 1.2122 0 2.2 0.98451 2.2 2.2z" fill="#69c" stroke-width="1.1"/>
|
4
|
+
</svg>
|
@@ -59,6 +59,7 @@ maximise = typ_arrow-maximise.svg
|
|
59
59
|
menu = typ_th-dot-menu.svg
|
60
60
|
minimise = typ_arrow-minimise.svg
|
61
61
|
noncheckable = mixed_input-none.svg
|
62
|
+
panel = nw_panel.svg
|
62
63
|
proj_chapter = mixed_document-chapter.svg
|
63
64
|
proj_details = typ_th-list-grey.svg
|
64
65
|
proj_document = typ_document-text.svg
|
@@ -68,7 +69,6 @@ proj_scene = mixed_document-scene.svg
|
|
68
69
|
proj_section = mixed_document-section.svg
|
69
70
|
proj_stats = typ_chart-bar-grey.svg
|
70
71
|
proj_title = mixed_document-title.svg
|
71
|
-
reference = typ_at.svg
|
72
72
|
refresh = typ_refresh.svg
|
73
73
|
remove = typ_minus.svg
|
74
74
|
revert = typ_refresh-flipped.svg
|
@@ -91,14 +91,21 @@ sticky-off = typ_pin-outline.svg
|
|
91
91
|
sticky-on = typ_pin.svg
|
92
92
|
unchecked = mixed_input-unchecked.svg
|
93
93
|
up = typ_chevron-up.svg
|
94
|
+
view = typ_eye.svg
|
94
95
|
view_build = typ_export-grey.svg
|
95
96
|
view_editor = mixed_edit.svg
|
96
97
|
view_novel = typ_book-grey.svg
|
97
98
|
view_outline = typ_puzzle-outline.svg
|
98
99
|
|
99
100
|
deco_doc_h0 = nw_deco-h0.svg
|
101
|
+
deco_doc_h0_n = nw_deco-h0.svg
|
100
102
|
deco_doc_h1 = nw_deco-h1.svg
|
103
|
+
deco_doc_h1_n = nw_deco-h1.svg
|
101
104
|
deco_doc_h2 = nw_deco-h2.svg
|
105
|
+
deco_doc_h2_n = nw_deco-h2-narrow.svg
|
102
106
|
deco_doc_h3 = nw_deco-h3.svg
|
107
|
+
deco_doc_h3_n = nw_deco-h3-narrow.svg
|
103
108
|
deco_doc_h4 = nw_deco-h4.svg
|
109
|
+
deco_doc_h4_n = nw_deco-h4-narrow.svg
|
104
110
|
deco_doc_more = nw_deco-noveltree-more.svg
|
111
|
+
deco_doc_nt_n = nw_deco-note.svg
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
3
|
+
<path d="m17.853 2.0017c-0.14248-0.00428-0.28548-1.936e-4 -0.42925 0.01171h-11.135c-2.3531-0.068148-4.4276 2.1102-4.2808 4.4518 0.00689 3.8473-0.014486 7.6959 0.00976 11.542 0.12963 2.1674 2.0751 4.0505 4.2711 3.9912 3.8794-0.0037 7.7592 0.0071 11.639-0.0059 2.3157-0.05864 4.2507-2.2581 4.0603-4.5591-0.0037-3.7862 0.0071-7.5728-0.0059-11.359-0.054966-2.1716-1.9914-4.0089-4.1286-4.0732zm-11.533 2.8514c0.10262-0.00515 0.20595 1.374e-4 0.30828 0.015613 2.2719-0.00131 4.5437 0.0026 6.8153-0.00195 1.5163 0.01818 3.0369-0.036922 4.5501 0.029275 0.83106 0.14317 1.246 1.0195 1.1395 1.7956-0.0023 1.7714-9.95e-4 3.543 0 5.3144h-14.271c-9.495e-4 -1.9468-0.0019-3.8929 0.00585-5.8394 0.049778-0.75434 0.73334-1.2775 1.4517-1.3135z" fill-opacity=".78039" stroke-width=".99912"/>
|
4
|
+
</svg>
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
3
|
+
<path d="m22.803 11.373c-0.0913-0.1309-2.2682-3.2384-5.2724-5.3626-1.5576-1.1033-3.5222-1.7105-5.5309-1.7105-2.0075 0-3.9721 0.60721-5.5331 1.7105-3.0041 2.1241-5.1789 5.2317-5.2702 5.3626-0.2618 0.3773-0.2618 0.87781 0 1.2551 0.091301 0.1309 2.266 3.2384 5.2702 5.3626 1.5609 1.1022 3.5255 1.7094 5.5331 1.7094 2.0086 0 3.9732-0.60721 5.5309-1.7105 3.0041-2.1241 5.1811-5.2317 5.2724-5.3626 0.2629-0.3762 0.2629-0.87781 0-1.254zm-10.803 4.4771c-2.1274 0-3.85-1.727-3.85-3.85 0-2.1274 1.7226-3.85 3.85-3.85 2.123 0 3.85 1.7226 3.85 3.85 0 2.123-1.727 3.85-3.85 3.85zm2.2-3.85c0 1.2122-0.98781 2.2-2.2 2.2-1.2155 0-2.2-0.98781-2.2-2.2 0-1.2155 0.98451-2.2 2.2-2.2 1.2122 0 2.2 0.98451 2.2 2.2z" fill="#4271ae" stroke-width="1.1"/>
|
4
|
+
</svg>
|
Binary file
|
novelwriter/assets/manual.pdf
CHANGED
Binary file
|
novelwriter/assets/sample.zip
CHANGED
Binary file
|
@@ -2,11 +2,11 @@
|
|
2
2
|
<html>
|
3
3
|
<body>
|
4
4
|
|
5
|
-
<h2>Release Notes for 2.2
|
6
|
-
<p><i>Released on
|
5
|
+
<h2>Release Notes for 2.2 RC 1</h2>
|
6
|
+
<p><i>Released on 26 November 2023</i></p>
|
7
7
|
|
8
|
-
<p>This is a
|
9
|
-
be careful when using this version on live writing projects, and make sure you take frequent
|
8
|
+
<p>This is a release candidate of the next release version, and is intended for testing purposes.
|
9
|
+
Please be careful when using this version on live writing projects, and make sure you take frequent
|
10
10
|
backups.</p>
|
11
11
|
<p>Please check the changelog for an overview of changes. The full release notes will be added to
|
12
12
|
the final release.</p>
|
novelwriter/common.py
CHANGED
@@ -33,8 +33,11 @@ from typing import Any, Literal
|
|
33
33
|
from pathlib import Path
|
34
34
|
from datetime import datetime
|
35
35
|
from configparser import ConfigParser
|
36
|
+
from urllib.parse import urljoin
|
37
|
+
from urllib.request import pathname2url
|
36
38
|
|
37
|
-
from PyQt5.
|
39
|
+
from PyQt5.QtGui import QDesktopServices
|
40
|
+
from PyQt5.QtCore import QCoreApplication, QUrl
|
38
41
|
from PyQt5.QtWidgets import QWidget, qApp
|
39
42
|
|
40
43
|
from novelwriter.enum import nwItemClass, nwItemType, nwItemLayout
|
@@ -487,6 +490,24 @@ def makeFileNameSafe(text: str) -> str:
|
|
487
490
|
return "".join(c for c in text if c.isalnum() or c in allowed)
|
488
491
|
|
489
492
|
|
493
|
+
def getFileSize(path: Path) -> int:
|
494
|
+
"""Return the size of a file."""
|
495
|
+
try:
|
496
|
+
return path.stat().st_size
|
497
|
+
except Exception:
|
498
|
+
return -1
|
499
|
+
|
500
|
+
|
501
|
+
def openExternalPath(path: Path) -> bool:
|
502
|
+
"""Open a path by passing it to the desktop environment."""
|
503
|
+
if Path(path).exists():
|
504
|
+
QDesktopServices.openUrl(
|
505
|
+
QUrl(urljoin("file:", pathname2url(str(path))))
|
506
|
+
)
|
507
|
+
return True
|
508
|
+
return False
|
509
|
+
|
510
|
+
|
490
511
|
# =============================================================================================== #
|
491
512
|
# Other Functions
|
492
513
|
# =============================================================================================== #
|
novelwriter/config.py
CHANGED
@@ -148,6 +148,7 @@ class Config:
|
|
148
148
|
|
149
149
|
self.autoScroll = False # Typewriter-like scrolling
|
150
150
|
self.autoScrollPos = 30 # Start point for typewriter-like scrolling
|
151
|
+
self.scrollPastEnd = True # Scroll past end of document, and centre cursor
|
151
152
|
|
152
153
|
self.wordCountTimer = 5.0 # Interval for word count update in seconds
|
153
154
|
self.incNotesWCount = True # The status bar word count includes notes
|
@@ -178,9 +179,9 @@ class Config:
|
|
178
179
|
self.spellLanguage = "en"
|
179
180
|
|
180
181
|
# State
|
181
|
-
self.
|
182
|
+
self.showViewerPanel = True # The panel for the viewer is visible
|
182
183
|
self.showEditToolBar = False # The document editor toolbar visibility
|
183
|
-
self.useShortcodes = False # Use
|
184
|
+
self.useShortcodes = False # Use shortcodes for basic formatting
|
184
185
|
self.viewComments = True # Comments are shown in the viewer
|
185
186
|
self.viewSynopsis = True # Synopsis is shown in the viewer
|
186
187
|
|
@@ -224,6 +225,7 @@ class Config:
|
|
224
225
|
# Other System Info
|
225
226
|
self.hostName = QSysInfo.machineHostName()
|
226
227
|
self.kernelVer = QSysInfo.kernelVersion()
|
228
|
+
self.isDebug = False
|
227
229
|
|
228
230
|
# Packages
|
229
231
|
self.hasEnchant = False # The pyenchant package
|
@@ -391,8 +393,7 @@ class Config:
|
|
391
393
|
return self._appPath / "assets"
|
392
394
|
|
393
395
|
def lastPath(self) -> Path:
|
394
|
-
"""Return the last path used by the user,
|
395
|
-
"""
|
396
|
+
"""Return the last path used by the user, if it exists."""
|
396
397
|
if isinstance(self._lastPath, Path):
|
397
398
|
if self._lastPath.is_dir():
|
398
399
|
return self._lastPath
|
@@ -400,9 +401,8 @@ class Config:
|
|
400
401
|
|
401
402
|
def backupPath(self) -> Path:
|
402
403
|
"""Return the backup path."""
|
403
|
-
if isinstance(self._backupPath, Path):
|
404
|
-
|
405
|
-
return self._backupPath
|
404
|
+
if isinstance(self._backupPath, Path) and self._backupPath.is_dir():
|
405
|
+
return self._backupPath
|
406
406
|
return self._backPath
|
407
407
|
|
408
408
|
def errorText(self) -> str:
|
@@ -485,6 +485,7 @@ class Config:
|
|
485
485
|
|
486
486
|
self._recentObj.loadCache()
|
487
487
|
self._checkOptionalPackages()
|
488
|
+
self.isDebug = logger.getEffectiveLevel() == logging.DEBUG
|
488
489
|
|
489
490
|
logger.debug("Config instance initialised")
|
490
491
|
|
@@ -577,6 +578,7 @@ class Config:
|
|
577
578
|
self.doReplaceDots = conf.rdBool(sec, "repdots", self.doReplaceDots)
|
578
579
|
self.autoScroll = conf.rdBool(sec, "autoscroll", self.autoScroll)
|
579
580
|
self.autoScrollPos = conf.rdInt(sec, "autoscrollpos", self.autoScrollPos)
|
581
|
+
self.scrollPastEnd = conf.rdBool(sec, "scrollpastend", self.scrollPastEnd)
|
580
582
|
self.fmtSQuoteOpen = conf.rdStr(sec, "fmtsquoteopen", self.fmtSQuoteOpen)
|
581
583
|
self.fmtSQuoteClose = conf.rdStr(sec, "fmtsquoteclose", self.fmtSQuoteClose)
|
582
584
|
self.fmtDQuoteOpen = conf.rdStr(sec, "fmtdquoteopen", self.fmtDQuoteOpen)
|
@@ -600,7 +602,7 @@ class Config:
|
|
600
602
|
|
601
603
|
# State
|
602
604
|
sec = "State"
|
603
|
-
self.
|
605
|
+
self.showViewerPanel = conf.rdBool(sec, "showviewerpanel", self.showViewerPanel)
|
604
606
|
self.showEditToolBar = conf.rdBool(sec, "showedittoolbar", self.showEditToolBar)
|
605
607
|
self.useShortcodes = conf.rdBool(sec, "useshortcodes", self.useShortcodes)
|
606
608
|
self.viewComments = conf.rdBool(sec, "viewcomments", self.viewComments)
|
@@ -612,24 +614,6 @@ class Config:
|
|
612
614
|
self.searchNextFile = conf.rdBool(sec, "searchnextfile", self.searchNextFile)
|
613
615
|
self.searchMatchCap = conf.rdBool(sec, "searchmatchcap", self.searchMatchCap)
|
614
616
|
|
615
|
-
# Deprecated Settings or Locations as of 2.0
|
616
|
-
# ToDo: These will be loaded for a few minor releases until the users have converted them
|
617
|
-
self.guiFont = conf.rdStr("Main", "guifont", self.guiFont)
|
618
|
-
self.guiFontSize = conf.rdInt("Main", "guifontsize", self.guiFontSize)
|
619
|
-
self.guiLocale = conf.rdStr("Main", "guilang", self.guiLocale)
|
620
|
-
self._backupPath = conf.rdPath("Backup", "backuppath", self._backupPath)
|
621
|
-
self.backupOnClose = conf.rdBool("Backup", "backuponclose", self.backupOnClose)
|
622
|
-
self.askBeforeBackup = conf.rdBool("Backup", "askbeforebackup", self.askBeforeBackup)
|
623
|
-
fmtSingleQuotes = conf.rdStrList(sec, "fmtsinglequote", [])
|
624
|
-
fmtDoubleQuotes = conf.rdStrList(sec, "fmtdoublequote", [])
|
625
|
-
|
626
|
-
if isinstance(fmtSingleQuotes, list) and len(fmtSingleQuotes) == 2:
|
627
|
-
self.fmtSQuoteOpen = fmtSingleQuotes[0]
|
628
|
-
self.fmtSQuoteClose = fmtSingleQuotes[1]
|
629
|
-
if isinstance(fmtDoubleQuotes, list) and len(fmtDoubleQuotes) == 2:
|
630
|
-
self.fmtDQuoteOpen = fmtDoubleQuotes[0]
|
631
|
-
self.fmtDQuoteClose = fmtDoubleQuotes[1]
|
632
|
-
|
633
617
|
# Check Values
|
634
618
|
# ============
|
635
619
|
|
@@ -701,6 +685,7 @@ class Config:
|
|
701
685
|
"repdots": str(self.doReplaceDots),
|
702
686
|
"autoscroll": str(self.autoScroll),
|
703
687
|
"autoscrollpos": str(self.autoScrollPos),
|
688
|
+
"scrollpastend": str(self.scrollPastEnd),
|
704
689
|
"fmtsquoteopen": str(self.fmtSQuoteOpen),
|
705
690
|
"fmtsquoteclose": str(self.fmtSQuoteClose),
|
706
691
|
"fmtdquoteopen": str(self.fmtDQuoteOpen),
|
@@ -724,7 +709,7 @@ class Config:
|
|
724
709
|
}
|
725
710
|
|
726
711
|
conf["State"] = {
|
727
|
-
"
|
712
|
+
"showviewerpanel": str(self.showViewerPanel),
|
728
713
|
"showedittoolbar": str(self.showEditToolBar),
|
729
714
|
"useshortcodes": str(self.useShortcodes),
|
730
715
|
"viewcomments": str(self.viewComments),
|