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.
Files changed (114) hide show
  1. {novelWriter-2.6b1.dist-info → novelWriter-2.6rc1.dist-info}/METADATA +4 -4
  2. {novelWriter-2.6b1.dist-info → novelWriter-2.6rc1.dist-info}/RECORD +114 -98
  3. {novelWriter-2.6b1.dist-info → novelWriter-2.6rc1.dist-info}/WHEEL +1 -1
  4. novelwriter/__init__.py +50 -11
  5. novelwriter/assets/i18n/nw_de_DE.qm +0 -0
  6. novelwriter/assets/i18n/nw_en_US.qm +0 -0
  7. novelwriter/assets/i18n/nw_es_419.qm +0 -0
  8. novelwriter/assets/i18n/nw_fr_FR.qm +0 -0
  9. novelwriter/assets/i18n/nw_it_IT.qm +0 -0
  10. novelwriter/assets/i18n/nw_ja_JP.qm +0 -0
  11. novelwriter/assets/i18n/nw_nb_NO.qm +0 -0
  12. novelwriter/assets/i18n/nw_nl_NL.qm +0 -0
  13. novelwriter/assets/i18n/nw_pl_PL.qm +0 -0
  14. novelwriter/assets/i18n/nw_pt_BR.qm +0 -0
  15. novelwriter/assets/i18n/nw_ru_RU.qm +0 -0
  16. novelwriter/assets/i18n/nw_zh_CN.qm +0 -0
  17. novelwriter/assets/i18n/project_de_DE.json +2 -2
  18. novelwriter/assets/i18n/project_ru_RU.json +11 -0
  19. novelwriter/assets/icons/typicons_dark/icons.conf +7 -0
  20. novelwriter/assets/icons/typicons_dark/mixed_margin-bottom.svg +6 -0
  21. novelwriter/assets/icons/typicons_dark/mixed_margin-left.svg +6 -0
  22. novelwriter/assets/icons/typicons_dark/mixed_margin-right.svg +6 -0
  23. novelwriter/assets/icons/typicons_dark/mixed_margin-top.svg +6 -0
  24. novelwriter/assets/icons/typicons_dark/mixed_size-height.svg +6 -0
  25. novelwriter/assets/icons/typicons_dark/mixed_size-width.svg +6 -0
  26. novelwriter/assets/icons/typicons_dark/nw_toolbar.svg +5 -0
  27. novelwriter/assets/icons/typicons_light/icons.conf +7 -0
  28. novelwriter/assets/icons/typicons_light/mixed_margin-bottom.svg +6 -0
  29. novelwriter/assets/icons/typicons_light/mixed_margin-left.svg +6 -0
  30. novelwriter/assets/icons/typicons_light/mixed_margin-right.svg +6 -0
  31. novelwriter/assets/icons/typicons_light/mixed_margin-top.svg +6 -0
  32. novelwriter/assets/icons/typicons_light/mixed_size-height.svg +6 -0
  33. novelwriter/assets/icons/typicons_light/mixed_size-width.svg +6 -0
  34. novelwriter/assets/icons/typicons_light/nw_toolbar.svg +5 -0
  35. novelwriter/assets/manual.pdf +0 -0
  36. novelwriter/assets/sample.zip +0 -0
  37. novelwriter/assets/text/credits_en.htm +1 -0
  38. novelwriter/common.py +38 -3
  39. novelwriter/config.py +19 -13
  40. novelwriter/constants.py +60 -45
  41. novelwriter/core/buildsettings.py +1 -1
  42. novelwriter/core/coretools.py +112 -126
  43. novelwriter/core/docbuild.py +4 -3
  44. novelwriter/core/document.py +1 -1
  45. novelwriter/core/index.py +10 -20
  46. novelwriter/core/item.py +40 -7
  47. novelwriter/core/itemmodel.py +518 -0
  48. novelwriter/core/options.py +1 -1
  49. novelwriter/core/project.py +68 -90
  50. novelwriter/core/projectdata.py +8 -2
  51. novelwriter/core/projectxml.py +1 -1
  52. novelwriter/core/sessions.py +1 -1
  53. novelwriter/core/spellcheck.py +1 -1
  54. novelwriter/core/status.py +24 -8
  55. novelwriter/core/storage.py +1 -1
  56. novelwriter/core/tree.py +269 -288
  57. novelwriter/dialogs/about.py +1 -1
  58. novelwriter/dialogs/docmerge.py +8 -18
  59. novelwriter/dialogs/docsplit.py +1 -1
  60. novelwriter/dialogs/editlabel.py +1 -1
  61. novelwriter/dialogs/preferences.py +4 -4
  62. novelwriter/dialogs/projectsettings.py +148 -98
  63. novelwriter/dialogs/quotes.py +1 -1
  64. novelwriter/dialogs/wordlist.py +11 -10
  65. novelwriter/enum.py +8 -1
  66. novelwriter/error.py +2 -2
  67. novelwriter/extensions/configlayout.py +7 -5
  68. novelwriter/extensions/eventfilters.py +1 -1
  69. novelwriter/extensions/modified.py +17 -5
  70. novelwriter/extensions/novelselector.py +1 -1
  71. novelwriter/extensions/pagedsidebar.py +4 -4
  72. novelwriter/extensions/progressbars.py +4 -4
  73. novelwriter/extensions/statusled.py +3 -3
  74. novelwriter/extensions/switch.py +3 -3
  75. novelwriter/extensions/switchbox.py +1 -1
  76. novelwriter/extensions/versioninfo.py +1 -1
  77. novelwriter/formats/shared.py +1 -1
  78. novelwriter/formats/todocx.py +35 -39
  79. novelwriter/formats/tohtml.py +15 -16
  80. novelwriter/formats/tokenizer.py +26 -22
  81. novelwriter/formats/tomarkdown.py +1 -1
  82. novelwriter/formats/toodt.py +54 -125
  83. novelwriter/formats/toqdoc.py +93 -45
  84. novelwriter/formats/toraw.py +1 -1
  85. novelwriter/gui/doceditor.py +233 -220
  86. novelwriter/gui/dochighlight.py +1 -1
  87. novelwriter/gui/docviewer.py +39 -10
  88. novelwriter/gui/docviewerpanel.py +15 -23
  89. novelwriter/gui/editordocument.py +1 -1
  90. novelwriter/gui/itemdetails.py +20 -27
  91. novelwriter/gui/mainmenu.py +14 -9
  92. novelwriter/gui/noveltree.py +13 -13
  93. novelwriter/gui/outline.py +18 -20
  94. novelwriter/gui/projtree.py +545 -1201
  95. novelwriter/gui/search.py +11 -19
  96. novelwriter/gui/sidebar.py +1 -1
  97. novelwriter/gui/statusbar.py +20 -3
  98. novelwriter/gui/theme.py +8 -4
  99. novelwriter/guimain.py +60 -48
  100. novelwriter/shared.py +53 -24
  101. novelwriter/text/counting.py +1 -1
  102. novelwriter/text/patterns.py +18 -6
  103. novelwriter/tools/dictionaries.py +1 -1
  104. novelwriter/tools/lipsum.py +1 -1
  105. novelwriter/tools/manusbuild.py +14 -12
  106. novelwriter/tools/manuscript.py +7 -7
  107. novelwriter/tools/manussettings.py +43 -53
  108. novelwriter/tools/noveldetails.py +1 -1
  109. novelwriter/tools/welcome.py +1 -1
  110. novelwriter/tools/writingstats.py +1 -1
  111. novelwriter/types.py +9 -3
  112. {novelWriter-2.6b1.dist-info → novelWriter-2.6rc1.dist-info}/LICENSE.md +0 -0
  113. {novelWriter-2.6b1.dist-info → novelWriter-2.6rc1.dist-info}/entry_points.txt +0 -0
  114. {novelWriter-2.6b1.dist-info → novelWriter-2.6rc1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: novelWriter
3
- Version: 2.6b1
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 >=5.15
28
- Requires-Dist: pyenchant >=3.0.0
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=V5sVfjFKEzWnXaXjc8cFLgQK-084cQc9qfz_a0hoceo,7552
2
- novelwriter/common.py,sha256=cONkyYFIt4YMTkMaZR7CWlTR0BvU_U7ObBjM1tfpJO0,20012
3
- novelwriter/config.py,sha256=nGRx3CGa3wmqLQ60A6xv3w6tBwfSclZPyI4a14BzhY8,39396
4
- novelwriter/constants.py,sha256=_hKNHfkVSOK7Oo-9RyRLXxVqh1Pv1h0qU_g6NbiAxRQ,25494
5
- novelwriter/enum.py,sha256=nbH8gSn7onAMCuWSZJLvUIzwqmx_EovCtmJK_r7ynys,3618
6
- novelwriter/error.py,sha256=iIx1OzyXTT7Ngk2mXW_5c0YqVdFBD0NIkUFgAXNNBlM,6813
7
- novelwriter/guimain.py,sha256=ep-RcerUivTj-SMkNxALKcXkNlPa538SbOhSkg2EtHE,49220
8
- novelwriter/shared.py,sha256=VJe-CuGy-WWYBeMumpg7KzuOAHxAZLMQIds_3ZPY6vU,16202
9
- novelwriter/types.py,sha256=60gJAuZSISbssBy6YrNIg8BlPOGoyH4IIxS99Dh8ZOg,4889
10
- novelwriter/assets/manual.pdf,sha256=jNIxkqqNArtDHkWnlJ0_TlPnbJFVLhUkHN0Xr1G_ph0,2734203
11
- novelwriter/assets/sample.zip,sha256=veIizPN-WbN6wEmowrXWraE39uup-DU2T_LmveVyTIE,28032
12
- novelwriter/assets/i18n/nw_de_DE.qm,sha256=__e0mtl0hfBX61eICSrJhR4mY0r7W9IkI5fYCwvLrYw,100554
13
- novelwriter/assets/i18n/nw_en_US.qm,sha256=Mueo40jL6hBXcV0Vxac-Jd-GAsLASSqEV_7W96sFkZ8,93304
14
- novelwriter/assets/i18n/nw_es_419.qm,sha256=eHiRXnf86BPH5MGvJuo8bR_nBaf-HULE-nRW76o9-yU,103131
15
- novelwriter/assets/i18n/nw_fr_FR.qm,sha256=mB2TCRNjttTFoC34iGbri5OVt2ygCNtxPS5g48CA-HA,103616
16
- novelwriter/assets/i18n/nw_it_IT.qm,sha256=Lg7F4YjU3FE1axKalwcoF9kFvEXS0KDqVNYqHQqhVi4,103350
17
- novelwriter/assets/i18n/nw_ja_JP.qm,sha256=ILDwq_8kHCiorjZabSbUYer9xB9q7hf-NQyAlReVKf8,77169
18
- novelwriter/assets/i18n/nw_nb_NO.qm,sha256=g2raFt2Lw5RcE0IJM1_f7GJsqt8G_uSv7m6sD6zFe_0,95946
19
- novelwriter/assets/i18n/nw_nl_NL.qm,sha256=SnEtdqHaSb8xWA4-EpnWxXD_uK8BeBs44I32AwlST3M,99906
20
- novelwriter/assets/i18n/nw_pl_PL.qm,sha256=Em13jYHYnTbLZp_JaodgZntmcpxBrvbitOZhM8ZQXig,98702
21
- novelwriter/assets/i18n/nw_pt_BR.qm,sha256=EXqtpkEPafPipTd0rCBN6cQ5SlqVyeMPwyMfgpTKjMs,101680
22
- novelwriter/assets/i18n/nw_zh_CN.qm,sha256=poSDKRXapJ8zHBmiRdA85KcIN1nm6gnowDMlpoJwAKE,69647
23
- novelwriter/assets/i18n/project_de_DE.json,sha256=85ud9rxRHyXm85QDmW_LKcUE8h0L1Bvukaf5Tjt-wpg,2818
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=F4QkD6VVDCtGdil7uoXCmuczvUpe9tv-1L-3Eyc8sKE,3699
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=hKOFfIU_vhgoqCzkl9tovzDCHOHUdTAGeRrVXzXvHq0,4525
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=H9kBuYsmOFzSqZ7TZ1WjCQXV2SYtMXSaQ5jzr2lrvQ8,4528
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=jeEMRXuD-ZpGgRPtS3oZQ4HdIe6pwSnB3ZifvYiZLjU,2904
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=YAx1P-Vop4UssOjckon0IYLSgpTDVz5kYQFjjt0uIb4,24092
275
- novelwriter/core/coretools.py,sha256=H-6OUsKEfLyaHASzVxStN-WUiAgDQu8teiaioqwI7vE,21212
276
- novelwriter/core/docbuild.py,sha256=3nBvYXLB5CImrJIvllHt3rMaHOkIL4QNUhGD7j28WOg,13704
277
- novelwriter/core/document.py,sha256=T8FlxyEMlR3t2HNE92InseWUMylWFTMnr2fP-Ge5LQc,12130
278
- novelwriter/core/index.py,sha256=eSV3-8seQ2NRPbojP1miDQvdQuohhTlmLgBjmdV50tc,48870
279
- novelwriter/core/item.py,sha256=bkruFkLlvUgyrH92BESFWAH0XFdTdwRYqsy8HIwYwAM,17633
280
- novelwriter/core/options.py,sha256=HmN2-yOj5IkwMLzEOLM0IyCA4wNMNv3Nf53EBgtiPkE,7457
281
- novelwriter/core/project.py,sha256=tdD6GrwicCttvlM2jt0Tx8A9VpfFi5g4sTsM2h497R4,22066
282
- novelwriter/core/projectdata.py,sha256=bt-LDNJsM2K4VwTcyZU_V2KOUZJFRKrNXNIwbU1v3Eo,9799
283
- novelwriter/core/projectxml.py,sha256=dbgm2ryPCOa1BFsFay-6vEK2itE8TWYRUiwCBpPp59g,22013
284
- novelwriter/core/sessions.py,sha256=V9eBXaUMcXTZjYXR5dgi6E14COIlcLIkNwS6pDrn75U,4405
285
- novelwriter/core/spellcheck.py,sha256=RBaqQaQtxi1e20zi7Jn3VUzHvfY3mGZh4Z7SY19csTc,7151
286
- novelwriter/core/status.py,sha256=FW20GK6_gxsYCiD7ZDg_gGIgp6yw3y1PS5mBN5HlARo,11592
287
- novelwriter/core/storage.py,sha256=mNM9EMW0VRMwEkmTKnzotPVdJk4tJDDUNAHNH9yG5mw,20926
288
- novelwriter/core/tree.py,sha256=mmOB7kN0tjWda_AdT1WuZyFrewuc6uRAlqCfX6opwek,18681
289
- novelwriter/dialogs/about.py,sha256=0iBYkifACc5vZj4KwG0G2Dll_Wp4acAHUfNTto74MFU,4755
290
- novelwriter/dialogs/docmerge.py,sha256=HtJvmu56CGb_G27XGRgF3kl0jPR_14SBVsOKv_UyVX8,6286
291
- novelwriter/dialogs/docsplit.py,sha256=nPb7U68vtZ5yuJtUIr-2yTWCfADCtK4T1h7LgL0Hx8c,9281
292
- novelwriter/dialogs/editlabel.py,sha256=cs8ztrK1Gi3lEZozvs978dNAR6rnlV8cWr9dZArD51I,2963
293
- novelwriter/dialogs/preferences.py,sha256=ss5b4X0Ol96ntWVbyKTf5p9vl1iaw9rIAMlX-wqsMqM,38737
294
- novelwriter/dialogs/projectsettings.py,sha256=Hr_0bXTGJUS6VAD6jK-jAp9kJ93-CFEcQwfauScWIQE,27539
295
- novelwriter/dialogs/quotes.py,sha256=JCgoz9I8HepxYYVBXOzQac6aFpzNMF4CRdw4CnAnuNM,4727
296
- novelwriter/dialogs/wordlist.py,sha256=yuQebLRuasVk2QUm2zWGn7ZzuWM4lFGyXz0egQPyILw,8511
297
- novelwriter/extensions/configlayout.py,sha256=-dAAkA7B5HiuxaJWGXgBNvqNW-a4fS2buE1jc_kDQk0,10719
298
- novelwriter/extensions/eventfilters.py,sha256=mTU_sMQPOEocRfvLcwQyXUpkm314tH32WsID61ss1CI,2522
299
- novelwriter/extensions/modified.py,sha256=Skr0ke2NYH6YCuu-L98mNCg0NLlXmy5tfSruV4td-ns,6015
300
- novelwriter/extensions/novelselector.py,sha256=etVtoDkHGJIP4ab__vStJQCREKYt5sWLfK1vyuO3hLI,3794
301
- novelwriter/extensions/pagedsidebar.py,sha256=CbQlW5pTQhhiTN5py158AxY1ttw4hFAh8JlBWDwof4A,7248
302
- novelwriter/extensions/progressbars.py,sha256=BpJHycboSNGYWIfAEMqIy1Qxf32Cg8TeWM3hogzakTs,4628
303
- novelwriter/extensions/statusled.py,sha256=QdgkMSMKMfQRM9kiEXCuH-wbrq_AH9Sh8zBvYfvJE6Q,2943
304
- novelwriter/extensions/switch.py,sha256=4kXJ3EHEhaivj1D69iBi46hkkPBGAt-Rt5EjVK3V4Aw,4299
305
- novelwriter/extensions/switchbox.py,sha256=5tCiFWkT9WF9xh2c__BnNAJHFLw2nRso3fJZfwzDqRE,4198
306
- novelwriter/extensions/versioninfo.py,sha256=R2_U6B678be0WNxbnhUntpxR5PnZVGf6eeyENp-S-Xo,5035
307
- novelwriter/formats/shared.py,sha256=aXmOpXIOvpA8cTI2hV3OFMEmTEs6JYUd3aAUGcniipI,4580
308
- novelwriter/formats/todocx.py,sha256=2a22VHA59f7Lcr4onpSRgsYD5KOhECLlytFNEb_miZQ,40157
309
- novelwriter/formats/tohtml.py,sha256=m-EL0Blu1sY9Z2YGlZJdSVPP6sszemiLxhuY2sPguYU,17219
310
- novelwriter/formats/tokenizer.py,sha256=9dN-PDcyNd2roEvslB9_yRJtH2xuwtq1eXXt9hNhwEo,48219
311
- novelwriter/formats/tomarkdown.py,sha256=Y1zSkdfFiMzdrEoYAvd5a48_XrCKLT35CiAplS2lY20,6891
312
- novelwriter/formats/toodt.py,sha256=oYy55jrWxilze-1dGQTrI9-647_q6d00Rdn1dYSPkx4,61157
313
- novelwriter/formats/toqdoc.py,sha256=O-iY9-mnwz9kNv4NU9NELya6XxqvSPkE9jMOsfUnvIE,16031
314
- novelwriter/formats/toraw.py,sha256=ySpdePg3_qAZGrDcNPYy1CYOp9EsERo1yIx5S4nfdhk,2817
315
- novelwriter/gui/doceditor.py,sha256=fx_L1EqnB2eafcXjqTkJrM_fHVdGBlLFGERe8BL0MG8,115098
316
- novelwriter/gui/dochighlight.py,sha256=es-UCYry-ks--tfscaqzN7_xn5Xvm-wGiBJVEj3Q4D4,19655
317
- novelwriter/gui/docviewer.py,sha256=4rzmEA6piNjHUXrmApT0b102qkQt_8UlUz7RH8fjpqM,33282
318
- novelwriter/gui/docviewerpanel.py,sha256=eZ0aV1m3z8ynMpUy3LCoecdokxouqL47tGmlocfNo4g,20037
319
- novelwriter/gui/editordocument.py,sha256=pCTp6fZT05BhTRwKlw60rQwsv1bVTIlV3_HiztamPeY,4698
320
- novelwriter/gui/itemdetails.py,sha256=lr_5IEEz0U7dMBgi8GqRV47IsCTNg2sCdMxls8hSuJE,9851
321
- novelwriter/gui/mainmenu.py,sha256=d-v36BSm5xQFVeteqC9ZXl1z4I5MK22XoMLTcxsZtL4,41495
322
- novelwriter/gui/noveltree.py,sha256=CXz1mCO3OFZfeJ3NmZoN6OE2fhuGGSdfEI6UfA5auLY,27131
323
- novelwriter/gui/outline.py,sha256=hhN5GNIowCTTG-OREadL4zBkP22WE0CTnIiHAUkS7P0,38432
324
- novelwriter/gui/projtree.py,sha256=32XS_JhOUC2O4YSjrb34-g4_gAY8jhUx01etuhgQ_bA,78289
325
- novelwriter/gui/search.py,sha256=HnS0_vOg15f3woXeZ8MS_ZAblx9aFIuN7BSa195tY1M,13262
326
- novelwriter/gui/sidebar.py,sha256=Yl86aZSVXDlbo6xXkolr8LlnoNKImKf8CrrlI3o7c9I,6261
327
- novelwriter/gui/statusbar.py,sha256=-rF6bIJXGKFRswVKWE1c5In5x3sX4iXMfp0AGxZxt0c,9053
328
- novelwriter/gui/theme.py,sha256=M4XM6-DCxPHOzLEMke19-Z79_qiE6AZb5TuKuxCdXyM,31990
329
- novelwriter/text/counting.py,sha256=b88S7V8xWOgkq7dfuCeciX0qpxu94k0G071VqP6VNvE,4382
330
- novelwriter/text/patterns.py,sha256=W_Hft6U4vv0dz5rsTGBf1rZZg6uvFzEsTfGBaKOvl_o,7206
331
- novelwriter/tools/dictionaries.py,sha256=92GNCSEOK1EI7t2DiayT8p7nzKW7LwxJJz98F6kn3Vg,9243
332
- novelwriter/tools/lipsum.py,sha256=NcmoxWzrbEybh_w1FzxuxHmeTr8N03OrxjxsPWEbae4,4794
333
- novelwriter/tools/manusbuild.py,sha256=ClJw3zdAerfyFKFpKuwm0TgzHdOSSugqasV7gHQm_i0,14079
334
- novelwriter/tools/manuscript.py,sha256=i9w23boR7H2vZNFI6hzATmhtWLfw3MMWDcsu_cNkrF4,40052
335
- novelwriter/tools/manussettings.py,sha256=sw7ipbEt5gYG8Bm7qwrdDRpT96xId_-XbduvnmS8WCA,60959
336
- novelwriter/tools/noveldetails.py,sha256=xNpTf5-hFu-K_flPhMLug6tNboKvDWV7OEetpHx6Lsc,18481
337
- novelwriter/tools/welcome.py,sha256=DsXNeudXe_PXsMv4R8zJ38rGQ60iqguZQ-g5lB8oJu8,27993
338
- novelwriter/tools/writingstats.py,sha256=456kR-EniRE5jNJSTE8ba3A1MrvavqF88Kt2k3OiFTM,22767
339
- novelWriter-2.6b1.dist-info/LICENSE.md,sha256=2GirkkLrPfQqx7fACKRJjtKJUegKc8067erGvcDVQHM,32197
340
- novelWriter-2.6b1.dist-info/METADATA,sha256=gQlm_A2KI6X8sUV5-JtBfgvP0gwEI2WctQ2XWXwcIdI,2583
341
- novelWriter-2.6b1.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
342
- novelWriter-2.6b1.dist-info/entry_points.txt,sha256=YDUG1w361LtLsjD3YhxoTDTwM17JA5-nigjC6j5C74A,45
343
- novelWriter-2.6b1.dist-info/top_level.txt,sha256=wFFEucjEeNC_Ap5ULBuEutg5a1Uc0-YO9uFT5L2naNI,12
344
- novelWriter-2.6b1.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.4.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
novelwriter/__init__.py CHANGED
@@ -3,10 +3,10 @@ novelWriter – Init File
3
3
  =======================
4
4
 
5
5
  File History:
6
- Created: 2018-09-22 [0.0.1]
6
+ Created: 2018-09-22 [0.0.1] main
7
7
 
8
8
  This file is a part of novelWriter
9
- Copyright 2018–2024, Veronica Berglyd Olsen
9
+ Copyright (C) 2018 Veronica Berglyd Olsen and novelWriter contributors
10
10
 
11
11
  This program is free software: you can redistribute it and/or modify
12
12
  it under the terms of the GNU General Public License as published by
@@ -47,9 +47,9 @@ __license__ = "GPLv3"
47
47
  __author__ = "Veronica Berglyd Olsen"
48
48
  __maintainer__ = "Veronica Berglyd Olsen"
49
49
  __email__ = "code@vkbo.net"
50
- __version__ = "2.6b1"
51
- __hexversion__ = "0x020600b1"
52
- __date__ = "2024-11-12"
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
- # Global config and data singletons
63
+ # Globals Singletons
64
64
  CONFIG = Config()
65
65
  SHARED = SharedData()
66
66
 
67
+ # ANSI Colours
68
+ C_RED = "\033[91m"
69
+ C_GREEN = "\033[92m"
70
+ C_YELLOW = "\033[93m"
71
+ C_BLUE = "\033[94m"
72
+ C_WHITE = "\033[97m"
73
+ C_END = "\033[0m"
74
+
75
+ # Log Formats
76
+ L_TIME = "[{asctime:}]"
77
+ L_FILE = "{filename:>18}"
78
+ L_LINE = "{lineno:<4d}"
79
+ L_LVLP = "{levelname:8}"
80
+ L_LVLC = "{levelname:17}"
81
+ L_TEXT = "{message:}"
82
+
67
83
 
68
84
  def main(sysArgs: list | None = None) -> GuiMain | None:
69
85
  """Parse command line, set up logging, and launch main GUI."""
@@ -77,6 +93,7 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
77
93
  "version",
78
94
  "info",
79
95
  "debug",
96
+ "color",
80
97
  "style=",
81
98
  "config=",
82
99
  "data=",
@@ -98,6 +115,7 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
98
115
  " -v, --version Print program version and exit.\n"
99
116
  " --info Print additional runtime information.\n"
100
117
  " --debug Print debug output. Includes --info.\n"
118
+ " --color Add ANSI colors to log output.\n"
101
119
  " --meminfo Show memory usage information in the status bar.\n"
102
120
  " --style= Sets Qt5 style flag. Defaults to 'Fusion'.\n"
103
121
  " --config= Alternative config file.\n"
@@ -106,12 +124,12 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
106
124
 
107
125
  # Defaults
108
126
  logLevel = logging.WARN
109
- logFormat = "{levelname:8} {message:}"
127
+ fmtFlags = 0b00
110
128
  confPath = None
111
129
  dataPath = None
112
130
  testMode = False
113
- qtStyle = "Fusion"
114
- cmdOpen = None
131
+ qtStyle = "Fusion"
132
+ cmdOpen = None
115
133
 
116
134
  # Parse Options
117
135
  try:
@@ -135,8 +153,10 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
135
153
  logLevel = logging.INFO
136
154
  elif inOpt == "--debug":
137
155
  CONFIG.isDebug = True
156
+ fmtFlags = fmtFlags | 0b10
138
157
  logLevel = logging.DEBUG
139
- logFormat = "[{asctime:}] {filename:>18}:{lineno:<4d} {levelname:8} {message:}"
158
+ elif inOpt == "--color":
159
+ fmtFlags = fmtFlags | 0b01
140
160
  elif inOpt == "--style":
141
161
  qtStyle = inArg
142
162
  elif inOpt == "--config":
@@ -148,13 +168,32 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
148
168
  elif inOpt == "--meminfo":
149
169
  CONFIG.memInfo = True
150
170
 
171
+ if fmtFlags & 0b01:
172
+ # This will overwrite the default level names, and also ensure that
173
+ # they can be converted back to integer levels
174
+ logging.addLevelName(logging.DEBUG, f"{C_BLUE}DEBUG{C_END}")
175
+ logging.addLevelName(logging.INFO, f"{C_GREEN}INFO{C_END}")
176
+ logging.addLevelName(logging.WARNING, f"{C_YELLOW}WARNING{C_END}")
177
+ logging.addLevelName(logging.ERROR, f"{C_RED}ERROR{C_END}")
178
+ logging.addLevelName(logging.CRITICAL, f"{C_RED}CRITICAL{C_END}")
179
+
180
+ # Determine Log Format
181
+ if fmtFlags == 0b00:
182
+ logFmt = f"{L_LVLP} {L_TEXT}"
183
+ elif fmtFlags == 0b01:
184
+ logFmt = f"{L_LVLC} {L_TEXT}"
185
+ elif fmtFlags == 0b10:
186
+ logFmt = f"{L_TIME} {L_FILE}:{L_LINE} {L_LVLP} {L_TEXT}"
187
+ elif fmtFlags == 0b11:
188
+ logFmt = f"{L_TIME} {C_BLUE}{L_FILE}{C_END}:{C_WHITE}{L_LINE}{C_END} {L_LVLC} {L_TEXT}"
189
+
151
190
  # Setup Logging
152
191
  pkgLogger = logging.getLogger(__package__)
153
192
  pkgLogger.setLevel(logLevel)
154
193
  if len(pkgLogger.handlers) == 0:
155
194
  # Make sure we only create one logger (mostly an issue with tests)
156
195
  cHandle = logging.StreamHandler()
157
- cHandle.setFormatter(logging.Formatter(fmt=logFormat, style="{"))
196
+ cHandle.setFormatter(logging.Formatter(fmt=logFmt, style="{"))
158
197
  pkgLogger.addHandler(cHandle)
159
198
 
160
199
  logger.info("Starting novelWriter %s (%s) %s", __version__, __hexversion__, __date__)
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -5,9 +5,9 @@
5
5
  "Notes": "Notizen",
6
6
  "Tag": "Schlagwort",
7
7
  "Point of View": "Perspektive",
8
- "Focus": "Mittelpunkt",
8
+ "Focus": "Fokus",
9
9
  "Characters": "Charaktere",
10
- "Plot": "Handlungen",
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>