novelWriter 2.6.3__py3-none-any.whl → 2.7rc1__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 (325) hide show
  1. novelwriter/__init__.py +98 -75
  2. novelwriter/assets/i18n/project_en_GB.json +2 -0
  3. novelwriter/assets/icons/font_awesome.icons +109 -0
  4. novelwriter/assets/icons/material_filled_bold.icons +109 -0
  5. novelwriter/assets/icons/material_filled_normal.icons +109 -0
  6. novelwriter/assets/icons/material_filled_thin.icons +109 -0
  7. novelwriter/assets/icons/material_rounded_bold.icons +109 -0
  8. novelwriter/assets/icons/material_rounded_normal.icons +109 -0
  9. novelwriter/assets/icons/material_rounded_thin.icons +109 -0
  10. novelwriter/assets/icons/remix_filled.icons +109 -0
  11. novelwriter/assets/icons/remix_outline.icons +109 -0
  12. novelwriter/assets/images/splash.png +0 -0
  13. novelwriter/assets/manual.pdf +0 -0
  14. novelwriter/assets/{manual_fr_FR.pdf → manual_fr.pdf} +0 -0
  15. novelwriter/assets/sample.zip +0 -0
  16. novelwriter/assets/syntax/cyberpunk_night.conf +1 -1
  17. novelwriter/assets/syntax/snazzy.conf +3 -3
  18. novelwriter/assets/text/credits_en.htm +6 -6
  19. novelwriter/assets/themes/cyberpunk_night.conf +23 -7
  20. novelwriter/assets/themes/default_dark.conf +20 -4
  21. novelwriter/assets/themes/default_light.conf +21 -5
  22. novelwriter/assets/themes/dracula.conf +20 -4
  23. novelwriter/assets/themes/snazzy.conf +48 -0
  24. novelwriter/assets/themes/solarized_dark.conf +24 -8
  25. novelwriter/assets/themes/solarized_light.conf +22 -6
  26. novelwriter/common.py +43 -27
  27. novelwriter/config.py +201 -139
  28. novelwriter/constants.py +67 -36
  29. novelwriter/core/buildsettings.py +25 -16
  30. novelwriter/core/coretools.py +52 -41
  31. novelwriter/core/docbuild.py +20 -13
  32. novelwriter/core/document.py +2 -2
  33. novelwriter/core/index.py +166 -432
  34. novelwriter/core/indexdata.py +406 -0
  35. novelwriter/core/item.py +50 -32
  36. novelwriter/core/itemmodel.py +43 -38
  37. novelwriter/core/novelmodel.py +225 -0
  38. novelwriter/core/options.py +1 -1
  39. novelwriter/core/project.py +24 -25
  40. novelwriter/core/projectdata.py +47 -29
  41. novelwriter/core/projectxml.py +18 -8
  42. novelwriter/core/sessions.py +32 -15
  43. novelwriter/core/spellcheck.py +4 -3
  44. novelwriter/core/status.py +12 -15
  45. novelwriter/core/storage.py +1 -1
  46. novelwriter/core/tree.py +55 -13
  47. novelwriter/dialogs/about.py +19 -22
  48. novelwriter/dialogs/docmerge.py +23 -24
  49. novelwriter/dialogs/docsplit.py +26 -26
  50. novelwriter/dialogs/editlabel.py +19 -20
  51. novelwriter/dialogs/preferences.py +143 -69
  52. novelwriter/dialogs/projectsettings.py +51 -54
  53. novelwriter/dialogs/quotes.py +14 -19
  54. novelwriter/dialogs/wordlist.py +25 -30
  55. novelwriter/enum.py +8 -0
  56. novelwriter/error.py +16 -16
  57. novelwriter/extensions/configlayout.py +24 -20
  58. novelwriter/extensions/eventfilters.py +9 -5
  59. novelwriter/extensions/modified.py +34 -15
  60. novelwriter/extensions/novelselector.py +18 -5
  61. novelwriter/extensions/pagedsidebar.py +39 -49
  62. novelwriter/extensions/progressbars.py +10 -8
  63. novelwriter/extensions/statusled.py +6 -13
  64. novelwriter/extensions/switch.py +31 -41
  65. novelwriter/extensions/switchbox.py +8 -3
  66. novelwriter/extensions/versioninfo.py +4 -4
  67. novelwriter/formats/shared.py +1 -1
  68. novelwriter/formats/todocx.py +14 -10
  69. novelwriter/formats/tohtml.py +7 -5
  70. novelwriter/formats/tokenizer.py +37 -33
  71. novelwriter/formats/tomarkdown.py +6 -2
  72. novelwriter/formats/toodt.py +27 -22
  73. novelwriter/formats/toqdoc.py +19 -14
  74. novelwriter/formats/toraw.py +6 -2
  75. novelwriter/gui/doceditor.py +314 -305
  76. novelwriter/gui/dochighlight.py +46 -45
  77. novelwriter/gui/docviewer.py +102 -104
  78. novelwriter/gui/docviewerpanel.py +47 -51
  79. novelwriter/gui/editordocument.py +8 -5
  80. novelwriter/gui/itemdetails.py +11 -14
  81. novelwriter/gui/mainmenu.py +146 -145
  82. novelwriter/gui/noveltree.py +246 -406
  83. novelwriter/gui/outline.py +141 -72
  84. novelwriter/gui/projtree.py +139 -132
  85. novelwriter/gui/search.py +34 -31
  86. novelwriter/gui/sidebar.py +13 -18
  87. novelwriter/gui/statusbar.py +27 -21
  88. novelwriter/gui/theme.py +554 -436
  89. novelwriter/guimain.py +56 -38
  90. novelwriter/shared.py +32 -23
  91. novelwriter/splash.py +74 -0
  92. novelwriter/text/comments.py +70 -0
  93. novelwriter/text/patterns.py +4 -4
  94. novelwriter/tools/dictionaries.py +20 -29
  95. novelwriter/tools/lipsum.py +18 -18
  96. novelwriter/tools/manusbuild.py +39 -42
  97. novelwriter/tools/manuscript.py +102 -115
  98. novelwriter/tools/manussettings.py +116 -96
  99. novelwriter/tools/noveldetails.py +60 -72
  100. novelwriter/tools/welcome.py +57 -75
  101. novelwriter/tools/writingstats.py +112 -102
  102. novelwriter/types.py +5 -7
  103. {novelWriter-2.6.3.dist-info → novelwriter-2.7rc1.dist-info}/METADATA +6 -6
  104. novelwriter-2.7rc1.dist-info/RECORD +162 -0
  105. {novelWriter-2.6.3.dist-info → novelwriter-2.7rc1.dist-info}/WHEEL +1 -1
  106. novelWriter-2.6.3.dist-info/RECORD +0 -363
  107. novelwriter/assets/icons/typicons_dark/README.md +0 -29
  108. novelwriter/assets/icons/typicons_dark/icons.conf +0 -134
  109. novelwriter/assets/icons/typicons_dark/mixed_copy.svg +0 -4
  110. novelwriter/assets/icons/typicons_dark/mixed_document-chapter.svg +0 -12
  111. novelwriter/assets/icons/typicons_dark/mixed_document-new.svg +0 -6
  112. novelwriter/assets/icons/typicons_dark/mixed_document-note.svg +0 -12
  113. novelwriter/assets/icons/typicons_dark/mixed_document-scene.svg +0 -12
  114. novelwriter/assets/icons/typicons_dark/mixed_document-section.svg +0 -12
  115. novelwriter/assets/icons/typicons_dark/mixed_document-title.svg +0 -12
  116. novelwriter/assets/icons/typicons_dark/mixed_edit.svg +0 -4
  117. novelwriter/assets/icons/typicons_dark/mixed_import.svg +0 -5
  118. novelwriter/assets/icons/typicons_dark/mixed_input-checked.svg +0 -5
  119. novelwriter/assets/icons/typicons_dark/mixed_input-none.svg +0 -5
  120. novelwriter/assets/icons/typicons_dark/mixed_input-unchecked.svg +0 -5
  121. novelwriter/assets/icons/typicons_dark/mixed_margin-bottom.svg +0 -6
  122. novelwriter/assets/icons/typicons_dark/mixed_margin-left.svg +0 -6
  123. novelwriter/assets/icons/typicons_dark/mixed_margin-right.svg +0 -6
  124. novelwriter/assets/icons/typicons_dark/mixed_margin-top.svg +0 -6
  125. novelwriter/assets/icons/typicons_dark/mixed_search-replace.svg +0 -6
  126. novelwriter/assets/icons/typicons_dark/mixed_size-height.svg +0 -6
  127. novelwriter/assets/icons/typicons_dark/mixed_size-width.svg +0 -6
  128. novelwriter/assets/icons/typicons_dark/nw_deco-h0.svg +0 -4
  129. novelwriter/assets/icons/typicons_dark/nw_deco-h1.svg +0 -4
  130. novelwriter/assets/icons/typicons_dark/nw_deco-h2-narrow.svg +0 -4
  131. novelwriter/assets/icons/typicons_dark/nw_deco-h2.svg +0 -4
  132. novelwriter/assets/icons/typicons_dark/nw_deco-h3-narrow.svg +0 -4
  133. novelwriter/assets/icons/typicons_dark/nw_deco-h3.svg +0 -4
  134. novelwriter/assets/icons/typicons_dark/nw_deco-h4-narrow.svg +0 -4
  135. novelwriter/assets/icons/typicons_dark/nw_deco-h4.svg +0 -4
  136. novelwriter/assets/icons/typicons_dark/nw_deco-note.svg +0 -4
  137. novelwriter/assets/icons/typicons_dark/nw_deco-noveltree-more.svg +0 -4
  138. novelwriter/assets/icons/typicons_dark/nw_font.svg +0 -4
  139. novelwriter/assets/icons/typicons_dark/nw_panel.svg +0 -4
  140. novelwriter/assets/icons/typicons_dark/nw_quote.svg +0 -4
  141. novelwriter/assets/icons/typicons_dark/nw_search-case.svg +0 -4
  142. novelwriter/assets/icons/typicons_dark/nw_search-preserve.svg +0 -4
  143. novelwriter/assets/icons/typicons_dark/nw_search-regex.svg +0 -4
  144. novelwriter/assets/icons/typicons_dark/nw_search-word.svg +0 -4
  145. novelwriter/assets/icons/typicons_dark/nw_tb-bold-md.svg +0 -4
  146. novelwriter/assets/icons/typicons_dark/nw_tb-bold.svg +0 -6
  147. novelwriter/assets/icons/typicons_dark/nw_tb-italic-md.svg +0 -4
  148. novelwriter/assets/icons/typicons_dark/nw_tb-italic.svg +0 -6
  149. novelwriter/assets/icons/typicons_dark/nw_tb-mark.svg +0 -7
  150. novelwriter/assets/icons/typicons_dark/nw_tb-strike-md.svg +0 -4
  151. novelwriter/assets/icons/typicons_dark/nw_tb-strike.svg +0 -6
  152. novelwriter/assets/icons/typicons_dark/nw_tb-subscript.svg +0 -7
  153. novelwriter/assets/icons/typicons_dark/nw_tb-superscript.svg +0 -7
  154. novelwriter/assets/icons/typicons_dark/nw_tb-underline.svg +0 -7
  155. novelwriter/assets/icons/typicons_dark/nw_toolbar.svg +0 -5
  156. novelwriter/assets/icons/typicons_dark/typ_arrow-down-thick-grey.svg +0 -4
  157. novelwriter/assets/icons/typicons_dark/typ_arrow-forward.svg +0 -4
  158. novelwriter/assets/icons/typicons_dark/typ_arrow-maximise.svg +0 -4
  159. novelwriter/assets/icons/typicons_dark/typ_arrow-minimise.svg +0 -4
  160. novelwriter/assets/icons/typicons_dark/typ_arrow-repeat-grey.svg +0 -4
  161. novelwriter/assets/icons/typicons_dark/typ_book-grey.svg +0 -4
  162. novelwriter/assets/icons/typicons_dark/typ_book.svg +0 -6
  163. novelwriter/assets/icons/typicons_dark/typ_bookmark.svg +0 -4
  164. novelwriter/assets/icons/typicons_dark/typ_calendar.svg +0 -4
  165. novelwriter/assets/icons/typicons_dark/typ_cancel-grey.svg +0 -4
  166. novelwriter/assets/icons/typicons_dark/typ_cancel.svg +0 -4
  167. novelwriter/assets/icons/typicons_dark/typ_chart-bar-grey.svg +0 -4
  168. novelwriter/assets/icons/typicons_dark/typ_chevron-down.svg +0 -4
  169. novelwriter/assets/icons/typicons_dark/typ_chevron-left.svg +0 -4
  170. novelwriter/assets/icons/typicons_dark/typ_chevron-right.svg +0 -4
  171. novelwriter/assets/icons/typicons_dark/typ_chevron-up.svg +0 -4
  172. novelwriter/assets/icons/typicons_dark/typ_cog.svg +0 -4
  173. novelwriter/assets/icons/typicons_dark/typ_delete-full.svg +0 -4
  174. novelwriter/assets/icons/typicons_dark/typ_delete.svg +0 -4
  175. novelwriter/assets/icons/typicons_dark/typ_directions-full.svg +0 -4
  176. novelwriter/assets/icons/typicons_dark/typ_document-add.svg +0 -4
  177. novelwriter/assets/icons/typicons_dark/typ_document-text.svg +0 -8
  178. novelwriter/assets/icons/typicons_dark/typ_document.svg +0 -4
  179. novelwriter/assets/icons/typicons_dark/typ_export-grey.svg +0 -4
  180. novelwriter/assets/icons/typicons_dark/typ_export.svg +0 -4
  181. novelwriter/assets/icons/typicons_dark/typ_eye.svg +0 -4
  182. novelwriter/assets/icons/typicons_dark/typ_flag.svg +0 -4
  183. novelwriter/assets/icons/typicons_dark/typ_folder-open.svg +0 -4
  184. novelwriter/assets/icons/typicons_dark/typ_folder.svg +0 -5
  185. novelwriter/assets/icons/typicons_dark/typ_globe-grey.svg +0 -4
  186. novelwriter/assets/icons/typicons_dark/typ_key.svg +0 -4
  187. novelwriter/assets/icons/typicons_dark/typ_lightbulb-full.svg +0 -4
  188. novelwriter/assets/icons/typicons_dark/typ_location.svg +0 -4
  189. novelwriter/assets/icons/typicons_dark/typ_media-pause-grey.svg +0 -4
  190. novelwriter/assets/icons/typicons_dark/typ_media-record-outline.svg +0 -4
  191. novelwriter/assets/icons/typicons_dark/typ_media-record.svg +0 -4
  192. novelwriter/assets/icons/typicons_dark/typ_minus.svg +0 -4
  193. novelwriter/assets/icons/typicons_dark/typ_pencil.svg +0 -5
  194. novelwriter/assets/icons/typicons_dark/typ_pin-outline.svg +0 -4
  195. novelwriter/assets/icons/typicons_dark/typ_pin.svg +0 -4
  196. novelwriter/assets/icons/typicons_dark/typ_plus.svg +0 -4
  197. novelwriter/assets/icons/typicons_dark/typ_puzzle-outline.svg +0 -4
  198. novelwriter/assets/icons/typicons_dark/typ_puzzle.svg +0 -4
  199. novelwriter/assets/icons/typicons_dark/typ_refresh-flipped.svg +0 -4
  200. novelwriter/assets/icons/typicons_dark/typ_refresh.svg +0 -4
  201. novelwriter/assets/icons/typicons_dark/typ_search-grey.svg +0 -4
  202. novelwriter/assets/icons/typicons_dark/typ_search.svg +0 -4
  203. novelwriter/assets/icons/typicons_dark/typ_star.svg +0 -4
  204. novelwriter/assets/icons/typicons_dark/typ_stopwatch-grey.svg +0 -4
  205. novelwriter/assets/icons/typicons_dark/typ_th-dot-menu.svg +0 -4
  206. novelwriter/assets/icons/typicons_dark/typ_th-dot-more.svg +0 -4
  207. novelwriter/assets/icons/typicons_dark/typ_th-list-grey.svg +0 -4
  208. novelwriter/assets/icons/typicons_dark/typ_th-list.svg +0 -9
  209. novelwriter/assets/icons/typicons_dark/typ_times.svg +0 -4
  210. novelwriter/assets/icons/typicons_dark/typ_trash.svg +0 -5
  211. novelwriter/assets/icons/typicons_dark/typ_unfold-hidden.svg +0 -4
  212. novelwriter/assets/icons/typicons_dark/typ_unfold-visible.svg +0 -4
  213. novelwriter/assets/icons/typicons_dark/typ_user.svg +0 -5
  214. novelwriter/assets/icons/typicons_dark/typ_warning-full.svg +0 -4
  215. novelwriter/assets/icons/typicons_light/README.md +0 -29
  216. novelwriter/assets/icons/typicons_light/icons.conf +0 -134
  217. novelwriter/assets/icons/typicons_light/mixed_copy.svg +0 -4
  218. novelwriter/assets/icons/typicons_light/mixed_document-chapter.svg +0 -12
  219. novelwriter/assets/icons/typicons_light/mixed_document-new.svg +0 -6
  220. novelwriter/assets/icons/typicons_light/mixed_document-note.svg +0 -12
  221. novelwriter/assets/icons/typicons_light/mixed_document-scene.svg +0 -12
  222. novelwriter/assets/icons/typicons_light/mixed_document-section.svg +0 -12
  223. novelwriter/assets/icons/typicons_light/mixed_document-title.svg +0 -12
  224. novelwriter/assets/icons/typicons_light/mixed_edit.svg +0 -4
  225. novelwriter/assets/icons/typicons_light/mixed_import.svg +0 -5
  226. novelwriter/assets/icons/typicons_light/mixed_input-checked.svg +0 -5
  227. novelwriter/assets/icons/typicons_light/mixed_input-none.svg +0 -5
  228. novelwriter/assets/icons/typicons_light/mixed_input-unchecked.svg +0 -5
  229. novelwriter/assets/icons/typicons_light/mixed_margin-bottom.svg +0 -6
  230. novelwriter/assets/icons/typicons_light/mixed_margin-left.svg +0 -6
  231. novelwriter/assets/icons/typicons_light/mixed_margin-right.svg +0 -6
  232. novelwriter/assets/icons/typicons_light/mixed_margin-top.svg +0 -6
  233. novelwriter/assets/icons/typicons_light/mixed_search-replace.svg +0 -6
  234. novelwriter/assets/icons/typicons_light/mixed_size-height.svg +0 -6
  235. novelwriter/assets/icons/typicons_light/mixed_size-width.svg +0 -6
  236. novelwriter/assets/icons/typicons_light/nw_deco-h0.svg +0 -4
  237. novelwriter/assets/icons/typicons_light/nw_deco-h1.svg +0 -4
  238. novelwriter/assets/icons/typicons_light/nw_deco-h2-narrow.svg +0 -4
  239. novelwriter/assets/icons/typicons_light/nw_deco-h2.svg +0 -4
  240. novelwriter/assets/icons/typicons_light/nw_deco-h3-narrow.svg +0 -4
  241. novelwriter/assets/icons/typicons_light/nw_deco-h3.svg +0 -4
  242. novelwriter/assets/icons/typicons_light/nw_deco-h4-narrow.svg +0 -4
  243. novelwriter/assets/icons/typicons_light/nw_deco-h4.svg +0 -4
  244. novelwriter/assets/icons/typicons_light/nw_deco-note.svg +0 -4
  245. novelwriter/assets/icons/typicons_light/nw_deco-noveltree-more.svg +0 -4
  246. novelwriter/assets/icons/typicons_light/nw_font.svg +0 -4
  247. novelwriter/assets/icons/typicons_light/nw_panel.svg +0 -4
  248. novelwriter/assets/icons/typicons_light/nw_quote.svg +0 -4
  249. novelwriter/assets/icons/typicons_light/nw_search-case.svg +0 -4
  250. novelwriter/assets/icons/typicons_light/nw_search-preserve.svg +0 -4
  251. novelwriter/assets/icons/typicons_light/nw_search-regex.svg +0 -4
  252. novelwriter/assets/icons/typicons_light/nw_search-word.svg +0 -4
  253. novelwriter/assets/icons/typicons_light/nw_tb-bold-md.svg +0 -4
  254. novelwriter/assets/icons/typicons_light/nw_tb-bold.svg +0 -6
  255. novelwriter/assets/icons/typicons_light/nw_tb-italic-md.svg +0 -4
  256. novelwriter/assets/icons/typicons_light/nw_tb-italic.svg +0 -6
  257. novelwriter/assets/icons/typicons_light/nw_tb-mark.svg +0 -7
  258. novelwriter/assets/icons/typicons_light/nw_tb-strike-md.svg +0 -4
  259. novelwriter/assets/icons/typicons_light/nw_tb-strike.svg +0 -6
  260. novelwriter/assets/icons/typicons_light/nw_tb-subscript.svg +0 -7
  261. novelwriter/assets/icons/typicons_light/nw_tb-superscript.svg +0 -7
  262. novelwriter/assets/icons/typicons_light/nw_tb-underline.svg +0 -7
  263. novelwriter/assets/icons/typicons_light/nw_toolbar.svg +0 -5
  264. novelwriter/assets/icons/typicons_light/typ_arrow-down-thick-grey.svg +0 -4
  265. novelwriter/assets/icons/typicons_light/typ_arrow-forward.svg +0 -4
  266. novelwriter/assets/icons/typicons_light/typ_arrow-maximise.svg +0 -4
  267. novelwriter/assets/icons/typicons_light/typ_arrow-minimise.svg +0 -4
  268. novelwriter/assets/icons/typicons_light/typ_arrow-repeat-grey.svg +0 -4
  269. novelwriter/assets/icons/typicons_light/typ_book-grey.svg +0 -4
  270. novelwriter/assets/icons/typicons_light/typ_book.svg +0 -6
  271. novelwriter/assets/icons/typicons_light/typ_bookmark.svg +0 -4
  272. novelwriter/assets/icons/typicons_light/typ_calendar.svg +0 -4
  273. novelwriter/assets/icons/typicons_light/typ_cancel-grey.svg +0 -4
  274. novelwriter/assets/icons/typicons_light/typ_cancel.svg +0 -4
  275. novelwriter/assets/icons/typicons_light/typ_chart-bar-grey.svg +0 -4
  276. novelwriter/assets/icons/typicons_light/typ_chevron-down.svg +0 -4
  277. novelwriter/assets/icons/typicons_light/typ_chevron-left.svg +0 -4
  278. novelwriter/assets/icons/typicons_light/typ_chevron-right.svg +0 -4
  279. novelwriter/assets/icons/typicons_light/typ_chevron-up.svg +0 -4
  280. novelwriter/assets/icons/typicons_light/typ_cog.svg +0 -4
  281. novelwriter/assets/icons/typicons_light/typ_delete-full.svg +0 -4
  282. novelwriter/assets/icons/typicons_light/typ_delete.svg +0 -4
  283. novelwriter/assets/icons/typicons_light/typ_directions-full.svg +0 -4
  284. novelwriter/assets/icons/typicons_light/typ_document-add.svg +0 -4
  285. novelwriter/assets/icons/typicons_light/typ_document-text.svg +0 -5
  286. novelwriter/assets/icons/typicons_light/typ_document.svg +0 -4
  287. novelwriter/assets/icons/typicons_light/typ_export-grey.svg +0 -4
  288. novelwriter/assets/icons/typicons_light/typ_export.svg +0 -4
  289. novelwriter/assets/icons/typicons_light/typ_eye.svg +0 -4
  290. novelwriter/assets/icons/typicons_light/typ_flag.svg +0 -4
  291. novelwriter/assets/icons/typicons_light/typ_folder-open.svg +0 -4
  292. novelwriter/assets/icons/typicons_light/typ_folder.svg +0 -5
  293. novelwriter/assets/icons/typicons_light/typ_globe-grey.svg +0 -4
  294. novelwriter/assets/icons/typicons_light/typ_key.svg +0 -4
  295. novelwriter/assets/icons/typicons_light/typ_lightbulb-full.svg +0 -4
  296. novelwriter/assets/icons/typicons_light/typ_location.svg +0 -4
  297. novelwriter/assets/icons/typicons_light/typ_media-pause-grey.svg +0 -4
  298. novelwriter/assets/icons/typicons_light/typ_media-record-outline.svg +0 -4
  299. novelwriter/assets/icons/typicons_light/typ_media-record.svg +0 -4
  300. novelwriter/assets/icons/typicons_light/typ_minus.svg +0 -4
  301. novelwriter/assets/icons/typicons_light/typ_pencil.svg +0 -5
  302. novelwriter/assets/icons/typicons_light/typ_pin-outline.svg +0 -4
  303. novelwriter/assets/icons/typicons_light/typ_pin.svg +0 -4
  304. novelwriter/assets/icons/typicons_light/typ_plus.svg +0 -4
  305. novelwriter/assets/icons/typicons_light/typ_puzzle-outline.svg +0 -4
  306. novelwriter/assets/icons/typicons_light/typ_puzzle.svg +0 -4
  307. novelwriter/assets/icons/typicons_light/typ_refresh-flipped.svg +0 -4
  308. novelwriter/assets/icons/typicons_light/typ_refresh.svg +0 -4
  309. novelwriter/assets/icons/typicons_light/typ_search-grey.svg +0 -4
  310. novelwriter/assets/icons/typicons_light/typ_search.svg +0 -4
  311. novelwriter/assets/icons/typicons_light/typ_star.svg +0 -4
  312. novelwriter/assets/icons/typicons_light/typ_stopwatch-grey.svg +0 -4
  313. novelwriter/assets/icons/typicons_light/typ_th-dot-menu.svg +0 -4
  314. novelwriter/assets/icons/typicons_light/typ_th-dot-more.svg +0 -4
  315. novelwriter/assets/icons/typicons_light/typ_th-list-grey.svg +0 -4
  316. novelwriter/assets/icons/typicons_light/typ_th-list.svg +0 -9
  317. novelwriter/assets/icons/typicons_light/typ_times.svg +0 -4
  318. novelwriter/assets/icons/typicons_light/typ_trash.svg +0 -5
  319. novelwriter/assets/icons/typicons_light/typ_unfold-hidden.svg +0 -4
  320. novelwriter/assets/icons/typicons_light/typ_unfold-visible.svg +0 -4
  321. novelwriter/assets/icons/typicons_light/typ_user.svg +0 -5
  322. novelwriter/assets/icons/typicons_light/typ_warning-full.svg +0 -4
  323. {novelWriter-2.6.3.dist-info → novelwriter-2.7rc1.dist-info}/entry_points.txt +0 -0
  324. {novelWriter-2.6.3.dist-info → novelwriter-2.7rc1.dist-info/licenses}/LICENSE.md +0 -0
  325. {novelWriter-2.6.3.dist-info → novelwriter-2.7rc1.dist-info}/top_level.txt +0 -0
@@ -26,18 +26,19 @@ from __future__ import annotations
26
26
 
27
27
  import logging
28
28
 
29
- from PyQt5.QtCore import Qt, pyqtSignal, pyqtSlot
30
- from PyQt5.QtGui import QCloseEvent, QKeyEvent, QKeySequence
31
- from PyQt5.QtWidgets import (
29
+ from PyQt6.QtCore import Qt, pyqtSignal, pyqtSlot
30
+ from PyQt6.QtGui import QAction, QCloseEvent, QKeyEvent, QKeySequence
31
+ from PyQt6.QtWidgets import (
32
32
  QCompleter, QDialogButtonBox, QFileDialog, QHBoxLayout, QLineEdit,
33
33
  QPushButton, QVBoxLayout, QWidget
34
34
  )
35
35
 
36
36
  from novelwriter import CONFIG, SHARED
37
- from novelwriter.common import compact, describeFont, uniqueCompact
38
- from novelwriter.constants import nwUnicode
37
+ from novelwriter.common import compact, describeFont, processDialogSymbols, uniqueCompact
38
+ from novelwriter.config import DEF_GUI, DEF_ICONS, DEF_SYNTAX, DEF_TREECOL
39
+ from novelwriter.constants import nwLabels, nwQuotes, nwUnicode, trConst
39
40
  from novelwriter.dialogs.quotes import GuiQuoteSelect
40
- from novelwriter.extensions.configlayout import NColourLabel, NScrollableForm
41
+ from novelwriter.extensions.configlayout import NColorLabel, NScrollableForm
41
42
  from novelwriter.extensions.modified import (
42
43
  NComboBox, NDialog, NDoubleSpinBox, NIconToolButton, NSpinBox
43
44
  )
@@ -58,27 +59,28 @@ class GuiPreferences(NDialog):
58
59
  logger.debug("Create: GuiPreferences")
59
60
  self.setObjectName("GuiPreferences")
60
61
  self.setWindowTitle(self.tr("Preferences"))
61
- self.setMinimumSize(CONFIG.pxInt(600), CONFIG.pxInt(500))
62
- self.resize(*CONFIG.preferencesWinSize)
62
+ self.setMinimumSize(600, 500)
63
+ self.resize(*CONFIG.prefsWinSize)
63
64
 
64
65
  # Title
65
- self.titleLabel = NColourLabel(
66
+ self.titleLabel = NColorLabel(
66
67
  self.tr("Preferences"), self, color=SHARED.theme.helpText,
67
- scale=NColourLabel.HEADER_SCALE, indent=CONFIG.pxInt(4)
68
+ scale=NColorLabel.HEADER_SCALE, indent=4,
68
69
  )
69
70
 
70
71
  # Search Box
72
+ self.searchAction = QAction(SHARED.theme.getIcon("search"), "")
73
+ self.searchAction.triggered.connect(self._gotoSearch)
74
+
71
75
  self.searchText = QLineEdit(self)
72
76
  self.searchText.setPlaceholderText(self.tr("Search"))
73
- self.searchText.setMinimumWidth(CONFIG.pxInt(200))
74
- self.searchAction = self.searchText.addAction(
75
- SHARED.theme.getIcon("search"), QLineEdit.ActionPosition.TrailingPosition
76
- )
77
- self.searchAction.triggered.connect(self._gotoSearch)
77
+ self.searchText.setMinimumWidth(200)
78
+ self.searchText.addAction(self.searchAction, QLineEdit.ActionPosition.TrailingPosition)
78
79
 
79
80
  # SideBar
80
81
  self.sidebar = NPagedSideBar(self)
81
82
  self.sidebar.setLabelColor(SHARED.theme.helpText)
83
+ self.sidebar.setAccessibleName(self.titleLabel.text())
82
84
  self.sidebar.buttonClicked.connect(self._sidebarClicked)
83
85
 
84
86
  # Form
@@ -105,7 +107,7 @@ class GuiPreferences(NDialog):
105
107
  self.outerBox.addLayout(self.searchBox)
106
108
  self.outerBox.addLayout(self.mainBox)
107
109
  self.outerBox.addWidget(self.buttonBox)
108
- self.outerBox.setSpacing(CONFIG.pxInt(8))
110
+ self.outerBox.setSpacing(8)
109
111
 
110
112
  self.setLayout(self.outerBox)
111
113
  self.setSizeGripEnabled(True)
@@ -134,8 +136,6 @@ class GuiPreferences(NDialog):
134
136
  section = 0
135
137
  iSz = SHARED.theme.baseIconSize
136
138
  boxFixed = 6*SHARED.theme.textNWidth
137
- minWidth = CONFIG.pxInt(200)
138
- fontWidth = CONFIG.pxInt(162)
139
139
 
140
140
  # Temporary Variables
141
141
  self._guiFont = CONFIG.guiFont
@@ -154,7 +154,7 @@ class GuiPreferences(NDialog):
154
154
 
155
155
  # Display Language
156
156
  self.guiLocale = NComboBox(self)
157
- self.guiLocale.setMinimumWidth(minWidth)
157
+ self.guiLocale.setMinimumWidth(200)
158
158
  for lang, name in CONFIG.listLanguages(CONFIG.LANG_NW):
159
159
  self.guiLocale.addItem(name, lang)
160
160
  self.guiLocale.setCurrentData(CONFIG.guiLocale, "en_GB")
@@ -166,20 +166,32 @@ class GuiPreferences(NDialog):
166
166
 
167
167
  # Colour Theme
168
168
  self.guiTheme = NComboBox(self)
169
- self.guiTheme.setMinimumWidth(minWidth)
169
+ self.guiTheme.setMinimumWidth(200)
170
170
  for theme, name in SHARED.theme.listThemes():
171
171
  self.guiTheme.addItem(name, theme)
172
- self.guiTheme.setCurrentData(CONFIG.guiTheme, "default")
172
+ self.guiTheme.setCurrentData(CONFIG.guiTheme, DEF_GUI)
173
173
 
174
174
  self.mainForm.addRow(
175
175
  self.tr("Colour theme"), self.guiTheme,
176
- self.tr("General colour theme and icons."), stretch=(3, 2)
176
+ self.tr("User interface colour theme."), stretch=(3, 2)
177
+ )
178
+
179
+ # Icon Theme
180
+ self.iconTheme = NComboBox(self)
181
+ self.iconTheme.setMinimumWidth(200)
182
+ for theme, name in SHARED.theme.iconCache.listThemes():
183
+ self.iconTheme.addItem(name, theme)
184
+ self.iconTheme.setCurrentData(CONFIG.iconTheme, DEF_ICONS)
185
+
186
+ self.mainForm.addRow(
187
+ self.tr("Icon theme"), self.iconTheme,
188
+ self.tr("User interface icon theme."), stretch=(3, 2)
177
189
  )
178
190
 
179
191
  # Application Font Family
180
192
  self.guiFont = QLineEdit(self)
181
193
  self.guiFont.setReadOnly(True)
182
- self.guiFont.setMinimumWidth(fontWidth)
194
+ self.guiFont.setMinimumWidth(162)
183
195
  self.guiFont.setText(describeFont(self._guiFont))
184
196
  self.guiFont.setCursorPosition(0)
185
197
  self.guiFontButton = NIconToolButton(self, iSz, "font")
@@ -214,6 +226,14 @@ class GuiPreferences(NDialog):
214
226
  self.tr("Turn off to use the Qt font dialog, which may have more options.")
215
227
  )
216
228
 
229
+ # Use Character Count
230
+ self.useCharCount = NSwitch(self)
231
+ self.useCharCount.setChecked(CONFIG.useCharCount)
232
+ self.mainForm.addRow(
233
+ self.tr("Prefer character count over word count"), self.useCharCount,
234
+ self.tr("Display character count instead where available.")
235
+ )
236
+
217
237
  # Document Style
218
238
  # ==============
219
239
 
@@ -224,10 +244,10 @@ class GuiPreferences(NDialog):
224
244
 
225
245
  # Document Colour Theme
226
246
  self.guiSyntax = NComboBox(self)
227
- self.guiSyntax.setMinimumWidth(CONFIG.pxInt(200))
247
+ self.guiSyntax.setMinimumWidth(200)
228
248
  for syntax, name in SHARED.theme.listSyntax():
229
249
  self.guiSyntax.addItem(name, syntax)
230
- self.guiSyntax.setCurrentData(CONFIG.guiSyntax, "default_light")
250
+ self.guiSyntax.setCurrentData(CONFIG.guiSyntax, DEF_SYNTAX)
231
251
 
232
252
  self.mainForm.addRow(
233
253
  self.tr("Document colour theme"), self.guiSyntax,
@@ -237,7 +257,7 @@ class GuiPreferences(NDialog):
237
257
  # Document Font Family
238
258
  self.textFont = QLineEdit(self)
239
259
  self.textFont.setReadOnly(True)
240
- self.textFont.setMinimumWidth(fontWidth)
260
+ self.textFont.setMinimumWidth(162)
241
261
  self.textFont.setText(describeFont(CONFIG.textFont))
242
262
  self.textFont.setCursorPosition(0)
243
263
  self.textFontButton = NIconToolButton(self, iSz, "font")
@@ -248,14 +268,6 @@ class GuiPreferences(NDialog):
248
268
  button=self.textFontButton
249
269
  )
250
270
 
251
- # Emphasise Labels
252
- self.emphLabels = NSwitch(self)
253
- self.emphLabels.setChecked(CONFIG.emphLabels)
254
- self.mainForm.addRow(
255
- self.tr("Emphasise partition and chapter labels"), self.emphLabels,
256
- self.tr("Makes them stand out in the project tree."),
257
- )
258
-
259
271
  # Document Path
260
272
  self.showFullPath = NSwitch(self)
261
273
  self.showFullPath.setChecked(CONFIG.showFullPath)
@@ -271,6 +283,42 @@ class GuiPreferences(NDialog):
271
283
  self.tr("Include project notes in status bar word count"), self.incNotesWCount
272
284
  )
273
285
 
286
+ # Project View
287
+ # ============
288
+
289
+ title = self.tr("Project View")
290
+ section += 1
291
+ self.sidebar.addButton(title, section)
292
+ self.mainForm.addGroupLabel(title, section)
293
+
294
+ # Tree Icon Colours
295
+ self.iconColTree = NComboBox(self)
296
+ self.iconColTree.setMinimumWidth(200)
297
+ for key, label in nwLabels.THEME_COLORS.items():
298
+ self.iconColTree.addItem(trConst(label), key)
299
+ self.iconColTree.setCurrentData(CONFIG.iconColTree, DEF_TREECOL)
300
+
301
+ self.mainForm.addRow(
302
+ self.tr("Project tree icon colours"), self.iconColTree,
303
+ self.tr("Override colours for project icons."), stretch=(3, 2)
304
+ )
305
+
306
+ # Keep Theme Colours on Documents
307
+ self.iconColDocs = NSwitch(self)
308
+ self.iconColDocs.setChecked(CONFIG.iconColDocs)
309
+ self.mainForm.addRow(
310
+ self.tr("Keep theme colours on documents"), self.iconColDocs,
311
+ self.tr("Only override icon colours for folders.")
312
+ )
313
+
314
+ # Emphasise Labels
315
+ self.emphLabels = NSwitch(self)
316
+ self.emphLabels.setChecked(CONFIG.emphLabels)
317
+ self.mainForm.addRow(
318
+ self.tr("Emphasise partition and chapter labels"), self.emphLabels,
319
+ self.tr("Makes them stand out in the project tree."),
320
+ )
321
+
274
322
  # Behaviour
275
323
  # =========
276
324
 
@@ -393,7 +441,7 @@ class GuiPreferences(NDialog):
393
441
  self.textWidth.setSingleStep(10)
394
442
  self.textWidth.setValue(CONFIG.textWidth)
395
443
  self.mainForm.addRow(
396
- self.tr("Maximum text width in \"Normal Mode\""), self.textWidth,
444
+ self.tr('Maximum text width in "Normal Mode"'), self.textWidth,
397
445
  self.tr("Set to 0 to disable this feature."), unit=self.tr("px")
398
446
  )
399
447
 
@@ -404,7 +452,7 @@ class GuiPreferences(NDialog):
404
452
  self.focusWidth.setSingleStep(10)
405
453
  self.focusWidth.setValue(CONFIG.focusWidth)
406
454
  self.mainForm.addRow(
407
- self.tr("Maximum text width in \"Focus Mode\""), self.focusWidth,
455
+ self.tr('Maximum text width in "Focus Mode"'), self.focusWidth,
408
456
  self.tr("The maximum width cannot be disabled."), unit=self.tr("px")
409
457
  )
410
458
 
@@ -412,7 +460,7 @@ class GuiPreferences(NDialog):
412
460
  self.hideFocusFooter = NSwitch(self)
413
461
  self.hideFocusFooter.setChecked(CONFIG.hideFocusFooter)
414
462
  self.mainForm.addRow(
415
- self.tr("Hide document footer in \"Focus Mode\""), self.hideFocusFooter,
463
+ self.tr('Hide document footer in "Focus Mode"'), self.hideFocusFooter,
416
464
  self.tr("Hide the information bar in the document editor.")
417
465
  )
418
466
 
@@ -458,7 +506,7 @@ class GuiPreferences(NDialog):
458
506
 
459
507
  # Spell Checking
460
508
  self.spellLanguage = NComboBox(self)
461
- self.spellLanguage.setMinimumWidth(minWidth)
509
+ self.spellLanguage.setMinimumWidth(200)
462
510
 
463
511
  if CONFIG.hasEnchant:
464
512
  for tag, language in SHARED.spelling.listDictionaries():
@@ -483,6 +531,18 @@ class GuiPreferences(NDialog):
483
531
  self.tr("Apply formatting to word under cursor if no selection is made.")
484
532
  )
485
533
 
534
+ # Cursor Width
535
+ self.cursorWidth = NSpinBox(self)
536
+ self.cursorWidth.setMinimum(1)
537
+ self.cursorWidth.setMaximum(20)
538
+ self.cursorWidth.setSingleStep(1)
539
+ self.cursorWidth.setValue(CONFIG.cursorWidth)
540
+ self.mainForm.addRow(
541
+ self.tr("Cursor width"), self.cursorWidth,
542
+ self.tr("The width of the text cursor of the editor."),
543
+ unit=self.tr("px")
544
+ )
545
+
486
546
  # Show Tabs and Spaces
487
547
  self.showTabsNSpaces = NSwitch(self)
488
548
  self.showTabsNSpaces.setChecked(CONFIG.showTabsNSpaces)
@@ -509,7 +569,7 @@ class GuiPreferences(NDialog):
509
569
  self.scrollPastEnd = NSwitch(self)
510
570
  self.scrollPastEnd.setChecked(CONFIG.scrollPastEnd)
511
571
  self.mainForm.addRow(
512
- self.tr("Scroll past end of the document"), self.scrollPastEnd,
572
+ self.tr("Scroll past the end of the document"), self.scrollPastEnd,
513
573
  self.tr("Also centres the cursor when scrolling.")
514
574
  )
515
575
 
@@ -585,21 +645,20 @@ class GuiPreferences(NDialog):
585
645
  self.tr("Lines starting with any of these symbols are dialogue.")
586
646
  )
587
647
 
588
- self.narratorBreak = QLineEdit(self)
589
- self.narratorBreak.setMaxLength(1)
590
- self.narratorBreak.setFixedWidth(boxFixed)
591
- self.narratorBreak.setAlignment(QtAlignCenter)
592
- self.narratorBreak.setText(CONFIG.narratorBreak)
648
+ self.narratorBreak = NComboBox(self)
649
+ self.narratorDialog = NComboBox(self)
650
+ for key, value in nwQuotes.DASHES.items():
651
+ label = trConst(value)
652
+ self.narratorBreak.addItem(label, key)
653
+ self.narratorDialog.addItem(label, key)
654
+
655
+ self.narratorBreak.setCurrentData(CONFIG.narratorBreak, "")
656
+ self.narratorDialog.setCurrentData(CONFIG.narratorDialog, "")
657
+
593
658
  self.mainForm.addRow(
594
659
  self.tr("Narrator break symbol"), self.narratorBreak,
595
660
  self.tr("Symbol to indicate a narrator break in dialogue.")
596
661
  )
597
-
598
- self.narratorDialog = QLineEdit(self)
599
- self.narratorDialog.setMaxLength(1)
600
- self.narratorDialog.setFixedWidth(boxFixed)
601
- self.narratorDialog.setAlignment(QtAlignCenter)
602
- self.narratorDialog.setText(CONFIG.narratorDialog)
603
662
  self.mainForm.addRow(
604
663
  self.tr("Alternating dialogue/narration symbol"), self.narratorDialog,
605
664
  self.tr("Alternates dialogue highlighting within any paragraph.")
@@ -627,8 +686,6 @@ class GuiPreferences(NDialog):
627
686
  self.sidebar.addButton(title, section)
628
687
  self.mainForm.addGroupLabel(title, section)
629
688
 
630
- boxWidth = CONFIG.pxInt(150)
631
-
632
689
  # Auto-Replace as You Type Main Switch
633
690
  self.doReplace = NSwitch(self)
634
691
  self.doReplace.setChecked(CONFIG.doReplace)
@@ -677,7 +734,7 @@ class GuiPreferences(NDialog):
677
734
  # Pad Before
678
735
  self.fmtPadBefore = QLineEdit(self)
679
736
  self.fmtPadBefore.setMaxLength(32)
680
- self.fmtPadBefore.setMinimumWidth(boxWidth)
737
+ self.fmtPadBefore.setMinimumWidth(150)
681
738
  self.fmtPadBefore.setText(CONFIG.fmtPadBefore)
682
739
  self.mainForm.addRow(
683
740
  self.tr("Insert non-breaking space before"), self.fmtPadBefore,
@@ -687,7 +744,7 @@ class GuiPreferences(NDialog):
687
744
  # Pad After
688
745
  self.fmtPadAfter = QLineEdit(self)
689
746
  self.fmtPadAfter.setMaxLength(32)
690
- self.fmtPadAfter.setMinimumWidth(boxWidth)
747
+ self.fmtPadAfter.setMinimumWidth(150)
691
748
  self.fmtPadAfter.setText(CONFIG.fmtPadAfter)
692
749
  self.mainForm.addRow(
693
750
  self.tr("Insert non-breaking space after"), self.fmtPadAfter,
@@ -908,33 +965,49 @@ class GuiPreferences(NDialog):
908
965
  refreshTree = False
909
966
 
910
967
  # Appearance
911
- guiLocale = self.guiLocale.currentData()
912
- guiTheme = self.guiTheme.currentData()
968
+ guiLocale = self.guiLocale.currentData()
969
+ guiTheme = self.guiTheme.currentData()
970
+ iconTheme = self.iconTheme.currentData()
971
+ useCharCount = self.useCharCount.isChecked()
913
972
 
914
973
  updateTheme |= CONFIG.guiTheme != guiTheme
974
+ updateTheme |= CONFIG.iconTheme != iconTheme
915
975
  needsRestart |= CONFIG.guiLocale != guiLocale
916
976
  needsRestart |= CONFIG.guiFont != self._guiFont
917
-
918
- CONFIG.guiLocale = guiLocale
919
- CONFIG.guiTheme = guiTheme
920
- CONFIG.hideVScroll = self.hideVScroll.isChecked()
921
- CONFIG.hideHScroll = self.hideHScroll.isChecked()
922
- CONFIG.nativeFont = self.nativeFont.isChecked()
977
+ refreshTree |= CONFIG.useCharCount != useCharCount
978
+
979
+ CONFIG.guiLocale = guiLocale
980
+ CONFIG.guiTheme = guiTheme
981
+ CONFIG.iconTheme = iconTheme
982
+ CONFIG.hideVScroll = self.hideVScroll.isChecked()
983
+ CONFIG.hideHScroll = self.hideHScroll.isChecked()
984
+ CONFIG.nativeFont = self.nativeFont.isChecked()
985
+ CONFIG.useCharCount = useCharCount
923
986
  CONFIG.setGuiFont(self._guiFont)
924
987
 
925
988
  # Document Style
926
- guiSyntax = self.guiSyntax.currentData()
927
- emphLabels = self.emphLabels.isChecked()
989
+ guiSyntax = self.guiSyntax.currentData()
928
990
 
929
991
  updateSyntax |= CONFIG.guiSyntax != guiSyntax
930
- refreshTree |= CONFIG.emphLabels != emphLabels
931
992
 
932
993
  CONFIG.guiSyntax = guiSyntax
933
- CONFIG.emphLabels = emphLabels
934
994
  CONFIG.showFullPath = self.showFullPath.isChecked()
935
995
  CONFIG.incNotesWCount = self.incNotesWCount.isChecked()
936
996
  CONFIG.setTextFont(self._textFont)
937
997
 
998
+ # Project View
999
+ iconColTree = self.iconColTree.currentData()
1000
+ iconColDocs = self.iconColDocs.isChecked()
1001
+ emphLabels = self.emphLabels.isChecked()
1002
+
1003
+ updateTheme |= CONFIG.iconColTree != iconColTree
1004
+ updateTheme |= CONFIG.iconColDocs != iconColDocs
1005
+ refreshTree |= CONFIG.emphLabels != emphLabels
1006
+
1007
+ CONFIG.iconColTree = iconColTree
1008
+ CONFIG.iconColDocs = iconColDocs
1009
+ CONFIG.emphLabels = emphLabels
1010
+
938
1011
  # Behaviour
939
1012
  CONFIG.autoSaveDoc = self.autoSaveDoc.value()
940
1013
  CONFIG.autoSaveProj = self.autoSaveProj.value()
@@ -960,6 +1033,7 @@ class GuiPreferences(NDialog):
960
1033
  # Text Editing
961
1034
  CONFIG.spellLanguage = self.spellLanguage.currentData()
962
1035
  CONFIG.autoSelect = self.autoSelect.isChecked()
1036
+ CONFIG.cursorWidth = self.cursorWidth.value()
963
1037
  CONFIG.showTabsNSpaces = self.showTabsNSpaces.isChecked()
964
1038
  CONFIG.showLineEndings = self.showLineEndings.isChecked()
965
1039
 
@@ -971,9 +1045,9 @@ class GuiPreferences(NDialog):
971
1045
  # Text Highlighting
972
1046
  dialogueStyle = self.dialogStyle.currentData()
973
1047
  allowOpenDial = self.allowOpenDial.isChecked()
974
- dialogueLine = uniqueCompact(self.dialogLine.text())
975
- narratorBreak = self.narratorBreak.text().strip()
976
- narratorDialog = self.narratorDialog.text().strip()
1048
+ dialogueLine = processDialogSymbols(self.dialogLine.text())
1049
+ narratorBreak = self.narratorBreak.currentData()
1050
+ narratorDialog = self.narratorDialog.currentData()
977
1051
  altDialogOpen = compact(self.altDialogOpen.text())
978
1052
  altDialogClose = compact(self.altDialogClose.text())
979
1053
  highlightEmph = self.highlightEmph.isChecked()