novelWriter 2.6b1__py3-none-any.whl → 2.6rc1__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.6b1.dist-info → novelWriter-2.6rc1.dist-info}/METADATA +4 -4
- {novelWriter-2.6b1.dist-info → novelWriter-2.6rc1.dist-info}/RECORD +114 -98
- {novelWriter-2.6b1.dist-info → novelWriter-2.6rc1.dist-info}/WHEEL +1 -1
- novelwriter/__init__.py +50 -11
- novelwriter/assets/i18n/nw_de_DE.qm +0 -0
- novelwriter/assets/i18n/nw_en_US.qm +0 -0
- novelwriter/assets/i18n/nw_es_419.qm +0 -0
- novelwriter/assets/i18n/nw_fr_FR.qm +0 -0
- novelwriter/assets/i18n/nw_it_IT.qm +0 -0
- novelwriter/assets/i18n/nw_ja_JP.qm +0 -0
- novelwriter/assets/i18n/nw_nb_NO.qm +0 -0
- novelwriter/assets/i18n/nw_nl_NL.qm +0 -0
- novelwriter/assets/i18n/nw_pl_PL.qm +0 -0
- novelwriter/assets/i18n/nw_pt_BR.qm +0 -0
- novelwriter/assets/i18n/nw_ru_RU.qm +0 -0
- novelwriter/assets/i18n/nw_zh_CN.qm +0 -0
- novelwriter/assets/i18n/project_de_DE.json +2 -2
- novelwriter/assets/i18n/project_ru_RU.json +11 -0
- novelwriter/assets/icons/typicons_dark/icons.conf +7 -0
- novelwriter/assets/icons/typicons_dark/mixed_margin-bottom.svg +6 -0
- novelwriter/assets/icons/typicons_dark/mixed_margin-left.svg +6 -0
- novelwriter/assets/icons/typicons_dark/mixed_margin-right.svg +6 -0
- novelwriter/assets/icons/typicons_dark/mixed_margin-top.svg +6 -0
- novelwriter/assets/icons/typicons_dark/mixed_size-height.svg +6 -0
- novelwriter/assets/icons/typicons_dark/mixed_size-width.svg +6 -0
- novelwriter/assets/icons/typicons_dark/nw_toolbar.svg +5 -0
- novelwriter/assets/icons/typicons_light/icons.conf +7 -0
- novelwriter/assets/icons/typicons_light/mixed_margin-bottom.svg +6 -0
- novelwriter/assets/icons/typicons_light/mixed_margin-left.svg +6 -0
- novelwriter/assets/icons/typicons_light/mixed_margin-right.svg +6 -0
- novelwriter/assets/icons/typicons_light/mixed_margin-top.svg +6 -0
- novelwriter/assets/icons/typicons_light/mixed_size-height.svg +6 -0
- novelwriter/assets/icons/typicons_light/mixed_size-width.svg +6 -0
- novelwriter/assets/icons/typicons_light/nw_toolbar.svg +5 -0
- novelwriter/assets/manual.pdf +0 -0
- novelwriter/assets/sample.zip +0 -0
- novelwriter/assets/text/credits_en.htm +1 -0
- novelwriter/common.py +38 -3
- novelwriter/config.py +19 -13
- novelwriter/constants.py +60 -45
- novelwriter/core/buildsettings.py +1 -1
- novelwriter/core/coretools.py +112 -126
- novelwriter/core/docbuild.py +4 -3
- novelwriter/core/document.py +1 -1
- novelwriter/core/index.py +10 -20
- novelwriter/core/item.py +40 -7
- novelwriter/core/itemmodel.py +518 -0
- novelwriter/core/options.py +1 -1
- novelwriter/core/project.py +68 -90
- novelwriter/core/projectdata.py +8 -2
- novelwriter/core/projectxml.py +1 -1
- novelwriter/core/sessions.py +1 -1
- novelwriter/core/spellcheck.py +1 -1
- novelwriter/core/status.py +24 -8
- novelwriter/core/storage.py +1 -1
- novelwriter/core/tree.py +269 -288
- novelwriter/dialogs/about.py +1 -1
- novelwriter/dialogs/docmerge.py +8 -18
- novelwriter/dialogs/docsplit.py +1 -1
- novelwriter/dialogs/editlabel.py +1 -1
- novelwriter/dialogs/preferences.py +4 -4
- novelwriter/dialogs/projectsettings.py +148 -98
- novelwriter/dialogs/quotes.py +1 -1
- novelwriter/dialogs/wordlist.py +11 -10
- novelwriter/enum.py +8 -1
- novelwriter/error.py +2 -2
- novelwriter/extensions/configlayout.py +7 -5
- novelwriter/extensions/eventfilters.py +1 -1
- novelwriter/extensions/modified.py +17 -5
- novelwriter/extensions/novelselector.py +1 -1
- novelwriter/extensions/pagedsidebar.py +4 -4
- novelwriter/extensions/progressbars.py +4 -4
- novelwriter/extensions/statusled.py +3 -3
- novelwriter/extensions/switch.py +3 -3
- novelwriter/extensions/switchbox.py +1 -1
- novelwriter/extensions/versioninfo.py +1 -1
- novelwriter/formats/shared.py +1 -1
- novelwriter/formats/todocx.py +35 -39
- novelwriter/formats/tohtml.py +15 -16
- novelwriter/formats/tokenizer.py +26 -22
- novelwriter/formats/tomarkdown.py +1 -1
- novelwriter/formats/toodt.py +54 -125
- novelwriter/formats/toqdoc.py +93 -45
- novelwriter/formats/toraw.py +1 -1
- novelwriter/gui/doceditor.py +233 -220
- novelwriter/gui/dochighlight.py +1 -1
- novelwriter/gui/docviewer.py +39 -10
- novelwriter/gui/docviewerpanel.py +15 -23
- novelwriter/gui/editordocument.py +1 -1
- novelwriter/gui/itemdetails.py +20 -27
- novelwriter/gui/mainmenu.py +14 -9
- novelwriter/gui/noveltree.py +13 -13
- novelwriter/gui/outline.py +18 -20
- novelwriter/gui/projtree.py +545 -1201
- novelwriter/gui/search.py +11 -19
- novelwriter/gui/sidebar.py +1 -1
- novelwriter/gui/statusbar.py +20 -3
- novelwriter/gui/theme.py +8 -4
- novelwriter/guimain.py +60 -48
- novelwriter/shared.py +53 -24
- novelwriter/text/counting.py +1 -1
- novelwriter/text/patterns.py +18 -6
- novelwriter/tools/dictionaries.py +1 -1
- novelwriter/tools/lipsum.py +1 -1
- novelwriter/tools/manusbuild.py +14 -12
- novelwriter/tools/manuscript.py +7 -7
- novelwriter/tools/manussettings.py +43 -53
- novelwriter/tools/noveldetails.py +1 -1
- novelwriter/tools/welcome.py +1 -1
- novelwriter/tools/writingstats.py +1 -1
- novelwriter/types.py +9 -3
- {novelWriter-2.6b1.dist-info → novelWriter-2.6rc1.dist-info}/LICENSE.md +0 -0
- {novelWriter-2.6b1.dist-info → novelWriter-2.6rc1.dist-info}/entry_points.txt +0 -0
- {novelWriter-2.6b1.dist-info → novelWriter-2.6rc1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: novelWriter
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.6rc1
|
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
|
@@ -24,8 +24,8 @@ Classifier: Topic :: Text Editors
|
|
24
24
|
Requires-Python: >=3.9
|
25
25
|
Description-Content-Type: text/markdown
|
26
26
|
License-File: LICENSE.md
|
27
|
-
Requires-Dist: pyqt5
|
28
|
-
Requires-Dist: pyenchant
|
27
|
+
Requires-Dist: pyqt5>=5.15
|
28
|
+
Requires-Dist: pyenchant>=3.0.0
|
29
29
|
|
30
30
|
<img src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/novelwriter_text.png">
|
31
31
|
|
@@ -1,26 +1,27 @@
|
|
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=
|
6
|
-
novelwriter/error.py,sha256=
|
7
|
-
novelwriter/guimain.py,sha256=
|
8
|
-
novelwriter/shared.py,sha256=
|
9
|
-
novelwriter/types.py,sha256
|
10
|
-
novelwriter/assets/manual.pdf,sha256=
|
11
|
-
novelwriter/assets/sample.zip,sha256=
|
12
|
-
novelwriter/assets/i18n/nw_de_DE.qm,sha256=
|
13
|
-
novelwriter/assets/i18n/nw_en_US.qm,sha256=
|
14
|
-
novelwriter/assets/i18n/nw_es_419.qm,sha256=
|
15
|
-
novelwriter/assets/i18n/nw_fr_FR.qm,sha256=
|
16
|
-
novelwriter/assets/i18n/nw_it_IT.qm,sha256=
|
17
|
-
novelwriter/assets/i18n/nw_ja_JP.qm,sha256=
|
18
|
-
novelwriter/assets/i18n/nw_nb_NO.qm,sha256=
|
19
|
-
novelwriter/assets/i18n/nw_nl_NL.qm,sha256=
|
20
|
-
novelwriter/assets/i18n/nw_pl_PL.qm,sha256=
|
21
|
-
novelwriter/assets/i18n/nw_pt_BR.qm,sha256=
|
22
|
-
novelwriter/assets/i18n/
|
23
|
-
novelwriter/assets/i18n/
|
1
|
+
novelwriter/__init__.py,sha256=FpUhjOmmT5CoBcmp4xnXISjYAfc-zg5aGTeni8uXVQw,8844
|
2
|
+
novelwriter/common.py,sha256=i5kxxzOOg0W60uZ8w1HhwlgEUYKqv60F1JTlu4KEjrY,21751
|
3
|
+
novelwriter/config.py,sha256=ckvg0ufgBPz69qq-9Tk-RHoDE6vAG5tx4Sc9CJhA4qA,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=vUvjZCWBpWsgbw8K7H9JWBH7sB7eWAVLmXvzx-cjxd8,2735354
|
11
|
+
novelwriter/assets/sample.zip,sha256=h9OHiTX2pyJxORdaFp3qzRbklJWzmg7jVMOh3UAXqe0,28036
|
12
|
+
novelwriter/assets/i18n/nw_de_DE.qm,sha256=jMjb_fnKDaBWX-qso1Ci76N0d5j_zQ0uu7c0NgVWp40,97177
|
13
|
+
novelwriter/assets/i18n/nw_en_US.qm,sha256=a7Q5U9C5vFq8xk-xK3h-XFnWmG_85OHnUdScYDrZNCg,90203
|
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=ezbPAzRdh0sG4M4U3gcfldD4yJNtCZK6uowqK4SHMx4,99883
|
17
|
+
novelwriter/assets/i18n/nw_ja_JP.qm,sha256=lrpFS5T1mW3dPcAGRYLcB3vcMBl5MbAqgOtbbao2clk,74622
|
18
|
+
novelwriter/assets/i18n/nw_nb_NO.qm,sha256=bCeJnRX-e_KHEahvMVLxiu4PLW3V-AO3M1oKjRtXKRE,92747
|
19
|
+
novelwriter/assets/i18n/nw_nl_NL.qm,sha256=WCnVcavSwehklScJQTU-AhogQzrtN1IHYT2cK5B-9gg,96703
|
20
|
+
novelwriter/assets/i18n/nw_pl_PL.qm,sha256=oSy7GDTNNRqZy4tnp7llCVE6CkkqoJNEiI1s1p_wp5w,95451
|
21
|
+
novelwriter/assets/i18n/nw_pt_BR.qm,sha256=iSuAZk2-sKrj_nNCcWUmL4bp7PAq83FrzNGbt3uSNoU,98365
|
22
|
+
novelwriter/assets/i18n/nw_ru_RU.qm,sha256=W10A9BAdYhRbZRzHCpaN03G7Xba7hzl02L6bGveL_0o,94842
|
23
|
+
novelwriter/assets/i18n/nw_zh_CN.qm,sha256=ndKC1LJffwRKg4K7aVz9x7xWwInH3rUb_aJBkd3UAj8,67298
|
24
|
+
novelwriter/assets/i18n/project_de_DE.json,sha256=fuEYohM2xm0mLXmibbU0TISr0BCZb2yOiBLCUmKhDJQ,2810
|
24
25
|
novelwriter/assets/i18n/project_en_GB.json,sha256=CvBOO8kaW0k7NlwvxFi62Br9HYKJKQLDk1nQfvXOj48,2537
|
25
26
|
novelwriter/assets/i18n/project_en_US.json,sha256=EcQAVEiQgRL3qobuzkPTfOWIxAc3Om-tA7nXUFFXEdI,2483
|
26
27
|
novelwriter/assets/i18n/project_es_419.json,sha256=Z6CAhc0hzekUZFDM-0ykRRsckJG4c2AETy4Xa_f2T7s,2730
|
@@ -32,7 +33,7 @@ novelwriter/assets/i18n/project_nl_NL.json,sha256=qUEEjLMRtvt9VuNmjb_qOVCXqUCENH
|
|
32
33
|
novelwriter/assets/i18n/project_nn_NO.json,sha256=7ZfmtFWHcDMiLVqdOEDHQWHbpoC_bv5ESmf_-CoYiks,2250
|
33
34
|
novelwriter/assets/i18n/project_pl_PL.json,sha256=msXu3rNhJ19ytVespoXQ95nZ-mFis5rlLeCPK4A3zS8,3461
|
34
35
|
novelwriter/assets/i18n/project_pt_BR.json,sha256=FDxIeSlf3v8AcrWfgwk7UOMRDmb2hWdDoabsBq5rkL8,2763
|
35
|
-
novelwriter/assets/i18n/project_ru_RU.json,sha256=
|
36
|
+
novelwriter/assets/i18n/project_ru_RU.json,sha256=Lq8msxzjhkFHXPJAmEEyjoFOUV28CLJXmayY3h3jiAo,4075
|
36
37
|
novelwriter/assets/i18n/project_zh_CN.json,sha256=cfl0TsnbISYUvygOw015y0x0REDG97xR0yjyJ85Jm34,2322
|
37
38
|
novelwriter/assets/icons/none.svg,sha256=NRN9vMzohg7Ner71GwPthrCG0uA81TpY8UmKb8-L-pM,251
|
38
39
|
novelwriter/assets/icons/novelwriter.ico,sha256=OJRIeeUcmS7Di51NA3uF5_Ov4V8T47gQ9qWv6C7qDeA,171059
|
@@ -40,7 +41,7 @@ novelwriter/assets/icons/novelwriter.svg,sha256=Ad_SgOdXSDJtFR3DLCx6Afme15I78r38
|
|
40
41
|
novelwriter/assets/icons/x-novelwriter-project.ico,sha256=MXdZSYi3j95aIsT5bZo6CkhxmS75cThP9O_38UR7sjg,170697
|
41
42
|
novelwriter/assets/icons/x-novelwriter-project.svg,sha256=VHf1aClkA91tZVYb3LFk9bi_Dw25QBVSjUJAjSD-YX4,5143
|
42
43
|
novelwriter/assets/icons/typicons_dark/README.md,sha256=6ZxJq-19PNrMdeuVeVg84aLjxhr9oF7dLwuMFVGQyq0,1065
|
43
|
-
novelwriter/assets/icons/typicons_dark/icons.conf,sha256=
|
44
|
+
novelwriter/assets/icons/typicons_dark/icons.conf,sha256=FDqhLubF2BeVDpjIeysmhu5ceUXvTw9Q5slUwGbIH7w,4799
|
44
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
|
@@ -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,7 @@ 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=
|
152
|
+
novelwriter/assets/icons/typicons_light/icons.conf,sha256=ib9tQ1R0baMWBT7-8n73S5M4behYWG-uJmU3iIvD3PI,4802
|
145
153
|
novelwriter/assets/icons/typicons_light/mixed_copy.svg,sha256=ojZVpxuFzlJFGEav5vg8Kr4SgDxffu0awEe3De5iB6U,636
|
146
154
|
novelwriter/assets/icons/typicons_light/mixed_document-chapter.svg,sha256=kXNwPbeKR3eupIrqtDQrNGq5sL8vdExLfPMrMX2sEsw,1650
|
147
155
|
novelwriter/assets/icons/typicons_light/mixed_document-new.svg,sha256=u0YYfp6hTUEYLsrPleUqYocaG2hl62w-B85INvkm6S4,1825
|
@@ -154,7 +162,13 @@ novelwriter/assets/icons/typicons_light/mixed_import.svg,sha256=lad5N1wOjDrTLxEz
|
|
154
162
|
novelwriter/assets/icons/typicons_light/mixed_input-checked.svg,sha256=uevUoQv7D-6g1RgE0gG2ZWek3118qIAcgkqg7zxK8Zs,1208
|
155
163
|
novelwriter/assets/icons/typicons_light/mixed_input-none.svg,sha256=V6uPJ1f85DYXpuuC3n4-lV1U8zfyXYMbOHYBy9-uiQs,1055
|
156
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
|
157
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
|
158
172
|
novelwriter/assets/icons/typicons_light/nw_deco-h0.svg,sha256=ssrqNUVY1vz4LtYE5pdINmP6qI5IZHFbokfYPzG-CTM,225
|
159
173
|
novelwriter/assets/icons/typicons_light/nw_deco-h1.svg,sha256=nuzuJ9h9Lb1HpdOq6NfRKzSGlUVo53fC4TnHHpdkOu0,225
|
160
174
|
novelwriter/assets/icons/typicons_light/nw_deco-h2-narrow.svg,sha256=dkAEvmLO4DkRDe_rfRB-0L7yM7mEGj24XW1gFf3B-BA,225
|
@@ -182,6 +196,7 @@ novelwriter/assets/icons/typicons_light/nw_tb-strike.svg,sha256=HtAYlTga42JVpoUJ
|
|
182
196
|
novelwriter/assets/icons/typicons_light/nw_tb-subscript.svg,sha256=j8qncFQqiC5vZfFELENtX9COMcrI7NnyED17ki7tC08,1551
|
183
197
|
novelwriter/assets/icons/typicons_light/nw_tb-superscript.svg,sha256=-B-iVCPsoCaz9ZiVkHN6em2BJOI65_ssjFqZM75wxZ0,1550
|
184
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
|
185
200
|
novelwriter/assets/icons/typicons_light/typ_arrow-down-thick-grey.svg,sha256=FZFt51KLkvqrP0nM_bnCjKkELcLT7KMWB059gvSMKk4,523
|
186
201
|
novelwriter/assets/icons/typicons_light/typ_arrow-forward.svg,sha256=vDYZrsNe2Afo8-MqS9HV_gsz6aFraYZUyJeAdOXaE4Y,541
|
187
202
|
novelwriter/assets/icons/typicons_light/typ_arrow-maximise.svg,sha256=bz93DwuiB_2Baf-oG5SsMdWGccYogyNqR2Yq3OQ4bDY,1032
|
@@ -262,7 +277,7 @@ novelwriter/assets/syntax/tomorrow_night.conf,sha256=mWPneIV_6tszLEK4-Eo-kcJmUbr
|
|
262
277
|
novelwriter/assets/syntax/tomorrow_night_blue.conf,sha256=L42gcekFfNpCCB45m9Lhzmz8Y6Lvbpik3AADi_1Aao8,1549
|
263
278
|
novelwriter/assets/syntax/tomorrow_night_bright.conf,sha256=h8_775Ed8hl2XhfCoxAY2kT43vi-UvG8UHik1aI4eRw,1554
|
264
279
|
novelwriter/assets/syntax/tomorrow_night_eighties.conf,sha256=stO_xH5RzMN0jaZeYr53LVXbpqSmIXALBFGVLlJBDLA,1557
|
265
|
-
novelwriter/assets/text/credits_en.htm,sha256=
|
280
|
+
novelwriter/assets/text/credits_en.htm,sha256=wZgQGDQgIvd_2aT6oaJB88jOUjhtWYbn9tA6IfoGq3k,2958
|
266
281
|
novelwriter/assets/text/lipsum.txt,sha256=sGA6AC_p4jrUifxLxy3cSODeRwkpBNXDPGgX6YRTm2s,62937
|
267
282
|
novelwriter/assets/themes/cyberpunk_night.conf,sha256=FvG_YVfEnMwJV1XUDEdpi9qoHQ5sdyVEaR_Y3WfWNA8,923
|
268
283
|
novelwriter/assets/themes/default.conf,sha256=K0LZ64lODpCtUg3pISTAP4UKvEYMvPkmIYN9RDEaWwk,72
|
@@ -271,74 +286,75 @@ novelwriter/assets/themes/default_light.conf,sha256=2a4SXzlbZpyV9EX3BuFSRFYuLuzu
|
|
271
286
|
novelwriter/assets/themes/dracula.conf,sha256=pUvu7FS1nRPj3PyU3NZMR0WSb5sIa0oLpSa2XTzsh98,1425
|
272
287
|
novelwriter/assets/themes/solarized_dark.conf,sha256=7dDjs8aiFuAjl--hqMJQEExrfCgAapiPY82CL6aAo-I,916
|
273
288
|
novelwriter/assets/themes/solarized_light.conf,sha256=psCPVWcjAKB5y8H_E_h5zYUifxh5YpdFdBzxFofIHa0,918
|
274
|
-
novelwriter/core/buildsettings.py,sha256=
|
275
|
-
novelwriter/core/coretools.py,sha256=
|
276
|
-
novelwriter/core/docbuild.py,sha256=
|
277
|
-
novelwriter/core/document.py,sha256=
|
278
|
-
novelwriter/core/index.py,sha256=
|
279
|
-
novelwriter/core/item.py,sha256=
|
280
|
-
novelwriter/core/
|
281
|
-
novelwriter/core/
|
282
|
-
novelwriter/core/
|
283
|
-
novelwriter/core/
|
284
|
-
novelwriter/core/
|
285
|
-
novelwriter/core/
|
286
|
-
novelwriter/core/
|
287
|
-
novelwriter/core/
|
288
|
-
novelwriter/core/
|
289
|
-
novelwriter/
|
290
|
-
novelwriter/dialogs/
|
291
|
-
novelwriter/dialogs/
|
292
|
-
novelwriter/dialogs/
|
293
|
-
novelwriter/dialogs/
|
294
|
-
novelwriter/dialogs/
|
295
|
-
novelwriter/dialogs/
|
296
|
-
novelwriter/dialogs/
|
297
|
-
novelwriter/
|
298
|
-
novelwriter/extensions/
|
299
|
-
novelwriter/extensions/
|
300
|
-
novelwriter/extensions/
|
301
|
-
novelwriter/extensions/
|
302
|
-
novelwriter/extensions/
|
303
|
-
novelwriter/extensions/
|
304
|
-
novelwriter/extensions/
|
305
|
-
novelwriter/extensions/
|
306
|
-
novelwriter/extensions/
|
307
|
-
novelwriter/
|
308
|
-
novelwriter/formats/
|
309
|
-
novelwriter/formats/
|
310
|
-
novelwriter/formats/
|
311
|
-
novelwriter/formats/
|
312
|
-
novelwriter/formats/
|
313
|
-
novelwriter/formats/
|
314
|
-
novelwriter/formats/
|
315
|
-
novelwriter/
|
316
|
-
novelwriter/gui/
|
317
|
-
novelwriter/gui/
|
318
|
-
novelwriter/gui/
|
319
|
-
novelwriter/gui/
|
320
|
-
novelwriter/gui/
|
321
|
-
novelwriter/gui/
|
322
|
-
novelwriter/gui/
|
323
|
-
novelwriter/gui/
|
324
|
-
novelwriter/gui/
|
325
|
-
novelwriter/gui/
|
326
|
-
novelwriter/gui/
|
327
|
-
novelwriter/gui/
|
328
|
-
novelwriter/gui/
|
329
|
-
novelwriter/
|
330
|
-
novelwriter/text/
|
331
|
-
novelwriter/
|
332
|
-
novelwriter/tools/
|
333
|
-
novelwriter/tools/
|
334
|
-
novelwriter/tools/
|
335
|
-
novelwriter/tools/
|
336
|
-
novelwriter/tools/
|
337
|
-
novelwriter/tools/
|
338
|
-
novelwriter/tools/
|
339
|
-
|
340
|
-
novelWriter-2.
|
341
|
-
novelWriter-2.
|
342
|
-
novelWriter-2.
|
343
|
-
novelWriter-2.
|
344
|
-
novelWriter-2.
|
289
|
+
novelwriter/core/buildsettings.py,sha256=q5ZgkUKJO1-tktAJcgmgKMF5r6Op_UrE_ZTyw-_nyoM,24117
|
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=YjdsV8EIcnaM09TPP32-AYzw_sZkmI0hoBVP_zzEf8Y,3819
|
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=RRzDtQN_0ZqS54aLNR7yny8pQGBuI7YS7A5mvVYGyew,4605
|
324
|
+
novelwriter/formats/todocx.py,sha256=4CNG0vOs6Ec9jGRPm9MgJUfo9VxD-5QNVPVrcaww9is,40279
|
325
|
+
novelwriter/formats/tohtml.py,sha256=avC2aO_eOb9-5FI4zQ9uAZdZ0HpXOn8Hm6bER9JFK7s,17079
|
326
|
+
novelwriter/formats/tokenizer.py,sha256=geeS70cuYlJJqjSIMjk_4owgW-6khPGMGQ_HxCzPz-8,48428
|
327
|
+
novelwriter/formats/tomarkdown.py,sha256=vFmiCdaEKgZ_6pwTjtLnPlwLt19b4tPMzhGl7eo2-8c,6916
|
328
|
+
novelwriter/formats/toodt.py,sha256=uH9htj75nQUxv1Oo58hqpwjJJlfwuqQV2m2DSuogWaM,58394
|
329
|
+
novelwriter/formats/toqdoc.py,sha256=kV4IhvpHzbnNaPtbkDRoLGBqg55uq4pxbbWFRcylIx8,17910
|
330
|
+
novelwriter/formats/toraw.py,sha256=niaFt6tVSIwGfMAEP-suDfzzTRN8M08V3KJClbG3hcU,2842
|
331
|
+
novelwriter/gui/doceditor.py,sha256=bYse2QK_JPyiT_y_uIFtATsMO8NNM9DHpfXwVk0cf_o,116618
|
332
|
+
novelwriter/gui/dochighlight.py,sha256=z6WcQfkHzSlXg4-DALtJUHl_8wnikP-YT0iIZmnCV8I,19680
|
333
|
+
novelwriter/gui/docviewer.py,sha256=LQKEJE5155hq4qHI0G694By2dzaobBMnPiAEr3e9Bgc,34516
|
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=K0mfBDDnRHKoq2OLS_nXzg-6qRnfOIxRgm0q5OhJTfg,9636
|
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=jfPygfefhRsp2iidX6MGe3fYnmKcrH7WDX-G3lf-xQc,52964
|
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=SlEAK21y5GEykJMU4O3OI_TUHVp0x3sRNW4xUaS5q0I,9268
|
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=r7SxaJZp5QnvMlhwoAPUPerAhzDUwDKv5ng3HHIHsQg,60831
|
352
|
+
novelwriter/tools/noveldetails.py,sha256=k17ZH21M7yfLNEhY_qD-GREia5CxanN9dbVWt1selkk,18506
|
353
|
+
novelwriter/tools/welcome.py,sha256=STHc6vLBN07MFGIbjhVbopVHTgJDvldzCC40-e1hUtQ,28018
|
354
|
+
novelwriter/tools/writingstats.py,sha256=tuIkHkkiAPJv4zUBIFyh6_mVHRK-beYSc_zBUKG8MnM,22792
|
355
|
+
novelWriter-2.6rc1.dist-info/LICENSE.md,sha256=2GirkkLrPfQqx7fACKRJjtKJUegKc8067erGvcDVQHM,32197
|
356
|
+
novelWriter-2.6rc1.dist-info/METADATA,sha256=H3d21lUrJE1SbJXBjEQlhPgFyMTASdiop5PqvPYPW38,2582
|
357
|
+
novelWriter-2.6rc1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
358
|
+
novelWriter-2.6rc1.dist-info/entry_points.txt,sha256=YDUG1w361LtLsjD3YhxoTDTwM17JA5-nigjC6j5C74A,45
|
359
|
+
novelWriter-2.6rc1.dist-info/top_level.txt,sha256=wFFEucjEeNC_Ap5ULBuEutg5a1Uc0-YO9uFT5L2naNI,12
|
360
|
+
novelWriter-2.6rc1.dist-info/RECORD,,
|
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
|
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.
|
51
|
-
__hexversion__ = "
|
52
|
-
__date__ = "
|
50
|
+
__version__ = "2.6rc1"
|
51
|
+
__hexversion__ = "0x020600c1"
|
52
|
+
__date__ = "2025-01-09"
|
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
|
-
#
|
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
|
-
|
127
|
+
fmtFlags = 0b00
|
110
128
|
confPath = None
|
111
129
|
dataPath = None
|
112
130
|
testMode = False
|
113
|
-
qtStyle
|
114
|
-
cmdOpen
|
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
|
-
|
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=
|
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
|
@@ -5,9 +5,9 @@
|
|
5
5
|
"Notes": "Notizen",
|
6
6
|
"Tag": "Schlagwort",
|
7
7
|
"Point of View": "Perspektive",
|
8
|
-
"Focus": "
|
8
|
+
"Focus": "Fokus",
|
9
9
|
"Characters": "Charaktere",
|
10
|
-
"Plot": "
|
10
|
+
"Plot": "Handlung",
|
11
11
|
"Timeline": "Zeitleiste",
|
12
12
|
"Locations": "Schauplätze",
|
13
13
|
"Objects": "Objekte",
|
@@ -1,7 +1,18 @@
|
|
1
1
|
{
|
2
2
|
"Synopsis": "Сводка",
|
3
|
+
"Short Description": "Краткое описание",
|
3
4
|
"Comment": "Комментарий",
|
4
5
|
"Notes": "Заметки",
|
6
|
+
"Tag": "Тэг",
|
7
|
+
"Point of View": "Точка зрения",
|
8
|
+
"Focus": "Фокус",
|
9
|
+
"Characters": "Персонажей",
|
10
|
+
"Plot": "Сюжет",
|
11
|
+
"Timeline": "Хронология",
|
12
|
+
"Locations": "Локации",
|
13
|
+
"Objects": "Объекты",
|
14
|
+
"Entities": "Сущности",
|
15
|
+
"Custom": "Другое",
|
5
16
|
"0": "Ноль",
|
6
17
|
"1": "Один",
|
7
18
|
"2": "Два",
|
@@ -64,6 +64,10 @@ font = nw_font.svg
|
|
64
64
|
forward = typ_chevron-right.svg
|
65
65
|
import = mixed_import.svg
|
66
66
|
list = typ_th-list.svg
|
67
|
+
margin_bottom = mixed_margin-bottom.svg
|
68
|
+
margin_left = mixed_margin-left.svg
|
69
|
+
margin_right = mixed_margin-right.svg
|
70
|
+
margin_top = mixed_margin-top.svg
|
67
71
|
maximise = typ_arrow-maximise.svg
|
68
72
|
menu = typ_th-dot-menu.svg
|
69
73
|
minimise = typ_arrow-minimise.svg
|
@@ -94,6 +98,8 @@ search_regex = nw_search-regex.svg
|
|
94
98
|
search_replace = mixed_search-replace.svg
|
95
99
|
search_word = nw_search-word.svg
|
96
100
|
settings = typ_cog.svg
|
101
|
+
size_height = mixed_size-height.svg
|
102
|
+
size_width = mixed_size-width.svg
|
97
103
|
star = typ_star.svg
|
98
104
|
status_idle = typ_media-pause-grey.svg
|
99
105
|
status_lang = typ_globe-grey.svg
|
@@ -102,6 +108,7 @@ status_stats = typ_chart-bar-grey.svg
|
|
102
108
|
status_time = typ_stopwatch-grey.svg
|
103
109
|
sticky-off = typ_pin-outline.svg
|
104
110
|
sticky-on = typ_pin.svg
|
111
|
+
toolbar = nw_toolbar.svg
|
105
112
|
unchecked = mixed_input-unchecked.svg
|
106
113
|
unfold-hide = typ_unfold-hidden.svg
|
107
114
|
unfold-show = typ_unfold-visible.svg
|
@@ -0,0 +1,6 @@
|
|
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
|
+
<rect x="2" y="2" width="20" height="20" rx="1" ry="1" fill="#e6e6e6" fill-opacity=".14902" stroke-linecap="round" stroke-width="2"/>
|
4
|
+
<rect x="2" y="18" width="20" height="4" rx="1" ry="1" fill="#848484" stroke-linecap="round" stroke-width="2"/>
|
5
|
+
<path d="m18.414 8.5959c0.78104 0.79361 0.78104 2.0837 0 2.8773l-6.4141 6.5268-6.4141-6.5268c-0.391-0.3968-0.58601-0.91769-0.58601-1.4386 0-0.52092 0.195-1.0418 0.58601-1.4386 0.78104-0.79464 2.047-0.79464 2.8281 0l3.5861 3.6475 3.5861-3.6475c0.78104-0.79464 2.047-0.79464 2.8281 0z" fill="#69c" stroke-width="1.0087"/>
|
6
|
+
</svg>
|
@@ -0,0 +1,6 @@
|
|
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
|
+
<rect x="2" y="2" width="20" height="20" rx="1" ry="1" fill="#e6e6e6" fill-opacity=".14902" stroke-linecap="round" stroke-width="2"/>
|
4
|
+
<rect x="2" y="2" width="4" height="20" rx="1" ry="1" fill="#848484" stroke-linecap="round" stroke-width="2"/>
|
5
|
+
<path d="m15.404 18.5c-0.79361 0.78104-2.0837 0.78104-2.8773 0l-6.5268-6.4141 6.5268-6.4141c0.3968-0.391 0.91769-0.58601 1.4386-0.58601 0.52092 0 1.0418 0.195 1.4386 0.58601 0.79464 0.78104 0.79464 2.047 0 2.8281l-3.6475 3.5861 3.6475 3.5861c0.79464 0.78104 0.79464 2.047 0 2.8281z" fill="#69c" stroke-width="1.0087"/>
|
6
|
+
</svg>
|
@@ -0,0 +1,6 @@
|
|
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
|
+
<rect x="2" y="2" width="20" height="20" rx="1" ry="1" fill="#e6e6e6" fill-opacity=".14902" stroke-linecap="round" stroke-width="2"/>
|
4
|
+
<rect x="18" y="2" width="4" height="20" rx="1" ry="1" fill="#848484" stroke-linecap="round" stroke-width="2"/>
|
5
|
+
<path d="m8.5959 18.5c0.79361 0.78104 2.0837 0.78104 2.8773 0l6.5268-6.4141-6.5268-6.4141c-0.3968-0.391-0.91769-0.58601-1.4386-0.58601-0.52092 0-1.0418 0.195-1.4386 0.58601-0.79464 0.78104-0.79464 2.047 0 2.8281l3.6475 3.5861-3.6475 3.5861c-0.79464 0.78104-0.79464 2.047 0 2.8281z" fill="#69c" stroke-width="1.0087"/>
|
6
|
+
</svg>
|
@@ -0,0 +1,6 @@
|
|
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
|
+
<rect x="2" y="2" width="20" height="20" rx="1" ry="1" fill="#e6e6e6" fill-opacity=".14902" stroke-linecap="round" stroke-width="2"/>
|
4
|
+
<rect x="2" y="2" width="20" height="4" rx="1" ry="1" fill="#848484" stroke-linecap="round" stroke-width="2"/>
|
5
|
+
<path d="m18.414 15.404c0.78104-0.79361 0.78104-2.0837 0-2.8773l-6.4141-6.5268-6.4141 6.5268c-0.391 0.3968-0.58601 0.91769-0.58601 1.4386 0 0.52092 0.195 1.0418 0.58601 1.4386 0.78104 0.79464 2.047 0.79464 2.8281 0l3.5861-3.6475 3.5861 3.6475c0.78104 0.79464 2.047 0.79464 2.8281 0z" fill="#69c" stroke-width="1.0087"/>
|
6
|
+
</svg>
|
@@ -0,0 +1,6 @@
|
|
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
|
+
<rect x="2" y="2" width="20" height="20" rx="1" ry="1" fill="#e6e6e6" fill-opacity=".14902" stroke-linecap="round" stroke-width="2"/>
|
4
|
+
<path d="m18.414 10.404c0.78104-0.79361 0.78104-2.0837 0-2.8773l-6.4141-6.5268-6.4141 6.5268c-0.391 0.3968-0.58601 0.91769-0.58601 1.4386 0 0.52092 0.195 1.0418 0.58601 1.4386 0.78104 0.79464 2.047 0.79464 2.8281 0l3.5861-3.6475 3.5861 3.6475c0.78104 0.79464 2.047 0.79464 2.8281 0z" fill="#69c" stroke-width="1.0087"/>
|
5
|
+
<path d="m18.414 13.596c0.78104 0.79361 0.78104 2.0837 0 2.8773l-6.4141 6.5268-6.4141-6.5268c-0.391-0.3968-0.58601-0.91769-0.58601-1.4386 0-0.52092 0.195-1.0418 0.58601-1.4386 0.78104-0.79464 2.047-0.79464 2.8281 0l3.5861 3.6475 3.5861-3.6475c0.78104-0.79464 2.047-0.79464 2.8281 0z" fill="#69c" stroke-width="1.0087"/>
|
6
|
+
</svg>
|
@@ -0,0 +1,6 @@
|
|
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
|
+
<rect x="2" y="2" width="20" height="20" rx="1" ry="1" fill="#e6e6e6" fill-opacity=".15" stroke-linecap="round" stroke-width="2"/>
|
4
|
+
<path d="m13.596 18.414c0.79361 0.78104 2.0837 0.78104 2.8773 0l6.5268-6.4141-6.5268-6.4141c-0.3968-0.391-0.91769-0.58601-1.4386-0.58601-0.52092 0-1.0418 0.195-1.4386 0.58601-0.79464 0.78104-0.79464 2.047 0 2.8281l3.6475 3.5861-3.6475 3.5861c-0.79464 0.78104-0.79464 2.047 0 2.8281z" fill="#69c" stroke-width="1.0087"/>
|
5
|
+
<path d="m10.404 18.414c-0.79361 0.78104-2.0837 0.78104-2.8773 0l-6.5268-6.4141 6.5268-6.4141c0.3968-0.391 0.91769-0.58601 1.4386-0.58601 0.52092 0 1.0418 0.195 1.4386 0.58601 0.79464 0.78104 0.79464 2.047 0 2.8281l-3.6475 3.5861 3.6475 3.5861c0.79464 0.78104 0.79464 2.047 0 2.8281z" fill="#69c" stroke-width="1.0087"/>
|
6
|
+
</svg>
|
@@ -0,0 +1,5 @@
|
|
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
|
+
<rect x="8" y="2" width="8" height="8" rx="1" ry="1" fill="none" stroke="#69c" stroke-linecap="round" stroke-width="2"/>
|
4
|
+
<rect x="8" y="14" width="8" height="8" rx="1" ry="1" fill="none" stroke="#69c" stroke-linecap="round" stroke-width="2"/>
|
5
|
+
</svg>
|