novelWriter 2.5.2__py3-none-any.whl → 2.5.3__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: novelWriter
3
- Version: 2.5.2
3
+ Version: 2.5.3
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
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3.9
13
13
  Classifier: Programming Language :: Python :: 3.10
14
14
  Classifier: Programming Language :: Python :: 3.11
15
15
  Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
16
17
  Classifier: Programming Language :: Python :: Implementation :: CPython
17
18
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
18
19
  Classifier: Development Status :: 5 - Production/Stable
@@ -23,8 +24,8 @@ Classifier: Topic :: Text Editors
23
24
  Requires-Python: >=3.9
24
25
  Description-Content-Type: text/markdown
25
26
  License-File: LICENSE.md
26
- Requires-Dist: pyqt5 >=5.15
27
- Requires-Dist: pyenchant >=3.0.0
27
+ Requires-Dist: pyqt5>=5.15
28
+ Requires-Dist: pyenchant>=3.0.0
28
29
 
29
30
  <img src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/novelwriter_text.png">
30
31
 
@@ -1,4 +1,4 @@
1
- novelwriter/__init__.py,sha256=vemA3ERUhjeVgO3BDRRw_WJPGdtiFt0DLbrn2gO3WKA,7552
1
+ novelwriter/__init__.py,sha256=Xw_5nsng19Co6cRmSNqylgg6icULBKm3u9Gm3feuWM8,7552
2
2
  novelwriter/common.py,sha256=qg7jqTVqLOk4zlhKkFoLgYfBdtrBweZYkZeNn7OXX5k,18494
3
3
  novelwriter/config.py,sha256=cUL4S-JOKhxEes--NxCiV84NpanvVbcbW_K5v74dS3w,39081
4
4
  novelwriter/constants.py,sha256=y-UjNZxtU2lzn0Ji9lKiNU3233RmoJuK-3JWHT6GIvc,21368
@@ -7,9 +7,9 @@ novelwriter/error.py,sha256=iIx1OzyXTT7Ngk2mXW_5c0YqVdFBD0NIkUFgAXNNBlM,6813
7
7
  novelwriter/guimain.py,sha256=i3qIrDKlwsaF0BgaTzldHWPOozs1wYpmvwQTVro06_c,53662
8
8
  novelwriter/shared.py,sha256=LMgMXZK28LJUnRDbcTqTp4ZDVCKBt3EJYZMnIdu4R18,15906
9
9
  novelwriter/types.py,sha256=tV-XFc10wsk7zH__S2dEuEfidI6_adgOetpAVbnmJmI,4691
10
- novelwriter/assets/manual.pdf,sha256=Js2sAkX3shCh5xqRhXFL2aiMEeqbQzRqo1TXlwwbG_I,2739813
11
- novelwriter/assets/sample.zip,sha256=KRzxNo7kIYdcYX4HZvcQhaz2ewmH9wJHcmMuKeATcNI,27805
12
- novelwriter/assets/i18n/nw_de_DE.qm,sha256=__e0mtl0hfBX61eICSrJhR4mY0r7W9IkI5fYCwvLrYw,100554
10
+ novelwriter/assets/manual.pdf,sha256=BxGP5FpA2LtJCaz_DEMaLExW9FNLXalYP28fLfBKmaI,2733563
11
+ novelwriter/assets/sample.zip,sha256=IYTSbrleoKfOB4xtUWdTmMQntjDWhMOd2QSKFYGhjR0,27805
12
+ novelwriter/assets/i18n/nw_de_DE.qm,sha256=tyew6MnnKP9s5zEkwO_MiLJ2EH2sOO21BPaDnP5ebRU,100540
13
13
  novelwriter/assets/i18n/nw_en_US.qm,sha256=Mueo40jL6hBXcV0Vxac-Jd-GAsLASSqEV_7W96sFkZ8,93304
14
14
  novelwriter/assets/i18n/nw_es_419.qm,sha256=eHiRXnf86BPH5MGvJuo8bR_nBaf-HULE-nRW76o9-yU,103131
15
15
  novelwriter/assets/i18n/nw_fr_FR.qm,sha256=mB2TCRNjttTFoC34iGbri5OVt2ygCNtxPS5g48CA-HA,103616
@@ -18,9 +18,10 @@ novelwriter/assets/i18n/nw_ja_JP.qm,sha256=ILDwq_8kHCiorjZabSbUYer9xB9q7hf-NQyAl
18
18
  novelwriter/assets/i18n/nw_nb_NO.qm,sha256=g2raFt2Lw5RcE0IJM1_f7GJsqt8G_uSv7m6sD6zFe_0,95946
19
19
  novelwriter/assets/i18n/nw_nl_NL.qm,sha256=SnEtdqHaSb8xWA4-EpnWxXD_uK8BeBs44I32AwlST3M,99906
20
20
  novelwriter/assets/i18n/nw_pl_PL.qm,sha256=Em13jYHYnTbLZp_JaodgZntmcpxBrvbitOZhM8ZQXig,98702
21
- novelwriter/assets/i18n/nw_pt_BR.qm,sha256=EXqtpkEPafPipTd0rCBN6cQ5SlqVyeMPwyMfgpTKjMs,101680
21
+ novelwriter/assets/i18n/nw_pt_BR.qm,sha256=zGC7PbMD6NlbNYmZ2IiV8B9xxdTE7yBpaFhSeaBQSzU,101706
22
+ novelwriter/assets/i18n/nw_ru_RU.qm,sha256=DOaPZyREPxMrOuLLs1Sboj43QA6HfK6okU8WJGue5wE,98115
22
23
  novelwriter/assets/i18n/nw_zh_CN.qm,sha256=poSDKRXapJ8zHBmiRdA85KcIN1nm6gnowDMlpoJwAKE,69647
23
- novelwriter/assets/i18n/project_de_DE.json,sha256=85ud9rxRHyXm85QDmW_LKcUE8h0L1Bvukaf5Tjt-wpg,2818
24
+ novelwriter/assets/i18n/project_de_DE.json,sha256=fuEYohM2xm0mLXmibbU0TISr0BCZb2yOiBLCUmKhDJQ,2810
24
25
  novelwriter/assets/i18n/project_en_GB.json,sha256=7c9W2YJAELCSwx4zN_2qYZ3xsGncinCrGNhaj_FVkxk,2511
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
@@ -260,12 +261,12 @@ novelwriter/assets/syntax/tomorrow_night.conf,sha256=mWPneIV_6tszLEK4-Eo-kcJmUbr
260
261
  novelwriter/assets/syntax/tomorrow_night_blue.conf,sha256=L42gcekFfNpCCB45m9Lhzmz8Y6Lvbpik3AADi_1Aao8,1549
261
262
  novelwriter/assets/syntax/tomorrow_night_bright.conf,sha256=h8_775Ed8hl2XhfCoxAY2kT43vi-UvG8UHik1aI4eRw,1554
262
263
  novelwriter/assets/syntax/tomorrow_night_eighties.conf,sha256=stO_xH5RzMN0jaZeYr53LVXbpqSmIXALBFGVLlJBDLA,1557
263
- novelwriter/assets/text/credits_en.htm,sha256=jeEMRXuD-ZpGgRPtS3oZQ4HdIe6pwSnB3ZifvYiZLjU,2904
264
+ novelwriter/assets/text/credits_en.htm,sha256=wZgQGDQgIvd_2aT6oaJB88jOUjhtWYbn9tA6IfoGq3k,2958
264
265
  novelwriter/assets/text/lipsum.txt,sha256=sGA6AC_p4jrUifxLxy3cSODeRwkpBNXDPGgX6YRTm2s,62937
265
266
  novelwriter/assets/themes/cyberpunk_night.conf,sha256=FvG_YVfEnMwJV1XUDEdpi9qoHQ5sdyVEaR_Y3WfWNA8,923
266
267
  novelwriter/assets/themes/default.conf,sha256=K0LZ64lODpCtUg3pISTAP4UKvEYMvPkmIYN9RDEaWwk,72
267
268
  novelwriter/assets/themes/default_dark.conf,sha256=obPCLVOXL1Zp973DbbROldyQOoUPGWlPKLbetZqMZe8,989
268
- novelwriter/assets/themes/default_light.conf,sha256=zNjrtkRs2hLEcefFt3uys2-tei3Lxdth-yThO9InNz4,992
269
+ novelwriter/assets/themes/default_light.conf,sha256=2a4SXzlbZpyV9EX3BuFSRFYuLuzu4hapa_3iwez6yAc,992
269
270
  novelwriter/assets/themes/dracula.conf,sha256=pUvu7FS1nRPj3PyU3NZMR0WSb5sIa0oLpSa2XTzsh98,1425
270
271
  novelwriter/assets/themes/solarized_dark.conf,sha256=7dDjs8aiFuAjl--hqMJQEExrfCgAapiPY82CL6aAo-I,916
271
272
  novelwriter/assets/themes/solarized_light.conf,sha256=psCPVWcjAKB5y8H_E_h5zYUifxh5YpdFdBzxFofIHa0,918
@@ -283,7 +284,7 @@ novelwriter/core/sessions.py,sha256=V9eBXaUMcXTZjYXR5dgi6E14COIlcLIkNwS6pDrn75U,
283
284
  novelwriter/core/spellcheck.py,sha256=MwkRPp3MJa2X-6yRWX6Rc-sq2vLsbLnjNnyUpAbRFiE,7176
284
285
  novelwriter/core/status.py,sha256=FW20GK6_gxsYCiD7ZDg_gGIgp6yw3y1PS5mBN5HlARo,11592
285
286
  novelwriter/core/storage.py,sha256=mNM9EMW0VRMwEkmTKnzotPVdJk4tJDDUNAHNH9yG5mw,20926
286
- novelwriter/core/tohtml.py,sha256=NxM4c52q2ZFNW-XdHOI9L5lqTSiw9J5KZAELhdmN_9I,19211
287
+ novelwriter/core/tohtml.py,sha256=ldJRk2J2RQ5IHPNUtVWCLy64QkVbOm2WfyMcSln-YUg,19211
287
288
  novelwriter/core/tokenizer.py,sha256=M4hbOqPtaeLFFPwVlQs03eHgSDHEWjZKw3_zzWtgqB0,47975
288
289
  novelwriter/core/tomarkdown.py,sha256=sZG64PLyTjDuIxnPQVMdcMSF-obsp4C06B1dUKhlbHU,7925
289
290
  novelwriter/core/toodt.py,sha256=Hrb6FJkwf2wwcKE6f7lw5o0PZqKsf1TWqvJbrJWrijU,62529
@@ -316,7 +317,7 @@ novelwriter/gui/itemdetails.py,sha256=0U3hghK4Vue3AwtLBRY6YJMN3vOCjatvvzXhJDn4UX
316
317
  novelwriter/gui/mainmenu.py,sha256=PaJjO38DQ72UL9hMyvSbh2I1daxOZBSbJhNsov771fw,38908
317
318
  novelwriter/gui/noveltree.py,sha256=rAU_f6efrt5uAsew6jGqo3X3E3ggrZaoQh2prm13wD8,27635
318
319
  novelwriter/gui/outline.py,sha256=Id6hSEe1iLls6qPckX-b3U21rPOOndlfe7r4VsNC3G8,42312
319
- novelwriter/gui/projtree.py,sha256=iMsMf8IcaV3Dvsbx3thWvWffHFqM5kTWP2AC69Fsvg0,78027
320
+ novelwriter/gui/projtree.py,sha256=GF7StUyPpgp-mcnG2AQIOta7o4gjBuDn69-9piYmtbU,78380
320
321
  novelwriter/gui/search.py,sha256=HnS0_vOg15f3woXeZ8MS_ZAblx9aFIuN7BSa195tY1M,13262
321
322
  novelwriter/gui/sidebar.py,sha256=jBkOinx69lwt4m1GovQ7nF44lF-g_SOk3yTT96KlbFY,6212
322
323
  novelwriter/gui/statusbar.py,sha256=-rF6bIJXGKFRswVKWE1c5In5x3sX4iXMfp0AGxZxt0c,9053
@@ -331,9 +332,9 @@ novelwriter/tools/manussettings.py,sha256=Uz7QpCb2l_SftpQ5N7x0qHdq41-6fvTRHv7bxW
331
332
  novelwriter/tools/noveldetails.py,sha256=xNpTf5-hFu-K_flPhMLug6tNboKvDWV7OEetpHx6Lsc,18481
332
333
  novelwriter/tools/welcome.py,sha256=KLSlBTih_HOTJ3nmyv4IU4ec8XNJDL5AwXMZ6amqmIw,28027
333
334
  novelwriter/tools/writingstats.py,sha256=f5nbmE5V9VsQ8qi_DlvfF5yVIupEbVDavtuMbTzU7IA,22753
334
- novelWriter-2.5.2.dist-info/LICENSE.md,sha256=2GirkkLrPfQqx7fACKRJjtKJUegKc8067erGvcDVQHM,32197
335
- novelWriter-2.5.2.dist-info/METADATA,sha256=76vgcoOL-Qfwlxjkg274DhfbxHgJN_AjHJnNN26Tb5Y,2532
336
- novelWriter-2.5.2.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
337
- novelWriter-2.5.2.dist-info/entry_points.txt,sha256=YDUG1w361LtLsjD3YhxoTDTwM17JA5-nigjC6j5C74A,45
338
- novelWriter-2.5.2.dist-info/top_level.txt,sha256=wFFEucjEeNC_Ap5ULBuEutg5a1Uc0-YO9uFT5L2naNI,12
339
- novelWriter-2.5.2.dist-info/RECORD,,
335
+ novelWriter-2.5.3.dist-info/LICENSE.md,sha256=2GirkkLrPfQqx7fACKRJjtKJUegKc8067erGvcDVQHM,32197
336
+ novelWriter-2.5.3.dist-info/METADATA,sha256=ADeNRKWKkQDtlf-XyVKsOHPcX8hjmX1umCivlQppZcY,2581
337
+ novelWriter-2.5.3.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
338
+ novelWriter-2.5.3.dist-info/entry_points.txt,sha256=YDUG1w361LtLsjD3YhxoTDTwM17JA5-nigjC6j5C74A,45
339
+ novelWriter-2.5.3.dist-info/top_level.txt,sha256=wFFEucjEeNC_Ap5ULBuEutg5a1Uc0-YO9uFT5L2naNI,12
340
+ novelWriter-2.5.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.6.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
novelwriter/__init__.py CHANGED
@@ -47,9 +47,9 @@ __license__ = "GPLv3"
47
47
  __author__ = "Veronica Berglyd Olsen"
48
48
  __maintainer__ = "Veronica Berglyd Olsen"
49
49
  __email__ = "code@vkbo.net"
50
- __version__ = "2.5.2"
51
- __hexversion__ = "0x020502f0"
52
- __date__ = "2024-09-17"
50
+ __version__ = "2.5.3"
51
+ __hexversion__ = "0x020503f0"
52
+ __date__ = "2024-11-26"
53
53
  __status__ = "Stable"
54
54
  __domain__ = "novelwriter.io"
55
55
 
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": "Два",
Binary file
Binary file
@@ -35,6 +35,7 @@ translators for the languages currently available:</p>
35
35
  <li><b>Norwegian:</b> Veronica Berglyd Olsen (vkbo)</li>
36
36
  <li><b>Polish:</b> Anna Maria Polak (Nauthiz)</li>
37
37
  <li><b>Portuguese:</b> Bruno Meneguello (bkmeneguello)</li>
38
+ <li><b>Russian:</b> Konstantin Tan (k1kimosha)</li>
38
39
  <li><b>Simplified Chinese:</b> Qianzhi Long (longqzh)</li>
39
40
  </ul>
40
41
 
@@ -29,5 +29,5 @@ helptext = 92, 92, 92
29
29
  fadedtext = 108, 108, 108
30
30
  errortext = 255, 92, 92
31
31
  statusnone = 120, 120, 120
32
- statussaved = 200, 15, 39
33
- statusunsaved = 2, 133, 37
32
+ statussaved = 2, 133, 37
33
+ statusunsaved = 200, 15, 39
@@ -299,10 +299,10 @@ class ToHtml(Tokenizer):
299
299
  "<head>\n"
300
300
  "<meta charset='utf-8'>\n"
301
301
  "<title>{title:s}</title>\n"
302
- "</head>\n"
303
302
  "<style>\n"
304
303
  "{style:s}\n"
305
304
  "</style>\n"
305
+ "</head>\n"
306
306
  "<body>\n"
307
307
  "<article>\n"
308
308
  "{body:s}\n"
@@ -1000,7 +1000,9 @@ class GuiProjectTree(QTreeWidget):
1000
1000
 
1001
1001
  self.propagateCount(tHandle, 0)
1002
1002
 
1003
- trItemP = trItemS.parent()
1003
+ # If a non-root item ends up on root due to a bug, allow it
1004
+ # to still be deleted from invisible root (see #2108)
1005
+ trItemP = trItemS.parent() or self.invisibleRootItem()
1004
1006
  tIndex = trItemP.indexOfChild(trItemS)
1005
1007
  trItemP.takeChild(tIndex)
1006
1008
 
@@ -1315,9 +1317,11 @@ class GuiProjectTree(QTreeWidget):
1315
1317
  action is allowed, and update relevant data.
1316
1318
  """
1317
1319
  tItem = self.itemAt(event.pos())
1318
- dropOn = self.dropIndicatorPosition() == QAbstractItemView.DropIndicatorPosition.OnItem
1320
+ onItem = self.dropIndicatorPosition() == QAbstractItemView.DropIndicatorPosition.OnItem
1321
+ onView = self.dropIndicatorPosition() == QAbstractItemView.DropIndicatorPosition.OnViewport
1319
1322
  # Make sure nothing can be dropped on invisible root (see #1569)
1320
- if not tItem or tItem.parent() is None and not dropOn:
1323
+ # Make sure nothing can be dropped on the viewport (see #2108)
1324
+ if tItem is None or (tItem.parent() is None and not onItem) or onView:
1321
1325
  logger.error("Invalid drop location")
1322
1326
  event.ignore()
1323
1327
  return