Compare commits

...

2350 Commits
v2.0 ... v2.6

Author SHA1 Message Date
Veronica Berglyd Olsen
448057edf6 Release 2.6 (#2208) 2025-01-26 20:05:33 +01:00
Veronica Berglyd Olsen
9d993b2992 Fix typo in changelog 2025-01-26 20:05:03 +01:00
Veronica Berglyd Olsen
8ca13f6e08 Update changelog with last changes 2025-01-26 20:01:34 +01:00
Veronica Berglyd Olsen
80fc4c9538 Merge branch 'release' into release_2.6 2025-01-26 19:56:51 +01:00
Veronica Berglyd Olsen
9f8867c1b4 Update i18n for 2.6 final (#2207) 2025-01-26 19:56:32 +01:00
Veronica Berglyd Olsen
481ce883ab Update Italian translation 2025-01-26 18:36:25 +01:00
Veronica Berglyd Olsen
63f184dd60 Update Codecov action to v5 2025-01-26 18:34:44 +01:00
Veronica Berglyd Olsen
3d4d9ed111 Merge branch 'release' into i18n 2025-01-26 18:31:21 +01:00
Veronica Berglyd Olsen
b2ba932735 Update docs for 2.6 (#2210) 2025-01-26 18:31:00 +01:00
Veronica Berglyd Olsen
8c1070b318 Disable flaky test on Windows 2025-01-26 18:26:45 +01:00
Veronica Berglyd Olsen
6c4d8f3ede Update tests with change of default config 2025-01-26 18:19:12 +01:00
Veronica Berglyd Olsen
f2c118776a Update the project sections of the docs to 2.6 2025-01-26 18:15:36 +01:00
Veronica Berglyd Olsen
87890dd249 Update the Introduction section of the docs to 2.6 2025-01-26 16:17:56 +01:00
Veronica Berglyd Olsen
15301c9121 Bump version and update changelog 2025-01-25 22:00:14 +01:00
Veronica Berglyd Olsen
8dc4b661d8 Update final translations for de, en, ja, nb and pl 2025-01-25 21:43:41 +01:00
Veronica Berglyd Olsen
d47ec4157d Update completed translations before #2206 2025-01-25 21:41:44 +01:00
Veronica Berglyd Olsen
9d64a59b70 Update project translations 2025-01-25 21:38:59 +01:00
Veronica Berglyd Olsen
234fc20048 Change chapter heading level to H1 (#2206) 2025-01-25 21:36:13 +01:00
Veronica Berglyd Olsen
8432dfdd1f Extend ODT and DocX tests 2025-01-25 21:18:30 +01:00
Veronica Berglyd Olsen
5fddfd395e Update HTML output 2025-01-25 21:06:20 +01:00
Veronica Berglyd Olsen
11d0e4220f Use alternative level 1 format for titles and partitions for markdown 2025-01-25 20:51:24 +01:00
Veronica Berglyd Olsen
6d4e066810 Update other tests 2025-01-25 16:17:31 +01:00
Veronica Berglyd Olsen
9f1274f953 Update ODT and DocX to work with new chapter headers 2025-01-25 16:17:19 +01:00
Veronica Berglyd Olsen
9ac1692e2a Drop separate types for chapters, scenes and sections as they seem to not be needed 2025-01-25 16:11:57 +01:00
Veronica Berglyd Olsen
6f88357977 Update QTextDocument to work with new chapter headers 2025-01-25 15:35:02 +01:00
Veronica Berglyd Olsen
19bdbf9aca Update build settings margin labels 2025-01-25 15:26:25 +01:00
Veronica Berglyd Olsen
5a25d34ba3 Update HTML to work with new chapter headers 2025-01-25 15:05:11 +01:00
Veronica Berglyd Olsen
13e6199af2 Separate ordinary headers and novel headers in the Tokenizer 2025-01-25 14:58:06 +01:00
Veronica Berglyd Olsen
5be1e2c954 Make some minor code and GUI fixes (#2202) 2025-01-22 01:05:28 +01:00
Veronica Berglyd Olsen
306bd245fc Block tree context menu in blank area 2025-01-22 00:58:55 +01:00
Veronica Berglyd Olsen
7e42d04e36 Drop deleteLater for context menus 2025-01-22 00:53:18 +01:00
Veronica Berglyd Olsen
53dfdb3a2e Fix potential undefined variable in editor 2025-01-22 00:48:59 +01:00
Veronica Berglyd Olsen
eb113a8928 Make sure status label in item details panel can wrap 2025-01-22 00:48:03 +01:00
Veronica Berglyd Olsen
c369ef450f Fix add dicitonary tool (#2189) 2025-01-15 20:56:08 +01:00
Veronica Berglyd Olsen
6674cf99a6 Update spell check dictionary download links 2025-01-15 20:28:53 +01:00
Veronica Berglyd Olsen
70cca405f5 Make sure selection model exists before accessing (#2181) 2025-01-11 18:43:47 +01:00
Veronica Berglyd Olsen
d7d211baf2 Fix empty selection model bug (#2173) 2025-01-11 18:39:23 +01:00
Veronica Berglyd Olsen
d5a35fa86f Fix novel selector bug (#2179) 2025-01-11 18:37:06 +01:00
Veronica Berglyd Olsen
dc265e57f3 Store previous selection before clear in novel selector widget 2025-01-11 18:30:53 +01:00
Veronica Berglyd Olsen
4b79b2bd57 Fix i18n sources (#2169) 2025-01-10 01:06:24 +01:00
Veronica Berglyd Olsen
80c9e54a9a Update translation files 2025-01-10 01:00:16 +01:00
Veronica Berglyd Olsen
eba0b607a4 Fix translation issues 2025-01-10 00:59:53 +01:00
Veronica Berglyd Olsen
04464a2798 Separate some constants due to duplicate words 2025-01-09 23:51:29 +01:00
Veronica Berglyd Olsen
202b5192ed Release 2.6 RC 1 (#2168) 2025-01-09 23:07:24 +01:00
Veronica Berglyd Olsen
62397225f9 Update translations 2025-01-09 22:58:28 +01:00
Veronica Berglyd Olsen
b220fffd6f Bump version to 2.6 RC 1 and update changelog 2025-01-09 22:54:19 +01:00
Veronica Berglyd Olsen
e14f7881a3 Fix search panel theme update bug (#2167) 2025-01-09 22:42:47 +01:00
Veronica Berglyd Olsen
2085fbe107 Drop the wrapper widget for the search tool header (#2162) 2025-01-09 22:36:11 +01:00
Veronica Berglyd Olsen
31a75f044e Fix minor issues with some constants (#2166) 2025-01-09 22:27:08 +01:00
Veronica Berglyd Olsen
5b74125fcd Merge branch 'main' into minor_fixes 2025-01-09 22:22:39 +01:00
Veronica Berglyd Olsen
1cf3cfcf77 Fix typo in constant 2025-01-09 22:15:33 +01:00
Veronica Berglyd Olsen
defaf6c1ee Fix constant in error handler 2025-01-09 22:15:20 +01:00
Veronica Berglyd Olsen
e0f467fa10 Fix minor bug from in editor counter (#2157) 2025-01-04 01:42:21 +01:00
Veronica Berglyd Olsen
362da679b6 Fix minor issue introduced by selection counter update 2025-01-04 01:38:06 +01:00
Veronica Berglyd Olsen
0b35bcfc3b Fix minor issue with editor word counter (#2156) 2025-01-03 23:47:24 +01:00
Veronica Berglyd Olsen
fad162c6c1 Give selection counter priority in editor footer (#2155) 2025-01-03 23:42:41 +01:00
Veronica Berglyd Olsen
97fc64fcae Update copyright (#2154) 2025-01-03 12:02:48 +00:00
Veronica Berglyd Olsen
5224234637 Make sure imported status labels are saved (#2153) 2024-12-31 01:05:38 +01:00
Veronica Berglyd Olsen
b4f1d0ec77 Fix bug in status label import 2024-12-31 00:59:25 +01:00
Veronica Berglyd Olsen
5911c43b5b Add Import/export of status labels (#2152) 2024-12-31 00:40:52 +01:00
Veronica Berglyd Olsen
4f137466c5 Fix test for Windows 2024-12-31 00:38:02 +01:00
Veronica Berglyd Olsen
3836a2a56c Fix column stretch setting 2024-12-31 00:35:52 +01:00
Veronica Berglyd Olsen
49e59d74cc Update tests 2024-12-31 00:28:42 +01:00
Veronica Berglyd Olsen
9461eea03a Add import/export for status labels 2024-12-31 00:14:47 +01:00
Veronica Berglyd Olsen
136939d391 Make some general import/export functionality improvements 2024-12-31 00:14:25 +01:00
Veronica Berglyd Olsen
33aea82e6e Remove "Apply" buttons in Project Settings (#2151) 2024-12-30 17:00:18 +01:00
Veronica Berglyd Olsen
4a6511b39f Add some minor code cleanup 2024-12-30 16:55:54 +01:00
Veronica Berglyd Olsen
6448f05557 Also remove apply button from auto-replace settings 2024-12-30 16:50:34 +01:00
Veronica Berglyd Olsen
c08eca7c3b Update test 2024-12-30 16:39:44 +01:00
Veronica Berglyd Olsen
df6ca2e17b Drop the status/importance Apply button (#2150) 2024-12-30 16:34:54 +01:00
Veronica Berglyd Olsen
c39a5f9708 Hide session timer (#2149) 2024-12-29 18:02:17 +01:00
Veronica Berglyd Olsen
46d69c31d1 Update docs 2024-12-29 17:43:54 +01:00
Veronica Berglyd Olsen
e924d121bf Update tests 2024-12-29 17:38:21 +01:00
Veronica Berglyd Olsen
2fa1dcccac Use correct signal naming 2024-12-29 17:38:03 +01:00
Veronica Berglyd Olsen
dc9413fa7e Show or hide the status bar timer when it is clicked 2024-12-29 17:30:03 +01:00
Veronica Berglyd Olsen
1b34bc30c7 Add a modified label widget that emits a click signal 2024-12-29 17:29:07 +01:00
Veronica Berglyd Olsen
4d33f087df Fix project tree status/importance for folders (#2147) 2024-12-29 16:33:38 +01:00
Veronica Berglyd Olsen
81a4d5fadb Fix wrong check type for single item status label chang (#2145) 2024-12-29 16:15:56 +01:00
Veronica Berglyd Olsen
7682ae0425 Update MacOS DMG build (#2141) 2024-12-23 15:57:46 +01:00
Veronica Berglyd Olsen
677274adb3 Try a different MacOS image 2024-12-23 15:37:28 +01:00
Veronica Berglyd Olsen
83fca9fd94 Release 2.6 Beta 2 (#2139) 2024-12-23 15:06:51 +01:00
Veronica Berglyd Olsen
4150a9740b Bump version and update changelog 2024-12-23 15:00:01 +01:00
Veronica Berglyd Olsen
f7021559d0 Refactor quoted dialogue detection (#2138) 2024-12-23 14:23:53 +01:00
Veronica Berglyd Olsen
00d4c550f1 Update tests 2024-12-23 14:20:02 +01:00
Veronica Berglyd Olsen
97903993c8 Restructure dialogue detection from quotes 2024-12-23 14:19:47 +01:00
Veronica Berglyd Olsen
3d858ed9ab Remove boundary condition in quote dialogue highlighting in most cases (#2131) 2024-12-09 00:23:48 +01:00
Veronica Berglyd Olsen
cc5cd50065 Improve editor auto-replace (#2132) 2024-12-05 23:41:22 +01:00
Veronica Berglyd Olsen
0c0d909dcb Remove debug code 2024-12-05 23:34:12 +01:00
Veronica Berglyd Olsen
8dafaa13c0 Use slots for some of the often called attributes in the editor 2024-12-05 23:01:17 +01:00
Veronica Berglyd Olsen
05385ba73b Improve the text auto-replace class 2024-12-05 22:57:43 +01:00
Veronica Berglyd Olsen
924a2c3381 Move editor auto-replace to a separate class 2024-12-05 22:40:15 +01:00
Veronica Berglyd Olsen
6502c424e2 Align headers to bottom of page margin for ODT and DocX (#2128) 2024-11-29 12:52:50 +01:00
Veronica Berglyd Olsen
243124a4ba Update tests 2024-11-29 00:41:15 +01:00
Veronica Berglyd Olsen
4a2a14bc05 Make header margins similar in ODT and DocX files (#2120) 2024-11-29 00:40:45 +01:00
Veronica Berglyd Olsen
976328c9dc Fix font style and PDF issues (#2122) 2024-11-27 22:59:20 +01:00
Veronica Berglyd Olsen
3b0086e75e Use a frame for page break marker in manuscript preview 2024-11-26 23:56:31 +01:00
Veronica Berglyd Olsen
7c38a748b6 Merge branch 'main' into font_styles 2024-11-26 22:58:32 +01:00
Veronica Berglyd Olsen
4d98689304 Merge release 2.5.3 2024-11-26 22:57:51 +01:00
Veronica Berglyd Olsen
8307822e20 Release 2.5.3 (#2126) 2024-11-26 22:27:30 +01:00
Veronica Berglyd Olsen
f1548dc8ea Fix some issues in the changelog 2024-11-26 22:23:15 +01:00
Veronica Berglyd Olsen
25b33ab4d3 Bump version to 2.5.3 and update changelog 2024-11-26 22:21:30 +01:00
Veronica Berglyd Olsen
4af98dcab5 Add Russian translation 2024-11-26 22:13:55 +01:00
Veronica Berglyd Olsen
3cf916c845 Update translations 2024-11-26 22:10:43 +01:00
Veronica Berglyd Olsen
bcac05ca20 Only use 1200 DPI for scalable fonts 2024-11-26 21:42:54 +01:00
Veronica Berglyd Olsen
07c61450c7 Try forcing resolution for PDF printer 2024-11-26 18:57:07 +01:00
Veronica Berglyd Olsen
43d95462e0 Optimise a few details and add some tests 2024-11-26 17:07:02 +01:00
Veronica Berglyd Olsen
c091e0b9bb Apply the font matcher closer to config read 2024-11-26 17:06:34 +01:00
Veronica Berglyd Olsen
18c70ffe3e Allow setting resolution for ToQTextDocument converter 2024-11-26 02:22:36 +01:00
Veronica Berglyd Olsen
ff470028be Add a font matcher for text fonts (#2118) 2024-11-26 02:03:09 +01:00
Veronica Berglyd Olsen
8463188336 Fix default font in editor 2024-11-26 01:06:47 +01:00
Veronica Berglyd Olsen
2808c36753 Rename tokenizer setFont to setTextFont 2024-11-26 00:40:09 +01:00
Veronica Berglyd Olsen
05b1fdd7f2 Drop relative font weights in ODT output 2024-11-25 23:43:38 +01:00
Veronica Berglyd Olsen
00017e8065 Reset to default font style after emphasis in QTextDocuments (#2121) 2024-11-25 23:36:35 +01:00
Veronica Berglyd Olsen
ff34112532 Rewrite project tree as a model/view set (#2119) 2024-11-25 00:11:53 +01:00
Veronica Berglyd Olsen
4cadd1597e Add coverage to remaining missed lines 2024-11-25 00:07:32 +01:00
Veronica Berglyd Olsen
e30d2cbbf1 Always use forward slash for ToC file 2024-11-24 19:25:46 +01:00
Veronica Berglyd Olsen
0449cf824d Add test coverage of the gui project tree 2024-11-24 18:39:23 +01:00
Veronica Berglyd Olsen
32d899dbfb Fix windows path 2024-11-24 02:53:54 +01:00
Veronica Berglyd Olsen
9ec9c55c3f Add test coverage of the project tree 2024-11-24 02:48:17 +01:00
Veronica Berglyd Olsen
01b2b53fd5 Add test coverage of the item model 2024-11-24 00:43:01 +01:00
Veronica Berglyd Olsen
be6888f8c8 Fix Python 3.9 incompatible type 2024-11-23 20:29:02 +01:00
Veronica Berglyd Olsen
c1ed0647fe Refactor project signal proxies 2024-11-23 19:56:24 +01:00
Veronica Berglyd Olsen
1bf42ceb55 Update tests other than tree-related 2024-11-23 19:30:29 +01:00
Veronica Berglyd Olsen
ca8bd8d271 Disable project tree tests in core and gui 2024-11-22 17:04:53 +01:00
Veronica Berglyd Olsen
bf23a4920f Merge branch 'main' into project_model 2024-11-22 16:46:50 +01:00
Veronica Berglyd Olsen
cfb048ec19 Update log formatting again (#2117) 2024-11-22 16:46:28 +01:00
Veronica Berglyd Olsen
5284bea0f0 Rewrite log colouring 2024-11-22 16:41:11 +01:00
Veronica Berglyd Olsen
1244a4058c Merge branch 'main' into project_model 2024-11-22 02:22:47 +01:00
Veronica Berglyd Olsen
8c51363651 Colourise log output (#2114) 2024-11-22 02:22:10 +01:00
Veronica Berglyd Olsen
893f18c7ad Add test coverage 2024-11-22 02:18:31 +01:00
Veronica Berglyd Olsen
909c97feda Add ANSI colours to log output 2024-11-22 01:47:21 +01:00
Veronica Berglyd Olsen
fea989c1f8 Update comments 2024-11-22 00:56:33 +01:00
Veronica Berglyd Olsen
a64ed405f3 Add some clear data functions 2024-11-22 00:44:14 +01:00
Veronica Berglyd Olsen
ffe6cd0a65 Update item change signals 2024-11-22 00:15:12 +01:00
Veronica Berglyd Olsen
e0b27317f3 Make sure deleted documents are closed if open 2024-11-21 22:24:34 +01:00
Veronica Berglyd Olsen
7ed619cf2e Restore project item emphasis 2024-11-21 01:33:09 +01:00
Veronica Berglyd Olsen
d55f53be0a Clean up item notification and item main icon 2024-11-21 01:18:28 +01:00
Veronica Berglyd Olsen
55eed706fb Re-implement word counters 2024-11-21 00:14:54 +01:00
Veronica Berglyd Olsen
2f71ec68d8 Re-implement row highlight, empty trash, and fix recursive permanent delete 2024-11-20 23:07:40 +01:00
Veronica Berglyd Olsen
a45ab2f017 Remove tooltip for non-checkable items 2024-11-20 22:36:44 +01:00
Veronica Berglyd Olsen
26b4da9eb4 Fix most tests with minor issues 2024-11-20 19:58:34 +01:00
Veronica Berglyd Olsen
4897f6ad69 Update tests 2024-11-20 18:48:54 +01:00
Veronica Berglyd Olsen
bbe8683d59 Re-implement project item duplication 2024-11-20 18:48:14 +01:00
Veronica Berglyd Olsen
072be78991 Re-enable project tree context menu and clean up split and merge 2024-11-20 16:42:08 +01:00
Veronica Berglyd Olsen
3f41e62e21 Move some variables around 2024-11-20 16:41:26 +01:00
Veronica Berglyd Olsen
ec01336c21 Fix active status icon and tooltip 2024-11-20 13:06:49 +01:00
Veronica Berglyd Olsen
5dcfe5c874 Allow drag and drop to open documents 2024-11-20 02:12:28 +01:00
Veronica Berglyd Olsen
72f1bc2d77 Add model support for drag and drop 2024-11-20 01:31:56 +01:00
Veronica Berglyd Olsen
54685c8184 Reimplement item deletion 2024-11-19 23:26:01 +01:00
Veronica Berglyd Olsen
3532306833 Add move to trash functionality 2024-11-19 17:48:01 +01:00
Veronica Berglyd Olsen
442b065834 Handle item consistency in the nodes tree 2024-11-19 17:47:21 +01:00
Veronica Berglyd Olsen
53e70c118c Add back create new project item functionality 2024-11-19 00:22:59 +01:00
Veronica Berglyd Olsen
a5575992d6 Re-enable project tree move item and navigation 2024-11-18 18:04:25 +01:00
Veronica Berglyd Olsen
df0244095f Rewrite how project items are refreshed on the GUI 2024-11-18 17:51:05 +01:00
Veronica Berglyd Olsen
337f05f60e Re-enable item rename 2024-11-18 00:01:40 +01:00
Veronica Berglyd Olsen
4f8e898440 Switch data tree to new model structure 2024-11-17 23:24:49 +01:00
Veronica Berglyd Olsen
7991b9b27c Re-enable item selection 2024-11-17 22:41:45 +01:00
Veronica Berglyd Olsen
ef42e1956c Merge new and old project tree 2024-11-17 22:07:37 +01:00
Veronica Berglyd Olsen
27b3dde6f6 Complete build initial tree and save tree logic 2024-11-17 21:24:55 +01:00
Veronica Berglyd Olsen
cbe557507f Add a basic project tree model 2024-11-17 19:25:55 +01:00
Veronica Berglyd Olsen
7a9da5f219 Merge branch 'release' 2024-11-16 20:58:09 +01:00
Veronica Berglyd Olsen
d944a70063 Fix secondary issues due to Qt tree widget bug (#2109) 2024-11-16 20:35:14 +01:00
Veronica Berglyd Olsen
c20f970405 Block drops on project tree viewport, and allow non-root items on root to be deleted (#2108) 2024-11-16 20:21:57 +01:00
Veronica Berglyd Olsen
49bb7f3a34 Fix default button issue on Build dialog (#2105) 2024-11-15 21:51:25 +01:00
Veronica Berglyd Olsen
021827ff2d Force the Build button to be default on the build dialog (#2101) 2024-11-15 20:49:45 +01:00
Veronica Berglyd Olsen
97312aecf5 Fix PDF formatting (#2104) 2024-11-15 20:25:29 +01:00
Veronica Berglyd Olsen
f3c9a77989 Revert to QPrinter, but update paint device 2024-11-15 19:31:55 +01:00
Veronica Berglyd Olsen
2c031bc093 Skip anchors when generating PDF 2024-11-15 01:34:02 +01:00
Veronica Berglyd Olsen
69147c2480 Correct pixel units 2024-11-15 01:27:49 +01:00
Veronica Berglyd Olsen
22ca0045bc Correct font scaling on PDF output 2024-11-15 00:40:58 +01:00
Veronica Berglyd Olsen
af431a4766 Merge branch 'main' into pdf_format_fixes 2024-11-14 23:20:12 +01:00
Veronica Berglyd Olsen
5a8045131b Update editor toolbar icon (#2103) 2024-11-14 23:18:43 +01:00
Veronica Berglyd Olsen
7c0a6f1d02 Use correct em calculation in qdoc class 2024-11-14 23:18:22 +01:00
Veronica Berglyd Olsen
4fc69ef7c6 Replace printer with Qt's PDF writer 2024-11-14 23:17:54 +01:00
Veronica Berglyd Olsen
91e502deb6 Add a new icon for the editor toolbar 2024-11-14 21:10:33 +01:00
Veronica Berglyd Olsen
1ee191220f Refactor manuscript format text scaling and text margin settings (#2102) 2024-11-13 23:22:28 +01:00
Veronica Berglyd Olsen
a96ccf8422 Add icons for text margins 2024-11-13 23:16:54 +01:00
Veronica Berglyd Olsen
57641ecd7d Make page number work with Office 365 2024-11-13 20:50:47 +01:00
Veronica Berglyd Olsen
ed431aa30f Update tests 2024-11-13 20:40:44 +01:00
Veronica Berglyd Olsen
7a111bb173 Update default margins 2024-11-13 20:24:10 +01:00
Veronica Berglyd Olsen
220be06631 Make HTML margins scale to em units 2024-11-13 20:05:03 +01:00
Veronica Berglyd Olsen
d8c14f6712 Make ODT margins scale to em units 2024-11-13 20:04:52 +01:00
Veronica Berglyd Olsen
e514b1be4f Fix DocX line height setting 2024-11-13 19:51:36 +01:00
Veronica Berglyd Olsen
5e7ef1d25a Minor improvements for 2.6 beta release (#2095) 2024-11-13 18:43:11 +01:00
Veronica Berglyd Olsen
c2b3eb4ac2 Fix issue of alternative unicode symbols being replaced too early 2024-11-13 00:03:38 +01:00
Veronica Berglyd Olsen
1bd8370864 Update dialogue highlighting settings text in Preferences 2024-11-12 23:10:57 +01:00
Veronica Berglyd Olsen
8c952953e3 Release 2.6 Beta 1 (#2092) 2024-11-12 17:42:59 +01:00
Veronica Berglyd Olsen
c065c9b30f Fix a couple of mistakes in the changelog 2024-11-12 17:35:59 +01:00
Veronica Berglyd Olsen
a18eb1158e Bump version to 2.6b1 and update changelog 2024-11-12 00:38:49 +01:00
Veronica Berglyd Olsen
08ef352288 GUI improvements and fixes (#2089) 2024-11-08 22:02:35 +01:00
Veronica Berglyd Olsen
25297b8b0b Add some coverage settings to the main project file 2024-11-08 17:34:06 +01:00
Veronica Berglyd Olsen
ea591fe707 Fix bug in outline view preserving details panel split position 2024-11-08 17:31:23 +01:00
Veronica Berglyd Olsen
b0bcf8605c Fix closing app with no project bug 2024-11-08 17:30:54 +01:00
Veronica Berglyd Olsen
b28921d6c2 Add an edit button to the viewer (#1963) 2024-11-08 17:30:10 +01:00
Veronica Berglyd Olsen
87ae7585e8 Add status column to project outline (#2088) 2024-11-08 00:37:57 +01:00
Veronica Berglyd Olsen
b39b37fb2f Add timing to outline build 2024-11-08 00:34:21 +01:00
Veronica Berglyd Olsen
cd9e0de9dd Update test 2024-11-07 23:59:52 +01:00
Veronica Berglyd Olsen
5107849909 Add status column to outline 2024-11-07 23:55:59 +01:00
Veronica Berglyd Olsen
5c988960f5 Revert a mistake in page break cleanup 2024-11-07 19:05:49 +01:00
Veronica Berglyd Olsen
44792778aa Simplify collection of raw text (#2087) 2024-11-07 19:03:34 +01:00
Veronica Berglyd Olsen
0a7bd68258 Simplify collection of raw text 2024-11-07 18:56:16 +01:00
Veronica Berglyd Olsen
30118eceaa Make page breaks visible in manuscript preview (#2086) 2024-11-07 18:39:10 +01:00
Veronica Berglyd Olsen
87512eb13b Rename variable 2024-11-07 18:33:53 +01:00
Veronica Berglyd Olsen
9919e1a49e Add new features to new project title page 2024-11-07 18:31:08 +01:00
Veronica Berglyd Olsen
d04a21b70f Improve page break handling in the tokenizer 2024-11-07 17:53:19 +01:00
Veronica Berglyd Olsen
fc6e0a577f Add a switch to enable/disable showing page breaks in the manuscript tool 2024-11-07 17:52:56 +01:00
Veronica Berglyd Olsen
0c659422b7 Add page break markers to the QTextDocument format class 2024-11-07 17:52:01 +01:00
Veronica Berglyd Olsen
2018023dc7 Remove redundant if-checks 2024-11-07 14:34:35 +01:00
Veronica Berglyd Olsen
04645cab71 Merge bugfix for #2080 from 2.5 release branch 2024-11-05 18:46:12 +01:00
Veronica Berglyd Olsen
bec082c0ae Fix HTML formatting issue (#2085) 2024-11-05 18:44:05 +01:00
Veronica Berglyd Olsen
83b244a8a3 Fix head tags order in HTML output (#2080) 2024-11-05 18:39:43 +01:00
Veronica Berglyd Olsen
ae261381aa Add build copy feature (#2084) 2024-11-05 18:38:32 +01:00
Veronica Berglyd Olsen
b088b79ee8 Add test coverage 2024-11-05 18:32:02 +01:00
Veronica Berglyd Olsen
0b59ee8634 Add duplicate build feature 2024-11-05 18:17:43 +01:00
Veronica Berglyd Olsen
f62b755903 Add copy button icon 2024-11-05 18:17:21 +01:00
Veronica Berglyd Olsen
04036ef35c Improve dialogue highlighting after feedback (#2082) 2024-11-05 17:34:04 +01:00
Veronica Berglyd Olsen
e4a2ca2d19 Add horizontal bar to em dash conversion in tokenizer 2024-11-04 17:32:22 +01:00
Veronica Berglyd Olsen
89f452f3fc Restructure and improve dialogue highlighting 2024-11-04 17:28:21 +01:00
Veronica Berglyd Olsen
843f8e0d39 Add missing line in dialogue highlighting check 2024-11-04 00:21:25 +01:00
Veronica Berglyd Olsen
8618306230 Update dialogue handling again (#2081) 2024-11-03 22:40:17 +01:00
Veronica Berglyd Olsen
34a3e17326 Fix quotes regex issue and update tests 2024-11-03 22:09:16 +01:00
Veronica Berglyd Olsen
5af49dfc6f Add a separate setting for alternating dialogue/narration 2024-11-03 21:45:00 +01:00
Veronica Berglyd Olsen
837d3060b8 Separate single and double quoted dialogue 2024-11-03 21:14:36 +01:00
Veronica Berglyd Olsen
2754f78083 Merge Spanish and Portuguese narrator break logic 2024-11-03 21:14:11 +01:00
Veronica Berglyd Olsen
1b509ad60b Add a dialogue parser, and horizontal bar auto-complete (#2079) 2024-11-01 22:23:16 +01:00
Veronica Berglyd Olsen
82e923b181 Remove debug code 2024-11-01 22:11:35 +01:00
Veronica Berglyd Olsen
e92b8400c7 Add dialogue parser test coverage 2024-11-01 22:07:47 +01:00
Veronica Berglyd Olsen
1ad6a80682 Update auto-replace in editor, and update tests 2024-11-01 21:17:46 +01:00
Veronica Berglyd Olsen
f355b82bba Add auto-replace for horizontal bar 2024-11-01 20:49:16 +01:00
Veronica Berglyd Olsen
66567b6d6f Allow up to 4 dialogue line symbols 2024-11-01 20:07:35 +01:00
Veronica Berglyd Olsen
d9582436d4 Update tests 2024-11-01 19:55:56 +01:00
Veronica Berglyd Olsen
31c75ea0b1 Add a dialog parser class 2024-11-01 19:55:35 +01:00
Veronica Berglyd Olsen
057fc10565 Refactor and clean up GUI code (#2078) 2024-10-31 18:42:32 +01:00
Veronica Berglyd Olsen
bbb07c9963 Make some minor GUI tweaks 2024-10-31 18:35:28 +01:00
Veronica Berglyd Olsen
dd09d3af2f Refactor outline details panel code 2024-10-31 18:28:58 +01:00
Veronica Berglyd Olsen
ccb5f8418b Remove redundant function in project tree 2024-10-31 18:28:35 +01:00
Veronica Berglyd Olsen
55d2605222 Use the new qtLambda wrapper where appropriate 2024-10-31 17:31:58 +01:00
Veronica Berglyd Olsen
7f49979bc9 Clean up project tree class 2024-10-31 17:30:49 +01:00
Veronica Berglyd Olsen
b529d5b125 Improve document editing and test coverage (#2077) 2024-10-31 00:21:19 +01:00
Veronica Berglyd Olsen
f2e36d9974 Cover missing lines in error module 2024-10-31 00:18:16 +01:00
Veronica Berglyd Olsen
ca2b509d54 Make the test a little safer 2024-10-31 00:11:32 +01:00
Veronica Berglyd Olsen
0ba0674b9e Some code flow improvements and main GUI test coverage 2024-10-31 00:07:48 +01:00
Veronica Berglyd Olsen
a2b09fdfec Update various features in the doc editor using new helper code 2024-10-30 19:13:13 +01:00
Veronica Berglyd Olsen
fa0bef5500 Extend and refactor current open document highlighting 2024-10-30 19:12:09 +01:00
Veronica Berglyd Olsen
92d148b03d Allow inserting stats in documents (#2073) 2024-10-30 00:14:48 +01:00
Veronica Berglyd Olsen
3d935e29eb Update test coverage 2024-10-30 00:08:31 +01:00
Veronica Berglyd Olsen
3749c9f21d Fix variable formatting for DocX and ODT 2024-10-29 17:50:51 +01:00
Veronica Berglyd Olsen
2a3d3e46c2 Pin tests to set locale to en_GB 2024-10-29 17:50:51 +01:00
Veronica Berglyd Olsen
9bc1561e01 Change to use document locale for integers 2024-10-29 17:50:51 +01:00
Veronica Berglyd Olsen
d987246062 Use Qt for int locale 2024-10-29 17:50:50 +01:00
Veronica Berglyd Olsen
c6a22e2d96 Add stats variables to Lipsum test project 2024-10-29 17:50:50 +01:00
Veronica Berglyd Olsen
42f904f1ea Add field value insertion to all formats 2024-10-29 17:50:49 +01:00
Veronica Berglyd Olsen
f92521c93a Process field values in QTextDocuments 2024-10-29 17:50:49 +01:00
Veronica Berglyd Olsen
041183f914 Add processing of fields in the Tokenizer 2024-10-29 17:50:49 +01:00
Veronica Berglyd Olsen
857b6ddc55 Update main menu 2024-10-29 17:50:48 +01:00
Veronica Berglyd Olsen
f2d2b4c4f2 Generalise the manuscript stats count values 2024-10-29 17:47:32 +01:00
Veronica Berglyd Olsen
8725edaf7e Refactor main menu (#2075) 2024-10-29 17:46:16 +01:00
Veronica Berglyd Olsen
4eace705e3 Add a function wrapper that makes the linter happy when used for Qt slots 2024-10-29 17:37:50 +01:00
Veronica Berglyd Olsen
b2d71acd93 Connect menu actions to main GUI in the menu class 2024-10-29 17:36:54 +01:00
Veronica Berglyd Olsen
e424fcfe53 Add support for referencing tags in novel documents (#2072) 2024-10-28 00:18:46 +01:00
Veronica Berglyd Olsen
eefb40cb1f Update tests 2024-10-28 00:12:06 +01:00
Veronica Berglyd Olsen
785cd3aea9 Add support for story reference, and update mention reference in outline details 2024-10-28 00:08:28 +01:00
Veronica Berglyd Olsen
07c700f666 Rewrite narrator break for dialogue highlighting (#2068) 2024-10-27 13:15:57 +01:00
Veronica Berglyd Olsen
8db0928724 Re-order preferences settings and ensure dialog/narrator symbols are single characters 2024-10-27 13:11:50 +01:00
Veronica Berglyd Olsen
b25ba9de27 Add test coverage of the highlighter 2024-10-27 13:05:24 +01:00
Veronica Berglyd Olsen
bf478a6706 Update tests 2024-10-27 02:22:39 +02:00
Veronica Berglyd Olsen
a1a58f51b1 Add new logic for dialogue narrator break to tokenizer 2024-10-27 02:15:06 +02:00
Veronica Berglyd Olsen
8850161641 Add new logic for dialogue narrator break 2024-10-27 01:55:19 +02:00
Veronica Berglyd Olsen
f931148594 Bump version to 2.6 Alpha 3 2024-10-27 00:35:57 +02:00
Veronica Berglyd Olsen
c31b0bcf17 Add Url recognition and formatting (#2067) 2024-10-27 00:17:11 +02:00
Veronica Berglyd Olsen
ba260ac608 Add test coverage of new features, and some other places 2024-10-27 00:13:18 +02:00
Veronica Berglyd Olsen
f2fc19b168 Add test coverage of new features 2024-10-26 23:28:34 +02:00
Veronica Berglyd Olsen
ceabc666c3 Add font table, fix core.xml bug, clean up code, update tests, for DocX 2024-10-26 17:09:50 +02:00
Veronica Berglyd Olsen
6c217c2450 Fix spell checker issue 2024-10-25 23:53:38 +02:00
Veronica Berglyd Olsen
7ff8921420 Add links to DocX 2024-10-25 23:19:23 +02:00
Veronica Berglyd Olsen
fe56c88309 Separate spell checking and link scanning, and add ODT support for links 2024-10-25 23:19:23 +02:00
Veronica Berglyd Olsen
b13b91c8e8 Add url to Lipsum test project 2024-10-25 23:19:22 +02:00
Veronica Berglyd Olsen
d71435df53 Distinguish between anchor ref and href in tokenizer 2024-10-25 23:19:22 +02:00
Veronica Berglyd Olsen
058758122c Add url support in tokenizer and qdoc preview 2024-10-25 23:18:27 +02:00
Veronica Berglyd Olsen
759cfd77e9 Add url handling in editor and viewer 2024-10-25 23:18:27 +02:00
Veronica Berglyd Olsen
37268b873a Add URL regex pattern 2024-10-25 23:18:22 +02:00
Veronica Berglyd Olsen
439a04c603 Add support for mentions references (#2064) 2024-10-25 23:17:36 +02:00
Veronica Berglyd Olsen
9f642d501a Update documentation 2024-10-25 00:20:17 +02:00
Veronica Berglyd Olsen
7f8e2c66a6 Update tests 2024-10-25 00:13:09 +02:00
Veronica Berglyd Olsen
9962fd4a55 Add menu entry and shortcut 2024-10-25 00:13:03 +02:00
Veronica Berglyd Olsen
c27343534f Add mentions to sample project 2024-10-24 23:58:37 +02:00
Veronica Berglyd Olsen
46ecb2cf70 Add mentions to outline 2024-10-24 23:57:39 +02:00
Veronica Berglyd Olsen
88aa3f38c2 Add autocomplete for mentions 2024-10-24 23:57:10 +02:00
Veronica Berglyd Olsen
9214da3756 Add mention keyword 2024-10-24 23:53:48 +02:00
Veronica Berglyd Olsen
41e5152771 Add forced line breaks feature (#2063) 2024-10-24 17:55:56 +02:00
Veronica Berglyd Olsen
6b01bd7ffe Fix title page break issue and add test coverage 2024-10-24 17:47:14 +02:00
Veronica Berglyd Olsen
76a9f8e3df Fix a minor issue, and add test 2024-10-24 14:32:54 +02:00
Veronica Berglyd Olsen
e15941520f Add working forced line break implementation 2024-10-24 01:25:32 +02:00
Veronica Berglyd Olsen
ff7404d01d Add line break shortcode support 2024-10-24 01:07:03 +02:00
Veronica Berglyd Olsen
560540618c Process heading line breaks in the Tokenizer 2024-10-24 00:02:39 +02:00
Veronica Berglyd Olsen
bfa82f6bb3 Add test coverage of title line breaks, and don't break markdown titles 2024-10-24 00:02:39 +02:00
Veronica Berglyd Olsen
f77cd1c752 Fix counting error (#2062) 2024-10-24 00:01:39 +02:00
Veronica Berglyd Olsen
8461b0c15d Fix wrong character count when there is a footnote 2024-10-23 23:57:42 +02:00
Veronica Berglyd Olsen
2938a0f122 Remove version dependency in DocX tests 2024-10-23 17:44:55 +02:00
Veronica Berglyd Olsen
beccd1a7d1 Bump version to 2.6 Alpha 2 2024-10-23 17:41:28 +02:00
Veronica Berglyd Olsen
c6883908f1 Improve text document formatting (#2061) 2024-10-23 17:39:13 +02:00
Veronica Berglyd Olsen
36d8547f78 Correct misspelled variable 2024-10-23 17:36:12 +02:00
Veronica Berglyd Olsen
b01c91c0a3 Remove more redundant code 2024-10-23 17:20:07 +02:00
Veronica Berglyd Olsen
3712b2e93f Combine the different ways of storing generated text data in formats 2024-10-23 17:12:13 +02:00
Veronica Berglyd Olsen
0ddc1131dc Replace heading field with a general meta data field in the text block tuple 2024-10-23 16:20:50 +02:00
Veronica Berglyd Olsen
f4a941cd93 Fix format tag order for HTML validation 2024-10-23 11:01:06 +02:00
Veronica Berglyd Olsen
db72f2a722 Remove redundant code 2024-10-23 10:31:27 +02:00
Veronica Berglyd Olsen
16023676ea Simplify CSS in HTML format 2024-10-23 01:27:36 +02:00
Veronica Berglyd Olsen
52e85835df Flip if statement in Tokenizer 2024-10-23 01:26:48 +02:00
Veronica Berglyd Olsen
fe63770d21 Refactor and standardise text format modules (#2060) 2024-10-22 21:51:19 +02:00
Veronica Berglyd Olsen
bd5442c9e5 Process tags and references in Tokenizer 2024-10-22 21:37:18 +02:00
Veronica Berglyd Olsen
c7554f2b8d Process keyword flag in Tokenizer 2024-10-22 19:33:05 +02:00
Veronica Berglyd Olsen
63f9cd0bac Tokenize dialogue with colour tag 2024-10-22 18:41:34 +02:00
Veronica Berglyd Olsen
c537d0f396 Process comments in the Tokenizer 2024-10-22 17:37:00 +02:00
Veronica Berglyd Olsen
e759aa8d1b Move colour theme to Tokenizer class 2024-10-22 17:07:57 +02:00
Veronica Berglyd Olsen
2d8664b3ce Clean up wrapped code, and rename test variable 2024-10-22 00:40:54 +02:00
Veronica Berglyd Olsen
16076ebfb6 Move shared formats code to separate file, and rename some variables 2024-10-22 00:25:35 +02:00
Veronica Berglyd Olsen
38ca447c8a Convert format codes to enums 2024-10-21 23:37:27 +02:00
Veronica Berglyd Olsen
f91006631d Rename ODT test files 2024-10-21 18:56:37 +02:00
Veronica Berglyd Olsen
3cc5e4cc7a Handle text justify in Tokenizer instead 2024-10-21 18:54:19 +02:00
Veronica Berglyd Olsen
75178b7874 Merge branch 'release' 2024-10-21 17:14:32 +02:00
Veronica Berglyd Olsen
ce3f6dae20 Add DocX support (#2056) 2024-10-21 17:13:42 +02:00
Veronica Berglyd Olsen
bd82392d71 Add Python 3.13 and fix theme issue and broken link (#2059) 2024-10-21 17:12:09 +02:00
Veronica Berglyd Olsen
836a3d353a Update Enchant link (#2042) 2024-10-21 17:08:35 +02:00
Veronica Berglyd Olsen
a4d2a9ea6f Fix swapped colours in default light theme (#2057) 2024-10-21 17:05:19 +02:00
Veronica Berglyd Olsen
b0fc8d63a6 Add Python 3.13 support 2024-10-21 17:03:52 +02:00
Veronica Berglyd Olsen
ec7781fb9f Generalise ODT variables to DOC 2024-10-21 17:00:44 +02:00
Veronica Berglyd Olsen
787e1a46d1 Add DocX test coverage 2024-10-21 16:59:43 +02:00
Veronica Berglyd Olsen
148d46fcbc Add settings to DocX and compression to ODT and DocX 2024-10-20 23:08:14 +02:00
Veronica Berglyd Olsen
7e1a676e0a Add footnote support to DocX 2024-10-20 22:01:13 +02:00
Veronica Berglyd Olsen
e9220c5e77 Add DocX page settings and header support 2024-10-20 21:02:53 +02:00
Veronica Berglyd Olsen
72d41d4883 Refactor XML generation for DocX 2024-10-20 17:07:33 +02:00
Veronica Berglyd Olsen
de6c3e9b45 Fix issue with global justify, and add indentation to DocX 2024-10-19 20:14:01 +02:00
Veronica Berglyd Olsen
a0ab507ed1 Fix DocX tabs in text, and page break before issues 2024-10-19 19:04:16 +02:00
Veronica Berglyd Olsen
3c76d0e7e3 Fix issue with line spacing in DocX 2024-10-19 17:08:24 +02:00
Veronica Berglyd Olsen
34127d78bf Move custom XML sub element function to common 2024-10-19 17:08:08 +02:00
Veronica Berglyd Olsen
ca33f488f1 Get rid of the DocXRun class 2024-10-19 14:43:06 +02:00
Veronica Berglyd Olsen
717aac9dc8 Add remaining code blocks, and add colours 2024-10-18 21:18:59 +02:00
Veronica Berglyd Olsen
4b07dbadb2 Basic DocX text formatting works 2024-10-18 20:31:21 +02:00
Veronica Berglyd Olsen
9bbebd2085 Add DocX text styles 2024-10-18 18:35:56 +02:00
Veronica Berglyd Olsen
d60b29e0a2 make some improvements to the ODT writer 2024-10-18 16:37:42 +02:00
Veronica Berglyd Olsen
80d2dfd9a4 Add structure for DocX documents 2024-10-18 16:37:04 +02:00
Veronica Berglyd Olsen
464454e7a6 Expose text margin settings in Manuscript Build (#2051) 2024-10-17 22:41:42 +02:00
Veronica Berglyd Olsen
d145b65237 Standardise text sizes and margins 2024-10-17 22:34:46 +02:00
Veronica Berglyd Olsen
912198cc40 Add text margin settings 2024-10-17 21:57:04 +02:00
Veronica Berglyd Olsen
bffab79ba7 Merge build settings page layout options 2024-10-17 21:56:35 +02:00
Veronica Berglyd Olsen
c82f7fd9ca Bump version to 2.6 Alpha 1 2024-10-16 17:42:50 +02:00
Veronica Berglyd Olsen
53afe528e8 Add PDF output for manuscripts (#2048) 2024-10-16 17:41:31 +02:00
Veronica Berglyd Olsen
225befe57e Add test coverage 2024-10-16 17:33:32 +02:00
Veronica Berglyd Olsen
40817e73b4 Apply page layout settings to PDF format 2024-10-16 17:26:10 +02:00
Veronica Berglyd Olsen
17c93c2172 Add PDF format 2024-10-16 17:25:46 +02:00
Veronica Berglyd Olsen
c8d7ccadb7 Refactor document builder (#2047) 2024-10-16 00:26:32 +02:00
Veronica Berglyd Olsen
7bb292404a Update Tokenizer tests 2024-10-16 00:23:18 +02:00
Veronica Berglyd Olsen
d2ac0ed53f Pass the Markdown style to the constructor 2024-10-16 00:15:56 +02:00
Veronica Berglyd Olsen
c633a56bfb Simplify JSON and raw text writing 2024-10-15 23:59:25 +02:00
Veronica Berglyd Olsen
34696ba3a8 Merge doc build functions 2024-10-15 23:29:11 +02:00
Veronica Berglyd Olsen
93c105fe86 Extend heading styling options (#2045) 2024-10-15 21:40:21 +02:00
Veronica Berglyd Olsen
29eac0b4e5 Remove type alias for Python 3.9 2024-10-15 21:36:15 +02:00
Veronica Berglyd Olsen
fc27078954 Standardise the save document call for all document classes 2024-10-15 21:25:36 +02:00
Veronica Berglyd Olsen
759a8e84f0 Fix QTextDocument header formatting 2024-10-15 20:59:10 +02:00
Veronica Berglyd Olsen
b2c7da319e Generalise ODT build settings 2024-10-15 20:34:41 +02:00
Veronica Berglyd Olsen
b56095224a Move document format classes to new folder 2024-10-15 19:29:56 +02:00
Veronica Berglyd Olsen
2f12a8cc93 Add settings to style ODT headers 2024-10-15 19:22:08 +02:00
Veronica Berglyd Olsen
140f85f214 Merge branch 'main' into heading_styling 2024-10-14 00:26:55 +02:00
Veronica Berglyd Olsen
7405c7e20f Add Python 3.13 (#2044) 2024-10-14 00:25:07 +02:00
Veronica Berglyd Olsen
f29b13679a List and check support for Python 3.13 (#2040) 2024-10-14 00:21:22 +02:00
Veronica Berglyd Olsen
9b9ed53cf9 Don't use "match" as a variable (#2043) 2024-10-14 00:18:24 +02:00
Veronica Berglyd Olsen
2447ae5cff Replace usage of "match" as a variable name 2024-10-14 00:14:08 +02:00
Veronica Berglyd Olsen
7379b8b521 Remove plain heading style setting again 2024-10-14 00:10:23 +02:00
Veronica Berglyd Olsen
22473823c9 Improve build settings 2024-10-01 14:01:36 +02:00
Veronica Berglyd Olsen
d8bb9950d3 Add plain style setting for headings 2024-10-01 14:00:57 +02:00
Veronica Berglyd Olsen
279fe2ae18 Add title setting 2024-10-01 12:54:38 +02:00
Veronica Berglyd Olsen
1e812f3f06 Update tests 2024-10-01 12:15:42 +02:00
Veronica Berglyd Olsen
0f1401eb71 Rename title format settings to partition 2024-10-01 12:14:39 +02:00
Veronica Berglyd Olsen
57e739c3ef Add word counts to ODT output (#2035) 2024-10-01 12:00:04 +02:00
Veronica Berglyd Olsen
1b457585d9 Update tests 2024-09-30 22:52:39 +02:00
Veronica Berglyd Olsen
c9eab0b01e Add word counts to the ODT file as user fields (#2033) 2024-09-30 22:52:28 +02:00
Veronica Berglyd Olsen
3da5074d14 Refactor build settings (#2031) 2024-09-28 11:58:58 +02:00
Veronica Berglyd Olsen
e97a476c7f Update tests 2024-09-28 11:55:47 +02:00
Veronica Berglyd Olsen
a716f31b17 Fix some minor issues with spell checking 2024-09-28 11:41:26 +02:00
Veronica Berglyd Olsen
b2e760a284 Merge build settings formatting into a single form 2024-09-28 11:36:01 +02:00
Veronica Berglyd Olsen
7cc48aeb7f Improve spell checking (#2030) 2024-09-28 11:31:49 +02:00
Veronica Berglyd Olsen
a6494b4226 Allow words to be ignored by the spell checker (session only) 2024-09-28 11:21:04 +02:00
Veronica Berglyd Olsen
5ed03e29f3 Change regexes to use the pattern object directly 2024-09-28 11:20:09 +02:00
Veronica Berglyd Olsen
5c07148eb2 Replace Qt RegEx with Python RegEx (#2028) 2024-09-22 18:02:17 +02:00
Veronica Berglyd Olsen
17b4a7be4d Use regex end instead of length in tokenizer format processing function 2024-09-22 17:57:13 +02:00
Veronica Berglyd Olsen
9b08ebbbd5 Use Python regex for document search tool 2024-09-22 17:47:49 +02:00
Veronica Berglyd Olsen
37c469dbc7 Move word split to regex pattern class 2024-09-22 17:37:12 +02:00
Veronica Berglyd Olsen
c08033d153 Use stdlib re for dialogue matching 2024-09-22 17:34:04 +02:00
Veronica Berglyd Olsen
9c63f621a8 Use stdlib re for Shortcode matching 2024-09-22 17:06:57 +02:00
Veronica Berglyd Olsen
c3cb12e5e2 Use stdlib re for Markdown matching 2024-09-22 16:56:21 +02:00
Veronica Berglyd Olsen
d3799bc30a Update plain regex patterns to std lib re 2024-09-22 16:37:45 +02:00
Veronica Berglyd Olsen
cb8933b493 Use Python regex for spell checking 2024-09-22 16:23:35 +02:00
Veronica Berglyd Olsen
1aa58c047f Clean up Qt enums (#2025) 2024-09-18 22:18:15 +02:00
Veronica Berglyd Olsen
52b3084bee Fix type annotation 2024-09-18 22:12:39 +02:00
Veronica Berglyd Olsen
70b05c9e07 Use strings for shortcut keys 2024-09-18 22:11:32 +02:00
Veronica Berglyd Olsen
cafa440aee Update menu role enums 2024-09-18 22:06:23 +02:00
Veronica Berglyd Olsen
681cb7226a Fix bug in test 2024-09-18 22:04:06 +02:00
Veronica Berglyd Olsen
b36e49e43f Update scrollbar enums 2024-09-18 22:02:50 +02:00
Veronica Berglyd Olsen
90a6c2d98d Update keyboard and mouse enums 2024-09-18 21:55:59 +02:00
Veronica Berglyd Olsen
21d21846ca Update cursor and messagebox enums 2024-09-18 21:51:23 +02:00
Veronica Berglyd Olsen
cc8d7d9912 Fix ActionEvent enums 2024-09-18 21:46:44 +02:00
Veronica Berglyd Olsen
10527afbda Remove borders 2024-09-18 15:00:55 +02:00
Veronica Berglyd Olsen
d16ece2a81 Use html table instead 2024-09-18 14:59:38 +02:00
Veronica Berglyd Olsen
e7f7dc8d60 Increase sponsor logo size 2024-09-18 14:55:47 +02:00
Veronica Berglyd Olsen
2f2943452f Use px for logo size 2024-09-18 14:55:06 +02:00
Veronica Berglyd Olsen
08ae2b5351 Merge actions updates from 'release' 2024-09-18 14:52:46 +02:00
Veronica Berglyd Olsen
eda1a1c4dd Add sponsor link to readme 2024-09-18 14:52:24 +02:00
Veronica Berglyd Olsen
238abdb567 Update to release certificate for windows build 2024-09-18 14:33:45 +02:00
Veronica Berglyd Olsen
c3f9ceb03a Add version numbers to all build jobs 2024-09-18 14:02:27 +02:00
Veronica Berglyd Olsen
b95e9fcda3 Update for windows runner 2024-09-18 13:39:17 +02:00
Veronica Berglyd Olsen
b3f8a2c18c Add version parameter to windows build 2024-09-18 13:11:08 +02:00
Veronica Berglyd Olsen
18bbf7d86f Switch to test signing for windows setup 2024-09-18 12:14:37 +02:00
Veronica Berglyd Olsen
8e3ad6d874 Merge release 2.5.2 2024-09-17 16:51:06 +02:00
Veronica Berglyd Olsen
7a63ac83d2 Release 2.5.2 (#2021) 2024-09-17 15:49:04 +02:00
Veronica Berglyd Olsen
8dc28ddbee Add signing request to windows build 2024-09-17 15:45:30 +02:00
Veronica Berglyd Olsen
15803cf0a3 Bump version and update changelog 2024-09-17 15:33:37 +02:00
Veronica Berglyd Olsen
5ac001781c Improve documentation (#2015) 2024-09-09 12:03:22 +02:00
Veronica Berglyd Olsen
66986b88f8 Improve the spell checking info a little 2024-09-01 21:41:26 +02:00
Veronica Berglyd Olsen
f4e12a63a5 Merge branch 'release' into improve_docs 2024-09-01 21:37:53 +02:00
Veronica Berglyd Olsen
09b0f34199 Merge branch 'release' 2024-09-01 17:47:36 +02:00
Veronica Berglyd Olsen
095c005c3f Fix bugs in the document viewer (#2014) 2024-09-01 17:45:44 +02:00
Veronica Berglyd Olsen
e414b6458d Refresh tab stop distance after loading document (#1996) 2024-09-01 17:38:04 +02:00
Veronica Berglyd Olsen
ece73784c2 Only highlight dialogue in novel text (#2011 and #2013) 2024-09-01 17:32:37 +02:00
Veronica Berglyd Olsen
8dd9644c13 Fix issue with overlapping formatting (#2012) 2024-09-01 17:22:54 +02:00
Veronica Berglyd Olsen
556e8db104 Add some text about spell checking to editor docs 2024-08-16 09:33:38 +02:00
Veronica Berglyd Olsen
ce979b6c84 Merge branch 'release' 2024-07-28 14:10:36 +02:00
Veronica Berglyd Olsen
d2f422a441 Update Ubuntu releases (#1995) 2024-07-28 14:09:39 +02:00
Veronica Berglyd Olsen
e4daff8956 Drop Ubuntu 23.10 and add 24.10 2024-07-28 14:04:14 +02:00
Veronica Berglyd Olsen
c146c311c1 Merge branch 'release' 2024-07-28 13:46:53 +02:00
Veronica Berglyd Olsen
2e1b17dcdf Release 2.5.1 (#1989) 2024-07-28 13:32:15 +02:00
Veronica Berglyd Olsen
2ef11f56e5 Update changelog 2024-07-28 13:26:34 +02:00
Veronica Berglyd Olsen
fdaeca78a7 Update translations 2024-07-28 13:21:58 +02:00
Veronica Berglyd Olsen
93e7343fe9 Update changelog with latest fix 2024-07-26 00:22:58 +02:00
Veronica Berglyd Olsen
5167608f7a Merge branch 'release' into release_2.5.1 2024-07-26 00:20:11 +02:00
Veronica Berglyd Olsen
7fe3a8520d Merge branch 'release' 2024-07-26 00:19:25 +02:00
Veronica Berglyd Olsen
d4a0881e77 Fix updating of importance labels (#1993) 2024-07-26 00:18:47 +02:00
Veronica Berglyd Olsen
7f42210f2f Add test coverage 2024-07-26 00:15:14 +02:00
Veronica Berglyd Olsen
33497bc92d Simplify how the project tree is populated 2024-07-25 20:47:14 +02:00
Veronica Berglyd Olsen
06aa2e6c07 Only refresh project tree values when status labels change 2024-07-25 20:39:32 +02:00
Veronica Berglyd Olsen
3bffaa01dc Update viewer panel when importance labels change (#1992) 2024-07-25 19:21:52 +02:00
Veronica Berglyd Olsen
66237c35ea Bump version to 2.5.1 and update changelog 2024-07-21 20:05:54 +02:00
Veronica Berglyd Olsen
f532857345 Merge branch 'release' 2024-07-21 19:54:43 +02:00
Veronica Berglyd Olsen
5936e1a68b Improve test coverage 2024-07-21 19:45:40 +02:00
Veronica Berglyd Olsen
17b3b2b770 Navigate to heading when a tag is clicked for editing (#1983) 2024-07-21 19:45:28 +02:00
Veronica Berglyd Olsen
826e805b06 Make sure free form text boxes in Preferences are safe (#1986) 2024-07-21 19:20:51 +02:00
Veronica Berglyd Olsen
5419d76606 Fix test 2024-07-21 19:15:56 +02:00
Veronica Berglyd Olsen
0d84653f7d Process pad before and after settings in Preferences (#1985) 2024-07-21 19:06:45 +02:00
Veronica Berglyd Olsen
b7da56ac42 Merge branch 'release' 2024-07-14 16:43:43 +02:00
Veronica Berglyd Olsen
7140788b48 Lock project only after successful open (#1978) 2024-07-14 16:33:48 +02:00
Veronica Berglyd Olsen
a43bd5a50e Move project lock until all steps in project open are completed (#1977) 2024-07-14 16:28:09 +02:00
Veronica Berglyd Olsen
81dd98e83b Bump main branch to 2.6 alpha 0 2024-07-10 17:30:14 +02:00
Veronica Berglyd Olsen
742f84576e Release 2.5 (#1972) 2024-07-10 16:45:13 +02:00
Veronica Berglyd Olsen
ba81662d6a Bump version to 2.5 and update changelog 2024-07-10 16:41:49 +02:00
Veronica Berglyd Olsen
f669ac1265 Update documentation for 2.5 (#1928) 2024-07-10 16:21:54 +02:00
Veronica Berglyd Olsen
b8a97b1afc Update docs 2024-07-10 16:18:29 +02:00
Veronica Berglyd Olsen
4eb0ed386c Merge branch 'main' into update_docs 2024-07-09 19:58:44 +02:00
Veronica Berglyd Olsen
ece225c355 Fix first line indent between pages (#1971) 2024-07-08 14:07:58 +02:00
Veronica Berglyd Olsen
69d97a3f3e Add additional test coverage 2024-07-08 14:02:05 +02:00
Veronica Berglyd Olsen
dcecaae3af Fix indent info not passed between pages (#1965) 2024-07-08 14:01:42 +02:00
Veronica Berglyd Olsen
1c261ef371 Add focus switch on welcome dialog (#1968) 2024-07-07 20:04:58 +02:00
Veronica Berglyd Olsen
ea89e66a46 Focus project name field when entering new project form on welcome dialog (#1967) 2024-07-07 19:59:35 +02:00
Veronica Berglyd Olsen
dd03c19be2 Fix preview indent and status bar LEDs (#1962) 2024-07-05 15:20:30 +02:00
Veronica Berglyd Olsen
08e6d320df Use text colour for LED border 2024-07-05 15:16:58 +02:00
Veronica Berglyd Olsen
446163c6de Add DPI scaling to status LEDs 2024-07-05 15:14:30 +02:00
Veronica Berglyd Olsen
abd503b5a2 Rename the em variable for clarity 2024-07-05 14:51:12 +02:00
Veronica Berglyd Olsen
2e1c08cbfa Fix em unit calculation in document preview (#1961) 2024-07-05 13:21:39 +02:00
Veronica Berglyd Olsen
7bdadadea1 Minor changes to pkgutils (#1959) 2024-07-04 22:28:13 +02:00
Veronica Berglyd Olsen
bc33a4d0d4 Move build-clean to after the build commands in pkgutils 2024-07-04 22:24:33 +02:00
Veronica Berglyd Olsen
188bc5d16f Restore usage of wrapper functions for read and write in pkgutils 2024-07-04 22:22:41 +02:00
Veronica Berglyd Olsen
3fd0385160 Rewrite build tools (#1958) 2024-07-04 22:11:10 +02:00
Veronica Berglyd Olsen
5f3f55133e Remove manual build from linux tests 2024-07-04 22:08:28 +02:00
Veronica Berglyd Olsen
47b8e12bc7 Fix a few workflow issues 2024-07-04 22:07:33 +02:00
Veronica Berglyd Olsen
cc97129e64 Add description to pkgutils help 2024-07-04 22:01:52 +02:00
Veronica Berglyd Olsen
e40e282837 Fix bug in Windows build script 2024-07-04 21:44:28 +02:00
Veronica Berglyd Olsen
eba0fa58bf Update Windows build job 2024-07-04 21:40:48 +02:00
Veronica Berglyd Olsen
1c0fdd6a17 Update XDG tools, clean up and fix a deb build issue 2024-07-04 21:38:31 +02:00
Veronica Berglyd Olsen
43eb62576c Fix Windows installer and update MacOS PList generator 2024-07-04 21:16:49 +02:00
Veronica Berglyd Olsen
d43a799389 Updated Windows packaging code 2024-07-04 21:00:15 +02:00
Veronica Berglyd Olsen
4d716555af Updated AppImage packaging code 2024-07-04 20:31:53 +02:00
Veronica Berglyd Olsen
7c65d22452 Updated debian packaging code 2024-07-04 19:45:54 +02:00
Veronica Berglyd Olsen
1b8867537e Update all assets commands to pkgutils 2024-07-04 18:34:10 +02:00
Veronica Berglyd Olsen
b91a11980b Split build workflows (#1957) 2024-07-04 16:51:59 +02:00
Veronica Berglyd Olsen
e80a9824f6 Add placeholder Windows build job 2024-07-04 16:47:39 +02:00
Veronica Berglyd Olsen
140b22dc63 Split GitHub build workflows 2024-07-04 16:42:46 +02:00
Veronica Berglyd Olsen
60169b914a Revert main to 2.5 RC1 2024-07-04 16:32:01 +02:00
Veronica Berglyd Olsen
fbe381638a Merge branch 'release' 2024-07-04 16:30:26 +02:00
Veronica Berglyd Olsen
6dcb44c391 Improve open project error message (#1956) 2024-07-04 16:24:16 +02:00
Veronica Berglyd Olsen
54c7c5a463 Add path info to open project error dialogs (#1944) 2024-07-04 16:19:04 +02:00
Veronica Berglyd Olsen
d5bcee14f5 Update translations for 2.5 (#1955) 2024-07-04 16:08:04 +02:00
Veronica Berglyd Olsen
0064b742d3 Update credits and reduce the number of links 2024-07-04 16:05:01 +02:00
Veronica Berglyd Olsen
9f88f3b79e Update translations for 2.5 and add Polish 2024-07-04 15:16:15 +02:00
Veronica Berglyd Olsen
b95d030032 Fix various minor issues (#1954) 2024-07-03 21:13:28 +02:00
Veronica Berglyd Olsen
f4f3f82954 Add a wait statement to check paintEvent in Preferences 2024-07-03 20:29:00 +02:00
Veronica Berglyd Olsen
5e8892ee7c Rewrite the tree view focus switch (#1949) 2024-07-03 19:39:29 +02:00
Veronica Berglyd Olsen
42b1e6a559 Only switch focus between editor and viewer when viewer is visible (#1950) 2024-07-03 18:38:32 +02:00
Veronica Berglyd Olsen
e1bcfcfc05 Convert Preferences dialog to save/cancel like Project Settings 2024-07-03 18:29:38 +02:00
Veronica Berglyd Olsen
069e35565f Refresh coloured labels when theme change (#1951) 2024-07-03 18:18:41 +02:00
Veronica Berglyd Olsen
880b560a39 Bump main branch to 2.6 alpha 0 2024-06-24 16:38:25 +02:00
Veronica Berglyd Olsen
8becc83c05 Update i18n source files (#1943) 2024-06-22 16:13:20 +02:00
Veronica Berglyd Olsen
b5ef62194d Update i18n files 2024-06-22 15:02:29 +02:00
Veronica Berglyd Olsen
a87c287fa6 Release 2.5 RC 1 (#1939) 2024-06-22 14:21:45 +02:00
Veronica Berglyd Olsen
18f5deee82 Change release date and extend changelog 2024-06-22 14:17:44 +02:00
Veronica Berglyd Olsen
53545a0015 Merge branch 'main' into release_2.5rc1 2024-06-21 00:41:03 +02:00
Veronica Berglyd Olsen
f662eaeccc Revert font setting in custom class (#1941) 2024-06-21 00:40:45 +02:00
Veronica Berglyd Olsen
1e6377abaa Revert font setting from SHARED instance in colour label, which caused some weird issues 2024-06-21 00:35:28 +02:00
Veronica Berglyd Olsen
516db26c05 Add latest change to the changelog 2024-06-21 00:33:22 +02:00
Veronica Berglyd Olsen
2df55cf6ee Merge branch 'main' into release_2.5rc1 2024-06-21 00:26:40 +02:00
Veronica Berglyd Olsen
251475197d Add focus widget hinting (#1940) 2024-06-21 00:26:20 +02:00
Veronica Berglyd Olsen
802069b4e5 Try adding deleteLater to i18n test 2024-06-21 00:21:45 +02:00
Veronica Berglyd Olsen
d07543926f Disable failing fast in Linux test matrix 2024-06-21 00:18:10 +02:00
Veronica Berglyd Olsen
5665efd9d7 Update docs and test coverage 2024-06-20 23:32:02 +02:00
Veronica Berglyd Olsen
ea7f3fe51c Add editor/viewer toggle feature 2024-06-19 20:42:23 +02:00
Veronica Berglyd Olsen
c6569b63e5 Add focus indication to editor and viewer header 2024-06-18 22:42:52 +02:00
Veronica Berglyd Olsen
930c60ae4a Add faded colour to theme 2024-06-18 22:42:19 +02:00
Veronica Berglyd Olsen
869cdd2fb0 Extend colour label widget to accept two colour states 2024-06-18 22:41:29 +02:00
Veronica Berglyd Olsen
f7d0adad1b Shuffle around private slots in main GUI 2024-06-18 22:39:33 +02:00
Veronica Berglyd Olsen
d25e2adfb6 Bump version to 2.5rc1 and update changelog 2024-06-18 08:39:28 +02:00
Veronica Berglyd Olsen
cb3a24bcd2 Rehighlight tags on note creation (#1938) 2024-06-16 21:22:44 +02:00
Veronica Berglyd Olsen
6540c56672 Remove no longer needed rehighlighting code 2024-06-16 21:19:42 +02:00
Veronica Berglyd Olsen
efc94a7fd5 Sort signals in main GUI 2024-06-16 21:18:41 +02:00
Veronica Berglyd Olsen
683e81c57b Connect rehighlight tags in editor to index signal on tags change (#1916) 2024-06-16 21:13:50 +02:00
Veronica Berglyd Olsen
f548927b74 Refactor custom widgets (#1937) 2024-06-16 17:37:36 +02:00
Veronica Berglyd Olsen
53522908c8 Improve test coverage 2024-06-16 17:29:29 +02:00
Veronica Berglyd Olsen
43cdc8420c Merge progress bars into single source file 2024-06-16 16:14:11 +02:00
Veronica Berglyd Olsen
45ad0f8c20 Update global search (#1936) 2024-06-16 16:12:51 +02:00
Veronica Berglyd Olsen
59c9783393 Remove commented out line 2024-06-16 16:03:35 +02:00
Veronica Berglyd Olsen
611a6bb80a Include the whole word when displaying search results 2024-06-16 15:58:30 +02:00
Veronica Berglyd Olsen
ee46fdb5b1 Refresh global search when toggling settings, if there is a search 2024-06-16 15:27:46 +02:00
Veronica Berglyd Olsen
7c33c949cb Merge the two methods in the shared class to save editor content 2024-06-16 15:23:22 +02:00
Veronica Berglyd Olsen
e9e7fae40e Support line height in build tool (#1935) 2024-06-16 15:10:39 +02:00
Veronica Berglyd Olsen
ac05b07f10 Add line height formatting to build preview (#1920) 2024-06-16 15:05:45 +02:00
Veronica Berglyd Olsen
aff027b735 Remember last used path for each tool individually (#1934) 2024-06-16 12:05:32 +02:00
Veronica Berglyd Olsen
14f1697428 Rename lastPath in build settings 2024-06-16 11:23:59 +02:00
Veronica Berglyd Olsen
a3381f1f79 Remove fallback parameter for lastPath and remove commented out code 2024-06-16 11:23:42 +02:00
Veronica Berglyd Olsen
1b7d331e41 Update more docstring 2024-06-16 00:55:33 +02:00
Veronica Berglyd Olsen
df34293e74 Update docstring 2024-06-16 00:54:48 +02:00
Veronica Berglyd Olsen
fe27acc3ef Add full test coverage 2024-06-16 00:49:24 +02:00
Veronica Berglyd Olsen
35632abea3 Update current tests 2024-06-16 00:37:21 +02:00
Veronica Berglyd Olsen
ea247c5814 Remember new project folder last used path (#1930) 2024-06-16 00:31:02 +02:00
Veronica Berglyd Olsen
928a116666 Update current usage of last path 2024-06-16 00:22:38 +02:00
Veronica Berglyd Olsen
2a99cafbf2 Add a class to store last used paths 2024-06-16 00:21:54 +02:00
Veronica Berglyd Olsen
2196486454 Update Windows packaging (#1932) 2024-06-14 22:53:16 +02:00
Veronica Berglyd Olsen
f99bd79ce8 Merge branch 'main' into win_installer 2024-06-14 21:37:08 +02:00
Veronica Berglyd Olsen
ddaced1b78 Update the Inno Setup installer script to change compression method and fix some warnings and issues 2024-06-14 16:09:52 +02:00
Veronica Berglyd Olsen
3e8845ab58 Ensure HTML tags are properly closed in output documents (#1926) 2024-06-13 15:56:23 +02:00
Veronica Berglyd Olsen
d5be1e0479 Update text formatting documentation 2024-06-13 15:55:45 +02:00
Veronica Berglyd Olsen
babc39c6a2 Add test coverage 2024-06-13 15:48:09 +02:00
Veronica Berglyd Olsen
5c35ebeffa Rewrite HTML tag insertion to check for correct open and close of tags (#1919) 2024-06-13 01:00:01 +02:00
Veronica Berglyd Olsen
5fbc608c90 Merge Release 2.4.4 into main 2024-06-12 21:40:37 +02:00
Veronica Berglyd Olsen
0c7808a24b Release 2.4.4 (#1924) 2024-06-12 21:19:24 +02:00
Veronica Berglyd Olsen
4aadbdaed2 Bump version to 2.4.4 and update changelog 2024-06-11 22:36:31 +02:00
Veronica Berglyd Olsen
195a7e354b Ensure editor content is saved before using it (#1923) 2024-06-11 22:12:03 +02:00
Veronica Berglyd Olsen
c03e832c7b Make sure editor document is saved before using first title to set item label (#1914) 2024-06-11 22:00:59 +02:00
Veronica Berglyd Olsen
73515c96d8 Add a method in the shared object to ensure document editor is saved 2024-06-11 21:59:58 +02:00
Veronica Berglyd Olsen
e7c0d59809 Allow more characters to be used in file names (#1922) 2024-06-11 21:45:08 +02:00
Veronica Berglyd Olsen
556caea308 Make the file name safe function less restrictive 2024-06-11 21:38:50 +02:00
Veronica Berglyd Olsen
6d54902a08 Fix multiple tools dialog issue (#1921) 2024-06-11 01:02:39 +02:00
Veronica Berglyd Olsen
fb32cea5b5 Update writing stats tests 2024-06-11 00:54:05 +02:00
Veronica Berglyd Olsen
69cd443999 Fix duplicate tool dialogs issue 2024-06-11 00:53:50 +02:00
Veronica Berglyd Olsen
cc61c5321e Extend dialogue highlighting (#1908) 2024-06-11 00:16:32 +02:00
Veronica Berglyd Olsen
7821f099bf Use consistent dialogue colours in preview, ODT and HTML 2024-06-11 00:11:44 +02:00
Veronica Berglyd Olsen
4b0ad6ec48 Add test coverage of ODT dialogue 2024-06-11 00:03:54 +02:00
Veronica Berglyd Olsen
416c580a45 Fix highlighting of multiple dialogue sections 2024-06-10 23:50:59 +02:00
Veronica Berglyd Olsen
0b3488c265 Add processing of dialogue highlight for ODT files 2024-06-10 23:12:54 +02:00
Veronica Berglyd Olsen
f0f5ae6dc9 Add support for dialogue highlighting in HTML output 2024-06-10 17:18:03 +02:00
Veronica Berglyd Olsen
f61ce3919b Add highlight option to build settings and preview 2024-06-10 17:01:40 +02:00
Veronica Berglyd Olsen
67c6497e2a Merge branch 'main' into dialogue_highlight 2024-06-10 13:48:40 +02:00
Veronica Berglyd Olsen
9bcb2479ac Refactor dialog closing (#1918) 2024-06-10 13:48:14 +02:00
Veronica Berglyd Olsen
8a9b038d56 Use the direct insert call 2024-06-10 13:44:47 +02:00
Veronica Berglyd Olsen
eed4721ef0 Make lipusm test more robust 2024-06-10 13:25:20 +02:00
Veronica Berglyd Olsen
b76c866c9d Fix typo in docstring 2024-06-10 01:10:59 +02:00
Veronica Berglyd Olsen
255a4a327e Update tests 2024-06-10 01:05:13 +02:00
Veronica Berglyd Olsen
811db81a86 Use the reject slot for dialogs since close is not actually a slot 2024-06-10 01:04:10 +02:00
Veronica Berglyd Olsen
29b61c07b0 Restore the keyPressEvent overload for Preferences 2024-06-10 01:03:20 +02:00
Veronica Berglyd Olsen
f8c1ee90ce Reimplement the reject slot for the parent dialog class 2024-06-10 01:02:48 +02:00
Veronica Berglyd Olsen
d9c86d56bb Merge branch 'main' into dialogue_highlight 2024-06-09 00:10:14 +02:00
Veronica Berglyd Olsen
cddf63f111 Improve memory handling and fix a few variables (#1913) 2024-06-09 00:08:52 +02:00
Veronica Berglyd Olsen
ca91e6a677 Improve meminfo debug formatting 2024-06-09 00:05:45 +02:00
Veronica Berglyd Olsen
a48fde95a3 Update tests 2024-06-08 23:35:29 +02:00
Veronica Berglyd Olsen
aed4ba4310 Rename the modifier apostrophe constants 2024-06-08 23:35:20 +02:00
Veronica Berglyd Olsen
57ee88059d Remove lambda slots in preferences dialog that blocked freeing memory 2024-06-08 23:34:31 +02:00
Veronica Berglyd Olsen
c8dccbe438 Fix typo in predefined type 2024-06-08 23:34:12 +02:00
Veronica Berglyd Olsen
8a071090e0 Merge branch 'main' into dialogue_highlight 2024-06-04 18:26:12 +02:00
Veronica Berglyd Olsen
cbf76e6575 Move project name first in window title (#1911) 2024-06-04 18:25:27 +02:00
Veronica Berglyd Olsen
83d2cb4f82 Swap project name and app name in window title (#1910) 2024-06-04 18:19:21 +02:00
Veronica Berglyd Olsen
497d4dd7f9 Add stubs file to dev requirements 2024-06-04 17:56:30 +02:00
Veronica Berglyd Olsen
d48f1fa292 Update QTextDocument test 2024-06-02 23:48:42 +02:00
Veronica Berglyd Olsen
7744ae5912 Fix footnote navigation in viewer 2024-06-02 23:36:28 +02:00
Veronica Berglyd Olsen
92b7168363 Add tests for patterns 2024-06-01 23:03:30 +02:00
Veronica Berglyd Olsen
8fc97c263b Try to fix 3.10 test seg fault 2024-06-01 18:18:21 +02:00
Veronica Berglyd Olsen
d190315909 Make a few improvements to regex and remove debug output 2024-06-01 14:16:05 +02:00
Veronica Berglyd Olsen
987740f7e9 Add dialogue highlighting to the viewer 2024-06-01 13:35:22 +02:00
Veronica Berglyd Olsen
2e143071d9 Add dialogue processing to the tokenizer 2024-06-01 13:34:59 +02:00
Veronica Berglyd Olsen
388141aae6 Move text regex patterns to a separate class 2024-06-01 13:06:46 +02:00
Veronica Berglyd Olsen
80811ebf44 Don't highlight dialogue in notes 2024-06-01 12:41:42 +02:00
Veronica Berglyd Olsen
208c4fb8ba Refresh StatusLEDs when theme changes (#1906) 2024-05-30 20:54:01 +02:00
Veronica Berglyd Olsen
38a5fddb9d Update tests 2024-05-30 20:49:55 +02:00
Veronica Berglyd Olsen
f844a5080a Update StatusLED to be theme refreshable and use trinary enum for values (#1893) 2024-05-30 20:49:46 +02:00
Veronica Berglyd Olsen
a11a013d16 Remove deleteLater calls from Manuscript tools (#1905) 2024-05-30 16:48:17 +02:00
Veronica Berglyd Olsen
f34cb567e4 Backport deleteLater fix for Manuscript tools from 2.5 release 2024-05-30 16:43:47 +02:00
Veronica Berglyd Olsen
6cb330b06c Update Portuguese translation (#1904) 2024-05-30 16:37:08 +02:00
Veronica Berglyd Olsen
04cf375725 Update translation sources, and completed Portuguese translation 2024-05-30 16:31:17 +02:00
Veronica Berglyd Olsen
b66686a869 Make some improvements to the viewer and test coverage (#1902) 2024-05-29 21:42:40 +02:00
Veronica Berglyd Olsen
31776a51a7 Add some more easy coverage 2024-05-29 21:37:02 +02:00
Veronica Berglyd Olsen
f1b7257e73 Improve test coverage 2024-05-29 21:27:05 +02:00
Veronica Berglyd Olsen
be7078aa7e Save editor doc before opening same in viewer (#1884) 2024-05-29 21:26:29 +02:00
Veronica Berglyd Olsen
931aed6d78 Update first line indentation (#1898) 2024-05-28 23:25:18 +02:00
Veronica Berglyd Olsen
dc6fe77612 Merge branch 'main' into feature/build_preview 2024-05-28 23:20:51 +02:00
Veronica Berglyd Olsen
b387150d4f Improve dialog memory handling (#1899) 2024-05-28 23:19:39 +02:00
Veronica Berglyd Olsen
9b09b13bf9 Improve Manuscript dialog progress bar position 2024-05-28 21:43:09 +02:00
Veronica Berglyd Olsen
d8693c7afa Remove deleteLater form message boxes, and some redundant ones in tests 2024-05-28 21:23:57 +02:00
Veronica Berglyd Olsen
019dd3e478 Change how dialogs are deleted 2024-05-28 21:16:40 +02:00
Veronica Berglyd Olsen
b01a2f5abd Simplify the About dialog 2024-05-28 21:15:32 +02:00
Veronica Berglyd Olsen
087a9cdd2e Update tests 2024-05-27 23:36:53 +02:00
Veronica Berglyd Olsen
b33bf954bb Convert split and merge dialogs into class method dialogs 2024-05-27 23:36:17 +02:00
Veronica Berglyd Olsen
f7cdc7da0c Add a dialog parent class that handles escape key presses 2024-05-27 22:53:30 +02:00
Veronica Berglyd Olsen
cf14f84652 Fix test coverage 2024-05-27 21:45:31 +02:00
Veronica Berglyd Olsen
6289840a74 Update tests 2024-05-27 21:08:28 +02:00
Veronica Berglyd Olsen
770cccda49 Add some comments and add text indent to HTML 2024-05-27 21:08:09 +02:00
Veronica Berglyd Olsen
aa02c0f15d Add first line indentation to previews 2024-05-27 00:27:08 +02:00
Veronica Berglyd Olsen
ee137b6ffd Parse text indentation in the tokenizer instead 2024-05-27 00:26:53 +02:00
Veronica Berglyd Olsen
206ca6040e Post-release fixes (#1897) 2024-05-26 18:23:29 +02:00
Veronica Berglyd Olsen
16f5670c83 Remove tilde from GitHub package name 2024-05-26 18:19:39 +02:00
Veronica Berglyd Olsen
0fc1af7180 Fix some typos in new section of Preferences 2024-05-26 18:05:11 +02:00
Veronica Berglyd Olsen
55714bbcad Release 2.5 Beta 1 (#1895) 2024-05-26 16:49:07 +02:00
Veronica Berglyd Olsen
6f144c20cd Bump to 2.5 beta 1 and update changelog 2024-05-26 16:42:49 +02:00
Veronica Berglyd Olsen
f23bd3818f Add a QTextDocument format class for previews (#1892) 2024-05-26 00:57:15 +02:00
Veronica Berglyd Olsen
d3ea763d6b Add test coverage of new ToQTextDocument class 2024-05-26 00:51:27 +02:00
Veronica Berglyd Olsen
91222f631f Update manuscript tests 2024-05-25 23:02:34 +02:00
Veronica Berglyd Olsen
aceb344856 Fix a potential segfault issue in main gui and add auto-build on open manuscript tool 2024-05-25 22:43:09 +02:00
Veronica Berglyd Olsen
f11ea8d07e Make various fixes and tweaks, and update tests 2024-05-24 21:39:16 +02:00
Veronica Berglyd Olsen
a4e3bf848b Clean up no longer needed code, and fix text justify setting 2024-05-24 20:38:34 +02:00
Veronica Berglyd Olsen
e74c1057a4 Remove HTML preview mode and manuscript cache 2024-05-24 20:12:13 +02:00
Veronica Berglyd Olsen
6cc046c65c Use preview document class for manuscript preview 2024-05-24 18:52:18 +02:00
Veronica Berglyd Olsen
c97a070e98 Fix module header info 2024-05-23 22:04:19 +02:00
Veronica Berglyd Olsen
b4c0bf3322 Complete all current document viewer features in the qdoc class 2024-05-23 21:29:47 +02:00
Veronica Berglyd Olsen
e998cb634e Add working meta data blocks 2024-05-23 20:48:42 +02:00
Veronica Berglyd Olsen
c8017a1f42 Add text paragraph formatting 2024-05-23 19:43:32 +02:00
Veronica Berglyd Olsen
6d84942746 Update qdocument class to work with merged code from main 2024-05-23 19:02:27 +02:00
Veronica Berglyd Olsen
818f145b62 Merge branch 'main' into feature/preview_generator 2024-05-23 18:50:38 +02:00
Veronica Berglyd Olsen
f92c22ce7e Fix build formatting and font handling (#1891) 2024-05-23 18:49:32 +02:00
Veronica Berglyd Olsen
69b362b9d2 Add native font dialog option and fix tests 2024-05-23 18:44:45 +02:00
Veronica Berglyd Olsen
1fe7ca3db8 Update font description and add native font dialog setting to config 2024-05-22 23:31:28 +02:00
Veronica Berglyd Olsen
cc32674b0f Update tests 2024-05-22 23:13:50 +02:00
Veronica Berglyd Olsen
cf16b57f66 Clean up font handling in HTML and ODT 2024-05-22 23:13:16 +02:00
Veronica Berglyd Olsen
411163f750 Update tests 2024-05-22 17:28:57 +02:00
Veronica Berglyd Olsen
7f3da655c0 Update ODT handling of font 2024-05-22 17:28:29 +02:00
Veronica Berglyd Olsen
76e786d961 Update HTML handling of font 2024-05-22 16:59:44 +02:00
Veronica Berglyd Olsen
7e1f1a725c Switch Tokenizer to use QFont instead of font family and size 2024-05-22 16:57:50 +02:00
Veronica Berglyd Olsen
c63a0c2f58 Add new font and quote button icons 2024-05-22 16:55:36 +02:00
Veronica Berglyd Olsen
04a7e092a9 Clean up Markdown build code 2024-05-22 16:55:05 +02:00
Veronica Berglyd Olsen
309065bcbf Add general keep line breaks setting to build 2024-05-22 09:14:34 +02:00
Veronica Berglyd Olsen
20ae3febef Merge branch 'main' into feature/preview_generator 2024-05-21 23:16:27 +02:00
Veronica Berglyd Olsen
e95d33031c Improve the text tokenizer (#1885) 2024-05-21 23:11:44 +02:00
Veronica Berglyd Olsen
3fd62d0b02 Remove context menu test from main menu tests 2024-05-21 23:06:25 +02:00
Veronica Berglyd Olsen
dc0ddcfa9f Move text blocks first also in stats counter as an optimisation 2024-05-21 22:59:02 +02:00
Veronica Berglyd Olsen
7a13b14c15 Drop empty tokens from the tokenizer data 2024-05-21 22:45:01 +02:00
Veronica Berglyd Olsen
adf0550571 Update tests 2024-05-21 22:32:20 +02:00
Veronica Berglyd Olsen
ba6259f08a Update converter classes to handle only single paragraphs 2024-05-21 22:32:07 +02:00
Veronica Berglyd Olsen
d8bb2ad3ae Merge lines of the same paragraph already in the tokenizer 2024-05-21 21:58:34 +02:00
Veronica Berglyd Olsen
afe4a29fd1 Strip consecutive empty paragraphs when tokenizing 2024-05-21 20:53:45 +02:00
Veronica Berglyd Olsen
1203dd639b Add a QTextDocument generator class 2024-05-21 18:12:08 +02:00
Veronica Berglyd Olsen
aadad6aa8c Define header sizes as constants 2024-05-21 18:02:01 +02:00
Veronica Berglyd Olsen
8ac0440bb3 Rename a few files 2024-05-21 16:33:53 +02:00
Veronica Berglyd Olsen
d2fca3b980 Allow full font style settings for GUI and editor (#1881) 2024-05-20 18:37:42 +02:00
Veronica Berglyd Olsen
d6b4019614 Clean up app construction in main entry point 2024-05-20 18:33:00 +02:00
Veronica Berglyd Olsen
a6eb951361 Add font initialisation, and update tests 2024-05-20 17:36:40 +02:00
Veronica Berglyd Olsen
dce5bdd31d Update tests 2024-05-20 17:14:03 +02:00
Veronica Berglyd Olsen
0b999bd726 Fix font handling in manuscript tool 2024-05-20 17:13:10 +02:00
Veronica Berglyd Olsen
774437f7bb Save all font info for text font 2024-05-20 16:32:10 +02:00
Veronica Berglyd Olsen
c0673b8128 Save all font info for GUI font 2024-05-20 16:12:27 +02:00
Veronica Berglyd Olsen
0bc8a63ccf Add error text colour setting to theme (#1880) 2024-05-20 13:36:37 +02:00
Veronica Berglyd Olsen
192f4507e3 Update documentation 2024-05-20 13:32:13 +02:00
Veronica Berglyd Olsen
2d22adcd2a Update the dictionaries tool to use the new error colour 2024-05-20 13:32:06 +02:00
Veronica Berglyd Olsen
4c4b92fdd4 Add error text colour to theme definition 2024-05-20 13:31:38 +02:00
Veronica Berglyd Olsen
2a727d1c39 Merge branch 'main' into fix/dict_tool_error_colour 2024-05-20 13:09:44 +02:00
Veronica Berglyd Olsen
35693f5433 Fix remaining merge conflict in sample project 2024-05-20 13:09:26 +02:00
Veronica Berglyd Olsen
bf459b4090 Add error text value in themes 2024-05-20 13:08:59 +02:00
Veronica Berglyd Olsen
728f1ce1e3 Merge release 2.4.3 into main 2024-05-20 13:07:14 +02:00
Veronica Berglyd Olsen
7b8021de02 Release 2.4.3 (#1878) 2024-05-20 12:32:32 +02:00
Veronica Berglyd Olsen
60593cde21 Bump version to 2.4.3 and update changelog 2024-05-20 12:29:03 +02:00
Veronica Berglyd Olsen
f9292d61da Fix how document font is set (#1877) 2024-05-20 12:16:41 +02:00
Veronica Berglyd Olsen
9388ce6a46 Fix support for 90% font 2024-05-20 12:00:19 +02:00
Veronica Berglyd Olsen
cb19475409 Add font init to viewer, and update manuscript tool preview 2024-05-20 11:36:30 +02:00
Veronica Berglyd Olsen
09b51badd4 Add an explicit font setting function for text editor that covers all font settings 2024-05-20 11:17:23 +02:00
Veronica Berglyd Olsen
fddd5fda47 Fix crash in dictionaries install tool (#1876) 2024-05-19 21:52:54 +02:00
Veronica Berglyd Olsen
5b0a6f05ed Fix enchant folder missing bug for dictionaries tool (#1874) 2024-05-19 21:47:53 +02:00
Veronica Berglyd Olsen
51f91a27e2 Merge release 2.4.2 into main 2024-05-18 15:57:49 +02:00
Veronica Berglyd Olsen
09018d1214 Release 2.4.2 (#1872) 2024-05-18 15:22:19 +02:00
Veronica Berglyd Olsen
de12b22c97 Bump version and update changelog 2024-05-18 15:19:30 +02:00
Veronica Berglyd Olsen
d1ae7f5fe2 Update Dutch and Chinese translations 2024-05-18 15:08:39 +02:00
Veronica Berglyd Olsen
201d32f6ae Merge branch 'release' 2024-05-14 09:37:59 +02:00
Veronica Berglyd Olsen
6a441b1c6b Fix syntax highlighter init (#1866) 2024-05-14 09:37:00 +02:00
Veronica Berglyd Olsen
0afa15f2db Call highlighter init on editor init (#1865) 2024-05-14 09:29:21 +02:00
Veronica Berglyd Olsen
85eb44da02 Bump main branch to 2.5 alpha 4 2024-05-13 18:48:38 +02:00
Veronica Berglyd Olsen
4856c7a61b Improve dialogue highlighting (#1864) 2024-05-13 18:41:13 +02:00
Veronica Berglyd Olsen
1b4cc933e7 Add test coverage 2024-05-13 18:31:31 +02:00
Veronica Berglyd Olsen
d64acb038b Allow multiple widgets in config form 2024-05-13 18:31:14 +02:00
Veronica Berglyd Olsen
b5def640ed Add alternative dialog style 2024-05-13 18:11:44 +02:00
Veronica Berglyd Olsen
7e35b4c675 Update syntax themes and add alternative dialog colour 2024-05-13 17:57:19 +02:00
Veronica Berglyd Olsen
e5e3066b3d Update preferences 2024-05-13 17:51:16 +02:00
Veronica Berglyd Olsen
e1af21bf88 Add new dialogue highlighting settings 2024-05-13 17:50:18 +02:00
Veronica Berglyd Olsen
8c9d08e46b Merge branch 'release' 2024-05-13 12:33:53 +02:00
Veronica Berglyd Olsen
e4acfb4831 Fix manuscript tool font issue (#1863) 2024-05-13 12:33:22 +02:00
Veronica Berglyd Olsen
a8101c2231 Fix text font for header on build tool 2024-05-13 12:29:18 +02:00
Veronica Berglyd Olsen
a3ce426613 Clean up code style (#1859) 2024-05-10 16:39:26 +02:00
Veronica Berglyd Olsen
161d02cd98 Use python -m to run pytest 2024-05-10 16:36:14 +02:00
Veronica Berglyd Olsen
101400bea3 Clean up some linting errors 2024-05-10 16:22:55 +02:00
Veronica Berglyd Olsen
1ff9fea378 Remove banner comments 2024-05-10 16:14:47 +02:00
Veronica Berglyd Olsen
3f4538a60e Remove all END Test comments 2024-05-10 16:06:23 +02:00
Veronica Berglyd Olsen
142d7c4f3a Remove all END Enum comments 2024-05-10 16:01:44 +02:00
Veronica Berglyd Olsen
2afe0ebbe9 Remove all END Class comments 2024-05-10 16:00:56 +02:00
Veronica Berglyd Olsen
bc71a62199 Improve first line indent (#1857) 2024-05-10 15:49:59 +02:00
Veronica Berglyd Olsen
1e85ce4a84 Update tests 2024-05-10 15:26:46 +02:00
Veronica Berglyd Olsen
39951a5099 Add more settings to first line indent and move to Format section 2024-05-10 15:14:09 +02:00
Veronica Berglyd Olsen
9cbb6f3125 Merge release 2.4.1 into main 2024-05-06 22:27:29 +02:00
Veronica Berglyd Olsen
2dbd3e2534 Release 2.4.1 (#1853) 2024-05-06 21:44:15 +02:00
Veronica Berglyd Olsen
f871a51e5b Bump version number to 2.4.1 and update changelog 2024-05-06 21:40:50 +02:00
Veronica Berglyd Olsen
6ab3c68ebb Update translation files for 2.4.1 (#1850) 2024-05-06 21:29:35 +02:00
Veronica Berglyd Olsen
7243ccd44c Update translation files 2024-05-04 21:00:51 +02:00
Veronica Berglyd Olsen
2a96fa1a2d Update the docs for 2.4.1 2024-05-04 20:54:56 +02:00
Veronica Berglyd Olsen
c05620dddb Refactor Main GUI inheritance (#1849) 2024-05-02 22:36:44 +02:00
Veronica Berglyd Olsen
917977ae13 Force document save when manually calling save document 2024-05-02 22:30:58 +02:00
Veronica Berglyd Olsen
2b8338f537 Clean up Main GUI inheritance 2024-05-02 22:13:35 +02:00
Veronica Berglyd Olsen
e75b5e012c Refactor how editor document is saved, and always save cursor position 2024-05-02 21:45:50 +02:00
Veronica Berglyd Olsen
78e194d8c1 Improve handling of tool dialogs on project close 2024-05-02 21:29:07 +02:00
Veronica Berglyd Olsen
c594e07c8c Merge branch 'release' 2024-05-02 21:16:42 +02:00
Veronica Berglyd Olsen
a3ed079828 Make sure dialogs close when project closes (#1848) 2024-05-02 21:08:46 +02:00
Veronica Berglyd Olsen
976ce16ac2 Update imports 2024-05-02 21:04:39 +02:00
Veronica Berglyd Olsen
5faeb12a74 Close non-modal dialogs when project closes 2024-05-02 21:02:23 +02:00
Veronica Berglyd Olsen
acc463eb76 Prune some unneeded translation strings 2024-05-02 19:38:13 +02:00
Veronica Berglyd Olsen
3b7459ffbc Add usability updates to the build tool (#1846) 2024-05-01 22:18:15 +02:00
Veronica Berglyd Olsen
cfb19a697a Restore build preview scroll bar after update (#1837) 2024-05-01 22:10:54 +02:00
Veronica Berglyd Olsen
ceec43db67 Make sure open document is saved before we update preview or build manuscript (#1835) 2024-05-01 22:09:43 +02:00
Veronica Berglyd Olsen
229fa39436 Fix build settings bug (#1845) 2024-05-01 20:33:22 +02:00
Veronica Berglyd Olsen
2496eb22cb Make sure build map is cleared when list is updated 2024-05-01 20:32:50 +02:00
Veronica Berglyd Olsen
d0a45bceca Make sure build map is cleared when list is updated 2024-05-01 20:30:32 +02:00
Veronica Berglyd Olsen
7180fae453 Improve dialog handling (#1844) 2024-05-01 20:24:31 +02:00
Veronica Berglyd Olsen
e1a1b5980e Make sure build settings are closed before deletion 2024-05-01 20:23:59 +02:00
Veronica Berglyd Olsen
53d410a6ee Make sure build settings are closed before deletion 2024-05-01 20:18:08 +02:00
Veronica Berglyd Olsen
a56b38694c Create subclasses for non-blocking dialogs 2024-05-01 20:08:35 +02:00
Veronica Berglyd Olsen
600b60b441 Remove main gui inheritance in manuscript tools 2024-05-01 19:43:51 +02:00
Veronica Berglyd Olsen
aa7208b602 Merge branch 'release' 2024-05-01 19:38:38 +02:00
Veronica Berglyd Olsen
0092b3ece6 Fix two minor issues (#1843) 2024-05-01 19:30:13 +02:00
Veronica Berglyd Olsen
d01c1e867d Pin MacOS tests to macos-13 image 2024-05-01 19:26:59 +02:00
Veronica Berglyd Olsen
dd3c8dfac8 Use GUI font for the header and footer in the editor and viewer (#1842) 2024-05-01 19:22:22 +02:00
Veronica Berglyd Olsen
7c9c5a9a76 Fix garbage collection blocker in build settings 2024-05-01 19:12:45 +02:00
Veronica Berglyd Olsen
8f9a55c5ca Add tools settings to pyproject 2024-05-01 19:12:27 +02:00
Veronica Berglyd Olsen
ea0b61aa6d Update assets credits 2024-04-29 22:48:25 +02:00
Veronica Berglyd Olsen
b94e7159b8 Add more themes (#1840) 2024-04-29 21:37:35 +02:00
Veronica Berglyd Olsen
2eabca8267 Fix theme test 2024-04-29 21:34:28 +02:00
Veronica Berglyd Olsen
afbe434b59 Add Snazzy Light syntax theme 2024-04-29 21:26:37 +02:00
Veronica Berglyd Olsen
2a50799873 Add dracula syntax and GUI theme 2024-04-29 21:08:25 +02:00
Veronica Berglyd Olsen
77727ad500 Update tango theme 2024-04-29 21:08:11 +02:00
Veronica Berglyd Olsen
e89f1fe5a8 Fix some minor issues on other themes 2024-04-29 21:07:58 +02:00
Veronica Berglyd Olsen
503e7eceb5 Make default syntax themes consistent 2024-04-29 21:07:10 +02:00
Veronica Berglyd Olsen
c15eba8f62 Bump main branch to 2.5 Alpha 3 2024-04-28 23:19:36 +02:00
Veronica Berglyd Olsen
e2f83d5106 Update syntax themes (#1836) 2024-04-28 23:10:32 +02:00
Veronica Berglyd Olsen
937b5cca12 Rename old value colour to tag and add new value colour to all syntax themes 2024-04-28 23:07:20 +02:00
Veronica Berglyd Olsen
1d438d5d76 Separate tags and value colours 2024-04-28 22:43:46 +02:00
Veronica Berglyd Olsen
22a34be21a Fix note colour in viewer and fix tests 2024-04-28 20:08:35 +02:00
Veronica Berglyd Olsen
17a492444e Redesign the default dark colour theme 2024-04-28 19:54:08 +02:00
Veronica Berglyd Olsen
9a714a903d Add a note colour to syntax themes 2024-04-28 19:53:58 +02:00
Veronica Berglyd Olsen
69a99fc97f Add a syntax colour for special notes 2024-04-28 19:53:09 +02:00
Veronica Berglyd Olsen
8beb74689c Add footnotes (#1832) 2024-04-28 19:40:38 +02:00
Veronica Berglyd Olsen
6be7da0305 Clean up a few minor bits in the index tests 2024-04-28 18:43:22 +02:00
Veronica Berglyd Olsen
8a08fe213c Fix more deprecation warnings in xml module 2024-04-28 18:29:15 +02:00
Veronica Berglyd Olsen
205b17aea0 Fix deprecation warning in xml module 2024-04-28 18:26:38 +02:00
Veronica Berglyd Olsen
864172ea50 Add an elide function for shortening text 2024-04-28 18:22:31 +02:00
Veronica Berglyd Olsen
e01e14075c Update editor and highlight, and update tests 2024-04-28 18:05:53 +02:00
Veronica Berglyd Olsen
e9596e1bbc Fix footnote formatting for ODT and update document builder tests 2024-04-27 19:05:13 +02:00
Veronica Berglyd Olsen
db9305c230 Add a footnote to the Lorem Ipsum test project 2024-04-27 16:50:37 +02:00
Veronica Berglyd Olsen
4572d101cf Change to run MacOS test on 13 2024-04-26 22:29:26 +02:00
Veronica Berglyd Olsen
41506911c1 Fix regex flag in highlighter 2024-04-26 22:25:58 +02:00
Veronica Berglyd Olsen
b722224863 Improve comment processing 2024-04-26 22:25:08 +02:00
Veronica Berglyd Olsen
b585b8ecd1 Make the footnote registry per-file 2024-04-26 20:12:57 +02:00
Veronica Berglyd Olsen
52e8ae9cb6 Merge branch 'main' into features/footnotes 2024-04-25 23:35:40 +02:00
Veronica Berglyd Olsen
6d6d0c2d12 Require minimum Python 3.9 (#1833) 2024-04-25 23:35:26 +02:00
Veronica Berglyd Olsen
383640cb7e Drop Python 3.8 support 2024-04-25 23:30:26 +02:00
Veronica Berglyd Olsen
e5ef27dfbf Revert change in test 2024-04-25 23:25:23 +02:00
Veronica Berglyd Olsen
96741fc08b Fix remaining broken tests 2024-04-25 22:58:00 +02:00
Veronica Berglyd Olsen
dc41f495be Fix ODT tests 2024-04-24 18:39:06 +02:00
Veronica Berglyd Olsen
b278d64d0c Fix uninitialised shared class in tests 2024-04-24 18:38:50 +02:00
Veronica Berglyd Olsen
b5e32844f5 Merge branch 'main' into features/footnotes 2024-04-24 18:09:26 +02:00
Veronica Berglyd Olsen
4179d2e515 Add isort and clean up flake8 (#1831) 2024-04-24 18:08:42 +02:00
Veronica Berglyd Olsen
815ba9d553 Update linting and formatting tools 2024-04-24 17:46:00 +02:00
Veronica Berglyd Olsen
0d294f49f9 Merge branch 'main' into features/footnotes 2024-04-21 23:34:56 +02:00
Veronica Berglyd Olsen
a195cfc792 Merge branch 'release' 2024-04-21 13:56:08 +02:00
Veronica Berglyd Olsen
d3c9168ebf Make MacOS build script executable 2024-04-21 13:17:55 +02:00
Veronica Berglyd Olsen
4d153b8d99 Backport ARM build for MacOS from 2.5 branch 2024-04-21 13:14:38 +02:00
Veronica Berglyd Olsen
bf8d224064 Update build scripts (#1829) 2024-04-21 12:59:42 +02:00
Veronica Berglyd Olsen
b7ad2c969a Fix test 2024-04-20 21:49:22 +02:00
Veronica Berglyd Olsen
d78643160c Update MacOS package names and fic another launch script bug 2024-04-20 21:43:31 +02:00
Veronica Berglyd Olsen
221b38c766 Fix escapes in MacOS launch script 2024-04-20 21:36:09 +02:00
Veronica Berglyd Olsen
e8bd9b21b5 Explicitly set python exec and ignore errors from run from source blocks in main 2024-04-20 21:31:04 +02:00
Veronica Berglyd Olsen
c2f0d04a35 Merge branch 'main' into builds/macos_m1 2024-04-20 21:04:09 +02:00
Veronica Berglyd Olsen
54ebcd91cb Fix wrong hex version 2024-04-20 20:13:06 +02:00
Veronica Berglyd Olsen
07411327b6 Add some debug output 2024-04-20 19:50:45 +02:00
Veronica Berglyd Olsen
094ad1a17b Require input arguments 2024-04-20 19:44:50 +02:00
Veronica Berglyd Olsen
c362848b86 Fix bash script bug 2024-04-20 19:41:33 +02:00
Veronica Berglyd Olsen
47a8dfbd93 Go back to macos-12 runner 2024-04-20 19:35:39 +02:00
Veronica Berglyd Olsen
73b8443d7b Let's try this one more time ... 2024-04-20 18:35:31 +02:00
Veronica Berglyd Olsen
48a7929254 Escape forwarding of arguments in MacoS build script 2024-04-20 18:28:57 +02:00
Veronica Berglyd Olsen
2c1abf1519 Change package name 2024-04-20 18:18:11 +02:00
Veronica Berglyd Olsen
e27e066ccc Drop support for deprecated Linux AppImage 2024-04-20 18:12:51 +02:00
Veronica Berglyd Olsen
621e933f63 Make some tweaks to build scripts 2024-04-20 18:02:10 +02:00
Veronica Berglyd Olsen
885974a84e Keep artifacts for 14 days 2024-04-20 17:41:36 +02:00
Veronica Berglyd Olsen
b1d1af2153 Add M1 build for MacOS 2024-04-20 17:41:10 +02:00
Veronica Berglyd Olsen
cb94be5b3c Post-release updates 2024-04-20 17:30:35 +02:00
Veronica Berglyd Olsen
5a202e96fd Post-release updates 2024-04-20 17:27:12 +02:00
Veronica Berglyd Olsen
b80edee225 Merge Release 2.4 into Main 2024-04-20 17:26:12 +02:00
Veronica Berglyd Olsen
af3e2fc6ce Release 2.4 (#1827) 2024-04-20 15:29:38 +02:00
Veronica Berglyd Olsen
795007f3f8 Bump version to 2.4 and update changelog 2024-04-20 15:25:59 +02:00
Veronica Berglyd Olsen
ea3c5fa758 Update translations (#1821) 2024-04-20 15:01:22 +02:00
Veronica Berglyd Olsen
30acf11055 Update German translation and refresh other files 2024-04-20 14:58:42 +02:00
Veronica Berglyd Olsen
48e653a546 Clean up footnote key generation 2024-04-18 18:23:25 +02:00
Veronica Berglyd Olsen
a2d8aefb21 Reduce footnote index storage to keys only 2024-04-18 18:07:17 +02:00
Veronica Berglyd Olsen
ae893be79b Merge branch 'main' into features/footnotes 2024-04-18 00:01:48 +02:00
Veronica Berglyd Olsen
d846811fb9 Merge branch 'release' into i18n/update_translations 2024-04-17 00:24:27 +02:00
Veronica Berglyd Olsen
791080107f Update readme 2024-04-17 00:23:41 +02:00
Veronica Berglyd Olsen
7d22ed1249 Update packaging (#1826) 2024-04-17 00:21:42 +02:00
Veronica Berglyd Olsen
8150edbc43 Clean up and refactor package script 2024-04-17 00:12:06 +02:00
Veronica Berglyd Olsen
5acbfeffa5 Reduce zip build job to Windows only 2024-04-17 00:00:28 +02:00
Veronica Berglyd Olsen
3b763e3460 Remove windows install scripts 2024-04-16 23:54:54 +02:00
Veronica Berglyd Olsen
6dd5f4295d Drop build support for Ubuntu 20.04 2024-04-16 23:46:10 +02:00
Veronica Berglyd Olsen
ac7b0bc9a2 Drop code for pre Qt 5.15 versions 2024-04-16 23:45:59 +02:00
Veronica Berglyd Olsen
1733938eb4 Bump Qt version requirement to 5.15 2024-04-16 23:40:48 +02:00
Veronica Berglyd Olsen
e5c9ed4b80 Fix build errors for old Ubuntu LTSes 2024-04-16 23:34:25 +02:00
Veronica Berglyd Olsen
175b6747ea Fix build errors 2024-04-16 23:33:13 +02:00
Veronica Berglyd Olsen
f45170850c Fix Ubuntu builds for 20.04 and 22.04, and bump to 2.5 alpha 2 2024-04-16 23:25:30 +02:00
Veronica Berglyd Olsen
466eb65a44 Add setup.cfg back for old Ubuntu LTSes 2024-04-16 23:15:39 +02:00
Veronica Berglyd Olsen
bdce0e12c7 Simplify footnote handling in writer classes 2024-04-16 21:54:31 +02:00
Veronica Berglyd Olsen
57f9a0a844 Refactor and improve highlighter class 2024-04-16 21:52:37 +02:00
Veronica Berglyd Olsen
988d969de7 Drop the non-compliant print-orientation attribute from the ODT class 2024-04-16 21:51:54 +02:00
Veronica Berglyd Olsen
17960d286f Add a working ODT footnotes implementation 2024-04-16 00:39:48 +02:00
Veronica Berglyd Olsen
26ac68e98e Block footnotes in footnotes, and only output referenced footnotes 2024-04-16 00:37:26 +02:00
Veronica Berglyd Olsen
0729dd798b Add formatted comments for ODT 2024-04-15 18:49:49 +02:00
Veronica Berglyd Olsen
c65dee1df9 Skip footnote section if there are none 2024-04-15 18:30:07 +02:00
Veronica Berglyd Olsen
92888338f4 Add footnotes to output translation file 2024-04-15 18:25:13 +02:00
Veronica Berglyd Olsen
44192c88f5 Add footnote handling in html and markdown output 2024-04-15 18:22:55 +02:00
Veronica Berglyd Olsen
8d24243d4f Complete footnotes processing in tokenizer 2024-04-15 18:22:29 +02:00
Veronica Berglyd Olsen
7c4d4dec5c Use format list also for marker keys 2024-04-15 01:11:32 +02:00
Veronica Berglyd Olsen
9823677983 Add text marker processing in tokenizer class 2024-04-15 00:42:01 +02:00
Veronica Berglyd Olsen
ec6a5712e5 Update tests 2024-04-14 23:59:57 +02:00
Veronica Berglyd Olsen
ef85b2109f Fix shortcode spellcheck (#1823) 2024-04-14 23:52:47 +02:00
Veronica Berglyd Olsen
8cfeb2ce7d Add test coverage of shortcode spell checking 2024-04-14 23:47:46 +02:00
Veronica Berglyd Olsen
35563373a6 Annotated regex rules in highlighting and add to slots 2024-04-14 23:40:19 +02:00
Veronica Berglyd Olsen
f23164a17b Disable spell checking for shortcodes 2024-04-14 23:39:52 +02:00
Veronica Berglyd Olsen
70033cb0f3 Add insert footnote feature in editor 2024-04-14 23:33:35 +02:00
Veronica Berglyd Olsen
da102d3d5a Merge branch 'main' into features/footnotes 2024-04-14 22:17:23 +02:00
Veronica Berglyd Olsen
5568b43b22 Add key generator to text index 2024-04-14 22:17:00 +02:00
Veronica Berglyd Olsen
52b27b6e56 Increase toolbar label font size in outline 2024-04-14 16:42:46 +02:00
Veronica Berglyd Olsen
99ec268dd9 Increase the icon size of outline toolbar 2024-04-14 16:36:21 +02:00
Veronica Berglyd Olsen
d304c0919f Change job name 2024-04-13 19:59:28 +02:00
Veronica Berglyd Olsen
6f3a11ade3 Change job condition 2024-04-13 19:57:51 +02:00
Veronica Berglyd Olsen
52ffa0b675 Add a job to build i18n file 2024-04-13 19:54:50 +02:00
Veronica Berglyd Olsen
03ee8edda1 Update translation sources, and completed French 2024-04-13 19:47:49 +02:00
Veronica Berglyd Olsen
5da30e6608 Update the status shape feature (#1819) 2024-04-13 19:26:32 +02:00
Veronica Berglyd Olsen
0fb0af5b32 Merge branch 'main' into updates/shapes 2024-04-13 19:22:05 +02:00
Veronica Berglyd Olsen
f5fcc57a06 Merge branch 'release' 2024-04-13 19:19:53 +02:00
Veronica Berglyd Olsen
6dc3e29535 Update default theme (#1820) 2024-04-13 19:15:19 +02:00
Veronica Berglyd Olsen
d35db6e925 Merge branch 'release' into udpates/default_theme 2024-04-13 19:08:32 +02:00
Veronica Berglyd Olsen
fbf0839c73 Update documentation for 2.4 (#1818) 2024-04-13 19:07:39 +02:00
Veronica Berglyd Olsen
6f885efb7f Change how default theme colours are handled 2024-04-13 19:07:15 +02:00
Veronica Berglyd Olsen
df5b391f27 Revert the default theme setting 2024-04-13 19:00:59 +02:00
Veronica Berglyd Olsen
4a1a3013f4 Add missing i18n wrapper to shape labels 2024-04-13 18:34:09 +02:00
Veronica Berglyd Olsen
524b965665 Update the remaining docs 2024-04-13 18:32:29 +02:00
Veronica Berglyd Olsen
a3ebe24eb7 Update project documentation 2024-04-13 18:18:06 +02:00
Veronica Berglyd Olsen
cae0977a01 Update usage documentation 2024-04-13 17:11:34 +02:00
Veronica Berglyd Olsen
ecf94d812d Change default theme to match docs 2024-04-13 16:41:46 +02:00
Veronica Berglyd Olsen
807a50dae4 Update the introduction section 2024-04-13 15:25:06 +02:00
Veronica Berglyd Olsen
cf57a3ead0 Update file format spec 2024-04-13 01:34:12 +02:00
Veronica Berglyd Olsen
39b2ff4a72 Bump main branch to version 2.5a1 (correctly this time) 2024-04-13 01:10:39 +02:00
Veronica Berglyd Olsen
eced026aeb Add shape setting to status and importance icons (#1810) 2024-04-13 01:07:43 +02:00
Veronica Berglyd Olsen
d574b2796f Update translations (#1814) 2024-04-13 01:05:36 +02:00
Veronica Berglyd Olsen
730d09a76c Merge branch 'main' into feature/status_shapes 2024-04-13 01:04:24 +02:00
Veronica Berglyd Olsen
b521b39498 Bump main branch to version 2.5a1 2024-04-13 01:03:58 +02:00
Veronica Berglyd Olsen
1cae0503e7 Merge branch 'main' into uppdate_i18n 2024-04-13 00:59:59 +02:00
Veronica Berglyd Olsen
e4d3e609f8 Fix index error in word counter (#1817) 2024-04-13 00:47:16 +02:00
Veronica Berglyd Olsen
4c86c1a75a Improve test coverage 2024-04-13 00:42:26 +02:00
Veronica Berglyd Olsen
2f55055c75 Fix comment 2024-04-13 00:38:29 +02:00
Veronica Berglyd Olsen
3e711ebe7f Fix word counter bug (#1816) 2024-04-13 00:37:21 +02:00
Veronica Berglyd Olsen
61e634a86c Update minor issues (#1815) 2024-04-13 00:30:57 +02:00
Veronica Berglyd Olsen
afd4aa5d1f Update home path and fix wrong setting fix for scene and chapter count on welcome dialog 2024-04-13 00:13:20 +02:00
Veronica Berglyd Olsen
4b5383f1c7 Add home path getter to config 2024-04-13 00:12:43 +02:00
Veronica Berglyd Olsen
95d91562ec Revert last changes, but keep code improvements 2024-04-13 00:03:08 +02:00
Veronica Berglyd Olsen
a43c351e25 Add a project language setting to manuscript build (#1812) 2024-04-12 23:46:09 +02:00
Veronica Berglyd Olsen
77a90256ed Simplify project language setting in project settings 2024-04-12 23:45:15 +02:00
Veronica Berglyd Olsen
6393ae7621 Default to 0 chapters and scenes for new projects (#1811) 2024-04-12 22:57:49 +02:00
Veronica Berglyd Olsen
6b3742fa56 Update US English. Spanish, Italian, Japanese and Norwegian 2024-04-11 22:46:51 +02:00
Veronica Berglyd Olsen
492bc044fc Make project setting lists behave the same way 2024-04-11 21:53:37 +02:00
Veronica Berglyd Olsen
84ff2f8371 Merge branch 'main' into feature/status_shapes 2024-04-11 21:46:48 +02:00
Veronica Berglyd Olsen
54f26ea06e Update test 2024-04-11 21:42:33 +02:00
Veronica Berglyd Olsen
e10f3a19d3 Add size policy types 2024-04-11 21:36:48 +02:00
Veronica Berglyd Olsen
21a5dbbb52 Redesign status item controls, and clean up auto-replace methods 2024-04-11 21:35:25 +02:00
Veronica Berglyd Olsen
f67d2c5a4c Add pre-calculation of status icons 2024-04-11 19:52:54 +02:00
Veronica Berglyd Olsen
6cf83bb381 Add more status icon shapes 2024-04-11 11:17:03 +02:00
Veronica Berglyd Olsen
6b9c81e8c4 Trigger search update on document save 2024-04-11 00:23:38 +02:00
Veronica Berglyd Olsen
f4decae77f Simplify status class counter reset 2024-04-10 23:44:43 +02:00
Veronica Berglyd Olsen
e47f0c5166 Update GUI test 2024-04-10 23:35:14 +02:00
Veronica Berglyd Olsen
778b65b48c Add shape selector to project settings 2024-04-10 23:24:00 +02:00
Veronica Berglyd Olsen
d1dbb0b378 Add test coverage of status class 2024-04-10 22:19:15 +02:00
Veronica Berglyd Olsen
adfd003532 Update core tests 2024-04-10 21:39:23 +02:00
Veronica Berglyd Olsen
f17302439e Simplify further how status labels are added and updated 2024-04-10 21:38:43 +02:00
Veronica Berglyd Olsen
63d2f5c57d Simplify the status class 2024-04-10 17:57:39 +02:00
Veronica Berglyd Olsen
478db63b30 Update tests 2024-04-10 01:09:11 +02:00
Veronica Berglyd Olsen
127588699e Switch status entries from dict to dataclass 2024-04-10 01:08:57 +02:00
Veronica Berglyd Olsen
29c10542b1 Merge branch 'main' into feature/status_shapes 2024-04-09 23:22:45 +02:00
Veronica Berglyd Olsen
ab33312872 Update codecov action 2024-04-09 23:18:21 +02:00
Veronica Berglyd Olsen
5c9fd471a7 Update codecov token 2024-04-09 23:00:17 +02:00
Veronica Berglyd Olsen
dd15c93f51 Comment out debug print 2024-04-09 22:41:37 +02:00
Veronica Berglyd Olsen
4003ececb2 Update tests 2024-04-09 22:40:14 +02:00
Veronica Berglyd Olsen
ff3cae9db4 Add status icon shape to project XML 2024-04-09 22:39:46 +02:00
Veronica Berglyd Olsen
af44646a77 Add a shape generator to the status class 2024-04-09 21:42:59 +02:00
Veronica Berglyd Olsen
1345bc8fe6 Fix markdown error 2024-04-09 18:25:22 +02:00
Veronica Berglyd Olsen
5d3a5a335f Reduce to only one release branch 2024-04-09 18:23:43 +02:00
Veronica Berglyd Olsen
4d877d411b Add linting of type annotations (#1809) 2024-04-09 17:05:45 +02:00
Veronica Berglyd Olsen
c1154682b5 Fix annotation errors 2024-04-09 17:01:05 +02:00
Veronica Berglyd Olsen
99c4b0acd0 Add flake8-annotations to linting checks 2024-04-09 16:52:26 +02:00
Veronica Berglyd Olsen
80520c075d Fix format toggle issue (#1808) 2024-04-09 16:50:54 +02:00
Veronica Berglyd Olsen
17cf9f006a Update tests 2024-04-09 16:41:12 +02:00
Veronica Berglyd Olsen
a8034b2fb5 Fix toggle and select issue for markdown formatting (#1807) 2024-04-09 16:40:38 +02:00
Veronica Berglyd Olsen
7999251353 Change "hard scene" to "alternative scene" format (#1803) 2024-04-08 21:07:28 +02:00
Veronica Berglyd Olsen
2111af8c0c Update translation file 2024-04-08 20:43:30 +02:00
Veronica Berglyd Olsen
6f7745c46a Update alternative scene label 2024-04-08 20:43:19 +02:00
Veronica Berglyd Olsen
ba42285172 Remove summaries from text index 2024-04-08 00:56:36 +02:00
Veronica Berglyd Olsen
dff2d5996b Add new index classes to store special text comments 2024-04-07 23:56:40 +02:00
Veronica Berglyd Olsen
08b17daec9 Add parsing for terms in comments 2024-04-07 18:06:21 +02:00
Veronica Berglyd Olsen
a7cf236ba5 Fix stylesheet bug (#1800) 2024-04-06 20:43:04 +02:00
Veronica Berglyd Olsen
f22197d494 Fix tooltip colours for the search panel 2024-04-06 20:05:46 +02:00
Veronica Berglyd Olsen
af8af45f39 Update translations (#1799) 2024-04-06 19:17:56 +02:00
Veronica Berglyd Olsen
4b112cf9c0 Update Norwegian and US English translations 2024-04-06 19:10:47 +02:00
Veronica Berglyd Olsen
733bc89a47 Update all translation files 2024-04-06 19:09:35 +02:00
Veronica Berglyd Olsen
17baceb807 Improve a few GUI labels 2024-04-06 19:08:49 +02:00
Veronica Berglyd Olsen
86487ace10 Make some minor fixes to the guide 2024-04-06 17:53:48 +02:00
Veronica Berglyd Olsen
a7422e5bb3 Merge branch 'releases/v2.3' 2024-04-06 17:44:18 +02:00
Veronica Berglyd Olsen
b64418c2e9 Merge branch 'releases/v2.2' 2024-04-06 17:44:15 +02:00
Veronica Berglyd Olsen
8e895bd797 Merge branch 'releases/v2.1' 2024-04-06 17:44:11 +02:00
Veronica Berglyd Olsen
6562f645fe Merge branch 'releases/v2.0' 2024-04-06 17:44:08 +02:00
Veronica Berglyd Olsen
80ebf60ec5 Update readme and contributing guide 2024-04-06 17:42:42 +02:00
Veronica Berglyd Olsen
d569001f32 Move mac and windows tests to python 3.12 2024-04-06 17:16:08 +02:00
Veronica Berglyd Olsen
12318b5c31 Keep windows and mac on Python 3.11 2024-04-06 17:15:20 +02:00
Veronica Berglyd Olsen
de55106961 Add release branch rules 2024-04-06 17:13:19 +02:00
Veronica Berglyd Olsen
edca735f2a Add release branch rules 2024-04-06 17:11:38 +02:00
Veronica Berglyd Olsen
b076de6f81 Add release branch rules 2024-04-06 17:11:07 +02:00
Veronica Berglyd Olsen
6ddc59bc5b Add release branch rules 2024-04-06 17:10:21 +02:00
Veronica Berglyd Olsen
ba4a3c16f3 Change to release branches 2024-04-06 17:07:43 +02:00
Veronica Berglyd Olsen
de0fb2eba8 Update actions for new patch branch 2024-04-06 16:50:51 +02:00
Veronica Berglyd Olsen
e40a0ff4aa Release 2.4 RC 1 (#1797) 2024-04-06 15:58:00 +02:00
Veronica Berglyd Olsen
5b126716f7 Update translation file 2024-04-06 15:54:59 +02:00
Veronica Berglyd Olsen
df3f4e2ef7 Bump version to 2.4 RC 1 and update changelog 2024-04-06 15:52:44 +02:00
Veronica Berglyd Olsen
a081a63ba1 Refactor ODT writer class (#1796) 2024-04-05 18:22:55 +02:00
Veronica Berglyd Olsen
3a631449ed Make a few more simplifications 2024-04-05 18:18:30 +02:00
Veronica Berglyd Olsen
c01c8b2023 Use iterable for checking difference between Odt paragraph styles 2024-04-05 18:10:07 +02:00
Veronica Berglyd Olsen
f7736b87bb Refactor Odt paragraph class further 2024-04-05 17:49:16 +02:00
Veronica Berglyd Olsen
5b8212f2fa Refactor Odt text style class 2024-04-05 17:23:39 +02:00
Veronica Berglyd Olsen
dd539be64e Refactor Odt paragraph style class 2024-04-05 17:23:07 +02:00
Veronica Berglyd Olsen
53e5756745 Refactor the Odt writer code 2024-04-05 17:12:01 +02:00
Veronica Berglyd Olsen
d0d6da3436 Improve persistence of document search button state (#1795) 2024-04-04 23:33:24 +02:00
Veronica Berglyd Olsen
c6423ffc21 Simplify the document search widget 2024-04-04 23:25:04 +02:00
Veronica Berglyd Olsen
cf9a141dc7 Remove caching of doc search options state in the search widget 2024-04-04 23:05:42 +02:00
Veronica Berglyd Olsen
2480c7ae9f Clean up code in preparation for Qt6 (#1792) 2024-04-03 21:20:58 +02:00
Veronica Berglyd Olsen
8fff376076 Clean up flags in all GUI classes 2024-04-03 21:09:49 +02:00
Veronica Berglyd Olsen
20c5993e2d Clean up a lot more namespace flags 2024-04-03 20:25:54 +02:00
Veronica Berglyd Olsen
46c5f1c10d Update Qt namespace flags 2024-04-03 19:28:39 +02:00
Veronica Berglyd Olsen
f95bbb8760 Replace exec_ with exec 2024-04-03 18:41:39 +02:00
Veronica Berglyd Olsen
c8fe5e6620 Drop the qApp macro 2024-04-03 18:36:37 +02:00
Veronica Berglyd Olsen
2744fb2fd4 Move to pyproject.toml (#1791) 2024-04-03 00:45:45 +02:00
Veronica Berglyd Olsen
7fb771eba4 Put dependencies directly in project config 2024-04-03 00:14:46 +02:00
Veronica Berglyd Olsen
760b2dbf0c Remove references to setup.cfg 2024-04-03 00:01:53 +02:00
Veronica Berglyd Olsen
751d0ed857 Drop empty init files 2024-04-02 23:53:19 +02:00
Veronica Berglyd Olsen
55e1233ca5 Move package config to pyproject.toml 2024-04-02 23:53:01 +02:00
Veronica Berglyd Olsen
b83042e456 Use selected text for project search (#1790) 2024-04-02 22:59:43 +02:00
Veronica Berglyd Olsen
c0fd1f1466 Update tests 2024-04-02 22:53:21 +02:00
Veronica Berglyd Olsen
03cb6ccb2b Let project search start with selected text (#1789) 2024-04-02 22:51:04 +02:00
Veronica Berglyd Olsen
3fb5d12487 Improve GUI scaling (#1788) 2024-04-01 20:46:45 +02:00
Veronica Berglyd Olsen
b44072a9fa Use the simplified theme icon setter where possible 2024-04-01 20:38:16 +02:00
Veronica Berglyd Olsen
24e45fb661 Improve how tool buttons are generated 2024-04-01 20:21:34 +02:00
Veronica Berglyd Olsen
c3467d89c2 Collect all alignment flags into a new types module 2024-04-01 18:27:18 +02:00
Veronica Berglyd Olsen
468a0e7416 Clean up item details panel 2024-04-01 18:03:35 +02:00
Veronica Berglyd Olsen
1eafa1c8b6 Make sure all tool buttons scale to base icon size 2024-04-01 17:48:12 +02:00
Veronica Berglyd Olsen
c000307f14 Add a base button size, and make it default for switches and tool buttons 2024-04-01 15:39:54 +02:00
Veronica Berglyd Olsen
cfde84f851 Fix typo in doc viewer stylesheet 2024-03-30 23:52:46 +01:00
Veronica Berglyd Olsen
d261aee1d0 Add search refresh when document changes (#1782) 2024-03-28 14:14:37 +01:00
Veronica Berglyd Olsen
c05463f0ae Update test coverage 2024-03-28 14:10:01 +01:00
Veronica Berglyd Olsen
247cd65bb6 Only update search for documents in current results 2024-03-28 13:54:35 +01:00
Veronica Berglyd Olsen
7149e363b1 Update search result on document change 2024-03-28 13:40:52 +01:00
Veronica Berglyd Olsen
536e828cc6 Refactor doc search class to allow single document search 2024-03-28 13:40:15 +01:00
Veronica Berglyd Olsen
821e3c4be5 Fix tooltip inconsistency 2024-03-27 16:38:16 +01:00
Veronica Berglyd Olsen
a06144730f Remove redundant variable 2024-03-27 14:05:43 +01:00
Veronica Berglyd Olsen
d162b77234 Add a new placeholder icon and clean up project search styling (#1781) 2024-03-27 13:46:31 +01:00
Veronica Berglyd Olsen
ec5352c13c Tweak search toolbar a little more 2024-03-27 13:40:26 +01:00
Veronica Berglyd Olsen
4e5a08d3dd Clean up search layout a little 2024-03-27 13:29:54 +01:00
Veronica Berglyd Olsen
2d9b57b534 Add a function to convert QColor to CSS rgba format 2024-03-27 13:11:37 +01:00
Veronica Berglyd Olsen
3e66968387 Add a more obvious placeholder icon (#1780) 2024-03-27 12:32:55 +01:00
Veronica Berglyd Olsen
1771dd2130 Release 2.4 Beta 1 (#1778) 2024-03-26 12:54:50 +01:00
Veronica Berglyd Olsen
b0a4ac055a Release 2.4 Beta 1 2024-03-26 12:49:21 +01:00
Veronica Berglyd Olsen
8bb0588b2b Add fast document read (#1777) 2024-03-26 12:19:50 +01:00
Veronica Berglyd Olsen
147d6b95d7 Move the quick read function to the document class where it belongs 2024-03-26 12:14:07 +01:00
Veronica Berglyd Olsen
6a7262b817 Use the quick read feature wherever we only need document text 2024-03-26 11:56:31 +01:00
Veronica Berglyd Olsen
738f022212 Add a quick document read function in the storage class 2024-03-26 11:45:29 +01:00
Veronica Berglyd Olsen
9081380255 Add global search feature (#1775) 2024-03-26 10:58:01 +01:00
Veronica Berglyd Olsen
e64fb28d89 Revert some timer changes 2024-03-26 00:29:58 +01:00
Veronica Berglyd Olsen
eb0fac8a43 Improve test coverage 2024-03-26 00:26:24 +01:00
Veronica Berglyd Olsen
bdc1f0a5d4 Handle the caching in the DocSearch class 2024-03-25 22:31:37 +01:00
Veronica Berglyd Olsen
8a12b03a1f Add clocks to shared class and add search cache clearing 2024-03-25 18:13:05 +01:00
Veronica Berglyd Olsen
01a4ec8d76 Make some GUI improvements 2024-03-25 17:37:18 +01:00
Veronica Berglyd Olsen
16954c3bba Add search caching 2024-03-25 16:19:51 +01:00
Veronica Berglyd Olsen
c6944876f1 Save project search toggle state 2024-03-25 11:59:05 +01:00
Veronica Berglyd Olsen
33e0895cdf Improve handling of focus switch with search widget 2024-03-25 11:44:56 +01:00
Veronica Berglyd Olsen
a4d8c22cd0 Add better keyboard navigation support 2024-03-24 16:24:48 +01:00
Veronica Berglyd Olsen
becb404203 Complete handling of search results 2024-03-24 15:56:22 +01:00
Veronica Berglyd Olsen
026aeb3d82 Use regex search instead 2024-03-24 14:52:32 +01:00
Veronica Berglyd Olsen
9153707075 Add basic string search 2024-03-23 23:54:41 +01:00
Veronica Berglyd Olsen
0feac3163f Merge branch 'dev' into global_search 2024-03-23 23:15:07 +01:00
Veronica Berglyd Olsen
7ddb1819f2 Fix two minor typing issues 2024-03-23 20:01:49 +01:00
Veronica Berglyd Olsen
9ddbe2f789 Add basic global search widget 2024-03-21 23:04:47 +01:00
Veronica Berglyd Olsen
102885da6e Add sidebar button for global search 2024-03-21 22:16:40 +01:00
Veronica Berglyd Olsen
ded03e10c5 Add outline to manuscript tool (#1768) 2024-03-21 18:49:55 +01:00
Veronica Berglyd Olsen
991e4fd3e2 Add test coverage 2024-03-21 18:44:15 +01:00
Veronica Berglyd Olsen
c0b1d0ad3d Fix tests 2024-03-21 16:43:36 +01:00
Veronica Berglyd Olsen
5befd244e6 Move outline generation to Tokenizer class instead 2024-03-21 16:42:58 +01:00
Veronica Berglyd Olsen
144ba66d9d Remove redundant variables in tokenizer 2024-03-20 23:44:25 +01:00
Veronica Berglyd Olsen
46c8bedd66 Add outline table to Manuscript tool 2024-03-20 20:43:31 +01:00
Veronica Berglyd Olsen
d42074f8ea Extend HTML anchor to include handle 2024-03-20 20:43:11 +01:00
Veronica Berglyd Olsen
bcadc40998 Make preview mode in HTML build also usable by Manuscript tool 2024-03-20 19:37:55 +01:00
Veronica Berglyd Olsen
ace1df7336 Increase size of some small button icons 2024-03-20 17:27:17 +01:00
Veronica Berglyd Olsen
3a2e2ff478 Add consistent styling of tool buttons and tab widgets 2024-03-20 17:26:36 +01:00
Veronica Berglyd Olsen
cd1f19355a Add additional classes to HTML output (#1767) 2024-03-18 23:13:02 +01:00
Veronica Berglyd Olsen
05174cd84c Add meta data classes in HTML build format (#1134) 2024-03-18 23:05:32 +01:00
Veronica Berglyd Olsen
7247d4dc76 Use correct type hint for generators 2024-03-18 18:37:21 +01:00
Veronica Berglyd Olsen
239ca55ba9 Bump dev to 2.4 alpha 4 2024-03-17 18:25:50 +01:00
Veronica Berglyd Olsen
523aef38cc Add a document outline dropdown (#1764) 2024-03-17 18:19:35 +01:00
Veronica Berglyd Olsen
294bf51f8a Cap outline to 30 items 2024-03-17 18:15:02 +01:00
Veronica Berglyd Olsen
8133e374d1 Add indentation of viewer menu, and move location 2024-03-17 16:57:28 +01:00
Veronica Berglyd Olsen
6bb9ec0dc1 Simplify a few more functions 2024-03-17 16:10:27 +01:00
Veronica Berglyd Olsen
c26cfd5372 Use a signal to handle new note creation 2024-03-17 15:51:16 +01:00
Veronica Berglyd Olsen
8afe3ed039 Let the shared class handle focus mode change to disconnect editor header from main GUI 2024-03-17 15:21:42 +01:00
Veronica Berglyd Olsen
b156eee209 Clean up signals and passing variables 2024-03-17 15:02:42 +01:00
Veronica Berglyd Olsen
add499af89 Add outline navigation to viewer 2024-03-17 14:04:11 +01:00
Veronica Berglyd Olsen
ca3337914c Complete the editor outline feature and update tests 2024-03-17 13:04:54 +01:00
Veronica Berglyd Olsen
5453d2ada1 Add document outline generator for editor 2024-03-17 12:26:25 +01:00
Veronica Berglyd Olsen
c3aa8fec56 Merge branch 'main' into dev 2024-03-17 11:56:34 +01:00
Veronica Berglyd Olsen
cfcf05fdad Release 2.3.1 (#1762) 2024-03-17 11:13:04 +01:00
Veronica Berglyd Olsen
423bde0c03 Bump version to 2.3.1 and update release notes 2024-03-17 11:00:37 +01:00
Veronica Berglyd Olsen
c254581a3f Prepare for release 2.3.1 (#1760) 2024-03-17 10:48:07 +01:00
Veronica Berglyd Olsen
ca27dc65b7 Update translation files, and complete French, Dutch and Spanish 2024-03-17 10:44:40 +01:00
Veronica Berglyd Olsen
cdb84851b2 Revert "Simplify the ODT header format" (#1758) 2024-03-17 10:42:27 +01:00
Veronica Berglyd Olsen
227c30cce3 Bump dev to 2.4 alpha 3 2024-03-15 00:00:01 +01:00
Veronica Berglyd Olsen
b1c6021545 Merge branch 'main' into dev 2024-03-14 23:55:27 +01:00
Veronica Berglyd Olsen
aed843a4f2 Add ODT first line indent (#1761) 2024-03-14 23:48:23 +01:00
Veronica Berglyd Olsen
101c595a48 Update tests 2024-03-14 23:44:56 +01:00
Veronica Berglyd Olsen
cdaae3fb46 Fix tests 2024-03-14 23:31:29 +01:00
Veronica Berglyd Olsen
0ae7694954 Add first line indent switch 2024-03-14 23:22:57 +01:00
Veronica Berglyd Olsen
f79c0b93ab Add first line indent style 2024-03-14 23:07:05 +01:00
Veronica Berglyd Olsen
439938ba58 Update Italian and Japanese translations 2024-03-14 22:11:56 +01:00
Veronica Berglyd Olsen
85cb93b396 Allow hiding all headings in manuscript (#1759) 2024-03-14 22:06:29 +01:00
Veronica Berglyd Olsen
8ef5eea825 Improve paragraph skips in Markdown output 2024-03-14 22:01:44 +01:00
Veronica Berglyd Olsen
b8af6d3990 Make sure the tokenizer can handle skipping separators also when there are no other headings (#1756) 2024-03-14 22:00:53 +01:00
Veronica Berglyd Olsen
f78f59dc2a Allow hiding any header level in novels 2024-03-13 21:38:24 +01:00
Veronica Berglyd Olsen
4defc1d4a3 Simplify the ODT header format (#1758) 2024-03-13 16:34:48 +01:00
Veronica Berglyd Olsen
fb7bf6fb98 Simplify the ODT header format 2024-03-13 16:24:56 +01:00
Veronica Berglyd Olsen
c0f48b91e6 Drop separate token type for unnumbered headings and use heading 2 instead 2024-03-13 15:54:14 +01:00
Veronica Berglyd Olsen
9da99e3183 Apply hide scene/section regardless of format being filled in 2024-03-13 15:53:28 +01:00
Veronica Berglyd Olsen
beaa583bc8 Add hard scene break format (#1753) 2024-03-13 11:11:59 +01:00
Veronica Berglyd Olsen
c7e953fc24 Fix chapter numbering in refactored tokenizer and add test coverage 2024-03-13 11:08:49 +01:00
Veronica Berglyd Olsen
44a0d21b35 Merge branch 'dev' into hard_scene 2024-03-12 22:14:14 +01:00
Veronica Berglyd Olsen
70f748efac Prefer GUI locale for date format (#1755) 2024-03-12 22:12:55 +01:00
Veronica Berglyd Olsen
6e2c5be14e Allow fallback values for appearance preferences 2024-03-12 22:02:23 +01:00
Veronica Berglyd Olsen
7d9040005e Use GUI locale date formats on GUI and dialogs 2024-03-12 22:01:54 +01:00
Veronica Berglyd Olsen
dc2c6d2a0d Add local formatting of dates with fallback to system locale 2024-03-12 22:01:07 +01:00
Veronica Berglyd Olsen
370116718a Merge branch 'main' into dev 2024-03-12 21:07:10 +01:00
Veronica Berglyd Olsen
9a9b2c6d2f Fix i18n issues (#1754) 2024-03-12 21:03:28 +01:00
Veronica Berglyd Olsen
37c935d027 Update US English, Norwegian and German translations 2024-03-12 21:00:46 +01:00
Veronica Berglyd Olsen
1279834849 Improve the custom widget docstring 2024-03-12 20:54:54 +01:00
Veronica Berglyd Olsen
ea50ae3279 Add a custom box layout for the wrapped widget 2024-03-12 19:10:48 +01:00
Veronica Berglyd Olsen
f51720dbd8 Update base translation file 2024-03-12 18:48:26 +01:00
Veronica Berglyd Olsen
d090230b67 Make it optional to split string for chapter and scene count on welcome dialog (#1750) 2024-03-12 18:41:16 +01:00
Veronica Berglyd Olsen
6a3f6048c2 Fix malformed translation string (#1749) 2024-03-12 18:27:15 +01:00
Veronica Berglyd Olsen
1bd82954c2 Add menu entry and update tests 2024-03-12 18:12:47 +01:00
Veronica Berglyd Olsen
44721fc797 Update documentation 2024-03-12 17:55:13 +01:00
Veronica Berglyd Olsen
66cf7cce78 Improve test coverage 2024-03-12 17:40:11 +01:00
Veronica Berglyd Olsen
c5c9726794 Clean up heading processing in tokenizer 2024-03-12 17:28:02 +01:00
Veronica Berglyd Olsen
8f25be8cb2 Update headings settings in manuscript build tool 2024-03-12 17:27:38 +01:00
Veronica Berglyd Olsen
78958ed5cf Add hard scene break formatting 2024-03-11 23:26:16 +01:00
Veronica Berglyd Olsen
bdff3b4ee2 Add support for triple hash alt header format 2024-03-11 23:25:28 +01:00
Veronica Berglyd Olsen
459a8e5cde Bump dev branch to 2.4a2 2024-03-11 22:27:34 +01:00
Veronica Berglyd Olsen
0869f209ab Merge branch 'main' into dev 2024-03-11 22:26:15 +01:00
Veronica Berglyd Olsen
d15e4ebb17 Bump project file format revision (#1748) 2024-03-11 16:39:18 +01:00
Veronica Berglyd Olsen
d6fae17b3b Update tests 2024-03-11 16:34:50 +01:00
Veronica Berglyd Olsen
dd82c935e5 Set new revision number 2024-03-11 16:34:44 +01:00
Veronica Berglyd Olsen
bc414246d2 Update file format spec 2024-03-11 16:34:05 +01:00
Veronica Berglyd Olsen
27ea697b90 Fix i18n issues (#1744) 2024-03-11 08:48:49 +01:00
Veronica Berglyd Olsen
f38f25f65a Update translation files 2024-03-10 16:20:54 +01:00
Veronica Berglyd Olsen
3edb76abbf Fix missing translation in Project Word List 2024-03-10 14:52:10 +01:00
Veronica Berglyd Olsen
91c6e13cbc Merge branch 'main' into dev 2024-03-10 14:09:51 +01:00
Veronica Berglyd Olsen
a5064d6237 Release 2.3 (#1742) 2024-03-10 12:41:19 +01:00
Veronica Berglyd Olsen
483a9aedfd Bump version and update changelog 2024-03-10 12:01:50 +01:00
Veronica Berglyd Olsen
98f94efbdd Update i18n (#1741) 2024-03-10 11:28:45 +01:00
Veronica Berglyd Olsen
3335c08a42 Merge branch 'main' into update_i18n 2024-03-10 11:26:38 +01:00
Veronica Berglyd Olsen
c6aa6d575d Improve GUI text (#1727) 2024-03-09 21:01:08 +01:00
Veronica Berglyd Olsen
013e94afc9 Update documentation (#1703) 2024-03-09 21:00:42 +01:00
Veronica Berglyd Olsen
7829c894ff Add the new additional section 2024-03-09 20:58:43 +01:00
Veronica Berglyd Olsen
924bf67bfb Update the project section 2024-03-09 20:56:44 +01:00
Veronica Berglyd Olsen
7aea468103 Update the usage section 2024-03-09 19:59:12 +01:00
Veronica Berglyd Olsen
9336410180 Update the introduction section 2024-03-09 18:33:37 +01:00
Veronica Berglyd Olsen
22162d3915 Merge branch 'main' into update_docs 2024-03-09 17:39:05 +01:00
Veronica Berglyd Olsen
edf4256648 Refresh translation files 2024-03-09 17:25:55 +01:00
Veronica Berglyd Olsen
29f9ea2a55 Update German and Spanish translations 2024-03-09 17:25:41 +01:00
Veronica Berglyd Olsen
8d614c2aeb Improve Open Project error handling (#1740) 2024-03-09 12:50:48 +01:00
Veronica Berglyd Olsen
604df85e62 Open welcome dialog again if no project was opened 2024-03-09 12:39:11 +01:00
Veronica Berglyd Olsen
075a9bf850 Be a bit more precise on open project errors (#1737) 2024-03-09 12:12:19 +01:00
Veronica Berglyd Olsen
02f20b7a4f Add more syntax themes (#1738) 2024-03-09 11:52:44 +01:00
Veronica Berglyd Olsen
5df369a831 Add Tango syntax colour theme 2024-03-09 11:49:06 +01:00
Veronica Berglyd Olsen
ead1740f83 Update test 2024-03-09 10:44:24 +01:00
Veronica Berglyd Olsen
791eebe8a6 Add custom sorting function so that default themes come first 2024-03-09 10:36:59 +01:00
Veronica Berglyd Olsen
5178c41e54 Add cyberpunk night theme by @alemvigh (#1730) 2024-03-09 10:17:22 +01:00
Veronica Berglyd Olsen
4c55bfe49f Remove the cli entry in setup.cfg (#1734) 2024-03-07 16:18:03 +01:00
Veronica Berglyd Olsen
7137494740 Remove the novelwriter-cli entry point (#1732) 2024-03-07 16:12:38 +01:00
Veronica Berglyd Olsen
569cb68cca Merge branch 'dev' into gui_text 2024-03-03 21:45:03 +01:00
Veronica Berglyd Olsen
fcd94326ef Merge branch 'main' into dev 2024-03-03 21:44:38 +01:00
Veronica Berglyd Olsen
a3bd0d38a4 Fix Trash and Delete entries for multi-select (#1728) 2024-03-03 21:30:59 +01:00
Veronica Berglyd Olsen
925d9fd5ad Update translations 2024-03-03 21:25:49 +01:00
Veronica Berglyd Olsen
d12e626bc4 Update tests 2024-03-03 21:17:18 +01:00
Veronica Berglyd Olsen
c182cc4383 Fix move to trash and permanently delete for multi select menu 2024-03-03 21:16:46 +01:00
Veronica Berglyd Olsen
ee97dce900 Change "Convert Quotes" text in format menu 2024-03-03 20:39:17 +01:00
Veronica Berglyd Olsen
72ba4ae74d Use "Duplicate" for both context menu types in project tree 2024-03-03 20:37:44 +01:00
Veronica Berglyd Olsen
58a7dc0a5a Use "heading" consistently on the UI 2024-03-03 20:28:36 +01:00
Veronica Berglyd Olsen
7799e9f253 Improve editor stats handling and test coverage (#1725) 2024-03-03 17:20:00 +01:00
Veronica Berglyd Olsen
d97ce592f8 Improve test coverage of editor search 2024-03-03 17:14:46 +01:00
Veronica Berglyd Olsen
8859fc7b6b Improve test coverage 2024-03-03 16:31:02 +01:00
Veronica Berglyd Olsen
57b3aa2032 Improve handling of title in doc headers 2024-03-03 16:30:48 +01:00
Veronica Berglyd Olsen
79513bcbe5 Improve the word counter logic of the editor 2024-03-03 15:39:08 +01:00
Veronica Berglyd Olsen
ef9e84f2ce Clean up the line counter logic in the editor 2024-03-03 15:00:12 +01:00
Veronica Berglyd Olsen
9270550364 Clean up some string formatting 2024-03-02 18:47:28 +01:00
Veronica Berglyd Olsen
2af1d60480 Remove redundant if statement in tokenizer class 2024-03-02 18:32:19 +01:00
Veronica Berglyd Olsen
5b5134148b Remove redundant flag in tokenizer class 2024-03-02 18:30:09 +01:00
Veronica Berglyd Olsen
210c1079cd Refactor Tokenizer class (#1724) 2024-03-02 18:27:40 +01:00
Veronica Berglyd Olsen
20c996e87e Remove colons from Manuscript GUI 2024-03-02 18:23:36 +01:00
Veronica Berglyd Olsen
37f56a34f4 Remove the header processing function and add comments to the tokenizer 2024-03-02 18:21:55 +01:00
Veronica Berglyd Olsen
24ea5f2f2b Update tests 2024-03-02 17:51:03 +01:00
Veronica Berglyd Olsen
53a4725d62 Incorporate header formatting into main tokenizer function 2024-03-02 17:50:36 +01:00
Veronica Berglyd Olsen
d932beb37d Bump dev to 2.4 alpha 1 2024-03-02 15:46:21 +01:00
Veronica Berglyd Olsen
868526e806 Add more formatting options for manuscript builds (#1723) 2024-03-02 15:42:12 +01:00
Veronica Berglyd Olsen
bce4a164b8 Add test coverage 2024-03-02 15:35:45 +01:00
Veronica Berglyd Olsen
aea4192213 Add option to ignore certain keywords in manuscript (#1132) 2024-03-02 15:24:07 +01:00
Veronica Berglyd Olsen
415d46d659 Add a specific header styles test 2024-03-02 14:46:10 +01:00
Veronica Berglyd Olsen
c6cbe4cc0d Allow titles in notes as well 2024-03-02 00:32:42 +01:00
Veronica Berglyd Olsen
82349d39b7 Fix broken tests 2024-03-02 00:19:21 +01:00
Veronica Berglyd Olsen
3e3335be39 Add additional styling for headers 2024-03-02 00:19:02 +01:00
Veronica Berglyd Olsen
44adc42fa6 Make sure manuscript preview always preserves tabs 2024-03-01 22:15:28 +01:00
Veronica Berglyd Olsen
ef1fc0943d Add a way to ignore hard line breaks in Markdown builds (#944) 2024-03-01 22:12:45 +01:00
Veronica Berglyd Olsen
bb2c2bb7fe Add preserve tabs setting to HTML builds 2024-03-01 22:09:50 +01:00
Veronica Berglyd Olsen
fa8a954bc0 Merge branch 'main' into dev 2024-03-01 12:18:16 +01:00
Veronica Berglyd Olsen
750ba36d32 Emit clear index signal when project is closed (#1720) 2024-02-29 23:10:05 +01:00
Veronica Berglyd Olsen
72b14ff08c Clean up imports 2024-02-29 23:07:22 +01:00
Veronica Berglyd Olsen
4ac050fe75 Add regression test 2024-02-29 23:06:19 +01:00
Veronica Berglyd Olsen
311b611afe Clear index when closing project (#1718) 2024-02-29 22:58:52 +01:00
Veronica Berglyd Olsen
45ab705175 Add text stats to manuscript tool (#1717) 2024-02-29 22:51:23 +01:00
Veronica Berglyd Olsen
acf8170f29 Update tests 2024-02-29 22:48:17 +01:00
Veronica Berglyd Olsen
6e57bc0fc0 Add manuscript stats panell 2024-02-29 22:41:12 +01:00
Veronica Berglyd Olsen
b3fb1db07c Add show/hide button icons 2024-02-29 22:40:36 +01:00
Veronica Berglyd Olsen
cca309d7d7 Add all words char count to tokenizer 2024-02-29 22:40:14 +01:00
Veronica Berglyd Olsen
dccc442852 Add test coverage of tokenizer stats counter 2024-02-28 19:10:05 +01:00
Veronica Berglyd Olsen
9f7fc90f2d Add documentation of counting rules 2024-02-28 18:20:20 +01:00
Veronica Berglyd Olsen
c3415ade1b Merge branch 'dev' into manuscript_stats 2024-02-28 17:12:37 +01:00
Veronica Berglyd Olsen
30bedb29d6 Merge branch 'main' into dev 2024-02-28 17:12:01 +01:00
Veronica Berglyd Olsen
37e2392237 Update i18n (#1714) 2024-02-28 17:08:49 +01:00
Veronica Berglyd Olsen
a1e6398116 Merge branch 'main' into update_i18n 2024-02-28 16:58:06 +01:00
Veronica Berglyd Olsen
b0b1c0d386 Improve i18n tests 2024-02-28 16:53:29 +01:00
Veronica Berglyd Olsen
29e83da077 Reformat statement 2024-02-28 12:35:00 +01:00
Veronica Berglyd Olsen
56ed4b88f8 Update Dutch translation 2024-02-27 19:44:38 +01:00
Veronica Berglyd Olsen
2a2b12f0a5 Add stats counting to tokenizer class 2024-02-27 19:39:58 +01:00
Veronica Berglyd Olsen
3bd67b4f1d Add body text only counter 2024-02-27 17:54:32 +01:00
Veronica Berglyd Olsen
3c4673724e Move main word counter to new module 2024-02-27 17:02:29 +01:00
Veronica Berglyd Olsen
a87a94ffeb Move highlighting CSS into the ToHtml class 2024-02-27 17:00:38 +01:00
Veronica Berglyd Olsen
f1ac1f7c21 Add highlight text shortcode (#1715) 2024-02-26 22:43:52 +01:00
Veronica Berglyd Olsen
eda054ae11 Add test coverage 2024-02-26 22:40:32 +01:00
Veronica Berglyd Olsen
5fa6c2ad99 Merge branch 'dev' into mark_text 2024-02-26 11:07:21 +01:00
Veronica Berglyd Olsen
a6647a0f4f Merge branch 'main' into dev 2024-02-26 11:07:00 +01:00
Veronica Berglyd Olsen
5f79186d10 Remove scene separator insertion after text (#1716) 2024-02-25 22:56:50 +01:00
Veronica Berglyd Olsen
87a1bb050e Update tests 2024-02-25 22:49:27 +01:00
Veronica Berglyd Olsen
de16d2d6a1 Make plain text not affect scene separator insertion 2024-02-25 22:49:12 +01:00
Veronica Berglyd Olsen
4fa21107ee Update Italian translation 2024-02-25 18:07:33 +01:00
Veronica Berglyd Olsen
fc75bdbebb Add button icon for highlighted text 2024-02-25 18:03:43 +01:00
Veronica Berglyd Olsen
ac549f75b0 Set mark colour in viewer, not in html generator 2024-02-25 17:33:04 +01:00
Veronica Berglyd Olsen
a2b2f70671 Fix broken tests 2024-02-25 17:07:52 +01:00
Veronica Berglyd Olsen
23bd5dfc41 Add a syntax theme colour entry for text highlighting 2024-02-25 16:55:17 +01:00
Veronica Berglyd Olsen
0566fc38af Update document build formats to support text highlighting 2024-02-25 16:34:24 +01:00
Veronica Berglyd Olsen
69bf6a64aa Add text highlight mark format 2024-02-25 16:18:06 +01:00
Veronica Berglyd Olsen
97371533bc Update Japanese translation, and fix line numbers in others 2024-02-25 10:51:42 +01:00
Veronica Berglyd Olsen
c3cf69cbe6 Update Norwegian and US English, and Dutch and Portuguese project translations 2024-02-24 18:22:31 +01:00
Veronica Berglyd Olsen
1353eaa460 Update base translation and fix tr string issues 2024-02-24 18:20:09 +01:00
Veronica Berglyd Olsen
3ca2c6de66 Bump version to 2.4 Alpha 0 on dev branch 2024-02-24 16:15:53 +01:00
Veronica Berglyd Olsen
4273ba5158 Release 2.3 RC 1 (#1712) 2024-02-24 16:00:49 +01:00
Veronica Berglyd Olsen
368cbdc62c Bump version and update changelog 2024-02-24 15:57:33 +01:00
Veronica Berglyd Olsen
b0614e8c25 Fix scene separators and chapter and scene counters (#1711) 2024-02-24 15:32:50 +01:00
Veronica Berglyd Olsen
6ef646acb2 Simplify the scene separator handler 2024-02-24 15:29:58 +01:00
Veronica Berglyd Olsen
6db7f049bc Add test coverage 2024-02-24 15:24:31 +01:00
Veronica Berglyd Olsen
404b102a54 Rename some variables in the tokenizer 2024-02-24 14:44:11 +01:00
Veronica Berglyd Olsen
ef84588145 Make sure scene and chapter info is properly reset on headers in the tokenizer 2024-02-24 14:29:13 +01:00
Veronica Berglyd Olsen
eb105951ac Clean up the tokenizer code a little 2024-02-24 14:28:12 +01:00
Veronica Berglyd Olsen
9f6a1b4bc0 Update design elements (#1709) 2024-02-21 17:47:29 +01:00
Veronica Berglyd Olsen
dfd4df46ce Drop the welcome dialog help text now that the language option has been dropped 2024-02-21 17:45:01 +01:00
Veronica Berglyd Olsen
3c8e3b3653 Rename buttons on welcome dialog 2024-02-21 17:39:28 +01:00
Veronica Berglyd Olsen
6500975cc3 Replace template root folder icon 2024-02-21 17:39:10 +01:00
Veronica Berglyd Olsen
2fb87c415e Fix various issues on the Welcome dialog (#1707) 2024-02-20 23:34:23 +01:00
Veronica Berglyd Olsen
996f48a85f Make some minor fixes to the welcome dialog source 2024-02-20 23:31:18 +01:00
Veronica Berglyd Olsen
1c91ba6fd9 Fix welcome dialog tests 2024-02-20 23:21:02 +01:00
Veronica Berglyd Olsen
10764a2041 Block overwriting when creating sample project 2024-02-20 23:20:49 +01:00
Veronica Berglyd Olsen
576c13d045 Redesign button row on welcome dialog 2024-02-20 23:10:08 +01:00
Veronica Berglyd Olsen
f0e86dad10 Drop language setting on new project form 2024-02-20 23:07:32 +01:00
Veronica Berglyd Olsen
4bf82e4df7 Hide unused controls on new project form 2024-02-20 23:03:57 +01:00
Veronica Berglyd Olsen
eab8bb2351 Block welcome dialog open button when project list is not visible 2024-02-20 12:48:14 +01:00
Veronica Berglyd Olsen
02d805122f Fix typo 2024-02-18 21:14:45 +01:00
Veronica Berglyd Olsen
595fd01863 Fix some typos on the tags and references docs 2024-02-18 18:24:48 +01:00
Veronica Berglyd Olsen
7b8b303886 Use markdown formatting on example text in docs 2024-02-16 21:58:11 +01:00
Veronica Berglyd Olsen
8b701f8651 Post release fixes for 2.3b1 (#1700) 2024-02-16 21:07:11 +01:00
Veronica Berglyd Olsen
e6071e613b Update windows package installer 2024-02-16 21:01:30 +01:00
Veronica Berglyd Olsen
75de1a1888 Release 2.3 Beta 1 (#1698) 2024-02-16 18:39:14 +01:00
Veronica Berglyd Olsen
f25c172705 Bump version to 2.3b1 and update changelog 2024-02-15 22:56:19 +01:00
Veronica Berglyd Olsen
b741b21db8 Add CSV export for Outline View (#1697) 2024-02-15 22:07:32 +01:00
Veronica Berglyd Olsen
a350d38d4e Fix CSV newlines on Windows 2024-02-15 22:04:16 +01:00
Veronica Berglyd Olsen
2e55d28a10 Improve the test file compare function 2024-02-15 21:46:35 +01:00
Veronica Berglyd Olsen
76864f2a2f Update test coverage 2024-02-15 21:34:19 +01:00
Veronica Berglyd Olsen
25b6d1c001 Add CSV export to outline 2024-02-15 21:09:41 +01:00
Veronica Berglyd Olsen
1a635f60a9 Rewrite checking for updates (#1696) 2024-02-14 23:35:32 +01:00
Veronica Berglyd Olsen
c6524d02ea Delete the old updates dialog 2024-02-14 23:22:43 +01:00
Veronica Berglyd Olsen
ed7dde2aaa Add test coverage 2024-02-14 23:19:25 +01:00
Veronica Berglyd Olsen
5917c9da08 Change version checker to use regular GitHub API 2024-02-14 21:46:10 +01:00
Veronica Berglyd Olsen
3a1f77b8f8 Make the new version lookup run in the background 2024-02-14 18:55:01 +01:00
Veronica Berglyd Olsen
bdf100e608 Add more subtle link colours to themes 2024-02-14 18:32:28 +01:00
Veronica Berglyd Olsen
f8d57539d4 Add a version info widget 2024-02-14 18:32:09 +01:00
Veronica Berglyd Olsen
453a228182 Simplify the About dialog (#1695) 2024-02-13 18:26:42 +01:00
Veronica Berglyd Olsen
ea14f06245 Update credits 2024-02-13 18:15:27 +01:00
Veronica Berglyd Olsen
5e9d96788e Update tests 2024-02-13 18:10:24 +01:00
Veronica Berglyd Olsen
b793842f6d Simplify the About dialog to only show credits 2024-02-13 18:04:41 +01:00
Veronica Berglyd Olsen
827702159d Change the new release info to a simple pop-up dialog 2024-02-13 18:04:12 +01:00
Veronica Berglyd Olsen
17aae16345 Fix deprecated typing (#1694) 2024-02-13 14:10:56 +01:00
Veronica Berglyd Olsen
16d2f1cc2a Fix new linting errors 2024-02-13 14:06:32 +01:00
Veronica Berglyd Olsen
e778d05ee3 Add PEP585 checks to linting checks 2024-02-13 14:06:22 +01:00
Veronica Berglyd Olsen
fb92c6c333 Add formatter helper for file extensions filters (#1693) 2024-02-11 21:08:08 +01:00
Veronica Berglyd Olsen
701fe29de9 Add the file filter function where needed 2024-02-11 20:59:29 +01:00
Veronica Berglyd Olsen
642b5e3681 Add a formatting function for file extension filters for file dialogs 2024-02-11 20:57:27 +01:00
Veronica Berglyd Olsen
81a9d51986 Add context menu option to rename item to first heading (#1692) 2024-02-11 20:05:01 +01:00
Veronica Berglyd Olsen
e6efd15b9a Update test 2024-02-11 19:58:51 +01:00
Veronica Berglyd Olsen
f883de6e03 Add context menu option to rename item to header text 2024-02-11 19:56:46 +01:00
Veronica Berglyd Olsen
dc661b7a70 Add import and export to project word list (#1691) 2024-02-11 19:37:35 +01:00
Veronica Berglyd Olsen
edfb4e60c6 Use the same header label style as on other dialogs 2024-02-11 19:15:18 +01:00
Veronica Berglyd Olsen
e185f87875 Add test coverage 2024-02-11 19:09:40 +01:00
Veronica Berglyd Olsen
ce3a8f56c8 Add import icon 2024-02-11 18:55:27 +01:00
Veronica Berglyd Olsen
23b7baf62c Add import and export feature to word list 2024-02-11 00:52:20 +01:00
Veronica Berglyd Olsen
56cb545fab Bump version to 2.3 Alpha 5 2024-02-10 18:42:27 +01:00
Veronica Berglyd Olsen
71c4d7aa94 Update welcome dialog (#1689) 2024-02-10 18:39:36 +01:00
Veronica Berglyd Olsen
c8b1a10f26 Merge branch 'dev' into update_welcome 2024-02-10 18:37:45 +01:00
Veronica Berglyd Olsen
e9e4788602 Add an ignore text format and allow multi-paragraph formatting (#1690) 2024-02-10 18:31:48 +01:00
Veronica Berglyd Olsen
2f20266602 Use regular block format function for single block 2024-02-10 18:26:18 +01:00
Veronica Berglyd Olsen
1c3b252b6b Add test coverage of multi-block formatting 2024-02-10 18:22:21 +01:00
Veronica Berglyd Olsen
bc2f91e54f Allow comment, ignore and clear formatting to be applied to all selected text 2024-02-10 18:20:51 +01:00
Veronica Berglyd Olsen
8a41748173 Refactor block formatting to support multi-block selections 2024-02-10 16:43:12 +01:00
Veronica Berglyd Olsen
c3e6b4e10a Update tests 2024-02-10 15:49:49 +01:00
Veronica Berglyd Olsen
9c1bdef9ad Add block format that completely ignores a line of text in the tokenizer 2024-02-10 15:40:30 +01:00
Veronica Berglyd Olsen
fe22949cb4 Add an indicator for missing project paths in welcome dialog 2024-02-10 12:20:38 +01:00
Veronica Berglyd Olsen
a9bda1deed Update welcome dialog illustration 2024-02-10 00:03:08 +01:00
Veronica Berglyd Olsen
492dd58068 Change the scaling and margins of the welcome dialog 2024-02-09 23:26:53 +01:00
Veronica Berglyd Olsen
186cead603 Remove the width setting from the switch widget 2024-02-09 23:26:26 +01:00
Veronica Berglyd Olsen
467772c489 Add file template feature (#1688) 2024-02-08 23:17:18 +01:00
Veronica Berglyd Olsen
8ff292fec8 Add test coverage of template feature 2024-02-08 23:10:20 +01:00
Veronica Berglyd Olsen
4113be7a4c Allow filtering templates by setting them to inactive 2024-02-08 22:12:05 +01:00
Veronica Berglyd Olsen
0aaf42de21 Connect the bits for the file template feature 2024-02-08 21:49:07 +01:00
Veronica Berglyd Olsen
d9a5db5884 Add file copy feature to project class 2024-02-08 21:37:53 +01:00
Veronica Berglyd Olsen
fe8a112328 Add a custom templates menu to project tree add items 2024-02-08 00:06:01 +01:00
Veronica Berglyd Olsen
bbb23b4bc9 Fix some widgets without parent, and update template file record keeping 2024-02-07 20:37:53 +01:00
Veronica Berglyd Olsen
c420d8ae38 Add template icon 2024-02-07 20:36:39 +01:00
Veronica Berglyd Olsen
e78545fcdb Don't highlight tags in inactive files 2024-02-03 17:00:27 +01:00
Veronica Berglyd Olsen
0a1c5b20ed Merge branch 'dev' into doc_templates 2024-02-03 16:38:09 +01:00
Veronica Berglyd Olsen
321e57a3b7 Add creating new project from zipped existing project (#1684) 2024-02-03 15:40:06 +01:00
Veronica Berglyd Olsen
4d016c3b75 Clean up top level window access and add coverage to shared data class 2024-02-03 15:34:33 +01:00
Veronica Berglyd Olsen
d5064a8333 Add test for new project creation path 2024-02-03 15:34:08 +01:00
Veronica Berglyd Olsen
a11657c145 Allow creating new project from zip archive 2024-02-03 14:54:01 +01:00
Veronica Berglyd Olsen
64889ac5d8 Add a templates root folder 2024-02-02 20:40:57 +01:00
Veronica Berglyd Olsen
8af720cbd6 Improvements functionality of various dialogs (#1681) 2024-02-01 23:43:57 +01:00
Veronica Berglyd Olsen
68a6390868 Add test coverage of modified widgets 2024-02-01 23:35:30 +01:00
Veronica Berglyd Olsen
a8f61f2b98 Add modified combo and spinboxes that don't scroll on mouse wheel 2024-02-01 23:35:14 +01:00
Veronica Berglyd Olsen
c866491910 Remove test lines that sometimes fail, as they cover no additional code 2024-02-01 22:22:22 +01:00
Veronica Berglyd Olsen
c1a14e7aa5 Fix test 2024-02-01 21:28:20 +01:00
Veronica Berglyd Olsen
27fa356846 Make the closing + opening of projects from welcome screen a little smoother 2024-02-01 21:22:12 +01:00
Veronica Berglyd Olsen
54f36d4e8e Improve item auto-select on welcome dialog 2024-02-01 20:49:06 +01:00
Veronica Berglyd Olsen
3b9ef47e0f Make some minor improvements to custom widget highlighting 2024-02-01 20:34:42 +01:00
Veronica Berglyd Olsen
d504c0a7ec Allow creating project from other projects (#1680) 2024-02-01 00:24:16 +01:00
Veronica Berglyd Olsen
58fa3e64ec Add test coverage 2024-02-01 00:15:39 +01:00
Veronica Berglyd Olsen
b0f1db0aea Add copy project feature to project builder class 2024-01-31 23:56:09 +01:00
Veronica Berglyd Olsen
90dda43205 Bump dev version to 2.3 Alpha 4 2024-01-31 22:03:26 +01:00
Veronica Berglyd Olsen
d20af1283c Allow inserting characters in manuscript headers (#1677) 2024-01-31 20:36:25 +01:00
Veronica Berglyd Olsen
2cd6cc299e Merge branch 'dev' into chars_in_build_alt2 2024-01-31 20:25:55 +01:00
Veronica Berglyd Olsen
a227c58d55 Add a 'Create New' menu for documents in project tree context menu (#1679) 2024-01-31 20:23:34 +01:00
Veronica Berglyd Olsen
d23fdf28ad Fix test, again ... 2024-01-31 20:18:17 +01:00
Veronica Berglyd Olsen
9803dc16fd Fix a couple of minor issues with project tree context menu 2024-01-31 20:10:53 +01:00
Veronica Berglyd Olsen
7fcc9a3928 Update test 2024-01-31 20:05:16 +01:00
Veronica Berglyd Olsen
ec7f50b566 Add a 'Create New' submenu to project tree context menu (#1519) 2024-01-31 20:05:10 +01:00
Veronica Berglyd Olsen
76ab9c3908 Change tokenizer parsed data to always use a list for format, even when empty 2024-01-30 23:25:11 +01:00
Veronica Berglyd Olsen
e6193ed858 Update tags documentation 2024-01-30 23:01:12 +01:00
Veronica Berglyd Olsen
5b4ccad19b Improve test coverage 2024-01-30 22:37:43 +01:00
Veronica Berglyd Olsen
e1531009d3 Update Lipsum test project 2024-01-30 22:10:25 +01:00
Veronica Berglyd Olsen
ca188fee08 Implement alternative tag display name format 2024-01-30 21:34:36 +01:00
Veronica Berglyd Olsen
c5edbbfaf6 Improve type checking in common module, and delete unused function 2024-01-30 21:13:38 +01:00
Veronica Berglyd Olsen
f15563cf6e Revert parts of previous implementation 2024-01-30 21:00:04 +01:00
Veronica Berglyd Olsen
e5c6dae080 Fix tests and tag index validation (uncommited changes from yesterday) 2024-01-30 10:42:07 +01:00
Veronica Berglyd Olsen
6952211607 Update docs 2024-01-29 17:47:37 +01:00
Veronica Berglyd Olsen
b396cff9a7 Add a display name filed to index, and improve handling of it 2024-01-29 17:47:30 +01:00
Veronica Berglyd Olsen
ca7ae6b666 Add a syntax colour for optional values 2024-01-29 17:45:53 +01:00
Veronica Berglyd Olsen
cbf5f1ead3 Add POV or Focus char field to manuscript header format 2024-01-29 17:32:43 +01:00
Veronica Berglyd Olsen
a48a4e5674 Add customisation option for ODT build document header (#1675) 2024-01-28 15:58:06 +01:00
Veronica Berglyd Olsen
1ec0bff159 Add page offset option to ODT build (#1505) 2024-01-28 15:52:38 +01:00
Veronica Berglyd Olsen
116409bb8d Sort imports 2024-01-28 15:29:05 +01:00
Veronica Berglyd Olsen
0e41a48ad1 Update tests 2024-01-28 15:25:12 +01:00
Veronica Berglyd Olsen
f732d13807 Add build setting for customising ODT page header (#1505) 2024-01-28 15:15:03 +01:00
Veronica Berglyd Olsen
8e4e6903b1 Clean up variables and formatting 2024-01-28 00:28:01 +01:00
Veronica Berglyd Olsen
97b791511f Bump dev version to 2.3 Alpha 3 2024-01-27 18:20:29 +01:00
Veronica Berglyd Olsen
100989030d Update build settings layout (#1674) 2024-01-27 18:16:33 +01:00
Veronica Berglyd Olsen
6c75bdecdc Update widget flow on preferences dialog 2024-01-27 18:06:41 +01:00
Veronica Berglyd Olsen
51314804bf Update remaining build settings pages and delete old config layouts 2024-01-27 18:06:08 +01:00
Veronica Berglyd Olsen
6b106599dd Merge branch 'dev' into build_settings 2024-01-27 17:07:09 +01:00
Veronica Berglyd Olsen
82d5899f2e Merge branch 'main' into dev 2024-01-27 17:04:44 +01:00
Veronica Berglyd Olsen
11c4428a8a Fix some issues after release 2.2.1 (#1672) 2024-01-27 16:42:56 +01:00
Veronica Berglyd Olsen
c0a5d257ac Fix package name issue with upload artifact version 4 2024-01-27 16:17:20 +01:00
Veronica Berglyd Olsen
6a30ce5fe3 Update artifacts download action 2024-01-27 16:08:12 +01:00
Veronica Berglyd Olsen
3ba345acc8 Update GitHub actions 2024-01-27 16:03:34 +01:00
Veronica Berglyd Olsen
b27589d3d6 Update the help info on Launchpad packages 2024-01-27 16:03:26 +01:00
Veronica Berglyd Olsen
5979503dc8 Release 2.2.1 (#1667) 2024-01-27 15:50:19 +01:00
Veronica Berglyd Olsen
b008721bdb Update changelog and change release date 2024-01-27 15:47:02 +01:00
Veronica Berglyd Olsen
bcd1e7e245 Merge branch 'main' into release_2.2.1 2024-01-27 15:44:16 +01:00
Veronica Berglyd Olsen
d455cb714d Handle non-modal dialogs better (#1671) 2024-01-27 15:43:11 +01:00
Veronica Berglyd Olsen
9311117257 Prevent multiple non-modal dialogs of the same kind from being opened 2024-01-27 15:38:44 +01:00
Veronica Berglyd Olsen
855c525670 Redesign Build Settings tool to match other config dialogs 2024-01-27 15:22:37 +01:00
Veronica Berglyd Olsen
d113b3feb3 Drop the project .bak file (#1670) 2024-01-27 14:55:11 +01:00
Veronica Berglyd Olsen
7a2d239aaa Merge branch 'dev' into project_handling 2024-01-27 14:42:43 +01:00
Veronica Berglyd Olsen
9ae36eaa24 Update Ubuntu release targets 2024-01-27 11:23:28 +01:00
Veronica Berglyd Olsen
a76268743f Update Ubuntu releases 2024-01-26 23:18:36 +01:00
Veronica Berglyd Olsen
7d9ca66fd6 Remove Ubuntu 23.04 release 2024-01-26 23:12:47 +01:00
Veronica Berglyd Olsen
e752a97ea7 Bump dev version to 2.3 Alpha 2 2024-01-26 23:11:13 +01:00
Veronica Berglyd Olsen
ed3e513544 Drop novel title field (#1669) 2024-01-26 23:07:08 +01:00
Veronica Berglyd Olsen
d6eafccde6 Update the docstring in the project XML reader 2024-01-26 23:02:35 +01:00
Veronica Berglyd Olsen
119d572050 Update file format spec document 2024-01-26 23:00:36 +01:00
Veronica Berglyd Olsen
7a1fab0c0a Update test reference files 2024-01-26 22:57:25 +01:00
Veronica Berglyd Olsen
de6fd65664 Update sample project and tests 2024-01-26 22:45:28 +01:00
Veronica Berglyd Olsen
838a2a8062 Drop the Novel Title data from the project and code 2024-01-26 22:45:12 +01:00
Veronica Berglyd Olsen
e03305d601 Update Project Settings dialog (#1668) 2024-01-26 22:40:04 +01:00
Veronica Berglyd Olsen
4c5f68242a Remove unused code in old config layout classes 2024-01-26 22:32:39 +01:00
Veronica Berglyd Olsen
40a8d728bb Update project settings tests 2024-01-26 22:32:20 +01:00
Veronica Berglyd Olsen
a7a2eaff55 Delete the old config dialog base class 2024-01-26 21:36:05 +01:00
Veronica Berglyd Olsen
3761b1729f Make the style of config dialogs consistent 2024-01-26 21:31:14 +01:00
Veronica Berglyd Olsen
0dc4719400 Fix log formatting for longer file names 2024-01-26 19:51:54 +01:00
Veronica Berglyd Olsen
c6ee6746a2 Make layout improvements to Project Settings 2024-01-26 19:51:31 +01:00
Veronica Berglyd Olsen
ee21045ee2 Update the design on the Project Settings dialog 2024-01-26 19:50:17 +01:00
Veronica Berglyd Olsen
5abb8d566a Bump version and update changelog and release notes 2024-01-25 23:45:02 +01:00
Veronica Berglyd Olsen
2772c9bf0b Update i18n (#1666) 2024-01-25 23:31:38 +01:00
Veronica Berglyd Olsen
883ef3457b Update German and Chinese translations 2024-01-25 23:27:11 +01:00
Veronica Berglyd Olsen
a10fff92e7 Fix focus switch bug in project tree (#1649) 2024-01-25 23:22:44 +01:00
Veronica Berglyd Olsen
df4993c38e Drop outdated info in docstring 2024-01-25 23:20:47 +01:00
Veronica Berglyd Olsen
d73763b1f7 Redesign Project Details dialog (#1665) 2024-01-25 23:10:54 +01:00
Veronica Berglyd Olsen
10012054be Remove some unused code 2024-01-25 23:07:10 +01:00
Veronica Berglyd Olsen
b6c9f1160f Add test coverage 2024-01-25 22:59:22 +01:00
Veronica Berglyd Olsen
483528b3b2 Modify some of the custom widgets after writing tests 2024-01-25 22:59:06 +01:00
Veronica Berglyd Olsen
4ef40f2c4d Remove old project details dialog 2024-01-25 21:30:53 +01:00
Veronica Berglyd Olsen
23713bb791 Add table of contents code to novel details panel 2024-01-25 21:25:43 +01:00
Veronica Berglyd Olsen
6b53a2665e Merge branch 'main' into fixes 2024-01-25 12:09:22 +01:00
Veronica Berglyd Olsen
6f5cbea95f Fix typo in documentation (#1664) 2024-01-25 12:07:07 +01:00
Reproog
09855730d7 Replace Misspelling 'Gustom' -> 'Custom' in File 'docs/source/int_customise.rst' 2024-01-25 12:02:00 +01:00
Veronica Berglyd Olsen
6622a7e8e0 Begin to add content to the novel details overview page 2024-01-24 19:26:48 +01:00
Veronica Berglyd Olsen
cc4d92f0f7 Improve novel selector widget and add to novel details dialog 2024-01-24 17:05:14 +01:00
Veronica Berglyd Olsen
a14e544e78 Merge branch 'dev' into project_details 2024-01-23 22:29:46 +01:00
Veronica Berglyd Olsen
269fa700b0 Change in-app version format and .deb package names (#1659) 2024-01-23 22:28:28 +01:00
Veronica Berglyd Olsen
bd45619e2f Modify Debian and Ubuntu packaging version format, and remove snapshots 2024-01-23 21:49:28 +01:00
Veronica Berglyd Olsen
97384ee4bd Update tests and clean up packaging util 2024-01-23 20:48:39 +01:00
Veronica Berglyd Olsen
415f1a1d1a Update build scripts to handle new version format 2024-01-23 19:57:27 +01:00
Veronica Berglyd Olsen
b33a3b480d Use short version format for app version 2024-01-23 19:54:19 +01:00
Veronica Berglyd Olsen
9f2c5379b7 Generalise the custom help label widget 2024-01-22 23:55:37 +01:00
Veronica Berglyd Olsen
f35722ab35 Merge branch 'dev' into project_details 2024-01-19 16:58:57 +01:00
Veronica Berglyd Olsen
8a8a218e6b Convert theme colours to Qt objects (#1656) 2024-01-19 16:58:12 +01:00
Veronica Berglyd Olsen
fe0098ebbc Update colour parsing tests 2024-01-19 16:51:27 +01:00
Veronica Berglyd Olsen
ca02bbf20d Fix slots order 2024-01-19 16:35:49 +01:00
Veronica Berglyd Olsen
e10140b1cd Fix spelling colour in highlighter and make a few improvements 2024-01-19 16:34:57 +01:00
Veronica Berglyd Olsen
b92112e933 Update tests 2024-01-19 16:13:29 +01:00
Veronica Berglyd Olsen
82c63723a4 Make all theme colours actual QColor objects 2024-01-19 16:13:12 +01:00
Veronica Berglyd Olsen
ce2ac9b1a1 Add a novel info dialog 2024-01-18 23:34:27 +01:00
Veronica Berglyd Olsen
97ea3ebc16 Drop the XML backup file 2024-01-16 16:14:10 +01:00
Veronica Berglyd Olsen
ae7c19f923 Add inactive tags filter to viewer panel (#1654) 2024-01-15 16:05:58 +01:00
Veronica Berglyd Olsen
3135bee47d Changes the option text 2024-01-15 16:02:02 +01:00
Veronica Berglyd Olsen
c15ffb0813 Update test coverage 2024-01-15 15:59:46 +01:00
Veronica Berglyd Olsen
a2a62f8b26 Allow hiding inactive tags in document viewer panel 2024-01-15 15:50:19 +01:00
Veronica Berglyd Olsen
ca4aa75880 Rename outdated function parameter in index class 2024-01-15 15:48:45 +01:00
Veronica Berglyd Olsen
427a910ec0 Remove redundant constant in preferences dialog 2024-01-13 18:59:48 +01:00
Veronica Berglyd Olsen
beb01d572f Rewrite Preferences dialog (#1652) 2024-01-13 18:44:36 +01:00
Veronica Berglyd Olsen
16461279cf Remove dependency of i18n files in preferences test 2024-01-13 18:38:34 +01:00
Veronica Berglyd Olsen
f40722d196 Merge branch 'dev' into preferences 2024-01-13 18:33:06 +01:00
Veronica Berglyd Olsen
34eb39e10d Add new test for preferences dialog 2024-01-13 18:29:21 +01:00
Veronica Berglyd Olsen
2cb772847e Update tests 2024-01-13 18:29:06 +01:00
Veronica Berglyd Olsen
7b5b82136f Update preferences dialog and quotes selection dialog 2024-01-13 18:28:41 +01:00
Veronica Berglyd Olsen
fa9d0f3503 Clean up docstrings in conftest 2024-01-11 09:23:05 +01:00
Veronica Berglyd Olsen
4afbd98d6f Add icons to preferences buttons 2024-01-11 09:17:46 +01:00
Veronica Berglyd Olsen
944e2455d5 Fix a bug with editor init on preferences update 2024-01-08 22:13:33 +01:00
Veronica Berglyd Olsen
2504965f8d Add more spacing in preferences layout 2024-01-08 22:06:04 +01:00
Veronica Berglyd Olsen
34fcbdd350 Fix a couple of bugs on the preference dialog 2024-01-08 21:48:51 +01:00
Veronica Berglyd Olsen
671d7130e1 Add search bar to preferences 2024-01-08 21:08:33 +01:00
Veronica Berglyd Olsen
1fbd50334d Complete the rewrite of the Preferences dialog 2024-01-08 20:49:40 +01:00
Veronica Berglyd Olsen
1ed3cea414 Simplify the custom switch widget 2024-01-08 19:14:36 +01:00
Veronica Berglyd Olsen
978a8145a8 Drop the setting to change word count interval 2024-01-08 19:13:58 +01:00
Veronica Berglyd Olsen
1482451e87 Create a scrollable config layout and start adding it to preferences 2024-01-08 19:12:39 +01:00
Veronica Berglyd Olsen
5c99e2186a Merge branch 'main' into dev 2024-01-05 00:27:32 +01:00
Veronica Berglyd Olsen
df690ceb36 Happy New Year 2024 2024-01-05 00:25:07 +01:00
Veronica Berglyd Olsen
10435945db Add a welcome dialog (#1647) 2023-12-31 17:01:18 +01:00
Veronica Berglyd Olsen
df95cd85e8 Add support for dark theme welcome window 2023-12-30 17:23:43 +01:00
Veronica Berglyd Olsen
05e9729c22 Add coverage of some missed lines 2023-12-30 16:52:24 +01:00
Veronica Berglyd Olsen
bc17305c4f Add tests for the welcome window 2023-12-30 16:33:03 +01:00
Veronica Berglyd Olsen
c3ea32a165 Add back in focus switch to ensure #1376 remains resolved 2023-12-30 00:01:12 +01:00
Veronica Berglyd Olsen
9660d82f9b Remove focus switch after creating new tree item (#1648) 2023-12-29 23:53:32 +01:00
Veronica Berglyd Olsen
7feb3ec2f9 Update project builder tests 2023-12-29 14:50:28 +01:00
Veronica Berglyd Olsen
25686e46a8 Fix broken tests 2023-12-29 14:12:46 +01:00
Veronica Berglyd Olsen
53228faaa3 Add a way to delete entries in the recent projects list 2023-12-29 13:41:10 +01:00
Veronica Berglyd Olsen
bbabc41ac2 Remove old open project dialog 2023-12-29 12:16:52 +01:00
Veronica Berglyd Olsen
18b3edbf87 Complete project list and open and browse buttons on welcome dialog 2023-12-28 23:11:11 +01:00
Veronica Berglyd Olsen
63fd7bf06a Add custom painting of project items in the project list 2023-12-22 20:26:34 +01:00
Veronica Berglyd Olsen
ba538920aa Fix sample project creation 2023-12-20 22:20:04 +01:00
Veronica Berglyd Olsen
8b6691c056 Remove the old project wizard 2023-12-20 22:00:52 +01:00
Veronica Berglyd Olsen
41b7495a06 Complete the create new project code path 2023-12-20 21:52:57 +01:00
Veronica Berglyd Olsen
a71d0d8cfe Add project fill options to new project page on welcome dialog 2023-12-20 20:21:51 +01:00
Veronica Berglyd Olsen
956abf3e8e Add project fill box 2023-12-19 20:26:40 +01:00
Veronica Berglyd Olsen
054d4f965e Added most of new project form 2023-12-19 19:31:30 +01:00
Veronica Berglyd Olsen
f26b405f42 Add new project page to welcome dialog 2023-12-19 17:30:11 +01:00
Veronica Berglyd Olsen
8a61d57ce4 Update title on welcome dialog 2023-12-19 17:29:33 +01:00
Veronica Berglyd Olsen
818fa2bf11 Merge branch 'dev' into welcome_window 2023-12-17 18:08:35 +01:00
Veronica Berglyd Olsen
856c14ce76 Bump dev branch to 2.3 alpha 1 2023-12-17 17:49:17 +01:00
Veronica Berglyd Olsen
f9089fd506 Merge branch 'main' into dev 2023-12-17 17:47:00 +01:00
Veronica Berglyd Olsen
b6282772ae Release 2.2 (#1641) 2023-12-17 17:00:05 +01:00
Veronica Berglyd Olsen
bfecebc047 Update release notes 2023-12-17 16:56:43 +01:00
Veronica Berglyd Olsen
904f954d4d Add framework for welcome dialog 2023-12-17 15:14:56 +01:00
Veronica Berglyd Olsen
186737a170 Update file history info 2023-12-13 22:07:53 +01:00
Veronica Berglyd Olsen
f32383ea99 Update changelog 2023-12-13 21:25:26 +01:00
Veronica Berglyd Olsen
4097949c44 Update translations 2023-12-13 21:24:50 +01:00
Veronica Berglyd Olsen
10feafeab4 Bump version for release 2.2 2023-12-10 22:21:25 +01:00
Veronica Berglyd Olsen
399a867836 Update docs with 2.2 features (#1640) 2023-12-10 22:18:03 +01:00
Veronica Berglyd Olsen
6f3702f2df Update docs organising section 2023-12-10 22:12:59 +01:00
Veronica Berglyd Olsen
7dc9e65f68 Update docs using novelWriter section 2023-12-10 21:53:04 +01:00
Veronica Berglyd Olsen
1740bbedbd Update docs introduction section 2023-12-10 18:39:29 +01:00
Veronica Berglyd Olsen
356ecde88a Merge branch 'main' into dev 2023-12-04 10:46:58 +01:00
Veronica Berglyd Olsen
8585334a51 Update buttons in viewer and editor (#1638) 2023-12-04 09:12:30 +01:00
Veronica Berglyd Olsen
553b76cafc Update en_US and nb_NO translations 2023-12-03 18:58:01 +01:00
Veronica Berglyd Olsen
c04e1035a7 Merge branch 'main' into gui_fixes 2023-12-03 18:48:26 +01:00
Veronica Berglyd Olsen
dfbb61a37e Add viewer panel importance info (#1639) 2023-12-03 18:47:09 +01:00
Veronica Berglyd Olsen
cb485c5c86 Revert deleting the view button in viewer panel, but keep the double click change 2023-12-03 18:37:47 +01:00
Veronica Berglyd Olsen
62a94850a6 Add tooltips to all entries in the viewer panel and update translation file 2023-12-03 18:24:55 +01:00
Veronica Berglyd Olsen
99c00f8b93 Update tests 2023-12-03 18:20:23 +01:00
Veronica Berglyd Olsen
cbb000a18f Drop the view column in the viewer panel 2023-12-03 18:18:00 +01:00
Veronica Berglyd Olsen
847d8ab726 Add importance column to document viewer panel (#1620) 2023-12-03 18:15:16 +01:00
Veronica Berglyd Olsen
9f1e2d322e Re-order formats menu to be consistent with toolbar 2023-12-03 17:55:12 +01:00
Veronica Berglyd Olsen
b7c657141f Update translations 2023-12-03 17:43:28 +01:00
Veronica Berglyd Olsen
023f6bed01 Update base translation file 2023-12-03 17:34:08 +01:00
Veronica Berglyd Olsen
fff6ba98bc Rename emph and strong to italic and bold for consistency and add tooltips to editor toolbar 2023-12-03 17:33:15 +01:00
Veronica Berglyd Olsen
776eedc5f2 Drop the markdown/shortcode toggle feature from editor toolbar and update icons (#1636, #1637) 2023-12-03 16:56:36 +01:00
Veronica Berglyd Olsen
f2eaaa09b6 Turn viewer footer button and label into text buttons (#1628) 2023-12-03 16:10:09 +01:00
Veronica Berglyd Olsen
ded91bc3b0 Refactor Storage class (#1635) 2023-12-01 18:22:26 +01:00
Veronica Berglyd Olsen
6d769cb512 Make some minor improvements 2023-12-01 18:18:26 +01:00
Veronica Berglyd Olsen
ecaaffb029 Update tests for project class 2023-12-01 18:02:29 +01:00
Veronica Berglyd Olsen
8952bbab1d Clean up project tests 2023-12-01 17:45:25 +01:00
Veronica Berglyd Olsen
3fe2ee3058 Update tests for storage class 2023-12-01 17:28:56 +01:00
Veronica Berglyd Olsen
f2b35d798b Make some minor corrections 2023-11-30 22:53:52 +01:00
Veronica Berglyd Olsen
d11a8ee789 Remove unneeded storage enum 2023-11-30 22:39:46 +01:00
Veronica Berglyd Olsen
5278eb7895 Update tests 2023-11-30 22:30:12 +01:00
Veronica Berglyd Olsen
4f42407c23 Rewrite project open and creation in storage class 2023-11-30 22:29:54 +01:00
Veronica Berglyd Olsen
60b0a4c901 Update extensions (#1634) 2023-11-29 22:35:02 +01:00
Veronica Berglyd Olsen
a6d346fcb6 Clean up and fix minor issues with GUI extensions 2023-11-29 22:21:56 +01:00
Veronica Berglyd Olsen
78a75d5719 Fix some minor issues (#1632) 2023-11-29 21:59:36 +01:00
Veronica Berglyd Olsen
f59317c2b5 Remove alternative apostrophe from auto select logic because it is already a letter 2023-11-29 21:55:07 +01:00
Veronica Berglyd Olsen
b203bcdcff Include apostrophes when auto selecting in editor (#1624) 2023-11-29 21:48:09 +01:00
Veronica Berglyd Olsen
a31f42b04c Clean up novel view and improve coverage 2023-11-29 21:24:07 +01:00
Veronica Berglyd Olsen
ce666d9d7a Scroll novel view when looping through documents (#1555) 2023-11-29 20:55:05 +01:00
Veronica Berglyd Olsen
ef93b41240 Clean up alert boxes and update event filters (#1631) 2023-11-29 16:12:08 +01:00
Veronica Berglyd Olsen
1118f01c91 Combine all event filters in one module, and apply the status tip filter to the sidebar as well 2023-11-29 16:05:58 +01:00
Veronica Berglyd Olsen
b526315084 Clean up some redundant code and fix annotations 2023-11-29 16:05:14 +01:00
Veronica Berglyd Olsen
1d1dae0c7e Remove caching of the alert object in the shared instance 2023-11-29 16:03:48 +01:00
Veronica Berglyd Olsen
1edfcfcd91 Add debug comment 2023-11-29 08:10:16 +01:00
Veronica Berglyd Olsen
82e9fb0c44 Fix minor optimisation issue 2023-11-29 08:06:56 +01:00
Veronica Berglyd Olsen
1b8d424b27 Filter menu status tips (#1630) 2023-11-29 00:05:06 +01:00
Veronica Berglyd Olsen
4ab2b04e6b Add an event filter to remove status tip updates 2023-11-28 23:57:41 +01:00
Veronica Berglyd Olsen
d291995c0e Add deleteLater to temporary widgets (#1629) 2023-11-28 23:27:36 +01:00
Veronica Berglyd Olsen
54510951de Rename lipsum button 2023-11-28 23:21:35 +01:00
Veronica Berglyd Olsen
52d1d87985 Add the new flag to the command line help 2023-11-28 23:20:49 +01:00
Veronica Berglyd Olsen
62847e55f0 Rewrite how lipsum text is inserted 2023-11-28 23:14:23 +01:00
Veronica Berglyd Olsen
bf6cefa840 Update dialog handling of all dialogs 2023-11-28 22:12:30 +01:00
Veronica Berglyd Olsen
4e1fa01562 Add widget diff info to help debug memory issues 2023-11-28 17:29:34 +01:00
Veronica Berglyd Olsen
83c9fb96e9 Add memory usage debug info for status bar 2023-11-28 16:44:01 +01:00
Veronica Berglyd Olsen
ff7f27ff97 Add closeEvents to dialogs and set the deleteLater command 2023-11-28 16:29:21 +01:00
Veronica Berglyd Olsen
50a9b5b5e2 Fix some annotations and add deleteLater to non-modal dialogs 2023-11-27 21:43:13 +01:00
Veronica Berglyd Olsen
4fa20273f7 Clean up dialogs 2023-11-27 17:10:29 +01:00
Veronica Berglyd Olsen
93b36406f1 Make sure context menus are deleted after use 2023-11-27 16:30:21 +01:00
Veronica Berglyd Olsen
a0e6f9cf82 Fix various bugs and minor issues (#1626) 2023-11-27 16:17:01 +01:00
Veronica Berglyd Olsen
1f9b6d7624 Fix icons not updating on theme switch in viewer panel 2023-11-27 16:08:34 +01:00
Veronica Berglyd Olsen
ccc444f355 Fix section sizes for viewer panel (#1627) 2023-11-27 16:08:00 +01:00
Veronica Berglyd Olsen
ba0198407f Change panel label back to "References" 2023-11-27 07:42:25 +01:00
Veronica Berglyd Olsen
918b077252 Drop the space in front of Synopsis and Short comments inserts 2023-11-26 22:12:23 +01:00
Veronica Berglyd Olsen
b348ba6aff Update Main GUI launch test 2023-11-26 22:02:01 +01:00
Veronica Berglyd Olsen
e521a30612 Remove warning for alpha releases 2023-11-26 21:43:32 +01:00
Veronica Berglyd Olsen
2e2ab5ad6f Update project load dialog 2023-11-26 21:40:51 +01:00
Veronica Berglyd Olsen
47781f981f Fix wrong keyboard shortcut for Short comment insert 2023-11-26 21:40:05 +01:00
Veronica Berglyd Olsen
0676056968 Update translations (#1625) 2023-11-26 20:58:25 +01:00
Veronica Berglyd Olsen
65562ae790 Update base translation, US English, Norwegian, and Japanese 2023-11-26 16:20:14 +01:00
Veronica Berglyd Olsen
623f74019f Fix wrong PR mentioned in changelog 2023-11-26 15:09:43 +01:00
Veronica Berglyd Olsen
55e0dc3030 Release 2.2 RC1 (#1615) 2023-11-26 14:31:53 +01:00
Veronica Berglyd Olsen
9af7ff447b Update changelog 2023-11-26 14:29:53 +01:00
Veronica Berglyd Olsen
c71a5c0997 Merge branch 'dev' into release_2.2rc1 2023-11-26 14:03:05 +01:00
Veronica Berglyd Olsen
efea1a3140 Merge branch 'main' into dev 2023-11-26 14:02:11 +01:00
Veronica Berglyd Olsen
1fcae908ec Add "short description" feature, replace "summary" (#1622) 2023-11-26 14:01:49 +01:00
Veronica Berglyd Olsen
b9b4969b85 Rename once again, and use short instead for short descriptions of notes 2023-11-26 13:58:00 +01:00
Veronica Berglyd Olsen
f919149c58 Rename "brief" to "summary" (#1621) 2023-11-26 00:02:43 +01:00
Veronica Berglyd Olsen
6fd4417350 Fix variable name and test 2023-11-25 23:57:12 +01:00
Veronica Berglyd Olsen
bedd71b105 Add a summary entry to the insert menu (#1619) 2023-11-25 23:51:30 +01:00
Veronica Berglyd Olsen
53aa970427 Rename "brief" to "summary" 2023-11-25 23:42:05 +01:00
Veronica Berglyd Olsen
9fc815abe1 Add project note briefs (#1618) 2023-11-25 19:01:15 +01:00
Veronica Berglyd Olsen
b17b5d32c2 Allow double-clicking in viewer panel 2023-11-25 18:53:11 +01:00
Veronica Berglyd Olsen
05e63cb01e Make the columns in the viewer panel resizeable 2023-11-25 18:45:06 +01:00
Veronica Berglyd Olsen
519e5857d1 Add a column to viewer panel to show the brief 2023-11-25 18:23:09 +01:00
Veronica Berglyd Olsen
6a6b05c338 Update tokenizer and converters 2023-11-25 18:12:45 +01:00
Veronica Berglyd Olsen
8ed85363e2 Add test coverage and update the highlighter 2023-11-25 17:50:59 +01:00
Veronica Berglyd Olsen
887b4379b2 Add comment style processing to the index class 2023-11-25 17:50:25 +01:00
Veronica Berglyd Olsen
3a030c9acb Fix Ctrl+Del regression (#1616) 2023-11-25 16:31:37 +01:00
Veronica Berglyd Olsen
e216f80d64 Revert previous change of keyboard shortcut for item delete in tree made in #1590 2023-11-25 16:27:40 +01:00
Veronica Berglyd Olsen
74c5a66a4c Fix typos in changelog 2023-11-25 16:24:27 +01:00
Veronica Berglyd Olsen
8738bc562e Update alpha version warning, and drop the translation 2023-11-23 23:53:22 +01:00
Veronica Berglyd Olsen
c6f06866bd Bump version for 2.2 RC1 2023-11-23 20:44:47 +01:00
Veronica Berglyd Olsen
b7eede22da Add a context menu entry to set item name from heading (#1614) 2023-11-23 20:39:28 +01:00
Veronica Berglyd Olsen
e02d2b9298 Add annotations import to all test source files 2023-11-23 20:35:17 +01:00
Veronica Berglyd Olsen
de11ea389a Add test coverage of editor context menu 2023-11-23 20:25:18 +01:00
Veronica Berglyd Olsen
3f842c2fbe Add a context menu option to rename a document from any title within it 2023-11-23 19:40:17 +01:00
Veronica Berglyd Olsen
d35dfda92f Change set selection from doc header to use a signal/slot set 2023-11-23 19:04:35 +01:00
Veronica Berglyd Olsen
84eff433fb Clean up Qt enums in doc viewer 2023-11-23 18:52:42 +01:00
Veronica Berglyd Olsen
8c3c85f259 Clean up Qt enums in doc editor 2023-11-23 18:36:08 +01:00
Veronica Berglyd Olsen
39e1c54c33 Add a button to open manuscript build folder (#1613) 2023-11-23 16:55:22 +01:00
Veronica Berglyd Olsen
2998f2c363 Update tests 2023-11-23 16:45:14 +01:00
Veronica Berglyd Olsen
4bd830f0d6 Add an "Open Folder" button to build dialog (#1554) 2023-11-23 16:45:08 +01:00
Veronica Berglyd Olsen
30b4e5511a Add a common function to open file paths externally 2023-11-23 16:43:56 +01:00
Veronica Berglyd Olsen
4f9aab3c81 Add multi selection to project tree (#1612) 2023-11-22 19:00:25 +01:00
Veronica Berglyd Olsen
445414d126 Improve test coverage of project tree 2023-11-22 18:48:10 +01:00
Veronica Berglyd Olsen
62ea54e1ed Add test coverage of tree context menu class 2023-11-22 18:08:34 +01:00
Veronica Berglyd Olsen
ea0358b2ed Move project tree context menu to a separate class 2023-11-22 18:08:07 +01:00
Veronica Berglyd Olsen
d7730fb7c2 Clean up a few bits 2023-11-22 00:12:14 +01:00
Veronica Berglyd Olsen
40f6a108ed Add a multi-select context menu and handlers 2023-11-22 00:03:51 +01:00
Veronica Berglyd Olsen
33a30f3875 Remove tree undo and fix drop on root issue 2023-11-21 23:13:12 +01:00
Veronica Berglyd Olsen
f75ed33cec Add a working implementation of multi-item move 2023-11-21 22:26:10 +01:00
Veronica Berglyd Olsen
1a2bd7d640 Update Qt enums and set selection to multi select 2023-11-21 20:26:19 +01:00
Veronica Berglyd Olsen
afc04514a0 Add a tool to download spell check dictionaries (#1611) 2023-11-20 18:22:09 +01:00
Veronica Berglyd Olsen
d741a75de8 Clean up and add test coverage 2023-11-20 18:14:00 +01:00
Veronica Berglyd Olsen
71d17da483 Complete new Add Dictionaries tool 2023-11-20 17:26:12 +01:00
Veronica Berglyd Olsen
e00e64dc46 Copy changes from download_dicts branch 2023-11-20 17:24:49 +01:00
Veronica Berglyd Olsen
c585c87633 Remove two annotations in tests that block using older pytest versions 2023-11-18 21:12:09 +01:00
Veronica Berglyd Olsen
40c07973ce Disable hidden tab feature for older Qt libs 2023-11-18 21:04:35 +01:00
Veronica Berglyd Olsen
2fca22359b Improve cursor visibility features (#1608) 2023-11-18 15:59:48 +01:00
Veronica Berglyd Olsen
83187c517f Ensure cursor is visible after showing or closing the document viewer (#1302) 2023-11-18 15:56:03 +01:00
Veronica Berglyd Olsen
208b9334e1 Ensure cursor is visible after switching focus mode (#1478) 2023-11-18 15:43:51 +01:00
Veronica Berglyd Olsen
17fc370609 Fix some typos 2023-11-18 14:14:10 +01:00
Veronica Berglyd Olsen
ab35d1a0bf Add a new document viewer panel for tags and references (#1606) 2023-11-17 23:30:11 +01:00
Veronica Berglyd Olsen
69ccb1560c Update index test 2023-11-17 23:20:16 +01:00
Veronica Berglyd Olsen
d4560b3be8 Add test coverage of document viewer panel 2023-11-17 23:01:59 +01:00
Veronica Berglyd Olsen
fca941b726 Merge branch 'dev' into new_ref_panel 2023-11-17 21:39:30 +01:00
Veronica Berglyd Olsen
eda9a076d6 Clean up config and improve project tree test coverage (#1607) 2023-11-17 21:38:42 +01:00
Veronica Berglyd Olsen
1279b0e5b7 Fix bug from project tree test 2023-11-17 21:33:22 +01:00
Veronica Berglyd Olsen
16a56d6f60 Improve test coverage of project tree 2023-11-17 21:28:44 +01:00
Veronica Berglyd Olsen
c501e12c9d Remove deprecated config fields and update tests 2023-11-17 16:35:05 +01:00
Veronica Berglyd Olsen
dd05f6532a Update document viewer tests 2023-11-17 16:22:59 +01:00
Veronica Berglyd Olsen
1098354fca Fix broken test 2023-11-17 07:55:43 +01:00
Veronica Berglyd Olsen
f81c9aa319 Clean up document viewer class 2023-11-17 00:06:29 +01:00
Veronica Berglyd Olsen
9d662a0d40 Rename index signal function 2023-11-16 22:31:41 +01:00
Veronica Berglyd Olsen
123d9df170 Rewrite and improve the index event signal feature 2023-11-16 19:12:01 +01:00
Veronica Berglyd Olsen
844240b5b8 Fix broken tests 2023-11-16 00:23:59 +01:00
Veronica Berglyd Olsen
3d17d8e08c Clean up the viewer panel code a bit 2023-11-15 22:09:18 +01:00
Veronica Berglyd Olsen
f51223e7c3 Rename the tab count function just to be safe 2023-11-15 21:58:41 +01:00
Veronica Berglyd Olsen
b94e012f8f Fix bug with clearing class tag lists 2023-11-15 21:46:32 +01:00
Veronica Berglyd Olsen
2fc8e43e71 Connect the edit and view buttons 2023-11-15 21:38:45 +01:00
Veronica Berglyd Olsen
565350fcfb Clean up tree item updates 2023-11-15 21:14:40 +01:00
Veronica Berglyd Olsen
e82d5277c0 Add signal for re-indexed document 2023-11-15 21:03:12 +01:00
Veronica Berglyd Olsen
6b9d92e75a Add handlers for document label change 2023-11-15 20:13:23 +01:00
Veronica Berglyd Olsen
8508248f12 Add signal for processing tag changes 2023-11-15 20:12:17 +01:00
Veronica Berglyd Olsen
2cb6020cac Added tags changed signal 2023-11-15 18:11:37 +01:00
Veronica Berglyd Olsen
3f8220f350 Added tag data to viewer panels 2023-11-15 18:11:15 +01:00
Veronica Berglyd Olsen
f5901a4c8c Added new icons for the viewer panel 2023-11-15 18:10:29 +01:00
Veronica Berglyd Olsen
f4be38dd65 Populate the back reference panel 2023-11-14 23:56:51 +01:00
Veronica Berglyd Olsen
4d7ef63e83 Connect the new viewer panel and add icon for it 2023-11-14 22:41:39 +01:00
Veronica Berglyd Olsen
1d89e4935f Merge branch 'dev' into new_ref_panel 2023-11-14 11:06:04 +01:00
Veronica Berglyd Olsen
51337ae4e5 Increase button padding in sidebar by 2px 2023-11-14 10:48:47 +01:00
Veronica Berglyd Olsen
66dfe25e17 Fix bug in sidebar tooltip 2023-11-13 22:46:30 +01:00
Veronica Berglyd Olsen
c5322341ec Bring back the "Scroll past end" setting (#1605) 2023-11-13 22:13:39 +01:00
Veronica Berglyd Olsen
a5755c47e5 Add types to the Preferences dialog, and update tests 2023-11-13 22:09:38 +01:00
Veronica Berglyd Olsen
68af4aec86 Add back the scroll past end setting 2023-11-13 22:09:07 +01:00
Veronica Berglyd Olsen
0b35227756 Fix some usability issues in the UI (#1601) 2023-11-12 21:45:18 +01:00
Veronica Berglyd Olsen
a5b2e47098 Don't block auto-replace on keyword lines, and only show completer on single keypresses 2023-11-12 21:27:24 +01:00
Veronica Berglyd Olsen
a3f9d88271 Remove 2 px margin on sidebar 2023-11-12 20:59:00 +01:00
Veronica Berglyd Olsen
28b3046e51 Update editor code history 2023-11-12 20:55:31 +01:00
Veronica Berglyd Olsen
e7ea9d45e5 Improve how formatting is applied in the editor (#1600) 2023-11-12 20:45:37 +01:00
Veronica Berglyd Olsen
45b278f999 Fix an outdated comment 2023-11-12 20:38:38 +01:00
Veronica Berglyd Olsen
37e0319598 Clean up code a bit 2023-11-12 20:38:03 +01:00
Veronica Berglyd Olsen
7cf7eb4a48 Fix test coverage 2023-11-12 20:21:35 +01:00
Veronica Berglyd Olsen
597b788254 Implement a new word auto select feature that is more careful with punctuation 2023-11-12 20:11:31 +01:00
Veronica Berglyd Olsen
e4206bdcc0 Make autoselect and formatting selection a bit smarter 2023-11-12 19:44:24 +01:00
Veronica Berglyd Olsen
5f80a6b400 Update PyPi info 2023-11-12 15:33:05 +01:00
Veronica Berglyd Olsen
09022ba41a Add post-release fixes 2023-11-12 15:31:53 +01:00
Veronica Berglyd Olsen
6c9c1ec088 Release 2.2 Beta 1 (#1595) 2023-11-12 14:47:09 +01:00
Veronica Berglyd Olsen
88ba3b3dfe Bump version to 2.2 Beta 1, and update changelog 2023-11-11 22:48:51 +01:00
Veronica Berglyd Olsen
9e4ac8f9d4 Merge branch 'main' into dev 2023-11-11 22:05:41 +01:00
Veronica Berglyd Olsen
656a5ada61 Clean up main readme a bit 2023-11-11 22:01:25 +01:00
Veronica Berglyd Olsen
96ac87d5ed Rename linting job to match the rest 2023-11-11 21:57:33 +01:00
Veronica Berglyd Olsen
5597c0e172 Replace the icon on the readme page 2023-11-11 21:49:38 +01:00
Veronica Berglyd Olsen
25c4cf695f Add a new logo (#1593) 2023-11-11 17:41:06 +01:00
Veronica Berglyd Olsen
8db71c432d Fix MacOS build and add font credits 2023-11-11 17:08:22 +01:00
Veronica Berglyd Olsen
e1b92d14c3 Change MacOS build to generate icons on the fly 2023-11-11 16:44:23 +01:00
Veronica Berglyd Olsen
1c4fd4ea5a Add MacOS icons 2023-11-11 16:41:06 +01:00
Veronica Berglyd Olsen
b04386b183 Update Windows icons 2023-11-11 16:38:13 +01:00
Veronica Berglyd Olsen
4b2c01dbf1 Update novelWriter text images 2023-11-11 16:37:58 +01:00
Veronica Berglyd Olsen
134cf45199 Add new PNG icons 2023-11-11 15:11:40 +01:00
Veronica Berglyd Olsen
a0ca78b4fd Add new SVG icon designs 2023-11-11 15:10:50 +01:00
Veronica Berglyd Olsen
062b336105 Make it possible to re-order build settings (#1591) 2023-11-10 22:23:07 +01:00
Veronica Berglyd Olsen
2c5947eeaa Make build settings re-orderable (#1542) 2023-11-10 22:03:38 +01:00
Veronica Berglyd Olsen
f9fd3512b7 Improve widget focus keyboard shortcuts (#1590) 2023-11-10 19:14:10 +01:00
Veronica Berglyd Olsen
98c62f0912 Make Ctrl+Del the default for deleting item in project tree 2023-11-10 19:03:30 +01:00
Veronica Berglyd Olsen
a3f63530d7 Update documentation 2023-11-10 18:57:48 +01:00
Veronica Berglyd Olsen
788f46bd7f Improve focus switching and combine with main menu entries 2023-11-10 18:25:32 +01:00
Veronica Berglyd Olsen
2097eaeeaa Add keyboard shortcuts to sidebar tooltips 2023-11-10 17:53:54 +01:00
Veronica Berglyd Olsen
693f3fb656 Add a keyboard shortcut to toggle tree view 2023-11-10 17:53:36 +01:00
Veronica Berglyd Olsen
25697b0957 Add language setting to Project Settings (#1589) 2023-11-09 19:09:36 +01:00
Veronica Berglyd Olsen
76d67dd0aa Clean up build settings and update tests 2023-11-09 19:04:36 +01:00
Veronica Berglyd Olsen
e3997b53aa Add language setting to wizard 2023-11-09 18:55:02 +01:00
Veronica Berglyd Olsen
c7bfb1b21e Change to always use project language for generating documents 2023-11-09 18:44:08 +01:00
Veronica Berglyd Olsen
2cde1b845e Clean up project settings class 2023-11-09 18:26:33 +01:00
Veronica Berglyd Olsen
27f3b8e0f2 Add project translations for Norwegian nynorsk 2023-11-09 18:02:53 +01:00
Veronica Berglyd Olsen
3f0024a6a3 Use GUI language when translating meta data for the viewer 2023-11-09 18:02:33 +01:00
Veronica Berglyd Olsen
fa32ef248b Add a basic doc viewer panel class 2023-11-09 17:49:29 +01:00
Veronica Berglyd Olsen
234b189e3c Add project translations for meta data keywords (#1586) 2023-11-09 17:35:28 +01:00
Veronica Berglyd Olsen
21dd254831 Include already translated project translation files 2023-11-09 17:24:39 +01:00
Veronica Berglyd Olsen
2ed3666b9f Add keyword translations to the project language files for manuscript builds 2023-11-09 17:17:46 +01:00
Veronica Berglyd Olsen
ebe1998b0b Fix initial visibility of editor toolbar 2023-11-08 23:26:00 +01:00
Veronica Berglyd Olsen
3f0de93438 Add an optional editor toolbar (#1584) 2023-11-08 23:18:06 +01:00
Veronica Berglyd Olsen
6d411e17a6 Improve test coverage 2023-11-08 23:12:39 +01:00
Veronica Berglyd Olsen
003615c3be Make some minor modifications to the doc toolbar, and add typings in themes 2023-11-08 21:27:14 +01:00
Veronica Berglyd Olsen
9a1947c0f5 Add colour to sub/superscript icons 2023-11-08 21:26:19 +01:00
Veronica Berglyd Olsen
5fbcca35a5 Make sure toolbar is hidden when document is closed 2023-11-08 18:16:55 +01:00
Veronica Berglyd Olsen
c88fbf629d Update tests 2023-11-08 18:06:19 +01:00
Veronica Berglyd Olsen
711766cf52 Change main menu to emit signals 2023-11-08 18:00:43 +01:00
Veronica Berglyd Olsen
1a6072be2c Add editor toolbar icons 2023-11-08 16:54:42 +01:00
Veronica Berglyd Olsen
9282b39f2a Change the menu icon to three dots 2023-11-08 16:54:15 +01:00
Veronica Berglyd Olsen
b3ae1774a8 Merge branch 'dev' into format_actions 2023-11-07 22:29:21 +01:00
Veronica Berglyd Olsen
f3b6be3100 Add shortcodes to the main menu (#1583) 2023-11-07 22:28:25 +01:00
Veronica Berglyd Olsen
394cdd5dad Add a basic document editor toolbar 2023-11-07 17:48:34 +01:00
Veronica Berglyd Olsen
e236fb30dc Clean up document header signals 2023-11-07 17:47:59 +01:00
Veronica Berglyd Olsen
a07177c153 Clean up main menu code 2023-11-07 13:54:31 +01:00
Veronica Berglyd Olsen
d2a0ff88a6 Add shortcodes to main menu 2023-11-07 13:54:02 +01:00
Veronica Berglyd Olsen
08e67b0190 Add context menu option to create note from tag (#1582) 2023-11-06 22:48:06 +01:00
Veronica Berglyd Olsen
eb5a98f482 Sort imports 2023-11-06 22:45:37 +01:00
Veronica Berglyd Olsen
ccd3122633 Make some improvements and update tests 2023-11-06 22:42:02 +01:00
Veronica Berglyd Olsen
f17e1f38de Add option to create note from tag, and improve auto-completer a bit 2023-11-06 22:25:28 +01:00
Veronica Berglyd Olsen
1ab35b5b63 Add an auto-completer for editor references (#1581) 2023-11-06 19:35:46 +01:00
Veronica Berglyd Olsen
fd1eaa8c47 Add test coverage of completer 2023-11-06 19:15:58 +01:00
Veronica Berglyd Olsen
ce53971836 Improve code flow in completer class 2023-11-06 19:15:43 +01:00
Veronica Berglyd Olsen
d827b5204b Add meta data autocomplete menu 2023-11-06 18:22:39 +01:00
Veronica Berglyd Olsen
09e0d28115 Add tags get function to index class 2023-11-06 18:19:03 +01:00
Veronica Berglyd Olsen
2a40913105 Add sub/superscript and partial word emphasis (#1540) 2023-11-06 11:54:49 +01:00
Veronica Berglyd Olsen
b03603cc9b Update tests and word counter 2023-11-06 11:49:26 +01:00
Veronica Berglyd Olsen
5e41dd9a92 Merge branch 'dev' into sub_super 2023-11-05 21:28:32 +01:00
Veronica Berglyd Olsen
c1272974ed Fix index bug due to lower/upper case mixing (#1578) 2023-11-05 21:12:04 +01:00
Veronica Berglyd Olsen
72e740ccdf Merge branch 'dev' into fix_index 2023-11-05 21:08:56 +01:00
Veronica Berglyd Olsen
a5a2b2c68e Merge branch 'dev' into fix_index 2023-11-05 21:06:39 +01:00
Veronica Berglyd Olsen
654ff3e81d Fix bug from merged branch 2023-11-05 21:00:23 +01:00
Veronica Berglyd Olsen
a2a1e2e6d0 Merge branch 'main' into dev 2023-11-05 18:54:52 +01:00
Veronica Berglyd Olsen
786c1f7d54 Make AppIamge build use Python 3.11 2023-11-05 18:37:09 +01:00
Veronica Berglyd Olsen
38c279b98f Release 2.1.1 (#1574) 2023-11-05 18:26:12 +01:00
Veronica Berglyd Olsen
b126b8cf0a Bumb version and update release notes for v2.1.1 2023-11-04 18:19:57 +01:00
Veronica Berglyd Olsen
a3b60dad0a Fix editor refresh issues (#1573) 2023-11-04 17:54:46 +01:00
Veronica Berglyd Olsen
ee5f340fe2 Refresh spell checking when word list changes (#1559) 2023-11-04 17:46:25 +01:00
Veronica Berglyd Olsen
dd61897d11 Force a rehighlight on theme switch for small documents (#1535) 2023-11-04 17:43:02 +01:00
Veronica Berglyd Olsen
a50e79b155 Set menu parents (#1572) 2023-11-04 17:31:26 +01:00
Veronica Berglyd Olsen
8abcada86e Make sure all QMenu instances have a parent widget set (#1536) 2023-11-04 17:24:43 +01:00
Veronica Berglyd Olsen
ef29571bd9 Add autoscroll feature (#1571) 2023-11-04 17:04:12 +01:00
Veronica Berglyd Olsen
6f8109609c Use the correct margin settings 2023-11-04 16:50:41 +01:00
Veronica Berglyd Olsen
05ddca043a Add comment to explain why autoscroll was added 2023-11-04 16:48:22 +01:00
Veronica Berglyd Olsen
da3747c5f5 Implement autoscroll in project tree, and disable library autoscroll feature (#1561) 2023-11-04 16:45:16 +01:00
Veronica Berglyd Olsen
2322923c4a Add check for illegal drag and drops (#1570) 2023-11-04 16:16:38 +01:00
Veronica Berglyd Olsen
c5baa8d359 Remove commented out code 2023-11-04 10:14:49 +01:00
Veronica Berglyd Olsen
a7e2b51225 Add blockers for illegal drop events on invisible root and for root items (#1569) 2023-11-04 10:05:37 +01:00
Veronica Berglyd Olsen
0413684150 Fix viewer navigation (#1568) 2023-11-03 10:32:36 +01:00
Veronica Berglyd Olsen
b047695501 Update tests 2023-11-03 10:28:54 +01:00
Veronica Berglyd Olsen
52197149a7 Merge branch 'main' into html_anchors 2023-11-03 10:15:12 +01:00
Veronica Berglyd Olsen
4582ef8b83 Fix anchor tags in html output (#1566) 2023-11-03 10:13:35 +01:00
Veronica Berglyd Olsen
0077326274 Fix errors in documentation (#1567) 2023-11-03 08:26:05 +01:00
nisemono-neko
36fd64e1a3 Fix typos 2023-11-03 16:29:30 +10:00
nisemono-neko
552249d145 Fix typos 2023-11-03 16:18:43 +10:00
nisemono-neko
7080703481 Fix typos 2023-11-03 16:16:18 +10:00
nisemono-neko
4c7fbdb77a Fix typos 2023-11-03 16:12:53 +10:00
nisemono-neko
0c249d2010 Fix typos 2023-11-03 16:07:14 +10:00
nisemono-neko
3896d0fbf4 Fix typos 2023-11-03 13:40:24 +10:00
nisemono-neko
b3018bb392 Fix typos 2023-11-03 13:27:03 +10:00
Veronica Berglyd Olsen
d67cef2611 Fix bug where tags were lost in the index when saving a document 2023-11-03 00:39:24 +01:00
Veronica Berglyd Olsen
f9df78a8d4 Fix i18n issues (#1565) 2023-11-02 23:44:53 +01:00
Veronica Berglyd Olsen
12d7512441 Make sure also Preferences defaults to British English 2023-11-02 23:41:34 +01:00
Veronica Berglyd Olsen
08a012ef8d Only default to system locale if a translation file exists (#1564) 2023-11-02 23:34:42 +01:00
Veronica Berglyd Olsen
6df591c803 Fix untranslated strings in Build tool (#1563) 2023-11-02 23:01:41 +01:00
Veronica Berglyd Olsen
2d78312206 Fix Build Settings icon column size issue (#1553) 2023-10-24 00:04:41 +02:00
Veronica Berglyd Olsen
bce6f9543a Make sure icon columns on build settings dialog are narrow (#1551) 2023-10-23 23:58:29 +02:00
Veronica Berglyd Olsen
ddd5e841bf Clean up unneeded docs build settings 2023-10-22 00:13:21 +02:00
Veronica Berglyd Olsen
69af58227a Fix broken docs build 2023-10-21 15:41:49 +02:00
Veronica Berglyd Olsen
c02e7a52a1 Fix keyword section in writing classes 2023-10-21 15:40:33 +02:00
Veronica Berglyd Olsen
ba2250be47 Add shortcodes example text 2023-10-20 22:58:32 +02:00
Veronica Berglyd Olsen
d51bfec090 Fix ToOdt test coverage 2023-10-20 22:55:59 +02:00
Veronica Berglyd Olsen
dc50f4bb3b Fix Tokenizer test coverage 2023-10-20 22:17:28 +02:00
Veronica Berglyd Olsen
b9df625914 Add ODT support for new formats 2023-10-20 21:42:00 +02:00
Veronica Berglyd Olsen
e669560462 Add syntax theme entry for shortcodes 2023-10-20 17:57:35 +02:00
Veronica Berglyd Olsen
1558a11646 Add shortcodes functionality 2023-10-20 17:50:18 +02:00
Veronica Berglyd Olsen
2214b7472b Fix ODT test 2023-10-20 00:06:43 +02:00
Veronica Berglyd Olsen
ae1ed10f25 Add converter support for the new formats 2023-10-20 00:05:17 +02:00
Veronica Berglyd Olsen
0115f1e343 Add tokenizer support for the new formats 2023-10-20 00:04:58 +02:00
Veronica Berglyd Olsen
ef4277437b Add regexes and highlighting for in-line commands 2023-10-20 00:04:23 +02:00
Veronica Berglyd Olsen
bd6e666fdc Add new syntax highlighting for in-line commands 2023-10-19 18:04:06 +02:00
Veronica Berglyd Olsen
181809d34a Update i18n readme (#1539) 2023-10-19 03:01:38 +02:00
Veronica Berglyd Olsen
bc1b5f24a0 Add more information in error output from pkgutils 2023-10-19 02:58:29 +02:00
Veronica Berglyd Olsen
658953df15 Add note about pkgutils dependency on PyQt6 for qtlupdate 2023-10-19 02:54:22 +02:00
Veronica Berglyd Olsen
b0e3cf1a3a Change editor to true plain text (#1525) 2023-10-17 21:03:36 +02:00
Veronica Berglyd Olsen
90ca8f481d Disable checking spelling in tests on Windows 2023-10-17 20:58:57 +02:00
Veronica Berglyd Olsen
b11a3c4bc7 Add editor spell checking test coverage 2023-10-17 20:54:00 +02:00
Veronica Berglyd Olsen
9dd8f65795 Clean up a few bits in the editor code, fix margins, and fix issue in spell checker 2023-10-17 20:25:17 +02:00
Veronica Berglyd Olsen
f8bff62754 Merge branch 'dev' into text_document 2023-10-17 18:16:02 +02:00
Veronica Berglyd Olsen
77108784d9 Merge branch 'main' into dev 2023-10-17 18:13:47 +02:00
Veronica Berglyd Olsen
60b977f8ec Update setup scripts 2023-10-17 18:12:35 +02:00
Veronica Berglyd Olsen
a03bd140db Release 2.1 (#1533) 2023-10-17 16:25:52 +02:00
Veronica Berglyd Olsen
1566fd3ec9 Rename Mac test 2023-10-17 16:24:44 +02:00
Veronica Berglyd Olsen
d6e0517209 Update changelog and release notes 2023-10-17 16:21:40 +02:00
Veronica Berglyd Olsen
f090ffa649 Update Spanish translation 2023-10-17 08:22:44 +02:00
Veronica Berglyd Olsen
2e5cb85410 Update Portuguese translation 2023-10-16 09:32:00 +02:00
Veronica Berglyd Olsen
6a4fa295f2 Update US English, Italian and Norwegian translations 2023-10-15 20:54:00 +02:00
Veronica Berglyd Olsen
dc516bab8b Bump version for 2.1 release 2023-10-15 20:17:52 +02:00
Veronica Berglyd Olsen
ac36ce07ba Update docs for 2.1 release (#1531) 2023-10-15 20:14:55 +02:00
Veronica Berglyd Olsen
ccffa91c49 Make a second apss through the entire documentation to fix issues 2023-10-15 20:11:29 +02:00
Veronica Berglyd Olsen
cceb31aac7 Update the glossary section of the docs 2023-10-15 17:53:51 +02:00
Veronica Berglyd Olsen
b16f4477b8 Update the additional topics section of the docs 2023-10-15 17:41:22 +02:00
Veronica Berglyd Olsen
56b4cd3036 Update the Project section of the docs 2023-10-15 17:27:44 +02:00
Veronica Berglyd Olsen
d68d215420 Merge branch 'main' into dev 2023-10-08 21:18:53 +02:00
Veronica Berglyd Olsen
8e72432db8 Merge branch 'main' into update_docs 2023-10-08 21:08:53 +02:00
Veronica Berglyd Olsen
ed8d4a4c26 Switch CI from 3.12-dev to 3.12 2023-10-08 21:08:08 +02:00
Veronica Berglyd Olsen
328216d9e5 Update the Using novelWriter section of the docs 2023-10-08 20:54:14 +02:00
Veronica Berglyd Olsen
a3fdb3cfc4 Update the introduction section of the docs 2023-10-08 18:50:33 +02:00
Veronica Berglyd Olsen
699bf2292c Clean up import order 2023-09-28 16:41:37 +02:00
Veronica Berglyd Olsen
14a75a421d Merge branch 'dev' into text_document 2023-09-28 16:17:43 +02:00
Veronica Berglyd Olsen
fd76f5a2c4 Do some minor variable cleanup in ToOdt 2023-09-28 14:33:33 +02:00
Veronica Berglyd Olsen
0700dd59bb Clean up variables and typing in doc converters 2023-09-26 18:39:50 +02:00
Veronica Berglyd Olsen
6d7453885b Merge branch 'main' into dev 2023-09-18 15:22:23 +02:00
Veronica Berglyd Olsen
609366076a Merge branch 'dev' into text_document 2023-09-18 15:21:32 +02:00
Veronica Berglyd Olsen
16f57e4c48 Case insensitive tags (#1522) 2023-09-18 08:16:54 +01:00
Veronica Berglyd Olsen
976f73c41c Fix two typos in usage docs (#1524) 2023-09-18 07:07:06 +01:00
Ainali
b891e9ada6 Fix two typos in usage docs 2023-09-17 23:20:14 +02:00
Veronica Berglyd Olsen
2e0204d577 Clean up variables and annotations in index classes 2023-09-17 20:29:33 +02:00
Veronica Berglyd Olsen
29518a33f2 Fix index tests 2023-09-16 10:10:55 +02:00
Veronica Berglyd Olsen
bf592fa706 Clean up outline view code 2023-09-15 22:38:56 +02:00
Veronica Berglyd Olsen
cba1a2c062 Make tags in the index case insensitive 2023-09-15 22:38:39 +02:00
Veronica Berglyd Olsen
cb522c7d50 Fix some layout issues in main gui 2023-09-15 18:40:32 +02:00
Veronica Berglyd Olsen
c3a4b840fb Improve handling of spell check state 2023-09-14 16:26:05 +02:00
Veronica Berglyd Olsen
309c7de5de Clean up variables in editor 2023-09-14 16:20:38 +02:00
Veronica Berglyd Olsen
45a4503fa3 Clean up variables in document editor 2023-09-10 23:43:50 +02:00
Veronica Berglyd Olsen
dea5c54ef0 Make some minor improvements to spell check suggest 2023-09-10 21:52:38 +02:00
Veronica Berglyd Olsen
f1e28e21f8 Cache spell check errors for usage in the editor when correcting 2023-09-10 21:27:34 +02:00
Veronica Berglyd Olsen
3f91f5c506 Use the global thread pool, like the docs suggest 2023-09-10 18:15:16 +02:00
Veronica Berglyd Olsen
e210bca319 Move the thread pool to the shared object instance 2023-09-10 17:46:35 +02:00
Veronica Berglyd Olsen
16e2e0cc83 Add a custom text document in the editor 2023-09-07 19:20:00 +02:00
Veronica Berglyd Olsen
e08790e889 Make the editor actually Plain Text (#1521) 2023-09-06 20:10:09 +01:00
Veronica Berglyd Olsen
915b9da5d0 Remove document size constraint 2023-09-06 20:35:48 +02:00
Veronica Berglyd Olsen
0ef46ef0ea Simplify editor scrolling features 2023-09-06 20:05:13 +02:00
Veronica Berglyd Olsen
0bfa3cb592 Simplify setting cursor position in the editor 2023-09-06 18:20:25 +02:00
Veronica Berglyd Olsen
8c3e906fc5 Remove the big doc limit feature 2023-09-06 17:56:39 +02:00
Veronica Berglyd Olsen
2b98e0d4d2 Make the editor a plain text editor again 2023-09-06 17:47:25 +02:00
Veronica Berglyd Olsen
8275963811 Sidebar cleanup and minor fixes (#1520) 2023-09-05 21:26:20 +01:00
Veronica Berglyd Olsen
4cc402679f Fix typo and move special popup menu class 2023-09-05 22:20:04 +02:00
Veronica Berglyd Olsen
b1095481ef Add test coverage 2023-09-05 22:12:08 +02:00
Veronica Berglyd Olsen
f754c80352 Redesign main sidebar 2023-09-05 21:55:42 +02:00
Veronica Berglyd Olsen
ca3a493932 Fix type checking warning 2023-09-04 20:12:26 +02:00
Veronica Berglyd Olsen
e8b2f3a8f9 Only spell check proper words 2023-09-04 20:12:04 +02:00
Veronica Berglyd Olsen
72b89a6768 Merge branch 'main' into dev 2023-09-04 11:50:21 +02:00
Veronica Berglyd Olsen
be3d642868 Fix minor font size issue (#1518) 2023-09-03 20:17:02 +01:00
Veronica Berglyd Olsen
a358a0007a Fix writing stats font size issue (#1442) 2023-09-03 21:12:54 +02:00
Veronica Berglyd Olsen
a2254512f7 Fix minor issue with translation string 2023-09-03 21:03:21 +02:00
Veronica Berglyd Olsen
b450fa1818 Annotate the doc editor source 2023-09-01 21:36:57 +02:00
Veronica Berglyd Olsen
c03c1c2bbf Bump dev branch to 2.2-alpha1 2023-09-01 20:49:09 +02:00
Veronica Berglyd Olsen
3eb49d32fa Display build details in Manuscript tool (#1516) 2023-09-01 18:50:55 +01:00
Veronica Berglyd Olsen
856e504c26 Improve the ternary if in expand state on manuscript dialog 2023-09-01 18:46:01 +02:00
Veronica Berglyd Olsen
206265b6d3 Update base translation file 2023-09-01 17:39:02 +02:00
Veronica Berglyd Olsen
dee1e9d71b Re-sort imports 2023-09-01 17:37:24 +02:00
Veronica Berglyd Olsen
9c7663996c Fix issues discovered when testing 2023-09-01 17:34:34 +02:00
Veronica Berglyd Olsen
03c4b91682 Make a few improvements to manuscript details panel 2023-09-01 17:19:25 +02:00
Veronica Berglyd Olsen
ecebd69cda Add build details widget to manuscript tool 2023-09-01 16:55:23 +02:00
Veronica Berglyd Olsen
746bd4bf2c Remove Python 3.7 support (#1515) 2023-08-31 18:32:27 +01:00
Veronica Berglyd Olsen
93ffc11f2a Bump MacOS build Python version to 3.11 2023-08-31 19:20:18 +02:00
Veronica Berglyd Olsen
e36eebf09a Add Python 3.12 to setup.cfg 2023-08-31 19:17:20 +02:00
Veronica Berglyd Olsen
baf7bc5866 Add Python 3.12-dev to linux tests, and update mac and windows tests to 3.11 2023-08-31 19:10:37 +02:00
Veronica Berglyd Olsen
e766fa7dcc Remove official Python 3.7 support 2023-08-31 19:09:23 +02:00
Veronica Berglyd Olsen
ee84c635c5 Fix typo in changelog 2023-08-31 19:03:50 +02:00
Veronica Berglyd Olsen
eccb4040b6 Release 2.1 RC 1 (#1513) 2023-08-31 16:44:52 +01:00
Veronica Berglyd Olsen
eca97bb6ff Bump version number and update changelog 2023-08-31 17:40:15 +02:00
Veronica Berglyd Olsen
7c3505cf2a Update US translation 2023-08-31 17:19:53 +02:00
Veronica Berglyd Olsen
fbcb8e121c Update translation files 2023-08-31 17:18:09 +02:00
Veronica Berglyd Olsen
ca95a17a63 Merge branch 'main' into release_2.1rc1 2023-08-31 17:00:34 +02:00
Veronica Berglyd Olsen
73a5dc4693 Update i18n files (#1512) 2023-08-31 16:00:00 +01:00
Veronica Berglyd Olsen
6805be0d26 Update i18n files 2023-08-31 16:55:46 +02:00
Veronica Berglyd Olsen
440256c3f0 Forward all scroll events in text area widgets to parent (#1511) 2023-08-31 15:43:39 +01:00
Veronica Berglyd Olsen
d7c8f97d47 Add test coverage and fix a few minor things 2023-08-31 16:38:51 +02:00
Veronica Berglyd Olsen
94329b334a Forward all scroll events in editor/viewer areas to their text area widgets (#1425) 2023-08-31 11:40:52 +02:00
Veronica Berglyd Olsen
190848ad2e Update the file info dialog box (#1510) 2023-08-30 18:08:00 +01:00
Veronica Berglyd Olsen
9bf43aa40f Update the file info dialog box 2023-08-30 18:57:48 +02:00
Veronica Berglyd Olsen
f41e71199c Add hash and dates to document meta data (#1509) 2023-08-30 17:35:51 +01:00
Veronica Berglyd Olsen
10c7934ae2 Update tests 2023-08-25 18:37:01 +02:00
Veronica Berglyd Olsen
fa7e9b7f33 Update sample project 2023-08-25 17:16:18 +02:00
Veronica Berglyd Olsen
4dfc27f727 Add check that prevHash is actually recorded 2023-08-25 17:16:10 +02:00
Veronica Berglyd Olsen
125d501aaf Fix issue with document hash comparison 2023-08-25 17:13:41 +02:00
Veronica Berglyd Olsen
0d262c0ae8 Remove the sha256sum function for files and update tests 2023-08-25 16:55:45 +02:00
Veronica Berglyd Olsen
b3fcea29da Change how text hash is calculated in documents, and add dates 2023-08-25 16:55:08 +02:00
Veronica Berglyd Olsen
1b98bdf28f Refactor handling of spell checking (#1508) 2023-08-25 12:19:25 +01:00
Veronica Berglyd Olsen
cf2d30895c Remove added test check that fails 2023-08-25 13:12:23 +02:00
Veronica Berglyd Olsen
56fc5ec40c Add spell check languages to Tools menu 2023-08-25 13:09:05 +02:00
Veronica Berglyd Olsen
a72c824d8b Move all handling of spell check instance to shared class 2023-08-24 22:33:53 +02:00
Veronica Berglyd Olsen
b54f81355a Clean up the syntax highlighter class 2023-08-24 20:40:10 +02:00
Veronica Berglyd Olsen
f7ed133b2e Move the spell check instance to the shared class 2023-08-24 20:17:23 +02:00
Veronica Berglyd Olsen
4507489f0b Clean up a few things in project classes 2023-08-24 19:45:08 +02:00
Veronica Berglyd Olsen
f339ec2471 Remove re-usage of project class (#1504)_ 2023-08-23 19:56:58 +01:00
Veronica Berglyd Olsen
e1ba66fb87 Fix some missing test coverage 2023-08-23 20:51:42 +02:00
Veronica Berglyd Olsen
af50b219a6 Add test coverage of shared class 2023-08-23 20:19:48 +02:00
Veronica Berglyd Olsen
8090832f3b Fix weird unitilialised shared class issue 2023-08-20 23:38:14 +02:00
Veronica Berglyd Olsen
55423174ed Make a few minor improvements, including fixing #1495 2023-08-20 22:09:02 +02:00
Veronica Berglyd Olsen
ed3e4bca6c Simplify the class variables of the tree class 2023-08-20 21:36:33 +02:00
Veronica Berglyd Olsen
0b4cfd0037 Move idle time records to the shared class 2023-08-20 21:33:04 +02:00
Veronica Berglyd Olsen
777b1a15fd Clean up no longer needed code 2023-08-14 17:43:47 +02:00
Veronica Berglyd Olsen
a17e73b5a2 Let the shared class handle alert dialogs 2023-08-14 17:08:53 +02:00
Veronica Berglyd Olsen
3441ff38de Remove dependence of main GUI class in project class 2023-08-14 17:08:30 +02:00
Veronica Berglyd Olsen
a3976ab4fb Fix imports 2023-08-14 00:07:38 +02:00
Veronica Berglyd Olsen
156a6fac98 Use a signal for status bar messages 2023-08-14 00:03:55 +02:00
Veronica Berglyd Olsen
c4140d753c Improve handling of project closing 2023-08-13 23:32:10 +02:00
Veronica Berglyd Olsen
150f6603cd Let the shared class handle project open/save/close and recreating the project instance 2023-08-13 20:16:37 +02:00
Veronica Berglyd Olsen
8154293d92 Move the hasProject logic into the shared class 2023-08-13 19:23:32 +02:00
Veronica Berglyd Olsen
fd181b18a6 Rename exception variable in makeAlert 2023-08-13 19:23:03 +02:00
Veronica Berglyd Olsen
863dcf8b37 Move theme and project instances to new shared data class 2023-08-10 21:13:10 +02:00
Veronica Berglyd Olsen
a2f183f147 Add a shared data class 2023-08-10 21:10:08 +02:00
Veronica Berglyd Olsen
a0921d2541 Clean up core structure (#1502) 2023-08-10 11:29:25 +01:00
Veronica Berglyd Olsen
ddacfc743e Annotate config class and extensions 2023-08-10 00:49:33 +02:00
Veronica Berglyd Olsen
71e961ba38 Fix annotations in NWStatus class 2023-08-08 23:32:30 +02:00
Veronica Berglyd Olsen
6e5d991cfe Move TypeGuard to TYPE_CHECKING condition 2023-08-08 23:14:35 +02:00
Veronica Berglyd Olsen
5d817ae51f Move GUI components module to extensions subpackage 2023-08-08 22:47:24 +02:00
Veronica Berglyd Olsen
eeadfc95e3 Annotate core modules 2023-08-08 22:37:48 +02:00
Veronica Berglyd Olsen
d658a993c0 Update source file headers 2023-08-08 21:41:35 +02:00
Veronica Berglyd Olsen
348e62cd3e Change default backup folder to HOME/Backups
Signed-off-by: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com>
2023-08-08 20:04:17 +02:00
Veronica Berglyd Olsen
c40d910b69 Make backup path always set 2023-08-08 19:50:20 +02:00
Veronica Berglyd Olsen
12897ff2e1 Make project instance private to main GUI class 2023-08-08 17:21:00 +02:00
Veronica Berglyd Olsen
94c95d6f67 Move GUI theme instance to the config object (after app creation) 2023-08-08 14:35:55 +02:00
Veronica Berglyd Olsen
c50c8ee73a Improve alert boxes (#1501) 2023-08-08 09:45:58 +01:00
Veronica Berglyd Olsen
431bc8d401 Clarify closing dialog on build settings 2023-08-08 10:39:10 +02:00
Veronica Berglyd Olsen
de66f1e21b Switch out some alert icons 2023-08-08 09:33:42 +02:00
Veronica Berglyd Olsen
abfe7ee7ff Clean up a few minor things 2023-08-07 20:57:33 +02:00
Veronica Berglyd Olsen
7cb77e8524 Update comment 2023-08-07 20:49:04 +02:00
Veronica Berglyd Olsen
470017cdea Remove the global APP singleton again 2023-08-07 20:45:25 +02:00
Veronica Berglyd Olsen
7756368113 Fix some minor issues with new alert code 2023-08-07 20:25:51 +02:00
Veronica Berglyd Olsen
3911bc10c6 Clean up code and tests 2023-08-07 20:20:04 +02:00
Veronica Berglyd Olsen
90f9fa4451 Rewrite the makeAlert and askQuestion functions to use recommended interface 2023-08-07 20:19:51 +02:00
Veronica Berglyd Olsen
ec010bf18e Add new icons for alert boxes 2023-08-07 17:02:18 +02:00
Veronica Berglyd Olsen
8959af1f30 Move make alert to separate module and add a global singleton for pointers 2023-08-07 17:01:44 +02:00
Veronica Berglyd Olsen
c3b3120bc1 Improve build settings dialog (#1499) 2023-08-06 22:08:31 +01:00
Veronica Berglyd Olsen
28263dcbac Make build settings dialog a child of main gui, and ensure only one instance can be open for each build 2023-08-06 23:04:59 +02:00
Veronica Berglyd Olsen
4951e4f8fe Automatically select the first build if no builds are selected in the build tool 2023-08-06 22:27:15 +02:00
Veronica Berglyd Olsen
61836c8c04 Change page size preset to Custom when values are changed instead of blocking the spin boxes 2023-08-06 22:04:12 +02:00
Veronica Berglyd Olsen
effe7abdec Fix formatting of line breaks in headers 2023-08-06 21:49:55 +02:00
Veronica Berglyd Olsen
5bc391c6c2 Add file extensions to Outpu tab headers 2023-08-06 19:51:10 +02:00
Veronica Berglyd Olsen
3f951fa61f Move reset button to after included and excluded 2023-08-06 18:20:19 +02:00
Veronica Berglyd Olsen
72de32b126 Add iterative filter action for single selection in build settings 2023-08-06 17:49:11 +02:00
Veronica Berglyd Olsen
2780e722d0 Change icon for filtered items in build settings dialog 2023-08-06 17:28:05 +02:00
Veronica Berglyd Olsen
18d0265515 Fix possibly unbound variable in project tree 2023-08-06 17:25:29 +02:00
Veronica Berglyd Olsen
6168b45c75 Add a triangle arrow to the menu items on the paged side bar 2023-08-06 16:36:34 +02:00
Veronica Berglyd Olsen
7a74165221 Improve section headings on filter tab 2023-08-06 15:39:30 +02:00
Veronica Berglyd Olsen
c480db898c Double the left margin of the button text for the paged side bar 2023-08-06 15:08:57 +02:00
Veronica Berglyd Olsen
762f7c62cd Fix label in syntax check workflow 2023-08-06 14:57:49 +02:00
Veronica Berglyd Olsen
97dccd9d68 Drop saving fullscreen flag (#1498) 2023-08-06 13:57:31 +01:00
Veronica Berglyd Olsen
8778466d42 Annotate main gui 2023-08-06 14:50:11 +02:00
Veronica Berglyd Olsen
6f1aa5b812 Remove fullscreen setting in config file 2023-08-06 14:49:35 +02:00
Veronica Berglyd Olsen
352b70d060 Fix MacOS release for 2.1b1 (#1496) 2023-07-31 00:50:13 +02:00
Veronica Berglyd Olsen
4ce18611bd Remove redundant references to GUI parent 2023-07-31 00:44:30 +02:00
Veronica Berglyd Olsen
f09851b889 Remove beta part of version number for macOS build 2023-07-31 00:18:03 +02:00
Veronica Berglyd Olsen
993205701c Define all non-modal dialogs as tools 2023-07-30 23:39:29 +02:00
Veronica Berglyd Olsen
71b3694399 Try setting build non-modal dialogs as tools 2023-07-30 23:31:05 +02:00
Veronica Berglyd Olsen
9d8d25fbb5 Add a util function to restack the windows 2023-07-30 23:23:07 +02:00
Veronica Berglyd Olsen
c41a104eca Fix version number for mac build 2023-07-30 22:06:25 +02:00
Veronica Berglyd Olsen
1d19a900b1 Handle raise parent on all close events in build tools 2023-07-30 21:57:27 +02:00
Veronica Berglyd Olsen
25f9f0519f Fix raise window issue on Mac 2023-07-30 19:55:47 +02:00
Veronica Berglyd Olsen
b93bc0a295 Allow MacOS build to handle pre-release version 2023-07-30 14:36:47 +02:00
Veronica Berglyd Olsen
7d0e7d7dce Release 2.1 Beta 1 (#1490) 2023-07-30 14:20:51 +02:00
Veronica Berglyd Olsen
4b2b4117a5 Make some minor improvements to the change log 2023-07-30 14:17:34 +02:00
Veronica Berglyd Olsen
2bd519aa5b Update release date, change log and release notes 2023-07-30 14:07:28 +02:00
Veronica Berglyd Olsen
34c5b4fec7 Change tree nav shortcut modifier and update docs (#1489) 2023-07-30 00:06:36 +02:00
Veronica Berglyd Olsen
fd1f4a5dbe Merge branch 'dev' into tree_shortcuts 2023-07-30 00:00:59 +02:00
Veronica Berglyd Olsen
59a31f1c20 Restructure keyboard shortcuts page in docs 2023-07-29 23:59:41 +02:00
Veronica Berglyd Olsen
a79ff09e3b Use alt as modiefier for special project tree move keys 2023-07-29 23:59:18 +02:00
Veronica Berglyd Olsen
ea13f4f9b8 Add project tree navigation shortcuts (#1488) 2023-07-29 22:41:07 +02:00
Veronica Berglyd Olsen
26d97bd234 Update tests and docs 2023-07-29 22:26:13 +02:00
Veronica Berglyd Olsen
c52a37c276 Add shift + arrow navigation feature to project tree (#1348) 2023-07-29 22:25:58 +02:00
Veronica Berglyd Olsen
1dadd1ddb7 Annotate some more functions in project tree source 2023-07-29 20:49:23 +02:00
Veronica Berglyd Olsen
aa64fdbfc3 Annotate and clean up project tree source 2023-07-29 20:45:12 +02:00
Veronica Berglyd Olsen
db892f633a New root folder location (#1487) 2023-07-28 23:23:46 +02:00
Veronica Berglyd Olsen
08648e0a33 Update annotations in related source 2023-07-28 23:17:09 +02:00
Veronica Berglyd Olsen
addacd368d Allow root folders to be created next to selected root 2023-07-28 23:16:20 +02:00
Veronica Berglyd Olsen
925ead775c Try to fix issue with fickly test 2023-07-27 00:33:23 +02:00
Veronica Berglyd Olsen
46cac5cc94 Improve backup feature (#1484) 2023-07-27 00:18:51 +02:00
Veronica Berglyd Olsen
0c04b0ba86 Update test 2023-07-27 00:12:25 +02:00
Veronica Berglyd Olsen
ace037808f Add backups size to pop-up dialog (#1453) 2023-07-27 00:09:05 +02:00
Veronica Berglyd Olsen
d81a90add3 Add project name to backup file (#1476) 2023-07-27 00:08:26 +02:00
Veronica Berglyd Olsen
b837becc58 Remove remaining reference to lxml package 2023-07-26 23:47:49 +02:00
Veronica Berglyd Olsen
d88d07e0b3 Remove setup.py (#1483) 2023-07-26 23:34:04 +02:00
Veronica Berglyd Olsen
2966a709b8 Remove setup.py, and remove sample project from source build 2023-07-26 22:33:05 +02:00
Veronica Berglyd Olsen
7c138d33fc Move requirements file for tests to the tests folder 2023-07-26 22:26:18 +02:00
Veronica Berglyd Olsen
42d8d56636 Update ubuntu releases 2023-07-26 20:00:26 +02:00
Veronica Berglyd Olsen
02312054fb Split up setup.py and move packaging tools to new script 2023-07-26 19:28:34 +02:00
Veronica Berglyd Olsen
a6c0152a68 Improve project item and tree classes (#1482) 2023-07-26 19:06:45 +02:00
Veronica Berglyd Olsen
39ef662807 Add test coverage of the project tree consistency function 2023-07-26 18:57:31 +02:00
Veronica Berglyd Olsen
1752d5c5cb Fix inconsistent clearing of lockfiles in projects 2023-07-24 23:29:39 +02:00
Veronica Berglyd Olsen
7965e3365b Make sure file scan test don't depend on file list order 2023-07-22 23:15:30 +02:00
Veronica Berglyd Olsen
c8d588d6d2 Complete annotations in project class and update tests 2023-07-22 01:06:34 +02:00
Veronica Berglyd Olsen
d382775d1d Make some improvements to the tree consistency check 2023-07-22 01:06:04 +02:00
Veronica Berglyd Olsen
3753f5b829 Rewrite project consistency chech as part of the tree class 2023-07-21 23:56:48 +02:00
Veronica Berglyd Olsen
f0e372b2ba Update tests 2023-07-21 22:53:04 +02:00
Veronica Berglyd Olsen
9a1a2d9ab2 Rewrite NWItem to not allow handle to be None 2023-07-21 22:52:54 +02:00
Veronica Berglyd Olsen
4dfa51855e Spell check comments and docstrings 2023-07-20 23:25:49 +02:00
Veronica Berglyd Olsen
e773884c29 Add duplication of files and folders (#1480) 2023-07-20 21:18:17 +02:00
Veronica Berglyd Olsen
4e448134fc Add test coverage of new function in Document class 2023-07-20 21:14:10 +02:00
Veronica Berglyd Olsen
def846ce4b Clean up imports (missed one) 2023-07-20 21:08:38 +02:00
Veronica Berglyd Olsen
75a840b10b Clean up imports 2023-07-20 21:07:12 +02:00
Veronica Berglyd Olsen
188536d0f6 Add test coverage of duplicate function in project tree 2023-07-20 21:00:11 +02:00
Veronica Berglyd Olsen
b3c744d22e Add test coverage of DocDuplicator class 2023-07-20 20:36:09 +02:00
Veronica Berglyd Olsen
7a72634448 Improve how items are added to project tree, allowing root folders to be added next to specified items 2023-07-20 19:51:01 +02:00
Veronica Berglyd Olsen
1559e3299a Add item duplication functionality to project tree 2023-07-20 18:51:50 +02:00
Veronica Berglyd Olsen
567045e4ff Add document duplication tool and support in item and tree classes 2023-07-20 18:51:26 +02:00
Veronica Berglyd Olsen
1c5466a799 Add annotations to document class 2023-07-20 18:50:53 +02:00
Veronica Berglyd Olsen
fe7e44a3a6 Add annotations to tree and item classes 2023-07-20 16:00:16 +02:00
Veronica Berglyd Olsen
bba46ba042 Add annotations to core tools 2023-07-20 15:14:01 +02:00
Veronica Berglyd Olsen
f2bba55bca Change default font on macOS (#1479) 2023-07-20 01:28:31 +02:00
Veronica Berglyd Olsen
57d6b6ac1d Change default macOS font to Helvetica 2023-07-20 01:22:30 +02:00
Veronica Berglyd Olsen
664d314d3a Improve ODT build (#1477) 2023-07-20 00:35:13 +02:00
Veronica Berglyd Olsen
32a52b2bf1 Update tests 2023-07-20 00:29:11 +02:00
Veronica Berglyd Olsen
dedb86b11d Make paper sizes translatable 2023-07-20 00:29:01 +02:00
Veronica Berglyd Olsen
e1ea285201 Update test reference files 2023-07-19 23:57:45 +02:00
Veronica Berglyd Olsen
3c535ab0ef Make some improvements to the config layout class 2023-07-19 23:55:17 +02:00
Veronica Berglyd Olsen
ac92e5b126 Add support for page layout settings in builds 2023-07-19 23:55:00 +02:00
Veronica Berglyd Olsen
bebf487776 Update tests 2023-07-19 18:17:18 +02:00
Veronica Berglyd Olsen
c123ef9258 Add a separator style to ODT builds 2023-07-19 18:17:03 +02:00
Veronica Berglyd Olsen
7d065659e8 Bump version 2.1-beta1 2023-07-19 18:05:46 +02:00
Veronica Berglyd Olsen
3af60b4b6f Theme updates (#1475) 2023-07-19 17:43:57 +02:00
Veronica Berglyd Olsen
354d299dce Delete redundant colour definition in theme class 2023-07-19 17:40:18 +02:00
Veronica Berglyd Olsen
2670f46941 Don't set an icon theme for the Qt default theme 2023-07-19 17:36:56 +02:00
Veronica Berglyd Olsen
d289b41546 Fix test and update paged sidebar hover colour 2023-07-19 17:31:23 +02:00
Veronica Berglyd Olsen
2c5799679c Add help text colour as separate setting, and annotate theme class 2023-07-19 17:31:02 +02:00
Veronica Berglyd Olsen
795782320c Add default light theme and update other themes 2023-07-19 17:30:35 +02:00
Veronica Berglyd Olsen
734899a543 Improve test coverage of build tools (#1466) 2023-07-18 18:14:07 +02:00
Veronica Berglyd Olsen
8e3a258fd2 Fix sometimes failing backup test 2023-07-18 18:08:17 +02:00
Veronica Berglyd Olsen
36c0349c0a Split print test into separate due to MacOS issues 2023-07-18 17:59:29 +02:00
Veronica Berglyd Olsen
9721c25613 Add test coverage of GuiManuscript tool 2023-07-18 17:52:49 +02:00
Veronica Berglyd Olsen
1997872f71 Comment out blocking call 2023-07-17 20:57:07 +02:00
Veronica Berglyd Olsen
d9e0730ad2 Add test coverage of GuiManuscriptBuild tool 2023-07-17 20:56:31 +02:00
Veronica Berglyd Olsen
839bc778aa Add test coverage of GuiBuildSettings tool 2023-07-17 20:06:46 +02:00
Veronica Berglyd Olsen
f502411079 Complete test coverage of doc build module 2023-06-24 19:14:22 +02:00
Veronica Berglyd Olsen
151e4b2770 Change build filter to skip empty root folders 2023-06-24 18:25:44 +02:00
Veronica Berglyd Olsen
4b194752eb Complete test coverage of build settings module 2023-06-18 19:22:42 +02:00
Veronica Berglyd Olsen
73451faa31 Add test coverage of build settings class 2023-06-17 17:30:37 +02:00
Veronica Berglyd Olsen
a3f0d5b865 Fix bug in options file conversion 2023-06-15 23:54:16 +02:00
Veronica Berglyd Olsen
6193e3191b Fix minor issue in session log conversion 2023-06-15 23:26:27 +02:00
Veronica Berglyd Olsen
0689e977ea Rename and restructure project meta files (#1464) 2023-06-15 23:13:14 +02:00
Veronica Berglyd Olsen
028abc0ce9 Update storage class and test coverage of it 2023-06-15 23:05:21 +02:00
Veronica Berglyd Olsen
ca2964c037 Add test coverage of session log class 2023-06-15 00:19:47 +02:00
Veronica Berglyd Olsen
2a1324e6cc Make error dialog report a monospace font 2023-06-13 23:18:22 +02:00
Veronica Berglyd Olsen
61535b6ab6 Fix minor mistakes in source files from last commits 2023-06-13 22:57:19 +02:00
Veronica Berglyd Olsen
90012aff17 Fix test coverage of writingstats class 2023-06-13 22:32:17 +02:00
Veronica Berglyd Olsen
b2bfaad73d Fix test coverage of outline class 2023-06-13 22:15:14 +02:00
Veronica Berglyd Olsen
26e6845439 Fix test coverage of spell check classes 2023-06-13 21:54:06 +02:00
Veronica Berglyd Olsen
b7bb2988e8 Fix test coverage of options class 2023-06-13 21:11:05 +02:00
Veronica Berglyd Olsen
f33ba03a2f Fix test coverage of wordlist dialog 2023-06-13 21:10:11 +02:00
Veronica Berglyd Olsen
8d38f27eee Update gui options file format to macth others 2023-06-13 17:31:40 +02:00
Veronica Berglyd Olsen
0003f8c24d Change format of wordlist.txt file to json 2023-06-13 17:31:16 +02:00
Veronica Berglyd Olsen
9ac61105f3 Annotate index class and change file format slightly to match others 2023-06-13 17:30:07 +02:00
Veronica Berglyd Olsen
1b85f782a6 Update writing stats dialog to work with new log file 2023-06-13 17:29:15 +02:00
Veronica Berglyd Olsen
eba6783816 Move session log handling to a separate class, and use jsonl format 2023-06-12 01:50:27 +02:00
Veronica Berglyd Olsen
aea41032ef Add one more random error message 2023-06-11 22:51:03 +02:00
Veronica Berglyd Olsen
f572eed5be Update Docs (#1462) 2023-06-10 13:16:23 +02:00
Veronica Berglyd Olsen
9cd3e78043 Merge branch 'main' into update_docs 2023-06-10 13:15:12 +02:00
Veronica Berglyd Olsen
f9a4d7ec1f Make a couple of corrections 2023-06-10 13:13:36 +02:00
Veronica Berglyd Olsen
98692eb2fe Fix some sizing issues in the manuscript tools 2023-06-10 13:07:47 +02:00
Veronica Berglyd Olsen
8e6bb0b3d6 Fix outline margin so last column can be resized 2023-06-10 01:14:25 +02:00
Veronica Berglyd Olsen
6f02f3f74d Simplify how outline column headers are saved 2023-06-10 00:45:25 +02:00
Veronica Berglyd Olsen
00350140d3 Rename index and options meta files 2023-06-10 00:44:52 +02:00
Veronica Berglyd Olsen
a87cc64766 Add a new GUI for the Build Tool (#1389) 2023-06-09 22:18:28 +02:00
Veronica Berglyd Olsen
0eb39d2e0a Clean up a few remnants of old test code 2023-06-09 22:06:38 +02:00
Veronica Berglyd Olsen
112aa8468c Finish up controls on manuscript build tool 2023-06-09 22:06:05 +02:00
Veronica Berglyd Olsen
c344cf441e Add back print functionality to manuscript tool 2023-06-09 21:31:02 +02:00
Veronica Berglyd Olsen
5f4b6009ce Complete the manuscript build dialog, and the doc builder class 2023-06-09 21:07:46 +02:00
Veronica Berglyd Olsen
8b7aab36a2 Add circular progress bar on manuscript preview 2023-06-08 23:33:16 +02:00
Veronica Berglyd Olsen
8ef1a12201 Use enums for build formats 2023-06-08 23:32:32 +02:00
Veronica Berglyd Olsen
4ee452d186 Add a circular progress bar to the manuscript build tool 2023-06-07 22:37:47 +02:00
Veronica Berglyd Olsen
3bcb4a5091 Add back the file name label on manuscript build dialog 2023-06-06 22:47:37 +02:00
Veronica Berglyd Olsen
b09068ab99 Add annotations to odt class 2023-06-06 22:12:56 +02:00
Veronica Berglyd Olsen
6b6c517b1f Add annotations to tokenizer, html and markdown classes 2023-06-06 00:35:57 +02:00
Veronica Berglyd Olsen
850ee73ed4 Simplify core variables in tokenizer 2023-06-06 00:03:46 +02:00
Veronica Berglyd Olsen
67f1dd6677 Clean up variables in doc builder 2023-06-06 00:03:27 +02:00
Veronica Berglyd Olsen
9bc66128a7 Complete the build process in the build tool 2023-06-05 23:39:28 +02:00
Veronica Berglyd Olsen
b0201c58e9 Add Table of Contents to build dialog 2023-06-05 21:49:30 +02:00
Veronica Berglyd Olsen
18df119332 Update build tools icons 2023-06-05 17:19:32 +02:00
Veronica Berglyd Olsen
bc38ea19ba Merge branch 'dev' into feature/build_gui 2023-06-05 17:13:23 +02:00
Veronica Berglyd Olsen
a730e8747f Optimise all SVG icons (#1456) 2023-06-05 17:11:56 +02:00
Veronica Berglyd Olsen
62b0e7f9ca Optimise all SVG icons 2023-06-05 16:52:13 +02:00
Veronica Berglyd Olsen
ee9da2bdf1 Improve the manuscript GUIs a bit 2023-06-05 00:25:02 +02:00
Veronica Berglyd Olsen
2f0ac4fe17 Fix Qt.UserRole access warning 2023-06-05 00:08:11 +02:00
Veronica Berglyd Olsen
033b9f2a59 Update the zipIt function to include new files 2023-06-04 21:25:03 +02:00
Veronica Berglyd Olsen
3996ff8798 Assemble most of the Manuscript Build tool 2023-06-04 20:58:50 +02:00
Veronica Berglyd Olsen
5f6335d8f9 Fix some typing issues 2023-06-04 00:40:04 +02:00
Veronica Berglyd Olsen
135ba3f290 Update the project storage class 2023-06-03 19:05:18 +02:00
Veronica Berglyd Olsen
8ef3b3e09a Add project file revision number, and update all test reference files 2023-06-03 18:37:41 +02:00
Veronica Berglyd Olsen
0704812376 Remove titleFormat from project XML and rename mock test file 2023-06-03 18:13:02 +02:00
Veronica Berglyd Olsen
db8140418e Fix typing and docstrings in Project data and XML classes 2023-06-03 18:05:04 +02:00
Veronica Berglyd Olsen
d915b1b02c Remove old test reference files 2023-06-03 17:13:54 +02:00
Veronica Berglyd Olsen
4c439910dc Remove the old build tool 2023-06-03 17:03:30 +02:00
Veronica Berglyd Olsen
9514578554 Add the build preview functionality from the old build tool 2023-06-03 16:51:45 +02:00
Veronica Berglyd Olsen
3a2733eee5 Make new code pass docstring linting 2023-06-03 15:46:51 +02:00
Veronica Berglyd Olsen
7ff5ffaebd Remove python 3.12-dev tests again 2023-06-01 15:46:39 +02:00
Veronica Berglyd Olsen
dbb8f4fa5a Remove lxml as a test dependency 2023-06-01 15:41:56 +02:00
Veronica Berglyd Olsen
8631ea3d5a Update test CI jobs 2023-06-01 15:39:42 +02:00
Veronica Berglyd Olsen
58dee60297 Merge branch 'dev' into feature/build_gui 2023-06-01 15:29:00 +02:00
Veronica Berglyd Olsen
0a70adeceb Update ignored error codes for flake8 2023-06-01 15:27:29 +02:00
Veronica Berglyd Olsen
31e76e429b Merge branch 'main' into dev 2023-06-01 15:26:08 +02:00
Veronica Berglyd Olsen
277bd783b1 Clean up workflows 2023-06-01 10:56:11 +02:00
Veronica Berglyd Olsen
3e34721b66 Make gui class debug messages consistent 2023-06-01 00:31:42 +02:00
Veronica Berglyd Olsen
8fdec71f4b Improve how manuscript dialog closing is handled 2023-06-01 00:12:27 +02:00
Veronica Berglyd Olsen
510b6ff6d2 Add simple build preview 2023-05-31 18:10:41 +02:00
Veronica Berglyd Olsen
704fffada3 Move all code to set default text font into the Config class 2023-05-31 17:49:31 +02:00
Veronica Berglyd Olsen
74f46f4633 Update broken test by merge from dev 2023-05-29 22:22:18 +02:00
Veronica Berglyd Olsen
c49e743f4d Merge branch 'dev' into feature/build_gui 2023-05-29 22:20:08 +02:00
Veronica Berglyd Olsen
b7eb4d3567 Remove lxml dependency (#1452) 2023-05-29 22:18:46 +02:00
Veronica Berglyd Olsen
ebc3b1f745 Fix redundant line wrapping in ODT header style 2023-05-29 22:12:55 +02:00
Veronica Berglyd Olsen
af923d6050 Remove references and checks for lxml 2023-05-29 21:52:43 +02:00
Veronica Berglyd Olsen
1d90d6d385 Update XML classes and tests 2023-05-29 21:47:13 +02:00
Veronica Berglyd Olsen
a40275c431 Make the xmlIndent function the permanent solution 2023-05-29 21:35:16 +02:00
Veronica Berglyd Olsen
2a82fd628c Fix logging bug in init 2023-05-29 21:34:48 +02:00
Veronica Berglyd Olsen
a7ffbb0965 Update Odt tests 2023-05-29 20:04:40 +02:00
Veronica Berglyd Olsen
22e0f82654 Replaxe lxml with standard library xml in ODT class 2023-05-29 20:04:28 +02:00
Veronica Berglyd Olsen
47a6ae5031 Remove test runs for Python 3.7 2023-05-29 18:23:00 +02:00
Veronica Berglyd Olsen
652013b622 Fix last broken test 2023-05-29 17:58:23 +02:00
Veronica Berglyd Olsen
af67f5081e Fix test reference files 2023-05-29 17:16:58 +02:00
Veronica Berglyd Olsen
59931c804c Replace lxml with standard xml for project files 2023-05-29 17:00:52 +02:00
Veronica Berglyd Olsen
7c9bff71f0 Make sure main logger only creates a single stream handle 2023-05-24 22:39:24 +02:00
Veronica Berglyd Olsen
ad6b517c1d Rename manuscript build tool file and add build dialog 2023-05-24 22:38:47 +02:00
Veronica Berglyd Olsen
a1837d8153 Clean up old heading format usage 2023-05-24 00:50:05 +02:00
Veronica Berglyd Olsen
cd81ea5fbb Fix tests 2023-05-24 00:27:29 +02:00
Veronica Berglyd Olsen
e3744d31aa Move heading formatting into a separate class 2023-05-24 00:27:09 +02:00
Veronica Berglyd Olsen
fda647da54 Fix a few issues with the build settings dialog 2023-05-23 18:39:52 +02:00
Veronica Berglyd Olsen
6ab734b9e7 Add last tab in build settings and tweak filter tab a little 2023-05-23 18:18:15 +02:00
Veronica Berglyd Olsen
c302162d1f Add build settings Content and Format tabs 2023-05-23 16:39:43 +02:00
Veronica Berglyd Olsen
06b46bb0d3 Update config layout extension class 2023-05-23 16:39:05 +02:00
Veronica Berglyd Olsen
2592423637 Update build dialog and make doc build class compatible with build settings 2023-05-22 21:58:05 +02:00
Veronica Berglyd Olsen
854cc77220 Add list of builds to manuscript build dialog 2023-05-22 18:38:58 +02:00
Veronica Berglyd Olsen
0a2355488e Simplify build settings dialog 2023-05-22 16:25:33 +02:00
Veronica Berglyd Olsen
a212900554 Add a Headings format edit form 2023-05-18 19:30:42 +02:00
Veronica Berglyd Olsen
79a28b9e43 Add handling of build settings and build name 2023-05-18 17:41:29 +02:00
Veronica Berglyd Olsen
90a6cecd52 Merge branch 'dev' into feature/build_gui 2023-05-16 23:45:22 +02:00
Veronica Berglyd Olsen
03a19a882b Rewrite config mocking (#1447) 2023-05-16 23:29:56 +02:00
Veronica Berglyd Olsen
4371d123ac Fix docs URL (#1446) 2023-05-16 23:22:20 +02:00
Veronica Berglyd Olsen
70ea5e0bae Fix broken documentation URL 2023-05-16 23:04:24 +02:00
Veronica Berglyd Olsen
db70394af3 Move all URLs to the nwConst class 2023-05-16 23:02:31 +02:00
Veronica Berglyd Olsen
324b204eaa Drop all mappings of config object into classes now that tests don't need that 2023-05-16 23:00:30 +02:00
Veronica Berglyd Olsen
7f8ffb228e Remove dependency on .mainConf class variable in tests 2023-05-16 00:40:56 +02:00
Veronica Berglyd Olsen
cdb501ae26 Improve debug strings in Config class 2023-05-16 00:34:28 +02:00
Veronica Berglyd Olsen
e8c6e50e92 Remove code for mocking CONFIG object and instead reset it for each test 2023-05-16 00:34:11 +02:00
Veronica Berglyd Olsen
35731ca4f7 Make build settings dialog work with single settings object 2023-05-15 15:27:02 +02:00
Veronica Berglyd Olsen
5685963b59 Modify logic so build settings are edited separately 2023-05-13 20:24:33 +02:00
Veronica Berglyd Olsen
26430e642c Add a new Manuscript Build tool 2023-05-13 19:20:31 +02:00
Veronica Berglyd Olsen
ff0a4b03ae Rename GuiBuildManuscript to GuiBuildSettings 2023-05-13 19:02:21 +02:00
Veronica Berglyd Olsen
a4e5a88686 Add heading format fields 2023-05-13 19:00:10 +02:00
Veronica Berglyd Olsen
50f653fefb Add splitter to filter page and save to options 2023-05-13 17:59:43 +02:00
Veronica K. B. Olsen
a9d5974346 Add root class filtering 2023-05-09 22:00:30 +02:00
Veronica Berglyd Olsen
4c4139078a Add icons to document filters 2023-05-07 19:36:52 +02:00
Veronica Berglyd Olsen
46b4e39bf5 Add code to filter items in build tool based on layout and active status 2023-05-07 19:21:07 +02:00
Veronica Berglyd Olsen
e7a148d20d Merge branch 'dev' into feature/build_gui 2023-05-07 16:57:52 +02:00
Veronica Berglyd Olsen
76daa3f463 Update setup files (#1436) 2023-05-05 00:26:28 +02:00
Veronica Berglyd Olsen
9f22c51c8a Add deprecation info to help output 2023-05-04 23:47:01 +02:00
Veronica Berglyd Olsen
023c0da879 Add deprecation warning about setup.py 2023-05-04 23:32:55 +02:00
Veronica Berglyd Olsen
18cc8b91dc Update documentation on how to install novelWriter from source, and improve build script for pip 2023-05-04 23:17:25 +02:00
Veronica Berglyd Olsen
7a855a3520 Update pyproject.toml according to setuptools docs 2023-05-04 23:09:33 +02:00
Veronica Berglyd Olsen
36352d4a17 Fix a few warnings with setup.cfg and add the zip_safe option 2023-05-04 22:05:01 +02:00
Veronica Berglyd Olsen
b9351dba11 Update package build scripts (#1433) 2023-05-03 22:43:03 +02:00
Veronica Berglyd Olsen
8d4e555374 Fix a few help strings in setup 2023-05-03 22:34:53 +02:00
Veronica Berglyd Olsen
934ebcfc7e Switch shasum command on mac build 2023-05-03 13:29:54 +02:00
Veronica Berglyd Olsen
128092e537 Put all build assets in a single zip file 2023-05-03 12:39:51 +02:00
Veronica Berglyd Olsen
ff22722662 Fix artifact names and add shasum files 2023-05-03 12:36:33 +02:00
Veronica Berglyd Olsen
7159a07f91 Fix build action artifact upload 2023-05-02 12:52:22 +02:00
Veronica Berglyd Olsen
0ae42ef876 Simplify package names 2023-05-02 12:46:58 +02:00
Veronica Berglyd Olsen
d66953d3ac Add a bash script to generate a desktop launcher 2023-04-23 17:23:21 +02:00
Veronica Berglyd Olsen
d1c62e4bbc Docs: Add a note about escape characters for text emphasis 2023-04-22 10:06:23 +02:00
Veronica Berglyd Olsen
f1b764761c Fix error in docstring 2023-04-22 09:52:51 +02:00
Veronica Berglyd Olsen
b0c5fe6509 Make some further minor improvements to Mac build script 2023-04-18 18:57:33 +02:00
Veronica Berglyd Olsen
9daf1f1ca0 Clean up Mac build a bit 2023-04-18 18:44:08 +02:00
Veronica Berglyd Olsen
96bed5b3d5 Update copyright year 2023-04-18 18:43:55 +02:00
Veronica Berglyd Olsen
59f0beeba6 Remove the bundled lupdate6 tool and use the PyQt6 package 2023-04-18 18:17:33 +02:00
Veronica Berglyd Olsen
c7ba7b5d3a Add a link to the regular expression Qt docs for the search/replace tool 2023-04-18 11:07:33 +02:00
Veronica Berglyd Olsen
29386e8595 Add a switch box widget and use it for filter options in build 2023-04-16 21:19:09 +02:00
Veronica Berglyd Olsen
b6dceacaf0 Merge branch 'dev' into feature/build_gui 2023-04-16 19:46:54 +02:00
Veronica Berglyd Olsen
58702a8956 Release 2.0.7 (#1419) 2023-04-16 11:35:33 +02:00
Veronica Berglyd Olsen
8cdb7c245c Bump version to 2.0.7 and update changelog 2023-04-15 20:52:40 +02:00
Veronica Berglyd Olsen
1a716d858b Update translation files 2023-04-15 20:28:01 +02:00
Veronica Berglyd Olsen
c45f786066 Fix escaped markdown not being cleaned up for HTML and ODT (#1418) 2023-04-15 18:55:30 +02:00
Veronica Berglyd Olsen
574ed1b2f0 Improve test coverage 2023-04-15 18:46:32 +02:00
Veronica Berglyd Olsen
38f31d6a64 Remove the tokenizer post processing stage and instead run it where needed (Issue #1412) 2023-04-15 18:30:37 +02:00
Veronica Berglyd Olsen
6d0455bf28 Replace underscores with spaces when running spell checker (#1417) 2023-04-13 19:37:25 +02:00
Veronica Berglyd Olsen
b9d149a56a Improve how underscores are treated by spell checker (#1415) 2023-04-13 19:22:21 +02:00
Veronica Berglyd Olsen
4e64d522a1 Merge branch 'dev' into feature/build_gui 2023-04-13 18:21:41 +02:00
Veronica Berglyd Olsen
5460536bbc Fix CI trigger branches 2023-04-13 18:17:12 +02:00
Veronica Berglyd Olsen
239bc886a5 Fix spell check refresh (for small documents) (#1416) 2023-04-13 18:14:43 +02:00
Veronica Berglyd Olsen
0ffb6eee37 Allow clearing the spell check highlighting also on big docs 2023-04-13 18:11:59 +02:00
Veronica Berglyd Olsen
cf770ff77f Remove the condition that spell checking must be enabled to refresh highlighting (Issue #1414) 2023-04-13 17:57:14 +02:00
Veronica Berglyd Olsen
8c9f84d251 Build AppImage for older Linux distros (#1410) 2023-04-04 20:54:12 +02:00
Veronica Berglyd Olsen
5bb78f3f0d Use pip for build dependencies for assets 2023-04-04 19:51:02 +02:00
Veronica Berglyd Olsen
5e985af37b Add additional manylinux version to appimage build 2023-04-04 19:45:27 +02:00
Veronica Berglyd Olsen
f18b8ed7f3 Update i18n (#1407) 2023-04-04 19:36:00 +02:00
Veronica Berglyd Olsen
304d659c9f Merge branch 'main' into update_i18n 2023-04-04 19:33:13 +02:00
Veronica Berglyd Olsen
3a9d8dea27 Add back in RTD pdf build 2023-04-04 19:19:49 +02:00
Veronica Berglyd Olsen
95713f8e09 Update docs (#1409) 2023-04-04 19:13:09 +02:00
Veronica Berglyd Olsen
660c15bfe9 Simplify the main Readme as most user info is now on the website 2023-04-04 19:09:14 +02:00
Veronica Berglyd Olsen
54806ba753 Clean up documentation a little and point to new doc location 2023-04-04 18:35:39 +02:00
Veronica Berglyd Olsen
42dd7ce0d7 Change doc urls to point to main website instead of RTD 2023-04-04 18:34:37 +02:00
Veronica Berglyd Olsen
33b80244ea Merge branch 'main' into update_i18n 2023-04-04 17:50:36 +02:00
Veronica Berglyd Olsen
860125e19a Turn main into only release branch (#1408) 2023-04-04 17:47:52 +02:00
Veronica Berglyd Olsen
835165f012 Restore last version on main branch 2023-04-04 17:44:25 +02:00
Veronica Berglyd Olsen
3c7775aaa2 Remove dev code from main 2023-04-04 17:35:40 +02:00
Veronica Berglyd Olsen
97bf638b6f Merge branch 'patch' into cleanup_main 2023-04-04 17:31:36 +02:00
Veronica Berglyd Olsen
3873be2927 Add Japanese translation 2023-04-04 10:48:02 +02:00
Veronica Berglyd Olsen
48453bb46b Update latest translations 2023-04-04 10:45:25 +02:00
Veronica Berglyd Olsen
6a0a22b164 Merge branch 'patch' into update_i18n 2023-04-03 22:13:36 +02:00
Veronica Berglyd Olsen
590c03c17d Apply 'new item' rules in project tree (#1406) 2023-04-03 22:12:46 +02:00
Veronica Berglyd Olsen
db1cda65c3 Add check for root class before allowing adding novel documents in project tree new item (#1404) 2023-04-03 22:06:57 +02:00
Veronica Berglyd Olsen
bc1861887e Minor GUI Fixes (#1405) 2023-04-03 21:45:33 +02:00
Veronica Berglyd Olsen
7cd5d2740f Update base translation file 2023-04-03 21:34:58 +02:00
Veronica Berglyd Olsen
740e3be74b Fix project tree rename label (#1403) 2023-04-03 21:34:38 +02:00
Veronica Berglyd Olsen
00abb02ac1 Add the desktopFileName setting to the application for better support for Linux desktops 2023-04-03 21:31:07 +02:00
Veronica Berglyd Olsen
489fa20f18 Update latest translations with some minor additions and changes 2023-04-03 17:30:25 +02:00
Veronica Berglyd Olsen
3a569e0268 Fix typo 2023-03-21 09:17:09 +01:00
Veronica Berglyd Olsen
8bada3c468 Clarify instructions on how to download dictionaries on Windows 2023-03-20 22:36:49 +01:00
Veronica Berglyd Olsen
357d1fa83b Update docs theme from main branch 2023-03-10 16:47:47 +01:00
Veronica Berglyd Olsen
0a68ad1b07 Update docs theme (#1395) 2023-03-10 16:44:53 +01:00
Veronica Berglyd Olsen
8f8498ca6d Switch docs theme to Sphinx Book Theme 2023-03-10 16:29:41 +01:00
Veronica Berglyd Olsen
ab4cb93aaa Fix typo in docs 2023-03-07 23:03:30 +01:00
Veronica Berglyd Olsen
51b45de19e Revert mistake in docs about format changes 2023-03-05 11:44:43 +01:00
Veronica Berglyd Olsen
5639df7efd Add buttons to set filter mode on build items 2023-02-28 23:19:57 +01:00
Veronica Berglyd Olsen
9af273bf8f Add functionality to build project tree in build tool 2023-02-28 22:40:23 +01:00
Veronica Berglyd Olsen
cfd1b950d3 Rename item isInactive to isInactiveClass 2023-02-28 22:40:02 +01:00
Veronica Berglyd Olsen
8a4785d9a3 Add build tool icons to theme 2023-02-28 22:39:09 +01:00
Veronica Berglyd Olsen
ba5b4ece30 Change menu entries so tests run properly 2023-02-28 21:22:24 +01:00
Veronica Berglyd Olsen
0a8ed86b7c Finish the build tool pages and add feature to set selected button 2023-02-28 18:24:09 +01:00
Veronica Berglyd Olsen
d166697622 Merge branch 'main' into feature/build_gui 2023-02-28 18:13:46 +01:00
Veronica Berglyd Olsen
9fdfe7616c Change resize behaviour of main splitter (#1388) 2023-02-28 13:32:18 +01:00
Veronica Berglyd Olsen
21db406cf3 Change resize behaviour of main splitter to only scale editor area 2023-02-28 12:45:42 +01:00
Veronica Berglyd Olsen
eb39f5eeba Add tip in docs on how to get the Ubuntu key imported on Debian 2023-02-27 15:09:16 +01:00
Veronica Berglyd Olsen
3125df95d3 Update translations 2023-02-26 21:50:58 +01:00
Veronica Berglyd Olsen
dfcf23cd26 Merge 2.0.6 (#1384) 2023-02-26 21:37:49 +01:00
Veronica Berglyd Olsen
9d11d479a4 Merge branch 'main' into merge_2.0.6 2023-02-26 21:33:37 +01:00
Veronica Berglyd Olsen
86d324a113 Release 2.0.6 (#1382) 2023-02-26 21:02:22 +01:00
Veronica Berglyd Olsen
026f0b921c Complete changelog and update release notes 2023-02-26 12:00:39 +01:00
Veronica Berglyd Olsen
afa9675644 Merge branch 'patch' into release_2.0.6 2023-02-26 11:53:39 +01:00
Veronica Berglyd Olsen
a7ba0ec575 Backport docs from main (#1381) 2023-02-26 11:51:53 +01:00
Veronica Berglyd Olsen
bba605ee5a Fix link format in tech docs 2023-02-26 11:40:46 +01:00
Veronica Berglyd Olsen
09083ac4f5 Backport document changes from main 2023-02-26 11:37:28 +01:00
Veronica Berglyd Olsen
916f782df9 Bump version and update changelog 2023-02-26 11:15:20 +01:00
Veronica Berglyd Olsen
2f3a8f505f Fix GUI bugs and broken reference links (#1379) 2023-02-26 11:09:10 +01:00
Veronica Berglyd Olsen
4ff8c6a26f Don't set project tree focus when setting selected handle (#1369) 2023-02-26 10:56:06 +01:00
Veronica Berglyd Olsen
1952906829 Switch focus to tree when creating new item (#1376) 2023-02-26 10:35:14 +01:00
Veronica Berglyd Olsen
acd4d44a9e Fix reference panel links (#1378) 2023-02-26 10:30:25 +01:00
Veronica Berglyd Olsen
f14098d87b Merge branch 'main' into feature/build_gui 2023-02-25 18:50:59 +01:00
Veronica Berglyd Olsen
a1c3ab688a Update docs and add HowTo (#1377) 2023-02-25 18:48:37 +01:00
Veronica Berglyd Olsen
1648ad2d02 Add a contributing note to the howto docs 2023-02-25 18:48:04 +01:00
Veronica Berglyd Olsen
cc6636fe3c Add a HowTo section 2023-02-25 18:41:40 +01:00
Veronica Berglyd Olsen
e50bb72dc7 Add some more space above sections 2023-02-25 18:35:39 +01:00
Veronica Berglyd Olsen
fd390c2cba Increase font size for admonitions in docs 2023-02-23 08:19:05 +01:00
Veronica Berglyd Olsen
2365bcbcaf Restore main page link in docs 2023-02-22 22:11:51 +01:00
Veronica Berglyd Olsen
d934f2bb6b Fix download link in docs 2023-02-22 21:24:11 +01:00
Veronica Berglyd Olsen
8b2566b9fe Add signal to paged sidebar 2023-02-22 21:07:01 +01:00
Veronica Berglyd Olsen
a507e64163 No need for the mbuild folder 2023-02-21 18:46:10 +01:00
Veronica Berglyd Olsen
9d61432641 Add a basic build settings class, and add the paged sidebar to the mbuild dialog 2023-02-21 18:15:04 +01:00
Veronica Berglyd Olsen
981111d380 Complete the paged sidebar widget 2023-02-21 18:14:20 +01:00
Veronica Berglyd Olsen
0f0c9eacb1 Rename custom to extensions to avoid import issues 2023-02-21 16:47:30 +01:00
Veronica Berglyd Olsen
7a60d8d867 Add a custom widgets subpackage 2023-02-21 16:06:41 +01:00
Veronica Berglyd Olsen
06407a44d3 Add tabs to manuscript build tool 2023-02-13 21:34:40 +01:00
Veronica Berglyd Olsen
1c17bcc981 Add the Build Manuscript tool and connect it to the main menu 2023-02-13 20:00:56 +01:00
Veronica Berglyd Olsen
e92f2a9141 Copy "Getting Started" docs over from main branch 2023-02-13 19:27:30 +01:00
Veronica Berglyd Olsen
c8182c0293 Update "Getting Started" in docs (#1366) 2023-02-13 19:24:35 +01:00
Veronica Berglyd Olsen
d78f13839e Clean up the gettings started document 2023-02-13 08:46:06 +01:00
Veronica Berglyd Olsen
ed892f3f15 Move the section on setting up Python on Windows to the PyPi part 2023-02-13 08:38:19 +01:00
Veronica Berglyd Olsen
902dcc6ba7 Update MacOS install instructions formatting 2023-02-13 08:34:17 +01:00
Veronica Berglyd Olsen
43fd9db038 Merge branch 'main' into docs/getting_started 2023-02-13 08:22:25 +01:00
Veronica Berglyd Olsen
c6da74b21c Update MacOS instructions in the docs (#1365) 2023-02-13 08:21:31 +01:00
Rachel Powers
5362205605 Add Macos install instructions to the docs 2023-02-12 20:38:34 -07:00
Veronica Berglyd Olsen
30d5be44eb Bump version to 2.1-alpha0 2023-02-13 00:23:54 +01:00
Veronica Berglyd Olsen
9a50303068 Merge branch 'patch' 2023-02-13 00:20:51 +01:00
Veronica Berglyd Olsen
9ec8fea5f1 Improve build workflows (#1364) 2023-02-13 00:18:38 +01:00
Veronica Berglyd Olsen
1aecf19a03 Fix environment vars 2023-02-12 23:49:03 +01:00
Veronica Berglyd Olsen
0ab86913a7 Fix AppImage and MacOS builds 2023-02-12 23:32:11 +01:00
Veronica Berglyd Olsen
8448ec7b61 Add AppImage to build workflow 2023-02-12 23:27:15 +01:00
Veronica Berglyd Olsen
d672ec05e9 Fix artifact names 2023-02-12 22:33:40 +01:00
Veronica Berglyd Olsen
d71a277af7 Change order of macos build, and add more output 2023-02-12 22:11:32 +01:00
Veronica Berglyd Olsen
8488a85288 Update docs info on debian install 2023-02-12 21:46:15 +01:00
Veronica Berglyd Olsen
81e23f6a2a Merge 2.0.5 (#1363) 2023-02-12 17:38:40 +01:00
Veronica Berglyd Olsen
955d8c8fe2 Enable short retention time for build 2023-02-12 17:30:40 +01:00
Veronica Berglyd Olsen
d9057b8581 Fix broken doc build test 2023-02-12 17:30:26 +01:00
Veronica Berglyd Olsen
79f39c1bc3 Merge branch 'main' into merge_2.0.5 2023-02-12 17:24:42 +01:00
Veronica Berglyd Olsen
0b9ba78fac Release 2.0.5 (#1356) 2023-02-12 16:10:48 +01:00
Veronica Berglyd Olsen
c42f2e755c Make ODT tests ignore version number 2023-02-12 16:07:36 +01:00
Veronica Berglyd Olsen
2f0018ddfe Merge branch 'patch' into release_2.0.5 2023-02-12 16:04:10 +01:00
Veronica Berglyd Olsen
c4fd25ba56 Update changelog and release notes 2023-02-12 16:03:43 +01:00
Veronica Berglyd Olsen
f6a9fdd7ca Update completed and new translations (#1341) 2023-02-12 15:55:57 +01:00
Veronica Berglyd Olsen
dcadaddedf Merge branch 'patch' into update_i18n 2023-02-12 15:49:41 +01:00
Veronica Berglyd Olsen
b0952a38be Make ODT build pass validation entries (#1360) 2023-02-12 15:33:44 +01:00
Veronica Berglyd Olsen
7638db21ec Fix tests 2023-02-12 15:12:39 +01:00
Veronica Berglyd Olsen
c39e37c799 Add more meta data to supporet adding fields in LibreOffice 2023-02-12 14:44:01 +01:00
Veronica Berglyd Olsen
5796d55531 Title elements should be paragraph, not heading to be valid ODF 2023-02-12 13:27:43 +01:00
Veronica Berglyd Olsen
cce1ef54d8 Fix Open Document warning on settings.xml and bump version to 1.3 2023-02-12 12:54:05 +01:00
Veronica Berglyd Olsen
4b7a4e0789 Fix capitalisation in Portuguese translation 2023-02-12 08:36:30 +01:00
Veronica Berglyd Olsen
c2dd579eb4 Add Italian translation 2023-02-12 08:32:02 +01:00
Veronica Berglyd Olsen
ee550c2213 Update translations 2023-02-12 08:31:55 +01:00
Veronica Berglyd Olsen
6ed7c6f5a7 Update version and changelog 2023-02-10 21:50:10 +01:00
Veronica Berglyd Olsen
cd4bae976f Merge branch 'patch' into update_i18n 2023-02-10 21:16:07 +01:00
Veronica Berglyd Olsen
917a4375db Fix issues with novel tree last column (#1355) 2023-02-10 21:07:27 +01:00
Veronica Berglyd Olsen
7fe85ddfde Update base translation file 2023-02-10 20:59:26 +01:00
Veronica Berglyd Olsen
c1f1013cfd Improve test coverage 2023-02-10 20:55:37 +01:00
Veronica Berglyd Olsen
cf742a89c0 Add a menu entry to change column size for last column in novel tree 2023-02-10 20:49:47 +01:00
Veronica Berglyd Olsen
fd14c682a9 Allow more than one item in extra column 2023-02-10 20:16:49 +01:00
Veronica Berglyd Olsen
032ab630c1 Fix block formatting issues (#1354) 2023-02-10 20:11:26 +01:00
Veronica Berglyd Olsen
aa3fe96158 Add some comments to explain what's going on in the block formatting 2023-02-10 20:07:52 +01:00
Veronica Berglyd Olsen
5b20061607 Only insert line break for block formats if the block already has text (#1349, #1350) 2023-02-10 20:01:46 +01:00
Veronica Berglyd Olsen
e9876b4d42 Update docs and project file format specs (#1353) 2023-02-10 19:40:55 +01:00
Veronica Berglyd Olsen
faa644b274 Also link filr format speck in tech docs 2023-02-10 19:30:07 +01:00
Veronica Berglyd Olsen
709ea059cb Fix a typo in the index page note 2023-02-10 19:25:50 +01:00
Veronica Berglyd Olsen
723b44b6db Fix some issues with the fila format spec document 2023-02-09 17:22:02 +01:00
Veronica Berglyd Olsen
72574dd8a6 Make some modifications to docs config 2023-02-09 17:21:13 +01:00
Veronica Berglyd Olsen
6aafbbae3e Add a document builder class (#1316) 2023-02-06 23:23:41 +01:00
Veronica Berglyd Olsen
0b93e4a61a Merge branch 'main' into feature/build_class 2023-02-06 23:05:59 +01:00
Veronica Berglyd Olsen
5c30e1ae33 Merge branch 'patch' into update_i18n 2023-02-05 18:48:43 +01:00
Veronica Berglyd Olsen
25ab8ccbce Add project content path check (#1342) 2023-02-05 18:39:36 +01:00
Veronica Berglyd Olsen
492d94ee6e Check that content path exists before returning it from storage class (#1317) 2023-02-05 18:12:50 +01:00
Veronica Berglyd Olsen
6d45194253 Update completed translations and add Russian project file 2023-02-05 14:13:21 +01:00
Veronica Berglyd Olsen
cdbfcafc38 Make patch workflow match main 2023-02-05 00:16:30 +01:00
Veronica Berglyd Olsen
437fe010b0 Add a basic build file to main 2023-02-05 00:15:09 +01:00
Veronica Berglyd Olsen
5f6f853336 Only run packaging workflow on certain tags 2023-02-05 00:00:47 +01:00
Veronica Berglyd Olsen
75b20889f4 Changes to MacOS build (#1340) 2023-02-04 23:46:48 +01:00
Veronica Berglyd Olsen
6b1183392f Try using workflow_dispatch instead 2023-02-04 23:44:03 +01:00
Veronica Berglyd Olsen
652ce3848b Try out using environment in workflow 2023-02-04 23:34:00 +01:00
Veronica Berglyd Olsen
1d90ab9fc1 Reverting som changes that didn't matter 2023-02-04 23:12:14 +01:00
Veronica Berglyd Olsen
cc48f8f8aa Try removeing the python3.1 folder 2023-02-04 22:27:16 +01:00
Veronica Berglyd Olsen
44f624faf4 Try the -a option instead 2023-02-04 20:54:51 +01:00
Veronica Berglyd Olsen
b4813f904a Try the preserve symlinks flag in mac bundle build 2023-02-04 20:45:15 +01:00
Veronica Berglyd Olsen
8a5ff3ab85 Turn off short retention time for now 2023-02-04 19:47:10 +01:00
Veronica Berglyd Olsen
76e1d47d14 Merge branch 'patch' into feature/macos-bundle 2023-02-04 19:33:32 +01:00
Veronica Berglyd Olsen
0e529fd72f Rewrite macOS build workflow and make some changes to build script 2023-02-04 19:33:12 +01:00
Veronica Berglyd Olsen
74ead29433 Move MacOS plist info back to a template file, and simplify stuff in setup.py 2023-02-04 19:33:04 +01:00
Veronica Berglyd Olsen
08bc2938df Add MacOS bundle distribution (#1276) 2023-02-04 17:37:47 +01:00
Veronica Berglyd Olsen
a6d9ed0c8c Merge branch 'patch' into macos-appbundle 2023-02-04 17:35:04 +01:00
Veronica Berglyd Olsen
c9d768e138 Project Details dialog fixes (#1339) 2023-02-04 16:48:18 +01:00
Veronica Berglyd Olsen
4ba3297d17 Update base translation file 2023-02-04 16:45:53 +01:00
Veronica Berglyd Olsen
a5d05ab777 Improve time format of editing time on project details dialog (#1335) 2023-02-04 16:32:41 +01:00
Veronica Berglyd Olsen
4e815a5f86 Make sure project name, title and author cannot be set to string "None" 2023-02-04 16:29:51 +01:00
Veronica Berglyd Olsen
b1bc80a0cd Make sure title and author is always refreshed when project details dialog is opened (#1336) 2023-02-04 16:29:23 +01:00
Veronica Berglyd Olsen
b0f38c3e2f Merge branch 'main' into feature/build_class 2023-02-01 16:58:27 +01:00
Rachel Powers
af1233925e fix icns generation and bundle display name.
while the icns *can* be generated on linux it is much preferable to generate it on macos
it is checked in as a convience

this commit fixes the appbundle not displaying the icon corrected
and corrects the app being displayed as "python" in the top bar when the bundle is run

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-31 17:10:36 -07:00
Veronica Berglyd Olsen
71a8e72180 Merge branch 'patch' into macos-appbundle 2023-01-30 12:14:57 +01:00
Veronica Berglyd Olsen
8273fcca1e Update outdated info in main readme 2023-01-30 12:10:04 +01:00
Veronica Berglyd Olsen
9d46dde1c5 Fix typo in 2.0 release notes 2023-01-29 11:53:08 +01:00
Veronica Berglyd Olsen
0702154716 Merge branch 'main' into feature/build_class 2023-01-29 03:15:40 +01:00
Veronica Berglyd Olsen
0ad7dac3d3 Merge 2.0.4 (#1327) 2023-01-29 03:15:12 +01:00
Veronica Berglyd Olsen
f56f990085 Merge branch 'main' into merge_2.0.4 2023-01-29 03:11:30 +01:00
Veronica Berglyd Olsen
4f11990b93 Release 2.0.4 (#1326) 2023-01-29 02:44:08 +01:00
Veronica Berglyd Olsen
e4cc9ef5b5 Bump version to 2.0.4 and update changelog 2023-01-29 02:34:42 +01:00
Veronica Berglyd Olsen
fe6d4de025 Fix PyQt5 version check (#1325) 2023-01-29 02:27:06 +01:00
Veronica Berglyd Olsen
c9fe0cad05 Also fix import in the error handler 2023-01-29 02:22:14 +01:00
Veronica Berglyd Olsen
1437659a4e Drop the splitVersionNumber function 2023-01-29 02:14:21 +01:00
Veronica Berglyd Olsen
0c75a53e57 Fix wrong inport of PyQt5 version (#1324) 2023-01-29 02:13:32 +01:00
Veronica Berglyd Olsen
f04f4a3e04 Update some comments and docstrings in the index class 2023-01-25 15:05:59 +01:00
Veronica Berglyd Olsen
e2f7e77ec2 Mentione Qt SVG dependency for Arch Linux in the docs (#1319) 2023-01-21 23:03:46 +01:00
Veronica Berglyd Olsen
004828f76c Mention Qt SVG dependency for Arch Linux in the docs (#1320) 2023-01-21 23:00:42 +01:00
Veronica Berglyd Olsen
3d4dbd0bb0 Mention Qt SVG dependency for Arch Linux in the docs (#1319)
Signed-off-by: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com>
2023-01-21 22:52:43 +01:00
Veronica Berglyd Olsen
3a0bae92be Rename the doc build functions 2023-01-12 10:21:36 +01:00
Veronica Berglyd Olsen
f569c66348 Add test coverage of the doc builder class 2023-01-11 12:30:08 +01:00
Veronica Berglyd Olsen
88cde331df Fix a few issues in the doc builder class 2023-01-11 12:29:52 +01:00
Veronica Berglyd Olsen
72e11601a0 Complete the first version of the doc builder class and add test 2023-01-10 17:59:23 +01:00
Veronica Berglyd Olsen
87256ee62f Merge branch 'main' into feature/build_class 2023-01-10 17:59:04 +01:00
Rachel Powers
beb95c49fa fix: fit artifact uploads
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-09 00:53:15 -07:00
Rachel Powers
f912d55177 refactor: move plist gen into setup.py
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 22:09:32 -07:00
Rachel Powers
b7e7a087f8 fix: remove codesign for now, only build on tags
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 19:27:12 -07:00
Rachel Powers
82dd1c46cf fix: force build on this branch for testing
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 19:27:12 -07:00
Rachel Powers
a228c4b32a Squashed commit of the following:
commit a1f358b6f0a193be7d3d72fa4082fa09701ebe16
Author: Rachel Powers <508861+Ryex@users.noreply.github.com>
Date:   Thu Dec 1 11:48:38 2022 -0700

    fix: reneable the res of the build

    Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

commit 8ed02b09aeb9c302e30023fcbf73c8b5e3bbc8ff
Author: Rachel Powers <508861+Ryex@users.noreply.github.com>
Date:   Thu Dec 1 11:41:19 2022 -0700

    fix: install qt for tools

    Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

commit d68dc29d49f1a2547912fc97867126f4fc6d96c4
Author: Rachel Powers <508861+Ryex@users.noreply.github.com>
Date:   Thu Dec 1 11:32:07 2022 -0700

    fix: add tex-gyre to texlive install

    Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

commit ff654a2a914cd00c867088baf147f8ccd70a185c
Author: Rachel Powers <508861+Ryex@users.noreply.github.com>
Date:   Thu Dec 1 11:08:46 2022 -0700

    fix: add required latex pkgs

    Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

commit 1a4babc11c274f69c6c04edddfc5011f9162759e
Author: Rachel Powers <508861+Ryex@users.noreply.github.com>
Date:   Thu Dec 1 10:17:31 2022 -0700

    fix: install sphinx via pip3

    Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

commit 4b602b0955fabc2b5067bae46c3408dab0f0dd72
Author: Rachel Powers <508861+Ryex@users.noreply.github.com>
Date:   Thu Dec 1 10:05:46 2022 -0700

    fix: ensure sphinx is properly installed

    Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

commit 59ad26f434d6c5391c2448724aa44587c2cf7a46
Author: Rachel Powers <508861+Ryex@users.noreply.github.com>
Date:   Thu Dec 1 09:59:40 2022 -0700

    feat: install scheme-basic texlive pkg
    run setup.py in proper dir

    Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

commit 16cd50307fbd4519fd6ebdc719e78e99eb37d02b
Author: Rachel Powers <508861+Ryex@users.noreply.github.com>
Date:   Thu Dec 1 09:54:42 2022 -0700

    feat: build manual, translations, and sample project zip

    Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 19:27:12 -07:00
Rachel Powers
682986d9b9 fix: add entitlements
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 19:27:12 -07:00
Rachel Powers
b29b6d6eef fix: don't remove the python symlink
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 19:27:12 -07:00
Rachel Powers
8a9a52da57 fix: pull the version from the python file
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 19:27:12 -07:00
Rachel Powers
faf302c6d8 feat: add github workflow to build for macos
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 19:27:12 -07:00
Rachel
f71afb5732 feat: cleanup build script
use python 3.10
use curl over wget (pre-installed)
ensure enchant is installed
cleanup better to limit app bundle size
fix Info.plist

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 19:27:12 -07:00
Rachel Powers
0eb7185d40 feat: add a macos build script
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 19:27:12 -07:00
Veronica Berglyd Olsen
286dbff47b Merge 2.0.3 (#1312) 2023-01-08 19:52:09 +01:00
Veronica Berglyd Olsen
a671878e26 Add build for Ubuntu 23.04 2023-01-08 19:26:37 +01:00
Veronica Berglyd Olsen
5f65819f40 Release 2.0.3 (#1311) 2023-01-08 19:14:54 +01:00
Veronica Berglyd Olsen
ef268dc386 Bump version to 2.0.3 and update changelog and release notes 2023-01-08 19:11:26 +01:00
Veronica Berglyd Olsen
41a0788b4c Update copyright year to 2023 2023-01-08 18:47:04 +01:00
Veronica Berglyd Olsen
073a945b8e Update translations 2023-01-08 18:42:28 +01:00
Veronica Berglyd Olsen
90721e244b Fix handling of item with missing parent item (#1309) 2023-01-08 18:23:45 +01:00
Veronica Berglyd Olsen
65bfd20ced Update tests 2023-01-08 18:11:06 +01:00
Veronica Berglyd Olsen
22d761dea3 Improve handling of unexpected project items (#1283) 2023-01-08 17:57:47 +01:00
Veronica Berglyd Olsen
5daf4ed6bc Update status/import label form code (#1308) 2023-01-08 17:30:03 +01:00
Veronica Berglyd Olsen
be1894ab97 Clean up the status/import form code a bit 2023-01-08 17:24:36 +01:00
Veronica Berglyd Olsen
9529a79707 Clear the staus/import form when no item is selected (#1290) 2023-01-08 17:16:27 +01:00
Veronica Berglyd Olsen
f6e5293d8e Fix convert folders and open from outline (#1306) 2023-01-05 23:59:19 +01:00
Veronica Berglyd Olsen
31403b4299 Fix it again, but now also for enter key (#1291) 2023-01-05 23:54:51 +01:00
Veronica Berglyd Olsen
3b9e3762d3 Make sure editor/viewer is visible on open doc request (#1291) 2023-01-05 23:50:27 +01:00
Veronica Berglyd Olsen
748d76dca6 Fix converting folder to file (#1305) 2023-01-05 23:45:48 +01:00
Veronica Berglyd Olsen
7e0e18787f Add a check that a non-new project actually exists (#1301) 2022-12-23 12:34:08 +01:00
Veronica Berglyd Olsen
3b95b2838c Update test and translation file 2022-12-23 12:28:48 +01:00
Veronica Berglyd Olsen
8749321614 Block opening a non-new project in a non-existing location (#1300) 2022-12-23 12:28:30 +01:00
Veronica Berglyd Olsen
12c09b1f6c Update icons and allow custom icon themes (#1299) 2022-12-20 12:56:55 +01:00
Veronica Berglyd Olsen
1664f92cc8 Also allow custom icon themes 2022-12-20 12:50:21 +01:00
Veronica Berglyd Olsen
6c76e31e0b Remove Inkscape meta data from a bunch of icons 2022-12-20 12:32:42 +01:00
Veronica Berglyd Olsen
b7744bbda2 Correct paths for input-none icons (#1297) 2022-12-20 12:25:15 +01:00
Veronica Berglyd Olsen
187a75c99a Update i18n and contributor credits (#1298) 2022-12-20 12:10:31 +01:00
Veronica Berglyd Olsen
670aab5224 Remove redundant CSS 2022-12-20 12:06:14 +01:00
Veronica Berglyd Olsen
1c4256ff4c Make links consistent 2022-12-20 12:03:25 +01:00
Veronica Berglyd Olsen
55e91f08dd Add a credits page to the About dialog 2022-12-20 11:54:45 +01:00
Veronica Berglyd Olsen
c581c774e9 Update credits doc 2022-12-20 11:33:51 +01:00
Veronica Berglyd Olsen
bce5025a66 Update Chinese translation 2022-12-20 10:40:08 +01:00
Veronica Berglyd Olsen
66cc3777dc Release 2.0.2 (#1279) 2022-12-01 23:41:38 +01:00
Veronica Berglyd Olsen
b1def7b568 Release 2.0.2 2022-12-01 23:33:16 +01:00
Veronica Berglyd Olsen
1b177ff5b5 Fix highlighting not updating on prefs change (#1278) 2022-12-01 23:24:36 +01:00
Veronica Berglyd Olsen
594ccd45c7 Fix linux workflow 2022-12-01 23:21:00 +01:00
Veronica Berglyd Olsen
2b0216a398 Changing colouring preferences on the highlighting tab needs to re-init the syntax highlighter (#1274) 2022-12-01 23:12:46 +01:00
Veronica Berglyd Olsen
3fa9c29d7a Populate build functions in new build class 2022-12-01 22:56:24 +01:00
Veronica Berglyd Olsen
25f6234cf0 Add a new module for a document build class 2022-12-01 16:12:25 +01:00
Veronica Berglyd Olsen
347266a9bd Post release fix (#1272) 2022-11-29 17:41:16 +01:00
Veronica Berglyd Olsen
e7bce03be4 Add empty init files to subdirs of main package 2022-11-29 17:22:23 +01:00
Veronica Berglyd Olsen
9d08d83c2c Release 2.0.1 (#1270) 2022-11-29 16:37:29 +01:00
Veronica Berglyd Olsen
e0f7e50b64 Release 2.0.1 2022-11-29 16:28:19 +01:00
Veronica Berglyd Olsen
b57d53adcd Update French translation (#1265) 2022-11-28 21:37:22 +01:00
Veronica Berglyd Olsen
875bde2253 Update French translation 2022-11-28 21:30:45 +01:00
Veronica Berglyd Olsen
e77426f364 Add a icon theme fallback value (#1264) 2022-11-28 21:28:37 +01:00
Veronica Berglyd Olsen
9af6fa062c Add more info on custome themes in the docs 2022-11-28 21:25:48 +01:00
Veronica Berglyd Olsen
6bc59eb7de Make the theme class fall back to typicons lighht icon theme (#1263) 2022-11-28 21:05:34 +01:00
Veronica Berglyd Olsen
49cab9ec29 Use direct imports everywhere (#1262) 2022-11-28 18:31:54 +01:00
Veronica Berglyd Olsen
32d75567e3 Use direct imports everywhere 2022-11-28 18:23:36 +01:00
702 changed files with 115981 additions and 71458 deletions

39
.github/workflows/build_assets.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: BuildAssets
on: workflow_call
jobs:
buildAssets:
runs-on: ubuntu-latest
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.12"
architecture: x64
- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install qttools5-dev-tools latexmk texlive texlive-latex-extra
- name: Checkout Source
uses: actions/checkout@v4
- name: Install Packages (pip)
run: pip install -r docs/source/requirements.txt
- name: Build Assets
run: |
python pkgutils.py build-assets
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: nw-assets
path: |
novelwriter/assets/manual.pdf
novelwriter/assets/sample.zip
novelwriter/assets/i18n/*.qm
if-no-files-found: error
retention-days: 14

46
.github/workflows/build_linux.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: BuildLinux
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/build_assets.yml
buildLinux-AppImage:
needs: buildAssets
runs-on: ubuntu-latest
env:
PYTHON_VERSION: "3.12"
LINUX_TAG: "manylinux_2_28_x86_64"
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.11"
architecture: x64
- name: Install Packages (pip)
run: pip install python-appimage
- name: Checkout Source
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build AppImage
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
python pkgutils.py build-appimage --linux-tag $LINUX_TAG --python-version $PYTHON_VERSION
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Linux-AppImage
path: dist_appimage/*.AppImage*
if-no-files-found: error
retention-days: 14

69
.github/workflows/build_mac.yml vendored Normal file
View File

@@ -0,0 +1,69 @@
name: BuildMacOS
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/build_assets.yml
buildMac-AMD64:
needs: buildAssets
runs-on: macos-latest
env:
PYTHON_VERSION: "3.12"
PACKAGE_ARCH: x86_64
MINICONDA_ARCH: x86_64
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build App Bundle
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
- name: Upload DMG
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-AMD64-DMG
path: dist_macos/*.dmg*
if-no-files-found: error
retention-days: 14
buildMac-M1:
needs: buildAssets
runs-on: macos-latest
env:
PYTHON_VERSION: "3.12"
PACKAGE_ARCH: aarch64
MINICONDA_ARCH: arm64
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build App Bundle
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
- name: Upload DMG
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-M1-DMG
path: dist_macos/*.dmg*
if-no-files-found: error
retention-days: 14

62
.github/workflows/build_win.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
name: BuildWindows
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/build_assets.yml
buildWin64:
needs: buildAssets
runs-on: windows-latest
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.12"
architecture: x64
- name: Checkout Source
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build Setup Installer
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $Env:GITHUB_OUTPUT
python pkgutils.py build-win-exe
- name: Upload Unsigned Artifacts
id: upload-unsigned-artifact
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup
path: dist/*.exe
if-no-files-found: error
retention-days: 14
- name: Submit Signing Request
uses: signpath/github-action-submit-signing-request@v1
with:
api-token: "${{ secrets.SIGNPATH_API_TOKEN }}"
organization-id: "0471e52c-66fa-4e9a-bfb9-36167095ca3f"
project-slug: "novelWriter"
signing-policy-slug: "release-signing "
github-artifact-id: "${{ steps.upload-unsigned-artifact.outputs.artifact-id }}"
wait-for-completion: true
output-artifact-directory: "dist/"
parameters: |
version: "${{ steps.build.outputs.BUILD_VERSION }}"
- name: Upload Signed Artifacts
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup-Signed
path: dist/*.exe
if-no-files-found: error
retention-days: 14

32
.github/workflows/i18n.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: i18n
on:
push:
branches:
- i18n/*
jobs:
buildI18n:
runs-on: ubuntu-latest
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.11"
architecture: x64
- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install qttools5-dev-tools
- name: Checkout Source
uses: actions/checkout@v4
- name: Build Assets
run: python pkgutils.py qtlrelease
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: nw-i18n
path: |
novelwriter/assets/i18n/*.qm
if-no-files-found: error
retention-days: 7

View File

@@ -1,33 +1,30 @@
name: flake8
name: Flake8
on:
push:
branches:
branches:
- main
- patch
- release
pull_request:
branches:
- main
- patch
- release
jobs:
checkSyntax:
runs-on: ubuntu-latest
steps:
- name: Python Setup
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3
architecture: x64
- name: Checkout Source
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install flake8
run: pip install flake8
- name: Syntax Error Check
run: pip install -r requirements-dev.txt
- name: Syntax Check
run: |
flake8 novelwriter --count --select=E9,F63,F7,F82 --show-source --statistics
flake8 tests --count --select=E9,F63,F7,F82 --show-source --statistics
- name: Coding Style Violations
run: |
flake8 novelwriter --count --max-line-length=99 --ignore E133,E221,E226,E228,E241,W503 --show-source --statistics
flake8 tests --count --max-line-length=99 --ignore E133,E221,E226,E228,E241,W503 --show-source --statistics
flake8 --version
flake8 novelwriter --count --show-source --statistics
flake8 tests --count --show-source --statistics --extend-ignore ANN

View File

@@ -2,42 +2,45 @@ name: Linux
on:
push:
branches:
branches:
- main
- patch
- release
pull_request:
branches:
- main
- patch
- release
jobs:
testLinux:
strategy:
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
fail-fast: false
runs-on: ubuntu-latest
steps:
- name: Python Setup
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install libenchant-dev qttools5-dev-tools aspell-en
sudo apt install libenchant-2-dev qttools5-dev-tools aspell-en
- name: Checkout Source
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install Dependencies (pip)
run: |
pip install --upgrade pip
pip install -r requirements.txt
pip install -r requirements-dev.txt
pip install -U -r requirements.txt -r tests/requirements.txt
- name: Run Build Commands
run: python setup.py qtlrelease sample
run: |
python pkgutils.py qtlrelease
python pkgutils.py sample
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
pytest -v --cov=novelwriter --timeout=60
python -m pytest -v --cov=novelwriter --timeout=60
- name: Upload to Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -1,38 +1,37 @@
name: macOS
name: MacOS
on:
push:
branches:
branches:
- main
- patch
- release
pull_request:
branches:
- main
- patch
- release
jobs:
testMac:
runs-on: macos-latest
runs-on: macos-13
steps:
- name: Python Setup
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.12"
architecture: x64
- name: Install Packages
- name: Install Packages (brew)
run: |
brew install enchant
- name: Checkout Source
uses: actions/checkout@v3
- name: Install Dependencies
uses: actions/checkout@v4
- name: Install Dependencies (pip)
run: |
pip install --upgrade pip
pip install -r requirements.txt
pip install -r requirements-dev.txt
pip install pyobjc
pip install -U pyobjc -r requirements.txt -r tests/requirements.txt
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
pytest -v --cov=novelwriter --timeout=60
python -m pytest -v --cov=novelwriter --timeout=60
- name: Upload to Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -2,32 +2,32 @@ name: Windows
on:
push:
branches:
branches:
- main
- patch
- release
pull_request:
branches:
- main
- patch
- release
jobs:
testWin:
runs-on: windows-latest
steps:
- name: Python Setup
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.12"
architecture: x64
- name: Checkout Source
uses: actions/checkout@v3
- name: Install Dependencies
uses: actions/checkout@v4
- name: Install Dependencies (pip)
run: |
pip install --upgrade pip
pip install -r requirements.txt
pip install -r requirements-dev.txt
pip install -U -r requirements.txt -r tests/requirements.txt
- name: Run Tests
run: |
pytest -v --cov=novelwriter --timeout=60
python -m pytest -v --cov=novelwriter --timeout=60
- name: Upload to Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

9
.gitignore vendored
View File

@@ -9,6 +9,8 @@
setup.iss
/novelwriter.desktop
/novelWriter.pyw
/setup/macos/Info.plist
.venv
# Translations
/novelwriter/assets/i18n/*.qm
@@ -32,7 +34,6 @@ __pycache__
/novelwriter/assets/sample.zip
/sample/cache
/sample/meta
/sample/versions
*.bak
*.lock
ToC.txt
@@ -43,12 +44,12 @@ ToC.txt
/tests/temp
/tests/lipsum/cache
/tests/lipsum/meta
/tests/minimal/cache
/tests/minimal/meta
/tests/oldproj/cache
/.pytest_cache
/pytestdebug.log
# Coverage
/.coverage
/coverage.*
# Other
/test.py

View File

@@ -1,24 +0,0 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/source/conf.py
# Build documentation with MkDocs
#mkdocs:
# configuration: mkdocs.yml
# Optionally build your docs in additional formats such as PDF
formats:
- htmlzip
- epub
- pdf
# Optionally set the version of Python and requirements required to build your docs
python:
install:
- requirements: docs/source/requirements.txt

File diff suppressed because it is too large Load Diff

View File

@@ -1,45 +1,44 @@
# Contributing Guide
When contributing to this repository, please first discuss the change you wish to make via the
issue tracker or the discussions page with the owner of this repository. Especially if it is
regarding new features. If you just want to make a minor correction, like fix a typo or similar,
feel free to just make a pull request directly.
When contributing to this repository, please first discuss the change you wish to make with the
owner. Either via the issue tracker or on the discussions page. Especially if it is regarding new
features. If you just want to make a minor correction, like fix a typo or similar, feel free to
just make a pull request directly.
The following contributions are welcome:
**The following contributions are welcome:**
* Bugfixes for new or existing bugs. Please also report new bugs in the issue tracker even if you
also provide a fix. It makes it easier to keep track of what has been fixed and when.
* Translations via the [crowdin project page](https://crowdin.com/project/novelwriter).
* Translations made via the [Crowdin project page](https://crowdin.com/project/novelwriter).
* Improvements to the documentation. Particularly if the documentation is unclear. Please don't
make any larger changes to the documentation without discussing if with the maintainer first.
* Adaptations, installation or packaging features targeting specific operating systems.
Please do not:
**Please do not:**
* Make a pull request that restructures or reformats existing code. If you think some parts of the
* Make a pull request that restructures or reformats existing code. If you think some part of the
code could be improved, please make an issue thread or start a discussion. The same applies to
any text document in the repository.
## Pull Requests
## Picking the Correct Branch for a Pull Request
This project follows the [OneFlow](https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow)
model. The `main` branch is the default branch. For general changes, please make a new branch in
your own fork from the current `main` branch. Do not make pull requests from your own `main`
branch.
The `main` branch is the default branch. For general changes, please make a new branch in your own
fork from the current `main` branch. Do not make pull requests from your copy of the `main` branch.
**Note:** If your contribution is a bugfix for a specific version, please make a bugfix branch from
the tag you want the fix to be applied to, not directly from the `main` branch. This is important.
As of April 2024, releases are made from the `release` branch. If you are submitting a fix to a
current release you must do so from the `release` branch. If you make such a fix on the `main`
branch, **it cannot be included in a patch release**. This also applies to the documentation for
the latest release published on the main website.
Also check the following:
**Also check the following:**
* Make sure your code passes all tests and conforms to the style guide. You can check that the
code generally conforms by running the Python linting tool `flake8` from the root of the project
folder, although it doesn't check everything. The same check is also run on pull requests by the
maintainer.
folder, although it doesn't check everything. The same check is also run on pull requests.
* Please provide a description of the changes in the pull request under the summary section of the
pull request template, and reference any related issues by providing the issue number.
* Do not change the version number.
* Do not submit files that were not actively changed but have otherwise been modifed. This is
* Do not submit files that were not actively changed but have otherwise been modified. This is
mostly an issue with translation files. The language tool may update all files in the `i18n`
folder.
@@ -68,14 +67,14 @@ style guide, but with a few exceptions. Some key points are listed below.
is the recommended line length in PEP8, but this is often too restrictive. 99 characters are
acceptable when that is more practical. Readability has priority. Generally, if a code statement
requires multiple lines, the lines should wrap at 79 characters if possible. If wrapping can be
avoided by going to 99, then that is generally preferrable.
avoided by going to 99, then that is generally preferable.
* For text files, the text should be wrapped at 99 character. The exception is markdown image tags
and urls which can run past that limit.
**Variable and Function Names**
* PEP8 allows for camelCase for consistency with existing code. The Qt library uses camelCase, so
the Python source code does too.
the novelWriter source code does too.
* The exception to the above is for constants. They should always be in upper snake case, like PEP8
states.
@@ -83,19 +82,29 @@ style guide, but with a few exceptions. Some key points are listed below.
* Only indentation by multiples of 4 spaces is allowed.
* No trailing spaces should occur on any line in the source code, including empty lines.
* Ideally, a function should end on the same indention level as it started. Exceptions are allowed
if it makes the code easier to follow.
* All common line wrapping methods are allowed in the code, but avoid deep indentations.
* Aligning operators and attributes in columns with multiple spaces is not allowed by PEP8. The
rule is relaxed a bit here. Alignment is allowed when populating large dictionaries or setting
many class attributes. It does improve readability in such cases, but should not be overused.
**Type Annotation**
* All functions must be properly type annotated, and a return type stated in all cases.
* Do not use `List`, `Dict`, `Tuple`, etc, annotations that were deprecated in Python 3.9. You can
install the `flake8-pep585` extension to make sure you don't forget. This is also checked by the
syntax action run on pull requests.
* If annotations require a more recent Python version than the minimum version stated in the
project's `pyproject.toml`, hide it under an `if TYPE_CHECKING` condition so that the code can
still run on older versions. It's OK to require a more recent version for development.
### Linting with `flake8`
A good tool for checking Python code for errors and code style is `flake8`. The documentation is
available [here](https://flake8.pycqa.org/en/latest/).
The `setup.cfg` file in the root of this project has the following settings for `flake8` that
matches the above code style:
The `.flake8` file in the root of this project has the following settings for that matches the
required code style:
```conf
[flake8]
ignore = E133,E221,E226,E228,E241,W503
@@ -115,7 +124,7 @@ command will give you a detailed description of the code lines that do not confo
Two of the ignored errors are due to the relaxed restriction on column alignment, these are the
E221 and E241 error codes.
The code E226 is ignored becuse it doesn't actually follow the
The code E226 is ignored because it doesn't actually follow the
[PEP8 recommendation](https://www.python.org/dev/peps/pep-0008/#other-recommendations)
of grouping longer equations by operator precedence like `2*a + 3*b` instead of `a * a + 3 * b`.
Generally, don't use spaces around `*`, `/` and `**`, but _do_ use spaces around `+` and `-`.

View File

@@ -2,45 +2,75 @@
## Main Developer
* Veronica Berglyd Olsen (@vkbo)
* Veronica Berglyd Olsen
## Main Contributors
## Contributors
* Concept: Marian Lückhof (@Number042)
* Internationalisation: Bruno Meneguello (@bkmeneguello)
* Early Concept: Marian Lückhof
* Internationalisation: Bruno Meneguello
* Setup and Packaging: Rachel Powers
For other contributions, see the project's [Contributors](https://github.com/vkbo/novelWriter/graphs/contributors) page.
## Artwork
The artwork on the Welcome dialog was created by Louis Durrant.
## Translations
The default language is English (UK) with English (US) as an option.
The default language is English (UK) with English (US) as an option. These are the original
translators for the languages currently available:
* Dutch: Martijn van der Kleijn (@mvdkleijn)
* French: Jan Lüdke (@jyhelle)
* German: Myian (@heymyian)
* Latin American Spanish: Tommy Marplatt (@tmarplatt)
* Norwegian: Veronica Berglyd Olsen (@vkbo)
* Portuguese: Bruno Meneguello (@bkmeneguello)
* Simplified Chinese: Qianzhi Long (@longqzh)
* **Dutch:** Martijn van der Kleijn (mvdkleijn)
* **French:** Jan Lüdke (jyhelle)
* **German:** Myian (HeyMyian)
* **Italian:** Riccardo Mangili
* **Japanese:** hebekeg
* **Latin American Spanish:** Tommy Marplatt (tmarplatt)
* **Norwegian:** Veronica Berglyd Olsen (vkbo)
* **Polish:** Anna Maria Polak (Nauthiz)
* **Portuguese:** Bruno Meneguello (bkmeneguello)
* **Russian:** Konstantin Tan (k1kimosha)
* **Simplified Chinese:** Qianzhi Long (longqzh)
Additional larger translation contributions:
* **French:** Albert Aribaud (aaribaud)
* **Portuguese:** Oli Maia (olimaia)
Translations are managed on [Crowdin](https://crowdin.com/project/novelwriter), and more
contributions are listed on the project's Members page.
## Libraries
The following libraries are dependencies of novelWriter:
* Qt5 by [Qt Company](https://www.qt.io/)
* PyQt5 by [Riverbank Computing](https://www.riverbankcomputing.com/software/pyqt/)
* lxml by [Martijn Faassen](https://lxml.de/)
* Enchant by [Dom Lachowicz](https://abiword.github.io/enchant/)
* PyEnchant by [Dimitri Merejkowsky](https://pyenchant.github.io/pyenchant/)
* **Qt5** by Qt Company
* **PyQt5** by Riverbank Computing
* **Enchant** by Dom Lachowicz
* **PyEnchant** by Dimitri Merejkowsky
## Assets
Some of the assets bundled with novelWriter were adapted from the following sources:
* Typicons icons by [Stephen Hutchings](https://github.com/stephenhutchings/typicons.font) (CC BY-SA 4.0)
* Tomorrow syntax themes by Chris Kempson (MIT License)
* Owl syntax themes by Sarah Drasner (MIT License)
* Solarized themes by Ethan Schoonover, added by @nullbasis (MIT License)
* **Typicons** icons by Stephen Hutchings (CC BY-SA 4.0)
* **Tomorrow** syntax themes by Chris Kempson (MIT License)
* **Owl** syntax themes by Sarah Drasner (MIT License)
* **Solarized** themes by Ethan Schoonover (MIT License)
* **Cyberpunk Night** theme by Anders Lemvigh (CC BY-SA 4.0)
* **Dracula** theme by Zeno Rocha (MIT License)
* **Snazzy Light** theme by Florian Reuschel (MIT License)
## Fonts
The font used for the main novelWriter logo, mimetype and text banners is Pridi. Other fonts are
used on buttons and icons.
* **Pridi** by Cadson Demak (Open Font License, Version 1.1)
* **Source Sans Pro** by Paul D. Hunt (SIL Open Font License)
## Special Mentions
Additional thanks to @johnblommers who was an early user and who has provided a lot of very useful
Additional thanks to John Blommers who was an early user and who has provided a lot of very useful
feedback over the years.

View File

@@ -1,7 +1,6 @@
include setup.py
include pkgutils.py
include LICENSE.md
include CREDITS.md
include CHANGELOG.md
recursive-include setup *
recursive-include novelwriter/assets *
recursive-include sample *.nwx *.nwd
recursive-include setup *

179
README.md
View File

@@ -2,16 +2,11 @@
[![Linux](https://github.com/vkbo/novelWriter/actions/workflows/test_linux.yml/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions/workflows/test_linux.yml)
[![Windows](https://github.com/vkbo/novelWriter/actions/workflows/test_win.yml/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions/workflows/test_win.yml)
[![macOS](https://github.com/vkbo/novelWriter/actions/workflows/test_mac.yml/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions/workflows/test_mac.yml)
[![flake8](https://github.com/vkbo/novelWriter/workflows/flake8/badge.svg)](https://github.com/vkbo/novelWriter/actions)
[![codecov](https://codecov.io/gh/vkbo/novelWriter/branch/main/graph/badge.svg)](https://codecov.io/gh/vkbo/novelWriter)
[![docs](https://readthedocs.org/projects/novelwriter/badge/?version=latest)](https://novelwriter.readthedocs.io/en/latest/?badge=latest)
[![release](https://img.shields.io/github/v/release/vkbo/novelwriter)](https://github.com/vkbo/novelWriter/releases)
[![pypi](https://img.shields.io/pypi/v/novelwriter)](https://pypi.org/project/novelWriter)
[![python](https://img.shields.io/pypi/pyversions/novelwriter)](https://pypi.org/project/novelWriter)
[![Crowdin](https://badges.crowdin.net/novelwriter/localized.svg)](https://crowdin.com/project/novelwriter)
[![MacOS](https://github.com/vkbo/novelWriter/actions/workflows/test_mac.yml/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions/workflows/test_mac.yml)
[![Flake8](https://github.com/vkbo/novelWriter/workflows/flake8/badge.svg)](https://github.com/vkbo/novelWriter/actions)
[![CodeCov](https://codecov.io/gh/vkbo/novelWriter/branch/main/graph/badge.svg)](https://codecov.io/gh/vkbo/novelWriter)
<img align="left" style="margin: 0 16px 4px 0;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/novelwriter.png">
<img align="left" style="margin: 0 0 4px 0;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/novelwriter_readme.png">
novelWriter is a plain text editor designed for writing novels assembled from many smaller text
documents. It uses a minimal formatting syntax inspired by Markdown, and adds a meta data syntax
@@ -23,43 +18,31 @@ synchronisation tools. All text is saved as plain text files with a meta data he
project structure is stored in a single project XML file. Other meta data is primarily saved as
JSON files.
The full documentation is available at
[novelwriter.readthedocs.io](https://novelwriter.readthedocs.io).
For more details, and how to install and use novelWriter, please see the main website and
documentation.
The full credits are listed in
[CREDITS.md](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md).
**Project Links**
You can also follow novelWriter on Mastodon at [fosstodon.org/@novelwriter](https://fosstodon.org/@novelwriter).
* Website: [novelwriter.io](https://novelwriter.io)
* Documentation: [docs.novelwriter.io](https://docs.novelwriter.io)
* Internationalisation: [crowdin.com/project/novelwriter](https://crowdin.com/project/novelwriter)
* PyPi Project: [pypi.org/project/novelWriter](https://pypi.org/project/novelWriter)
* Social Media: [fosstodon.org/@novelwriter](https://fosstodon.org/@novelwriter)
## Sponsors
<table style="border: none;">
<tr>
<td><img align="left" style="height: 25px;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/signpath_logo.png"></td>
<td>Free code signing on Windows provided by <a href="https://about.signpath.io/">SignPath.io</a>, certificate by <a href="https://signpath.org/">SignPath Foundation</a>.</td>
</tr>
</table>
## Implementation
The application is written with Python 3 (3.7+) using Qt5 and PyQt5 (5.10+). It is developed on
Linux, but should in principle work fine on other operating systems as well as long as dependencies
are met. It is regularly tested on Debian and Ubuntu Linux, Windows, and macOS.
## Installation
### Linux Mint, Ubuntu and Debian
The Releases page has a `.deb` package that should install on Mint, Ubuntu and Debian.
You can also use the novelWriter [PPA](https://launchpad.net/~vkbo/+archive/ubuntu/novelwriter).
For more details, check the [Getting Started](https://novelwriter.readthedocs.io/en/latest/int_started.html)
section in the documentation.
### Windows 10+
The Release page has a `setup.exe` file for Windows 10, that should also work on other Windows
versions. The installer includes Python 3.10 and the library dependencies.
### Other Install Options
You can also download and install one of the minimal zip files from the
[Releases](https://github.com/vkbo/novelWriter/releases) page or the
[novelwriter.io](https://novelwriter.io/) website.
The [Getting Started](https://novelwriter.readthedocs.io/en/latest/int_started.html) section of the
documentation has detailed install instructions for these packages, and for installation via the
Python Package Index.
novelWriter is written with Python 3 (3.9+) using Qt5 and PyQt5 (5.15 only), and is released on
Linux, Windows and macOS. It can in principle run on any Operating System that also supports Qt,
PyQt and Python.
## Project Contributions
@@ -73,6 +56,12 @@ also be appreciated, but please make an issue or a discussion topic first. Befor
code, please also read the full
[Contributing Guide](https://github.com/vkbo/novelWriter/blob/main/CONTRIBUTING.md).
Project credits are available in [CREDITS.md](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md).
**Note:** As of April 2024 only pre-releases are made from the `main` branch. Full releases are
made from the `release` branch. So if you're submitting a fix to a current release, **including
changes to documentation**, they must be made to the `release` branch.
### Translations
New translations are always welcome. This project uses Crowdin to maintain translations, and you
@@ -83,112 +72,10 @@ If you have any questions, feel free to post them to the
For more details, and how to use Qt Linguist for translations, see the
[i18n instructions](https://github.com/vkbo/novelWriter/blob/main/i18n/README.md).
## Key Features
Some key features of novelWriter are listed below. The
[documentation](https://novelwriter.readthedocs.io) has a lot more information.
### Formatting Codes
Although novelWriter is a plain text editor, it uses a Markdown-like syntax to allow for a minimal
set of formatting that is useful for the specific task of writing novels.
| Code | Usage | Description |
|------------|----------|-------------|
| `#` | Prefix | Headings level 1 to 4. |
| `_` | Wrapped | Emphasised (italicised) text. |
| `**` | Wrapped | Strongly emphasised (bold) text. |
| `~~` | Wrapped | Strikethrough text. |
| `%` | Prefix | A comment; does not count towards the word count.<sup>1</sup> |
| `@` | Prefix | The following text is parsed as a keyword/value command for meta data. |
| `>` | Prefix | The paragraph is indented one tab width from the left. |
| `<` | Suffix | The paragraph is indented one tab width from the right. |
| `>>` | Prefix | The paragraph is right-aligned. |
| `<<` | Suffix | The paragraph is left-aligned. |
| `>>`, `<<` | Wrapped | The paragraph is centred. |
<sup>1</sup> If the first word of the comment is `synopsis:`, the comment is indexed and treated as
the synopsis for the section of text where it occurs. These synopsis comments can be used to build
an outline and exported to external documents.
### Export Formats
The core export formats of novelWriter are Open Document and HTML5. Open Document is an open
standard for office type documents that is supported by most office applications. See
[Open Document > Application Support](https://en.wikipedia.org/wiki/OpenDocument#Application_support)
for more details.
You can also export the entire project as a single novelWriter-markup document. These can later be
imported again into novelWriter. In addition, printing and export to PDF is offered through the Qt
library, although with limitations to formatting.
### Colour Themes
The editor has syntax highlighting for the features it supports, and includes a set of different
syntax highlighting themes. Optional GUI themes are also available, including dark themes.
### Easy Organising of Project Files
The structure of the project is shown on the left hand side of the main window. Project files are
organised into root folders, indicating what class of file they are. The most important root folder
is the `Novel` folder, which contains all of the files that make up the novel itself. Each root
folder can have subfolders. Subfolders have no impact on the final project structure, they are
there for you to organise your files in whatever way you want.
The editor supports four levels of headings, which determine what level the following text belongs
to. Headings of level one signify a book or partition title. Headings of level two signify the
start of a new chapter. Headings of level three signify the start of a new scene. Headings of level
four can be used internally in each scene to create separate sections.
See the [documentation](https://novelwriter.readthedocs.io) for further details.
### Project Notes
Supporting notes can be added for the story plot, characters, locations, story timeline, etc. These
have their separate root folders and are optional to use.
### Visualisation of Story Elements
The different notes can be assigned tags, which other files can refer back to using `@`-prefixed
meta keywords. This information can be used to display an outline of the story, showing where each
scene connects to the plot, and which characters, etc. occur in them. In addition, the tags
themselves are clickable in the document view pane, and control-clickable in the editor. They make
it possible to quickly navigate between the documents while writing.
## Installing or Running from Source
If you want to run novelWriter directly from the source code, you must run the `novelWriter.py`
file from command line.
Dependencies can generally be installed from PyPi with:
```bash
pip install -r requirements.txt
```
On Linux, the dependencies are generally available in the standard package repository.
For more details on running or installing from source, see
[Other Setup Methods](https://novelwriter.readthedocs.io/en/latest/setup_other.html).
## Debugging
If you need to debug novelWriter, you must run it from the command line. It takes a few parameters,
which can be listed with the switch `--help`. The `--info`, `--debug` or `--verbose` flags are
particularly useful for increasing logging output for debugging.
## Licence
This is Open Source software, and novelWriter is licenced under GPLv3. See the
[GNU General Public License website](https://www.gnu.org/licenses/gpl-3.0.en.html) for more
details, or consult the [LICENSE](https://github.com/vkbo/novelWriter/blob/main/LICENSE.md) file.
Bundled assets and their licences are listed in
[CREDITS](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md).
## Screenshots
**novelWriter with default system theme:**
![Screenshot 1](https://raw.githubusercontent.com/vkbo/novelWriter/main/docs/source/images/screenshot_default.png)
**novelWriter with dark theme:**
![Screenshot 2](https://raw.githubusercontent.com/vkbo/novelWriter/main/docs/source/images/screenshot_dark.png)
details, or consult the [License](https://github.com/vkbo/novelWriter/blob/main/LICENSE.md)
document. Bundled assets and their licences are listed in the
[Credits](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md) document.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,14 @@
span.guilabel {
font-weight: 400;
}
.nw-sidebar-title {
height: unset;
max-height: unset;
flex-direction: column;
justify-content: center;
gap: .25rem;
font-size: 1.25rem;
font-weight: normal;
text-align: center;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -0,0 +1,3 @@
{% if docstitle %}
<p class="nw-sidebar-title">{{ docstitle }}</p>
{% endif %}

View File

@@ -1,10 +1,7 @@
#
# Configuration file for the Sphinx documentation builder.
#
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/master/config
#
"""
Configuration file for the Sphinx documentation builder.
Documentation: http://www.sphinx-doc.org/en/master/config
"""
# -- Imports -----------------------------------------------------------------
@@ -15,7 +12,7 @@ import datetime
# -- Project Information -----------------------------------------------------
project = "novelWriter"
copyright = f"{datetime.date.today().year}, Veronica Berglyd Olsen"
copyright = f"{datetime.date.today().year}"
author = "Veronica Berglyd Olsen"
initFile = os.path.join(
@@ -30,37 +27,45 @@ with open(initFile) as inFile:
else:
release = "unknown"
version = release.split("-")[0]
version = release.partition("-")[0]
# -- General Configuration ---------------------------------------------------
os.environ["TZ"] = "Europe/Oslo"
time.tzset()
needs_sphinx = "4.0"
needs_sphinx = "5.0"
extensions = ["sphinx_design"]
templates_path = ["_templates"]
source_suffix = ".rst"
master_doc = "index"
today_fmt = "%A, %d %B %Y at %H:%M"
language = "en"
exclude_patterns = []
pygments_style = "sphinx"
pygments_dark_style = "monokai"
# -- Options for HTML Output -------------------------------------------------
html_theme = "furo"
html_theme = "sphinx_book_theme"
html_title = f"Version {release}"
html_static_path = ["_static"]
html_css_files = ["custom.css"]
html_theme_options = {
"light_logo": "novelwriter-light.png",
"dark_logo": "novelwriter-dark.png",
"logo": {
"image_light": "_static/novelwriter-light.png",
"image_dark": "_static/novelwriter-dark.png",
},
"show_toc_level": 2,
"show_navbar_depth": 1,
"repository_url": "https://github.com/vkbo/novelwriter",
"navigation_with_keys": True,
"use_repository_button": True,
"use_issues_button": True,
"pygment_light_style": "tango",
"pygment_dark_style": "dracula",
}
html_sidebars = {
"**": ["navbar-logo", "sidebar-title", "sbt-sidebar-nav"],
}
html_title = f"<div style='text-align: center'>Documentation Version {release}</div>"
# -- Options for HTMLHelp Output ---------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = "novelWriterDoc"
# -- Options for LaTeX Output ------------------------------------------------
@@ -73,44 +78,7 @@ latex_elements = {
),
"figure_align": "htbp",
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_logo = "_static/novelwriter-pdf.png"
latex_documents = [(
master_doc, "manual.tex", "novelWriter Documentation",
author, "manual"
master_doc, "manual.tex", "User Guide", author, "manual"
)]
# -- Options for Man Page Output ---------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [(
master_doc, "novelwriter", "novelWriter Documentation", [author], 1
)]
# -- Options for Texinfo Output ----------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [(
master_doc, "novelWriter", "novelWriter Documentation", author,
"novelWriter", "Markdown-like editor for novels.", "Miscellaneous"
)]
# -- Options for EPub Output -------------------------------------------------
# Bibliographic Dublin Core info.
epub_title = project
# The unique identifier of the text. This can be a ISBN number
# or the project homepage.
# epub_identifier = ""
# A unique identification for the text.
# epub_uid = ""
# A list of files that should not be packed into the epub file.
epub_exclude_files = ["search.html"]

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 KiB

After

Width:  |  Height:  |  Size: 516 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 539 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 379 KiB

After

Width:  |  Height:  |  Size: 335 KiB

View File

@@ -1,44 +1,34 @@
#############################
Documentation for novelWriter
#############################
######################
novelWriter User Guide
######################
.. image:: images/novelwriter_logo.png
:align: right
:width: 48
| **Release Version:** |release|
| **Updated:** |today|
| **For Release:** |release|
| **Last Updated:** |today|
|
novelWriter is an open source plain text editor designed for writing novels assembled from many
smaller text documents. It uses a minimal formatting syntax inspired by Markdown, and adds a meta
data syntax for comments, synopsis, and cross-referencing. It is designed to be a simple text
novelWriter is an open source plain text editor designed for writing novels assembled from
individual text documents. It uses a minimal formatting syntax inspired by Markdown, and adds a
meta data syntax for comments, synopsis, and cross-referencing. It is designed to be a simple text
editor that allows for easy organisation of text and notes, using human readable text files as
storage for robustness.
.. figure:: images/screenshot_multi.png
:class: dark-light
:align: center
:width: 500
The project storage is suitable for version control software, and also well suited for file
synchronisation tools. All text is saved as plain text files with a meta data header. The core
project structure is stored in a single project XML file. Other meta data is primarily saved as
JSON files. See the :ref:`a_breakdown_storage` section for more details.
synchronisation tools. All text is saved as plain text files, and your project data as standard
data formats in XML and JSON. See :ref:`a_storage` for more details.
Any operating system that can run Python 3 and has the Qt 5 libraries should be able to run
novelWriter. It runs fine on Linux, Windows and macOS, and users have tested it on other platforms
as well. novelWriter can also be run directly from the Python source, or installed from packages or
the pip tool. See :ref:`a_started` for more details.
.. note::
Version 1.5 introduced a few changes that will require you to make some minor modifications to
some of the headings in your project. It should be fairly quick and straightforward. Please see
the :ref:`a_prjfmt_1_3` section for more details.
Any operating system that has Python 3 and the Qt 5 libraries should be able to run novelWriter.
It runs fine on Linux, Windows and MacOS, and users have tested it on other platforms as well.
See :ref:`a_started` for more details.
**Useful Links**
* Website: https://novelwriter.io
* Documentation: https://novelwriter.readthedocs.io
* Documentation: https://docs.novelwriter.io
* Public Releases: https://releases.novelwriter.io
* Internationalisation: https://crowdin.com/project/novelwriter
* Source Code: https://github.com/vkbo/novelWriter
* Source Releases: https://github.com/vkbo/novelWriter/releases
@@ -47,6 +37,11 @@ the pip tool. See :ref:`a_started` for more details.
* PyPi Project: https://pypi.org/project/novelWriter
* Social Media: https://fosstodon.org/@novelwriter
.. toctree::
:hidden:
Main Page <self>
.. toctree::
:maxdepth: 1
:caption: Introduction
@@ -55,8 +50,8 @@ the pip tool. See :ref:`a_started` for more details.
int_introduction
int_overview
int_started
int_source
int_customise
int_howto
int_glossary
.. toctree::
:maxdepth: 1
@@ -64,11 +59,11 @@ the pip tool. See :ref:`a_started` for more details.
:hidden:
usage_breakdown
usage_interface
usage_project
usage_writing
usage_format
usage_shortcuts
usage_typography
usage_projectformat
.. toctree::
:maxdepth: 1
@@ -77,14 +72,24 @@ the pip tool. See :ref:`a_started` for more details.
project_overview
project_structure
project_notes
project_export
project_references
project_manuscript
.. toctree::
:maxdepth: 1
:caption: Under the Hood
:caption: Additional Details
:hidden:
more_customise
more_projectformat
more_counting
.. toctree::
:maxdepth: 1
:caption: Technical Topics
:hidden:
tech_locations
tech_storage
tech_source
tech_tests

View File

@@ -1,65 +0,0 @@
.. _a_custom:
**************
Customisations
**************
.. _Enchant: https://abiword.github.io/enchant
.. _Free Desktop: https://cgit.freedesktop.org/libreoffice/dictionaries/tree/
There are a few ways you can customise novelWriter youself. Currently, you can add new GUI themes,
your own syntax themes, and install additional dictionaries.
.. _a_custom_dict:
Spell Check Dictionaries
========================
novelWriter uses Enchant_ as the spell checking tool. Depending on you operating system, it may or
may not load installed spell check dictionaries.
Linux
On Linux, you generally only have to install hunspell or aspell dictionaries on your system like
you do for other applications. See your distro's documentation for how to do this. These
dictionaries should then show up as available spell check languages in novelWriter.
Windows
For Windows, English is included with the installation. For other languages you have to download
and add dictionaries yourself. You can find the various dictionaries on the `Free Desktop`_
website. You should find a folder for your language, if it is available at all, and download the
files ending with ``.aff`` and ``.dic``. These files must then be copied to the following
location:
``C:\Users\<USER>\AppData\Local\enchant\hunspell``
This assumes your user profile is stored at ``C:\Users\<USER>``. The last one or two folders may
not exist, so you may need to create them.
.. _a_custom_theme:
Syntax and GUI Themes
=====================
Adding your own GUI and syntax themes is relatively easy. The themes are defined by simple plain
text config files with meta data and colour settings.
In order to make your own versions, first copy one of the existing files to your local computer and
modify it as you like.
* The existing syntax themes are stored in
`novelwriter/assets/syntax <https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/syntax>`_.
* The existing GUI themes are stored in
`novelwriter/assets/themes <https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/themes>`_.
Remember to also change the name of your theme by modifying the ``name`` setting at the top of the
file, otherwise you may not be able to distinguish them in :guilabel:`Preferences`.
For novelWriter to be able to locate the custom theme files, you must copy them to the
:ref:`a_locations_data` location in your home or user area. There should be a folder there named
``syntax`` for syntax themes and just ``themes`` for GUI themes. These folders are created the
first time you start novelWriter.
Once the files are copied there, they should show up in :guilabel:`Preferences` with the label you
set as ``name`` inside the file.

View File

@@ -0,0 +1,64 @@
.. _a_glossary:
********
Glossary
********
.. glossary::
:sorted:
Root Folder
A "Root Folder" is a top level folder of the project tree in novelWriter. Each type of root
folder has a specific icon to identify it. For an overview of available root folder types,
see :ref:`a_proj_roots`.
Novel Documents
These are documents that are created under a "Novel" :term:`Root Folder`. They behave
differently than :term:`Project Notes`, and have some more restrictions. For instance, they
can not exist in folders intended only for project notes. See the :ref:`a_struct` chapter for
more details.
Project Notes
Project Notes are unrestricted documents that can be placed anywhere in your project. You
should not use these documents for story elements, only for notes. Project notes are the
source files used by the Tags and References system. See the :ref:`a_references` chapter for
more details on how to use them.
Tag
A tag is a user defined value assigned as a tag to a section of your :term:`Project Notes`.
It is optional, and can be defined once per heading. It is set using the :term:`keyword`
syntax ``@tag: value``, where ``value`` is the user defined part. Each tag can be referenced
in another file using one of the :term:`reference` keywords. See :ref:`a_references` chapter
for more details.
Reference
A reference is one of a set of :term:`keywords<keyword>` that can be used to link to a
:term:`tag` in another document. The reference keywords are specific to the different
:term:`root folder` types. A full overview is available in the :ref:`a_references` chapter.
Project Index
The project index is a record of all headings in a project, with all their meta data like
synopsis comments, :term:`tags<tag>` and :term:`references<reference>`. The project index is
kept up to date automatically, but can also be regenerated manually from the
:guilabel:`Tools` menu or by pressing :kbd:`F9`.
Context Menu
A context menu is a menu that pops up when you right click something in the user interface.
In novelWriter, you can often also open a context menu by pressing the keyboard shortcut
:kbd:`Ctrl+.`.
Headings
Each level of headings in :term:`Novel Documents` have a specific meaning in terms of the
structure of the story. That is, they determine what novelWriter considers a partition, a
chapter, a scene or a text section. For :term:`Project Notes`, the heading levels don't
matter. For more details on headings in novel documents, see :ref:`a_struct_heads`.
Keyword
A keyword in novelWriter is a special command you put in the text of your documents. They are
not standard Markdown, but are used in novelWriter to add information that is interpreted by
the application. For instance, keywords are used for :term:`tags<tag>` and
:term:`references<reference>`.
Keywords must always be on their own line, and the first character of the line must always be
the ``@`` character. The keyword must also always be followed by a ``:`` character, and the
values passed to the command are added after this, separated by commas.

119
docs/source/int_howto.rst Normal file
View File

@@ -0,0 +1,119 @@
.. _a_howto:
*************
Tips & Tricks
*************
.. _Discussions Page: https://github.com/vkbo/novelWriter/discussions
This is a list of hopefully helpful little tips on how to get the most out of novelWriter.
.. note::
This section will be expanded over time. If you would like to have something added, feel free to
contribute, or start a discussion on the project's `Discussions Page`_.
Managing the Project
====================
.. dropdown:: How do I create a project from a template?
:animate: fade-in-slide-down
On the Welcome dialog's **Create New Project** form, you can select to "Prefill Project" from
the content of a different project. This feature is most useful if you copy a project you have
dedicated to be a template project. If you have a structure and settings you want to use for
every new project, this is the best solution.
.. dropdown:: How do I merge multiple documents into one?
:animate: fade-in-slide-down
If you need to merge a selection of documents in your project into a single document, you can
achieve this by first making a new folder for just that purpose, and drag all the documents you
want merged into this folder. Then you can right click the folder, select :guilabel:`Transform`
and :guilabel:`Merge Documents in Folder`.
In the dialog that pops up, the documents will be in the same order as in the folder, but you
can rearrange them here of you wish. See :ref:`a_ui_tree_split_merge` for more details.
.. dropdown:: How do I share status or importance labels between projects?
:animate: fade-in-slide-down
The status or importance labels you have defined in a project can be exported from **Project
Settings** from the respective configuration tabs. You can then import these labels in another
project.
Layout Tricks
=============
.. dropdown:: How do I create a table?
:animate: fade-in-slide-down
The formatting tools available in novelWriter don't allow for complex structures like tables.
However, the editor does render tabs in a similar way that regular word processors do. You can
set the width of a tab in **Preferences**.
The tab key should have the same distance in the editor as in the viewer, so you can align text
in columns using the tab key, and it should look the same when viewed next to the editor.
This is most suitable for your notes, as the result in exported documents cannot be guaranteed
to match. Especially if you don't use the same font in your manuscript as in the editor.
.. dropdown:: How do I force a line break when line breaks are ignored in my manuscript?
:animate: fade-in-slide-down
In the **Manuscript Build Settings** you can choose to ignore line breaks within paragraphs in
your text. However, some times you still need those breaks. Like for instance on the cover page
where you may need to add your name and address. In such cases, you can add ``[br]`` where you
want line breaks. These breaks cannot be ignored by any settings and will always be respected.
.. versionadded:: 2.6
.. dropdown:: How do I turn off first line indent for a specific paragraph?
:animate: fade-in-slide-down
If you have first line indent enabled, but have a specific paragraph that you don't want
indented, you can disable the indentation by explicitly adding text alignment. For instance by
adding ``<<`` to the end to left-align it. Aligned paragraphs are not indented.
See :ref:`a_fmt_align` for more details.
Organising Your Text
====================
.. dropdown:: How do I add introductory text to chapters?
:animate: fade-in-slide-down
Sometimes chapters have a short preface, like a brief piece of text or a quote to set the stage
before the first scene begins.
If you add separate files for chapters and scenes, the chapter file is the perfect place to add
such text. Separating chapter and scene files also allows you to make scene files child
documents of the chapter.
.. dropdown:: How do I distinguishing between soft and hard scene breaks?
:animate: fade-in-slide-down
Depending on your writing style, you may need to separate between soft and hard scene breaks
within chapters. Like for instance if you switch point-of-view character often.
In such cases you may want to use different scene headings for hard and soft scene breaks. The
**Build Manuscript** tool will let you define a different format for scenes using the ``###``
and ``###!`` heading codes when you generate your manuscript. You can for instance add the
common "``* * *``" for hard breaks and select to hide soft scene breaks, which will just insert
an empty paragraph in their place. See :ref:`a_manuscript_settings` for more details.
.. versionadded:: 2.4
Other Tools
===========
.. dropdown:: How do I convert my project to/from the yWriter format?
:animate: fade-in-slide-down
There is a tool available that lets you convert a `yWriter <http://spacejock.com/yWriter7.html>`_
project to a novelWriter project, and vice versa.
The tool is available at `peter88213.github.io/yw2nw <https://peter88213.github.io/yw2nw/>`__

View File

@@ -1,66 +1,116 @@
.. _a_intro:
************
********
Overview
********
.. _Snowflake: https://www.advancedfictionwriting.com/articles/snowflake-method/
.. _Markdown: https://en.wikipedia.org/wiki/Markdown
At its core, novelWriter is a multi-document plain text editor. The idea is to let you edit your
text without having to deal with formatting until you generate a draft document or manuscript.
Instead, you can focus on the writing right from the start.
Of course, you probably need *some* formatting for your text. At the very least you need emphasis.
Most people are familiar with adding emphasis using ``_underscores_`` and ``**asterisks**``. This
formatting standard comes from Markdown_ and is supported by novelWriter. It also uses Markdown
formatting for defining document headings. If you need more specialised formatting, additional
formatting options are available using a shortcode format. See :ref:`a_fmt_shortcodes` for more
details.
.. admonition:: Limitations
novelWriter is designed for writing fiction, so the formatting features available are limited to
those relevant for this purpose. It is *not* suitable for technical writing, and it is *not* a
full-featured Markdown editor.
It is also not intended as a tool for organising research for writing, and therefore lacks
formatting features you may need for this purpose. The notes feature in novelWriter is mainly
intended for character profiles and plot outlines.
Your novel project in novelWriter is organised as a collection of separate plain text documents
instead of a single, large document. The idea is to make it easier to reorganise your project
structure without having to cut and paste text between chapters and scenes.
There are two kinds of documents in your project: :term:`Novel Documents` are documents that are
part of your story. The other kind of documents are :term:`Project Notes`, which are intended for
your notes about your characters, your world building, and so on.
You can at any point split the individual documents by their headings up into multiple documents,
or merge multiple documents into a single document. This makes it easier to use variations of the
Snowflake_ method for writing. You can start by writing larger structure-focused documents, like
for instance one document per act, and later effortlessly split these up into individual chapter or
scene documents.
.. _a_intro_features:
Key Features
************
.. _Snowflake : https://www.advancedfictionwriting.com/articles/snowflake-method/
At the core, novelWriter is a multi-document plain text editor. It uses a markup syntax inspired by
Markdown to apply simple formatting to the text. It is designed for writing fiction, so the
formatting features are limited to those relevant for this purpose. It is not suitable for
technical writing.
Your novel project is organised as a collection of separate plain text documents instead of a
single, large document. The idea here is to make it easier to reorganise your project structure
without having to cut and paste text.
You can at any point split documents by their header, or merge multiple documents into single
documents. This makes it easier to use variations of the popular Snowflake_ method for writing.
============
Below are some key features of novelWriter.
**Focus on writing**
The aim of the user interface is to let the user focus on writing instead of spending time
formatting text. Formatting is therefore limited to a small set of formatting tags for simple
things like text emphasis and paragraph alignment. When you really want to focus on just
writing, you can switch the editor into :guilabel:`Focus Mode` where only the text editor window
itself is vissible.
The aim of the user interface is to let you focus on writing instead of spending time formatting
text. Formatting is therefore limited to a small set of formatting tags for simple things like
text emphasis and paragraph alignment. Additional shortcodes are available for special
formatting cases when you need them.
When you really want to focus on just writing, you can switch the editor into **Focus Mode**
where only the text editor panel itself is visible, and the project structure view is hidden
away.
**Keep an eye on your notes**
The main window can optionally show a document viewer to the right of the editor. This view
panel is intended for displaying another scene document, you character notes, plot notes, or any
other document you may need to reference while writing.
The main window can optionally show a document viewer to the right of the editor. The viewer
is intended for displaying another scene document, your character notes, plot notes, or any
other document you may need to reference while writing. It is not intended as a preview panel
for the document you're editing, but if you wish, you can also use it for this purpose.
**Organise your documents how you like**
You can split your novel project up into as many individual documents as you want to. When you
build the project, they are all glued together in the top-to-bottom order in which they appear
in the project tree. You can use as few text documents as you like, but splitting the project up
into chapters and scenes means you can easily reorder them using the drag and drop feature. You
can start out with a few documents and then later split the document into multiple documents
based on its headers.
build the project into a manuscript, they are all glued together in the top-to-bottom order in
which they appear in the project tree. You can use as few text documents as you like, but
splitting the project up into chapters and scenes means you can easily reorder them using the
drag-and-drop feature of the project tree. You can also start out with fewer documents and then
later split them into multiple documents based on chapter and scene headings.
**Keep track of your plot elements**
All notes in your project can be assigned a *tag* you can *reference* from any other document or
note. In fact, you can add a new tag under each heading of a note if you need to be able to
reference a specific section. Note tags are organised into categories with specific reference
keywords.
**Multi-novel project support**
The main parts of your project is split up into top level special folders called "Root" folders.
Your main story text lives in the "Novel" root folder. You can have multiple such folders in a
project, and rename them to whatever you want. This allows you to keep a series of individual
novels with the same characters and world building in the same project, and create manuscripts
for them separately.
**Get an overview of your plot elements**
In the :guilabel:`Outline View` on the main window you can see an outline of all the chapters,
scenes, and sections of your project. If they have any references in them, these are listed in
additional columns. You can also add a synopsis to each document, which can be listed here as
well. You have the option to add or remove columns of information from this outline. A subset of
the outline information is also available in the :guilabel:`Novel View` as a replacement for the
main project tree.
**Keep track of your story elements**
All documents in your project can be assigned a :term:`tag` that you can then :term:`reference`
from any other document or note. In fact, you can add a new tag under each heading of a note if
you need to be able to reference specific sections of it, or you want to keep several topics or
scenes in the same document.
**Building your manuscript**
Whether you want to compile a manuscript, or export all your notes, or generate an outline of
your chapters and scenes with a synopsis, you can use the :guilabel:`Build Novel Project` tool.
The tool lets you select what information you want to include in the generated document, and how
it is formatted. You can send the result to a printer, a PDF, or to an Open Document file that
can be opened by most office type word processors. You can also generate the result as HTML, or
Markdown, both suitable for further conversion to other formats.
**Get an overview of your story**
It is not the documents themselves that define the chapters and scenes of your story, but the
headings within them. In the **Outline View** on the main window you can see an outline of all
the chapter and scene headings of each novel root folder in your project. If they have any
references in them, like which character is in what chapter and scene, these are listed in
additional columns.
You can also add a synopsis to each chapter or scene, which can be listed here as well. You have
the option to add or remove columns of information from this outline. A subset of the outline
information is also available in the **Novel View** as an alternative view to the project tree.
**Get an overview of your story elements**
Under the document viewer panel you will find a series of tabs that show the different story
elements you have created tags for. The tabs are sorted into **Characters**, **Plots**, etc,
depending on which categories you are using in your story. This panel can be hidden to free up
space when you don't need it.
**Assembling your manuscript**
Whether you want to assemble a manuscript, or export all your notes, or generate an outline of
your chapters and scenes with a synopsis included, you can use the **Build Manuscript** tool to
do so. The tool lets you select what information you want to include in the generated document,
and how it is formatted. You can send the result to a printer, or generate an Open Document or
Word Document file that can be opened by most office type word processors. You can also generate
the result as HTML, or Markdown, both suitable for further conversion to other formats.
.. _a_intro_screenshots:
@@ -68,12 +118,12 @@ Below are some key features of novelWriter.
Screenshots
===========
**novelWriter with default theme:**
.. figure:: images/screenshot_light.png
:class: dark-light
.. image:: images/screenshot_default.png
:width: 800
novelWriter with light colour theme
**novelWriter with dark theme:**
.. figure:: images/screenshot_dark.png
:class: dark-light
.. image:: images/screenshot_dark.png
:width: 800
novelWriter with dark colour theme

View File

@@ -1,92 +1,88 @@
.. _a_overview:
.. _a_reading:
********
Overview
********
******************
What to Read First
******************
.. only:: html
The documentation of novelWriter is quite extensive. There are a lot of features to get used to,
but you don't need to know all of them to get started.
.. image:: images/python_powered.png
:align: right
:width: 220
The chapters below labelled "Essential Information" are the ones you need to know to use the
application correctly. By "correctly" it is meant: in a way so novelWriter understands the basic
structure of your text. It collects a lot of information from your text and uses it to display the
structure of it in various ways to help you get an overview of your writing.
novelWriter is built on `Python 3 <https://www.python.org/>`_, a cross platform programming
language that doesn't require a compiler to build and run. That means that the code can run on your
computer right out of the box, or from a zip file.
The chapters labelled "Recommended Reading" includes additional information on how the different
parts if the application work and what the features do.
While it is developed for Linux primarily, it runs just fine on Windows as well. It also works fine
on macOS, but the author is not a mac user, so support for mac is dependant on user feedback and
contributions.
In order to run novelWriter, you also need a few additional packages. The user interface is built
with `Qt 5 <https://www.qt.io/>`_, a cross platform library for building graphical user interface
applications. It also uses a third party XML package. If you want spell checking, you also need the
spell check package Enchant developed for AbiWord
For install instructions, see :ref:`a_started`.
For information on how to add spell check dictionaries, see :ref:`a_custom_dict`.
The "Optional" and "Lookup" chapters contain additional information or lookup tables that are not
essential for using the application.
Using novelWriter
=================
In order to use novelWriter effectively, you need to know the basics of how it works. The following
sections will explain the main principles. It starts with the basics, and gets more detailed as you
chapters will explain the main principles. They start with the basics, and get more detailed as you
read on.
:ref:`a_breakdown` – Essential Information
This section explains the basics of how the application works and what it can and cannot do.
This chapter explains the basics of how the application works and what it can and cannot do.
:ref:`a_ui` – Recommended Reading
This section will give you a more detailed explanation of what the various elements on the user
interface do and how you can use them more effectively.
:ref:`a_ui_project` – Recommended Reading
This chapter will give you a more detailed explanation of how you can use the user interface
components to organise and view your project work.
:ref:`a_ui_writing` – Recommended Reading
This chapter will give you a more detailed explanation of how the text editor and viewer work.
:ref:`a_fmt` – Essential Information
This section covers how you should format your text. The editor is plain text, so text
formatting requires some basic markup. The structure of your novel is also inferred by how you
use headings. Tags and references are implemented by simple codes.
This chapter covers how you should format your text. The editor is plain text, so text
formatting requires some basic markup. The structure of your novel is also inferred from how you
use headings. Tags and references are implemented by special keywords.
:ref:`a_kb` – Optional / Lookup
This section lists all the keyboard shortcuts in novelWriter and what they do. Most of the
shortcuts are also listed next to the menu items inside the app, or in tool tips, so this
section is mostly for reference.
This chapter lists all the keyboard shortcuts in novelWriter and what they do. Most of the
shortcuts are also listed next to their menu entries inside the app, or in tool tips. This
chapter is mostly for reference.
:ref:`a_typ` – Optional
This section gives you an overview of the special typographical symbols available in
This chapter gives you an overview of the special typographical symbols available in
novelWriter. The auto-replace feature can handle the insertion of standard quote symbols for
your language, and other special characters. If you use any symbols aside from these. their
your language, and other special characters. If you use any symbols aside from these, their
intended use is explained here.
:ref:`a_prjfmt` – Optional
This section is more technical and has an overview of changes made to the way your project data
is stored. The format has changed a bit from time to time, and sometimes the changes require
that you make small modifications to your project. Everything you need to know is listed in this
section.
Organising Your Projects
========================
In addition to manage a collection of plain text files, novelWriter can interpret and map the
In addition to managing a collection of plain text files, novelWriter can interpret and map the
structure of your novel and show you additional information about its flow and content. In order
to take advantage of these features, you must structure your text in a specific way and add some
meta data for it to extract.
:ref:`a_proj` – Essential Information
This section explains how you organise the content of your project, and how to set up automated
This chapter explains how you organise the content of your project, and how to set up automated
backups of your work.
:ref:`a_struct` – Essential Information
This section covers the way your novel's structure is encoded into the text documents. It
explains how the different levels of headings are used, and how you can include information
about characters, plot elements, and other meta data in your text.
This chapter covers the way your novel's structure is encoded into the text documents. It
explains how the different levels of headings are used, and some special formatting for
different kinds of headings.
:ref:`a_notes` - Recommended Reading
This section briefly describes what novelWriter does with the note files you add to your
project. Generally, the application doesn't do much with them at all aside from looking through
them for tags you've set so that it knows which file to open when you click on a reference.
:ref:`a_references` - Recommended Reading
This chapter explains how you organise your notes, and how the Tags and References system works.
This system lets you cross-link your documents in your project, and display these references in
the application interface.
:ref:`a_export` - Recommended Reading
This section explains in more detail how the build tool works. In particular how you can
control the way chapter titles are formatted, and how scene and section breaks are handled.
:ref:`a_manuscript` - Recommended Reading
This chapter explains how the **Manuscript Build** tool works, how you can control the way
chapter titles are formatted, and how scene and section breaks are handled.
Additional Details & Technical Topics
=====================================
The Additional Details and the Technical Topics sections contain more in-depth information about
how various bits of novelWriter works. This information is not essential to getting started using
novelWriter.

View File

@@ -1,61 +1,56 @@
.. _a_started:
***************
Getting Started
***************
**********************
Setup and Installation
**********************
.. _brew docs: https://docs.brew.sh/Homebrew-and-Python
.. _Enchant: https://abiword.github.io/enchant/
.. _Enchant: http://rrthomas.github.io/enchant/
.. _GitHub: https://github.com/vkbo/novelWriter
.. _macOS: https://github.com/vkbo/novelWriter/issues/867
.. _main website: https://novelwriter.io
.. _Downloads page: https://download.novelwriter.io
.. _PPA: https://launchpad.net/~vkbo/+archive/ubuntu/novelwriter
.. _Pre-Release PPA: https://launchpad.net/~vkbo/+archive/ubuntu/novelwriter-pre
.. _PyPi: https://pypi.org/project/novelWriter/
.. _python.org: https://www.python.org/downloads/windows
.. _python.org: https://www.python.org/downloads/
.. _Releases: https://github.com/vkbo/novelWriter/releases
.. _RPM: https://github.com/vkbo/novelWriter/issues/907
.. _AppImage: https://appimage.org/
If you are using Windows or a Debian-based Linux distribtuion, you can install novelWriter from
package installers. If you are on macOS, you have the option to run novelWriter from a standalone
folder. See :ref:`a_started_minimal`. This option is also available for Windows and Linux. The
third option is to install novelWriter from the Python Package Index. See :ref:`a_started_pip`.
Ready-made packages and installers for novelWriter are available for all major platforms, including
Linux, Windows and MacOS, from the `Downloads page`_. See below for additional install instructions
for each platform.
You can also install novelWriter from the Python Package Index (PyPi_). See :ref:`a_started_pip`.
Installing from PyPi does not set up icon launchers, so you will either have to do this yourself,
or start novelWriter from the command line.
Spell checking in novelWriter is provided by a third party library called Enchant_. Generally, it
should pull dictionaries from your operating system automatically. However, on Windows they must be
installed manually. See :ref:`a_custom_dict` for more details.
.. admonition:: Help Wanted
:class: seealso
If you would like to help making more installers, the project is currently looking for people
who can help make releases for Red Hat-based Linux distros (RPM) and for macOS. See the issues
posted for RPM_ and macOS_ on GitHub_.
.. _a_started_windows:
Install on Windows
==================
Installing on Windows
=====================
You can install novelWriter with both Python and library dependencies embedded using the Windows
Installer (setup.exe) file from the `main website`_, or from the Releases_ page on GitHub.
Installer (setup.exe) file from the `Downloads page`_, or from the Releases_ page on GitHub_.
Installing it should be straightforward.
If you have any issues, try uninstalling the previous version and making a fresh install. If you
already had a version installed via a different method, you should uninstall that first.
already had a version installed via a different method, you should uninstall that first as having
multiple installations has been known to cause problems.
.. _a_started_linux:
Install on Linux
================
Installing on Linux
===================
A Debian package can be downloaded from the `main website`_, or from the Releases_ page on GitHub.
This package should work on both Debian, Ubuntu and Linux Mint, at least.
A Debian package can be downloaded from the `Downloads page`_, or from the Releases_ page on
GitHub_. This package should work on both Debian, Ubuntu and Linux Mint, at least.
If you prefer, you can also add the novelWriter repository on Launchpad to your package manager.
The Launchpad packages `are signed by the author <https://launchpad.net/~vkbo>`__.
Ubuntu
@@ -69,21 +64,21 @@ You can add the Ubuntu PPA_ and install novelWriter with the following commands.
sudo apt update
sudo apt install novelwriter
If you want pre-releases, add the ``ppa:vkbo/novelwriter-pre`` repository instead.
If you want the `Pre-Release PPA`_ instead, add the ``ppa:vkbo/novelwriter-pre`` repository.
Debian and Mint
---------------
Since this is a pure Python package, the Launchpad PPA can in principle also be used on Debian or
Mint. However, the above command will fail to add the signing key.
Mint. However, the above command will fail to add the signing key, as it is Ubuntu-specific.
Instead, run the following commands to add the repository and key:
.. code-block:: bash
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/novelwriter-ppa-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys F19F1FCE50043114
echo "deb [signed-by=/usr/share/keyrings/novelwriter-ppa-keyring.gpg] http://ppa.launchpad.net/vkbo/novelwriter/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/novelwriter.list
echo "deb [signed-by=/usr/share/keyrings/novelwriter-ppa-keyring.gpg] http://ppa.launchpad.net/vkbo/novelwriter/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/novelwriter.list
Then run the update and install commands as for Ubuntu:
@@ -92,10 +87,13 @@ Then run the update and install commands as for Ubuntu:
sudo apt update
sudo apt install novelwriter
.. note::
.. tip::
If you get an error message like ``gpg: failed to create temporary file`` when importing the key
from the Ubuntu keyserver, try creating the folder it fails on, and import the key again:
Please use the Ubuntu 20.04 (focal) packages for Debian. The newer Ubuntu packages use a
different compression algorithm that Debian doesn't currently support.
.. code-block:: bash
sudo mkdir /root/.gnupg/
AppImage Releases
@@ -105,125 +103,50 @@ For other Linux distros than the ones mentioned above, the primary option is App
completely standalone images for the app that include the necessary environment to run novelWriter.
They can of course be run on any Linux distro, if you prefer this to native packages.
.. _a_started_minimal:
Minimal Package Install
=======================
On the `main website`_ and on the Releases_ page on GitHub you will also find "Minimal Package"
install files for Windows, Linux and macOS. These are zip files of just the files you need to run
novelWriter on that specific platform.
These zip files don't include any dependencies, so you must install them separately.
.. note::
novelWriter generally doesn't support Python versions that have reached end of life. If your
Linux distro still uses older Python versions and novelWriter won't run, you may want to try the
AppImage instead.
.. _a_started_minimal_windows:
.. _a_started_macos:
Minimal Package on Windows
--------------------------
Installing on MacOS
===================
First, make sure you have Python installed on your system. If you don't, you can download it from
`python.org`_. Python 3.7 or higher is required, but it is recommended that you install the latest
version.
You can install novelWriter with both its Python and library dependencies embedded using the DMG
application image file from the `Downloads page`_, or from the Releases_ page on GitHub_.
Installing it should be straightforward.
Make sure you select the "Add Python to PATH" option during installation, otherwise the ``python``
command will not work in the command line window.
* Download the DMG file and open it. Then drag the novelWriter icon to the :guilabel:`Applications`
folder on the right. This will install it into your :guilabel:`Applications`.
* The first time you try to launch it, it will say that the bundle cannot be verified, simply press
the :guilabel:`Open` button to add an exception.
* If you are not presented with an :guilabel:`Open` button in the dialog, launch the application
again by right clicking on the application in Finder and selecting :guilabel:`Open` from the
context menu.
.. figure:: images/python_win_install.png
:align: center
:width: 500
When Python is installed, extract the novelWriter zip file and move the extracted folder to a
suitable location. You should probably not keep it on your desktop or in your downloads folder
where it may be accidentally deleted. Instead, move and rename it to for instance
``C:\novelWriter``.
After you've got the folder where you want it, open it and double-click the file named
``windows_install.bat``. This will open a command line window and run the setup script to install
dependencies, and add desktop and start menu icons.
Running ``windows_uninstall.bat`` will reverse the process if you wish to uninstall. After that,
you can just delete the novelWriter folder.
.. _a_started_minimal_linux:
Minimal Package on Linux
------------------------
On Linux you need to install the following packages on Debian-based distros, including Ubuntu and
Linux Mint:
.. code-block:: bash
sudo apt install python3-pyqt5 python3-lxml python3-enchant
On Fedora, you need the following packages:
.. code-block:: bash
sudo dnf install python3-qt5 python3-lxml python3-enchant
A standard desktop launcher can be installed via the main setup script. It will create the needed
desktop file and add it to the Applications menu. The necessary icons will also be installed, and a
file association with ``.nwx`` project files added.
To set this up, run the following from inside the extracted novelWriter folder:
.. code-block:: bash
python3 setup.py xdg-install
This installs icons for the current user. Run with ``sudo`` to install system-wide.
To uninstall the icons, run:
.. code-block:: bash
python3 setup.py xdg-uninstall
.. _a_started_minimal_mac:
Minimal Package on macOS
------------------------
These instructions assume you're using brew, and have Python and pip set up. If not, see the
`brew docs`_ for help. The main requirements for novelWriter are installed via the requirements
file. You also need to install the ``pyobjc`` package, so you should run:
.. code-block:: bash
pip3 install --user -r requirements.txt
pip3 install --user pyobjc
For spell checking you may also need to install the enchant package. It comes with a lot of default
dictionaries.
.. code-block:: bash
brew install enchant
With the dependencies in place, you can launch the ``novelWriter.py`` script directly to run
novelWriter.
The context menu can also be accessed by option-clicking if you have a one button mouse. This is
done by holding down the option key on your keyboard and clicking on the application in Finder.
.. note::
Right now there isn't a better integration with macOS available. Contributions from someone more
familiar with macOS would be very much appreciated. See the macOS_ issue on GitHub.
The novelWriter DMG is not signed because Apple doesn't currently provide a way for non-profit
open source projects to properly sign their installers. The novelWriter project doesn't have the
funding to pay for a commercial software signing certificate.
.. _a_started_pip:
Install from PyPi
=================
Installing from PyPi
====================
novelWriter is also available on the Python Package Index, or PyPi_. This install method works on
all supported operating systems.
all supported operating systems with a suitable Python environment.
To install from PyPi you must first have the ``python`` and ``pip`` commands available on your
system. If you don't, see specific instructions for your operating system in this documentation on
how to get the Python environment set up.
system. You can download Python from `python.org`_. It is recommended that you install the latest
version. If you are on Windows, also make sure to select the "Add Python to PATH" option during
installation.
To install novelWriter from PyPi, use the following command:
@@ -244,7 +167,4 @@ When installing via pip, novelWriter can be launched from command line with:
novelwriter
Make sure the install location for pip is in your PATH variable. This is not always the case by
default.
.. note::
On systems with both Python 2 and 3, you may have to replace the ``pip`` command with ``pip3``.
default, and then you may get a "Not Found" error when running the ``novelwriter`` command.

View File

@@ -0,0 +1,98 @@
.. _a_counting:
********************
Word and Text Counts
********************
This is an overview of how words and other counts of your text are performed. The counting rules
should be relatively standard, and are compared to Libre Office Writer rules.
The counts provided in the app on the raw text is meant to be approximate. For more accurate
counts, you need to build your manuscript in the **Manuscript Tool** and check the counts on the
generated preview.
Text Word Counts and Stats
==========================
These are the rules for the main counts available for for each document in a project.
For all counts, the following rules apply.
#. Short (–) and long (—) dashes are considered word separators.
#. Any line starting with ``%`` or ``@`` is ignored.
#. Trailing white spaces are ignored, including line breaks.
#. Leading ``>`` and trailing ``<`` are ignored with any spaces next to them.
#. Valid shortcodes and other commands wrapped in brackets ``[]`` are ignored.
#. In-line Markdown syntax in text paragraphs is treated as part of the text.
After the above preparation of the text, the following counts are available.
**Character Count**
The character count is the sum of characters per line, including leading and in-text white space
characters, but excluding trailing white space characters. Shortcodes in the text are not
included, but Markdown codes are. Only headings and text are counted.
**Word Count**
The words count is the sum of blocks of continuous character per line separated by any number of
white space characters or dashes. Only headings and text are counted.
**Paragraph Count**
The paragraph count is the number of text blocks separated by one or more empty line. A line
consisting only of white spaces is considered empty.
Manuscript Counts
=================
These are the rules for the counts available for a manuscript in the **Manuscript Tool**. The rules
have been tuned to agree with LibreOffice Writer, but will vary slightly depending on the content
of your text. LibreOffice Writer also counts the text in the page header, which the **Manuscript
Tool** does not.
The content of each line is counted after all formatting has been processed, so the result will be
more accurate than the counts for text documents elsewhere in the app. The following rules apply:
#. Short (–) and long (—) dashes are considered word separators.
#. Leading and trailing white spaces are generally included, but paragraph breaks are not.
#. Hard line breaks within paragraph are considered white space characters.
#. All formatting codes are ignored, including shortcodes, commands and Markdown.
#. Scene and section separators are counted.
#. Comments and meta data lines are counted after they are formatted.
#. Headers are counted after they are formatted with custom formats.
The following counts are available:
**Headings**
The number of headings in the manuscript.
**Paragraphs**
The number of body text paragraphs in the manuscript.
**Words**
The number of words in the manuscript, including any comments and meta data text.
**Words in Text**
The number of words in body text paragraphs, excluding all other text.
**Words in Headings**
The number of words in headings, including inserted formatting like chapter numbers, etc.
**Characters**
The number of characters in all lines, including any comments and meta data text. Paragraph
breaks are not counted, but in-paragraph hard line breaks are.
**Character in Text**
The number of characters in body text paragraphs. Paragraph breaks are not counted, but
in-paragraph hard line breaks are.
**Characters in Headings**
The number of characters in headings.
**Character in Text, No Spaces**
The number of characters in body text paragraphs considered part of a word or punctuation. That
is, white space characters are not counted.
**Character in Headings, No Spaces**
The number of characters in headings considered part of a word or punctuation. That is, white
space characters are not counted.

View File

@@ -0,0 +1,211 @@
.. _a_custom:
**************
Customisations
**************
.. _Enchant: https://rrthomas.github.io/enchant/
.. _Free Desktop: https://cgit.freedesktop.org/libreoffice/dictionaries/tree/
There are a few ways you can customise novelWriter yourself. Currently, you can add new GUI themes,
your own syntax themes, and install additional dictionaries.
.. _a_custom_dict:
Spell Check Dictionaries
========================
novelWriter uses Enchant_ as the spell checking tool. Depending on your operating system, it may or
may not load all installed spell check dictionaries automatically.
Linux and MacOS
---------------
On Linux and MacOS, you generally only have to install hunspell, aspell or myspell dictionaries on
your system like you do for other applications. See your distro or OS documentation for how to do
this. These dictionaries should show up as available spell check languages in novelWriter.
Windows
-------
For Windows, English is included with the installation. For other languages you have to download
and add dictionaries yourself.
**Install Tool**
A small tool to assist with this can be found under **Tools > Add Dictionaries**. It will import
spell checking dictionaries from Free Office or Libre Office extensions. The dictionaries are then
installed in the install location for the Enchant library and should thus work for any application
that uses Enchant for spell checking.
**Manual Install**
If you prefer to do this manually or want to use a different source than the ones mentioned above,
You need to get compatible dictionary files for your language. You need two files files ending with
``.aff`` and ``.dic``. These files must then be copied to the following location:
``C:\Users\<USER>\AppData\Local\enchant\hunspell``
This assumes your user profile is stored at ``C:\Users\<USER>``. The last one or two folders may
not exist, so you may need to create them.
You can find the various dictionaries on the `Free Desktop`_ website.
.. note::
The Free Desktop link points to a repository, and what may look like file links inside the
dictionary folder are actually links to web pages. If you right-click and download those, you
get HTML files, not dictionaries!
In order to download the actual dictionary files, right-click the "plain" label at the end of
each line and download that.
.. _a_custom_theme:
Syntax and GUI Themes
=====================
Adding your own GUI and syntax themes is relatively easy, although it requires that you manually
edit config files with colour values. The themes are defined by simple plain text config files with
meta data and colour settings.
In order to make your own versions, first copy one of the existing files to your local computer and
modify it as you like.
* The existing syntax themes are stored in
`novelwriter/assets/syntax <https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/syntax>`_.
* The existing GUI themes are stored in
`novelwriter/assets/themes <https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/themes>`_.
* The existing icon themes are stored in
`novelwriter/assets/icons <https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/icons>`_.
Remember to also change the name of your theme by modifying the ``name`` setting at the top of the
file, otherwise you may not be able to distinguish them in **Preferences**.
For novelWriter to be able to locate the custom theme files, you must copy them to the
:ref:`a_locations_data` location in your home or user area. There should be a folder there named
``syntax`` for syntax themes, just ``themes`` for GUI themes, and ``icons`` for icon themes. These
folders are created the first time you start novelWriter.
Once the files are copied there, they should show up in **Preferences** with the label you
set as ``name`` inside the file.
.. versionadded:: 2.0
The ``icontheme`` value was added to GUI themes. Make sure you set this value in existing custom
themes. Otherwise, novelWriter will try to guess your icon theme, and may not pick the most
suitable one.
Custom GUI and Icons Theme
--------------------------
A GUI theme ``.conf`` file consists of the following settings:
.. code-block:: cfg
[Main]
name = My Custom Theme
description = A description of my custom theme
author = Jane Doe
credit = John Doe
url = https://example.com
license = CC BY-SA 4.0
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
icontheme = typicons_light
[Palette]
window = 100, 100, 100
windowtext = 100, 100, 100
base = 100, 100, 100
alternatebase = 100, 100, 100
text = 100, 100, 100
tooltipbase = 100, 100, 100
tooltiptext = 100, 100, 100
button = 100, 100, 100
buttontext = 100, 100, 100
brighttext = 100, 100, 100
highlight = 100, 100, 100
highlightedtext = 100, 100, 100
link = 100, 100, 100
linkvisited = 100, 100, 100
[GUI]
helptext = 0, 0, 0
fadedtext = 128, 128, 128
errortext = 255, 0, 0
statusnone = 120, 120, 120
statussaved = 2, 133, 37
statusunsaved = 200, 15, 39
In the Main section you must at least define the ``name`` and ``icontheme`` settings. The
``icontheme`` settings should correspond to one of the internal icon themes, either
``typicons_light`` or ``typicons_dark``, or to an icon theme in your custom icons directory. The
setting must match the icon theme's folder name.
The Palette values correspond to the Qt enum values for ``QPalette::ColorRole``, see the
`Qt documentation <https://doc.qt.io/qt-5.15/qpalette.html#ColorRole-enum>`_ for more details. The
colour values are RGB numbers on the format ``r, g, b`` where each is an integer from ``0`` to
``255``. Omitted values are not loaded and will use default values. If the ``helptext`` colour is
not defined, it is computed as a colour between the ``window`` and ``windowtext`` colour.
.. versionadded:: 2.5
The ``fadedtext`` and ``errortext`` theme colour entries were added.
Custom Syntax Theme
-------------------
A syntax theme ``.conf`` file consists of the following settings:
.. code-block:: cfg
[Main]
name = My Syntax Theme
author = Jane Doe
credit = John Doe
url = https://example.com
license = CC BY-SA 4.0
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
[Syntax]
background = 255, 255, 255
text = 0, 0, 0
link = 0, 0, 0
headertext = 0, 0, 0
headertag = 0, 0, 0
emphasis = 0, 0, 0
dialog = 0, 0, 0
altdialog = 0, 0, 0
note = 0, 0, 0
hidden = 0, 0, 0
shortcode = 0, 0, 0
keyword = 0, 0, 0
tag = 0, 0, 0
value = 0, 0, 0
optional = 0, 0, 0
spellcheckline = 0, 0, 0
errorline = 0, 0, 0
replacetag = 0, 0, 0
modifier = 0, 0, 0
texthighlight = 255, 255, 255, 128
In the Main section, you must define at least the ``name`` setting. The Syntax colour values are
RGB(A) numbers of the format ``r, g, b, a`` where each is an integer from ``0`` to ``255``. The
fourth value is the alpha channel, which can be omitted.
Omitted syntax colours default to black, except ``background`` which defaults to white, and
``texthighlight`` which defaults to white with half transparency.
.. versionadded:: 2.2
The ``shortcode`` syntax colour entry was added.
.. versionadded:: 2.3
The ``optional`` syntax colour entry was added.
.. versionadded:: 2.4
The ``texthighlight`` syntax colour entry was added.
.. versionadded:: 2.5
The ``dialog``, ``altdialog``, ``note`` and ``tag`` syntax colour entries were added.
``straightquotes``, ``doublequotes`` and ``singlequotes`` were removed.

View File

@@ -5,21 +5,20 @@ Project Format Changes
**********************
.. _File Format Spec 1.5: _static/fileformatspec15.pdf
.. _documentation: https://novelwriter.readthedocs.io
.. _documentation: https://docs.novelwriter.io/
Most of the changes to the file formats over the history of novelWriter have no impact on the
user-side of things. The project files are generally updated automatically. However, some of the
user side of things. The project files are generally updated automatically. However, some of the
changes require minor actions from the user.
The key changes in the formats are listed below, as well as the user actions required, where
applicable.
The key changes in the formats are listed in this chapter, as well as the user actions required,
where applicable.
.. only:: not html
A full project file format specification is available in the online documentation_.
.. caution::
When you update a project from one format version to the next, the project can no longer be
opened by a version of novelWriter prior to the version where the new file format was
introduced. You will get a notification about any updates to your project file format and will
@@ -29,7 +28,8 @@ applicable.
**For Developers**
A full description of the current file format is available in the `File Format Spec 1.5`_
A full description of the current file format is available in the
:download:`File Format Spec 1.5 <fileformatspec15.pdf>`
document, available as a PDF. This document is intended for contributors to novelWriter, those
building project conversion tools, either to or from tne novelWriter format, and for those who
wish to make their own templating system.
@@ -70,7 +70,7 @@ Format 1.3 Changes
This project format was introduced in novelWriter version 1.5.
With this format, the number of document layouts was reduced from 8 to 2. The conversion of
With this format, the number of document layouts was reduced from eight to two. The conversion of
document layouts is performed automatically when the project is opened.
Due to the reduction of layouts, some features that were previously controlled by these layouts
@@ -84,7 +84,7 @@ should be used only a few places in any given project. These are as follows:
* The formatting of the level one title on the title page must be changed from ``# Title Text`` to
``#! Title Text`` in order to retain the previous functionality. See :ref:`a_fmt_head`.
* Any text that was previously centred on the page must be manually centred using the new text
* Any text that was previously centred on the page must be manually centred using the text
alignment feature. See :ref:`a_fmt_align`.
**Unnumbered Chapters**

View File

@@ -1,159 +0,0 @@
.. _a_export:
***********************
Building the Manuscript
***********************
You can at any time build a manuscript, an outline of your notes, or any other type of document
from the text in your project. All of this is handled by the :guilabel:`Build Novel Project` tool.
You can activate it from the sidebar, the :guilabel:`Tools` menu, or by pressing :kbd:`F5`.
.. note::
This tool is scheduled to receive a full update in novelWriter 2.1, adding many new features
requested by users. See the `2.1 Milestone <https://github.com/vkbo/novelWriter/milestone/43>`_
for an overview.
.. _a_export_headers:
Header Formatting
=================
The titles for the five types of headings (the chapter headings come in a numbered and unnumbered
version) of story structure can be formatted collectively in the build tool. This is done through
a series of keyword–replace steps. They are all on the format ``%keyword%``.
``%title%``
This keyword will always be replaced with the title text you put after the ``#`` characters in
your document.
``%ch%``
This will be replaced by a chapter number. The number is incremented by one each time the build
tool sees a new heading of level two in a document, unless the heading formatting code has the
added ``!``. In the latter case, the counter is *not* incremented. This is useful for for
instance Prologue and Epilogue chapters.
``%chw%``
Behaves like ``%ch%``, but the number is represented as a number word. You can select between a
number of different languages.
``%chi%``
Begaves like ``%ch%``, but represented as a lower case Roman number from 1 to 4999.
``%chI%``
Behaves like ``%ch%``, but represented as an upper case Roman number from 1 to 4999.
``%sc%``
This is the number counter equivalent for scenes. These are incremented each time a heading of
level three is encountered, but reset to 1 each time a chapter is encountered. They can thus be
used for counting scenes within a chapter.
``%sca%``
Behaves like ``%sc%``, but the number is *not* reset to 1 for each chapter. Instead it runs from
1 from the beginning of the novel to produce an absolute scene count.
``\\``
This inserts a line break within the title.
.. note::
Header formatting only applies to novel documents. Headings in notes will be left as-is.
**Example**
* The format ``%title%`` just reproduces the title you set in the document.
* The format ``Chapter %ch%: %title%`` produces something like "Chapter 1: My Chapter Title".
* The format ``Scene %ch%.%sc%`` produces something like "Scene 1.2" for scene 2 in chapter 1.
.. _a_export_scenes:
Scene Separators
================
If you don't want any titles for your scenes (or for your sections if you have them), you can leave
the formatting boxes empty. If so, an empty paragraph will be inserted between the scenes or
sections instead, resulting in a gap in the text.
Alternatively, if you want a separator between them, like the common ``* * *``, you can enter the
desired separator text in the formatting box. In fact, if the format is a piece of static text, it
will always be treated as a separator.
.. _a_export_files:
File Selection
==============
Which documents and notes are selected for the build can be controlled from the options on the left
side of the dialog window. In addition, you can select to include the synopsis comments, regular
comments, keywords, and even exclude the body text itself if you just want an outline.
.. tip::
If you for instance want to export a document with an outline of the novel, you can enable
keywords and synopsis export and disable body text, thus getting a document with each heading
followed by the tags and references and the synopsis.
If you need to exclude specific documents from your exports, like draft documents or documents you
want to take out of your manuscript, but don't want to delete, you can set the documents as
"inactive" in the project tree. :guilabel:`Build Novel Project` tool has a switch to collectively
exclude inactive documents.
.. _a_export_print:
Printing
========
The print button allows you to print the content in the preview window. You can either print to one
of your system's printers, or print directly to a file as PDF. You can also print to file from the
regular print dialog. The direct to file option is just a shortcut.
.. note::
The paper format should in all cases default to whatever your system default is. Of you want to
change it, you have to select it from the :guilabel:`Print Preview`` dialog.
.. _a_export_formats:
Export Formats
==============
Currently, six formats are supported.
Open Document Format
The Build tool can produce either an ``.odt`` file, or an ``.fodt`` file. The latter is just a
flat version of the document format as a single XML file. Most rich text editors support the
former, and a few the latter.
novelWriter HTML
The HTML format writes a single ``.htm`` file with minimal style formatting. The HTML document
is suitable for further processing by document conversion tools like Pandoc, for importing in
word processors, or for printing from browser.
novelWriter Markdown
This is simply a concatenation of the project documents selected by the filters. The documents
are stacked together in the order they appear in the project tree, with comments, tags, etc.
included if they are selected. This is a useful format for exporting the project for later
import back into novelWriter.
Standard/GitHub Markdown
The Markdown format comes in both Standard and GitHub flavour. The *only* difference in terms of
novelWriter functionality is the support for strikethrough text, which is not supported by the
Standard flavour, but *is* supported by the GitHub flavour.
.. _a_export_options:
Additional Formats
==================
In addition to the above document formats, the novelWriter HTML and Markdown formats can also be
wrapped in a JSON file. These files will have a meta data entry and a body entry. For HTML, also
the accompanying css styles are included.
The text body is saved in a two-level list. The outer list contains one entry per document, in the
order they appear in the project tree. Each document is then split up into a list as well, with one
entry per paragraph it contains.
These files are mainly intended for scripted post-processing for those who want that option. A JSON
file can be imported directly into a Python dict object or a PHP array, to mentions a few options.

View File

@@ -0,0 +1,239 @@
.. _a_manuscript:
***********************
Building the Manuscript
***********************
.. _Pandoc: https://pandoc.org/
You can at any time build a manuscript, an outline of your notes, or any other type of document
from the text in your project. All of this is handled by the **Manuscript Build** tool. You can
activate it from the sidebar, the **Tools** menu, or by pressing :kbd:`F5`.
.. versionadded:: 2.1
This tool is new for version 2.1. A simpler tool was used for earlier versions. The simpler tool
only allows you to define a single set of options for the build, but otherwise had much the same
functionality.
.. _a_manuscript_main:
The Manuscript Build Tool
=========================
.. figure:: images/fig_manuscript_build.png
:width: 80%
The **Manuscript Build** tool main window.
The main window of the **Manuscript Build** tool contains a list of all the builds you have
defined, a selection of settings, and a few buttons to generate preview, open the print dialog, or
run the build to create a manuscript document.
Outline and Word Counts
-----------------------
.. figure:: images/fig_manuscript_build_outline.png
:width: 80%
The **Manuscript Build** tool main window with the **Outline** visible.
The **Outline** tab on the left lets you navigate the headings in the preview document. It will
show up to scene level headings for novel documents, and level 2 headings for notes.
A collapsible panel of word and character counts are also available below the preview document.
These are calculated from the text you have included in the document, and are more accurate counts
than what's available in the project tree since they are counted *after formatting*.
For a detailed description on how they are counted, see :ref:`a_counting`.
.. _a_manuscript_settings:
Build Settings
==============
Each build definition can be edited by opening it in the **Manuscript Build Settings** dialog,
either by double-clicking or by selecting it and pressing the edit button in the toolbar.
.. tip::
You can keep the **Manuscript Build Settings** dialog open while testing the different options,
and just hit the :guilabel:`Apply` button. You can test the result of your settings by pressing
the :guilabel:`Preview` button in the main **Manuscript Build** window. When you're happy with
the result, you can close the settings.
Document Selection
------------------
.. figure:: images/fig_build_settings_selections.png
:width: 80%
The **Selections** page of the **Manuscript Build Settings** dialog.
The **Selections** page of the **Manuscript Build Settings** dialog allows you to fine tune which
documents are included in the build. They are indicated by a green arrow icon in the last column.
On the right you have some filter options for selecting content of a specific type, and a set of
switches for which root folders to include.
You can override the result of these filters by marking one or more documents and selecting to
explicitly include or exclude them by using the buttons below the tree view. The last button can be
used to reset the override and return control to the filter settings.
In the figure, the green arrow icon and the blue pin icon indicates which documents are included,
and the red forbidden icon indicates that a document is explicitly excluded.
.. _a_manuscript_settings_head:
Formatting Headings
-------------------
.. figure:: images/fig_build_settings_headings.png
:width: 80%
The **Headings** page of the **Manuscript Build Settings** dialog.
The **Headings** page of the **Manuscript Build Settings** dialog allows you to set how the
headings in your :term:`Novel Documents` are formatted. By default, the title is just copied as-is,
indicated by the ``{Title}`` format. You can change this to for instance add chapter numbers and
scene numbers, or insert character names, like shown in the figure above.
Clicking the edit button next to a format will copy the formatting string into the edit box where
it can be modified, and where a syntax highlighter will help indicate which parts are automatically
generated by the build tool. The :guilabel:`Insert` button is a dropdown list of these formats, and
selecting one will insert it at the position of the cursor.
Any text you add that isn't highlighted in colours will remain in your formatted titles.
``{Title}`` will always be replaced by the text in the heading from your documents.
You can preview the result of these format strings by clicking :guilabel:`Apply`, and then clicking
:guilabel:`Preview` in the **Manuscript Build** tool main window.
Scene Separators
^^^^^^^^^^^^^^^^
If you don't want any titles for your scenes (or for your sections if you have them), you can leave
the formatting boxes empty. If so, an empty paragraph will be inserted between the scenes or
sections instead, resulting in a gap in the text. You can also switch on the :guilabel:`Hide`
setting, which will ignore them completely. That is, there won't even be an extra gap inserted.
Alternatively, if you want a separator text between them, like the common ``* * *``, you can enter
the desired separator text as the format. If the format is any piece of static text, it will always
be treated as a separator.
.. _a_manuscript_settings_head_hard:
Hard and Soft Scenes
^^^^^^^^^^^^^^^^^^^^
If you wish to distinguish between so-called soft and hard scene breaks, you can use the
alternative scene heading format in your text. You can then give these headings a different
formatting in the **Headings** settings.
See :ref:`a_fmt_head` for more info on how to format headings in your text.
Output Settings
---------------
The **Content**, **Format** and **Output** pages of the **Manuscript Build Settings** dialog
control a number of other settings for the output. Some of these only apply to specific output
formats, which is indicated by the section headings on the settings pages.
.. _a_manuscript_build:
Building Manuscript Documents
=============================
.. figure:: images/fig_build_build.png
:width: 80%
The **Manuscript Build** dialog used for writing the actual manuscript documents.
When you press the :guilabel:`Build` button on the **Build Manuscript** tool main window, a special
file dialog opens up. This is where you pick your desired output format and where to write the
file.
On the left side of the dialog is a list of all the available file formats, and on the right, a
list of the documents which are included based on the build definition you selected. You can choose
an output path, and set a base file name as well. The file extension will be added automatically.
To generate the manuscript document, press the :guilabel:`Build` button. A small progress bar will
show the build progress, but for small projects it may pass very fast.
File Formats
------------
Currently, four document formats are supported.
Open Document Format
The Build tool can produce either an ``.odt`` file, or an ``.fodt`` file. The latter is just a
flat version of the document format as a single XML file. Most rich text editors support the
former, and only a few the latter.
Microsoft Word Document Format
The Microsoft Word Document format writes a single ``.docx`` file. It uses a fairly basic format
that should be compatible with most rich text editors.
Portable Document Format (PDF)
The PDF is generated from a copy of the preview document, and should have the same formatting
capabilities as the preview. It's identical to what is produced if you select the print option
and print to PDF.
novelWriter HTML
The HTML format writes a single ``.htm`` file with minimal style formatting. The HTML document
is suitable for further processing by document conversion tools like Pandoc_, for importing in
word processors, or for printing from browser.
Standard/Extended Markdown
The Markdown format comes in both Standard and Extended flavour. The *only* difference in terms
of novelWriter functionality is the support for strike through text, which is not supported by
the Standard flavour.
novelWriter Markup
This is simply a concatenation of the project documents selected by the filters into a ``.txt``
file. The documents are stacked together in the order they appear in the project tree, with
comments, tags, etc. included if they are selected. This is a useful format for exporting the
project for later import back into novelWriter.
.. versionadded:: 2.6
Microsoft Word and PDF output options were added.
Additional Formats
------------------
In addition to the above document formats, the novelWriter HTML and Markup formats can also be
wrapped in a JSON file. These files will have a meta data entry and a body entry. For HTML, also
the accompanying CSS styles used by the preview are included.
The text body is saved in a two-level list. The outer list contains one entry per document, in the
order they appear in the project tree. Each document is then split up into a list as well, with one
entry per paragraph it contains.
These files are mainly intended for scripted post-processing for those who want that option. A JSON
file can be imported directly into a Python dict object or a PHP array, to mentions a few options.
.. _a_manuscript_print:
Printing
========
The :guilabel:`Print` button allows you to print the content in the preview window. You can either
print to one of your system's printers, or select PDF as your output format from the printer icon
on the print dialog.
.. note::
The paper format should in all cases default to whatever your system default is. If you want to
change it, you have to select it from the **Print Preview** dialog.

View File

@@ -1,72 +0,0 @@
.. _a_notes:
*************
Project Notes
*************
novelWriter doesn't have a database and complicated forms for filling in details about plot
elements, characters, and all sorts of additional information that isn't a part of the novel text
itself. Instead, all such information is saved in notes that are written and maintained just like
all other text in your project.
The relation between all these additional elements is extracted from the documents and notes by the
project indexer, based on the tags and references you set within them.
Using notes is not required, but making at least minimal notes for each plot element, and adding a
tag to them, makes it possible to use the Outline View to see how each element intersects with each
section of the novel itself, and adds clickable cross-references between documents in the editor
and viewer.
.. _a_notes_tags:
Tags in Notes
=============
Each new heading in a note can have a tag associated with it. The format of a tag is
``@tag: tagname``, where tagname is a unique identifier of your choosing. Tags can then be
referenced in the novel documents, or cross-referenced in other notes, and will show up in the
Outline View and in the back-reference panel when a document is opened in the viewer. See
:ref:`a_struct_tags` for how to reference notes.
The syntax highlighter will alert the user that the keyword is correctly used and that the tag is
allowed, that is, the tag is unique. Duplicate tags should be detected as long as the index is up
to date. An invalid tag should have a green wiggly line under it, and will not receive the syntax
colour that valid tags do.
The tag is the only part of these notes that the application uses. The rest of the document content
is there for the writer to use in whatever way they wish. Of course, the content of the documents
can be added to the manuscript, or an outline document. If you want to compile a single document of
all your notes, you can do this from the :guilabel:`Build Novel Project` tool.
One note can also reference another note in the same way novel documents do. When the note is
opened in the view panel, the references become clickable links, making it easier to follow
connections in the plot. Notes don't show up in the Outline View though, so referencing between
notes is only meaningful if you want to be able to click-navigate between them, or of course if you
just want to highlight that two notes are related.
.. tip::
If you cross-reference between notes and export your project as an HTML document using the
:guilabel:`Build Novel Project` tool, the cross-references become clickable links in the
exported HTML document.
Example of a project note with two headers, with separate tags, and with references to other notes:
.. code-block:: none
:linenos:
# Main Characters
## Jane Doe
@tag: Jane
@location: Earth
Something about Jane ...
## John Doh
@tag: John
@location: Mars
Something about John ...

View File

@@ -1,120 +1,130 @@
.. _a_proj:
**************
Novel Projects
**************
*****************
Managing Projects
*****************
New projects can be created from the :guilabel:`Project` menu by selecting :guilabel:`New Project`.
This will open the :guilabel:`New Project Wizard` that will assist you in creating a barebone
project suited to your needs.
Your text in novelWriter is organised into projects. Each project is meant to contain one novel
and associated notes. If you have multiple novels in a series, with the same characters and shared
notes, it is also possible to keep all of them in the same project.
.. _a_proj_new:
Creating Project
================
New projects can be created from the **Project** menu by selecting **Create or Open Project**. This
will open the **Welcome** dialog, where you can select the :guilabel:`New` button that will assist
you in creating a new project. This dialog is also displayed when you start novelWriter.
A novelWriter project requires a dedicated folder for storing its files on the local file system.
See :ref:`a_storage` for further details on how files are organised.
If you're interested in the details, you can have a look at the chapter :ref:`a_storage`.
A list of recently opened projects is maintained, and displayed in the :guilabel:`Open Project`
dialog. A project can be removed from this list by selecting it and pressing the :kbd:`Del` key or
by clicking the :guilabel:`Remove` button.
A list of recently opened projects is maintained, and displayed in the **Welcome** dialog. A
project can be removed from this list by selecting it and pressing the :kbd:`Del` key or by
right-clicking it and selecting the **Remove Project** option.
Project-specific settings are available in :guilabel:`Project Settings` in the :guilabel:`Project`
menu. See further details below in the :ref:`a_proj_settings` section. Details about the project,
including word counts, and a table of contents with word and page counts, is available through the
:guilabel:`Project Details` dialog.
.. figure:: images/fig_welcome.jpg
The project list (left) and new project form (right) of the :guilabel:`Welcome` dialog.
Project-specific settings are available in **Project Settings** in the **Project** menu. See
further details below in the :ref:`a_proj_settings` section.
Details about the project's novel text, including word counts, and a table of contents with word
and page counts, is available through the **Novel Details** dialog. Statistics about the project
is also available in the **Manuscript Build** tool.
Template Projects
-----------------
From the Welcome dialog you can also create a new from another existing project. If you have a
specific structure you want to use for all your new projects, you can create a dedicated project to
be used as a template, and select to copy an existing project from the :guilabel:"Prefill Project"
option from the **New Project** form.
.. _a_proj_roots:
Project Roots
=============
Project Structure
=================
Projects are structured into a set of top level folders called "Root Folders". They are visible in
the project tree at the left side of the main window.
The novel documents go into a root folder of type :guilabel:`Novel`. Project notes go into the
other root folders. These other root folder types are intended for your notes on the various
The :term:`novel documents` go into a root folder of type **Novel**. :term:`Project notes` go into
the other root folders. These other root folder types are intended for your notes on the various
elements of your story. Using them is of course entirely optional.
A new project may not have all of the root folders present, but you can add the ones you want from
the project tree tool bar.
Each root folder has one or more reference keyword associated with it that is used to reference
them from other documents and notes. The intended usage of each type of root folder is listed
below. However, aside from the :guilabel:`Novel` folder, no restrictions are applied by the
Each root folder has one or more :term:`reference` :term:`keyword` associated with it that is used
to reference them from other documents and notes. The intended usage of each type of root folder is
listed below. However, aside from the **Novel** folder, no restrictions are applied by the
application on what you put in them. You can use them however you want.
.. tip::
You can make multiple root folders of each kind if you wish to split up your notes.
The root folder system is closely connected to how the Tags and References system works. For more
details, see the :ref:`a_references` chapter.
.. note::
It is not the notes themselves that are referenced by the listed reference keywords, but tags
set within the notes. See the examples below and in :ref:`a_struct_tags`.
:guilabel:`Novel`
This is the root folder of all text that goes into the final novel or novels. This class of
Root Folder Types
-----------------
**Novel**
This is the root folder type for text that goes into the final novel or novels. This class of
documents have other rules and features than the project notes. See :ref:`a_struct` for more
details.
:guilabel:`Plot`
This is the root folder where main plots can be outlined. It is optional, but adding at least
brief notes can be useful in order to tag plot elements for the Outline View. Tags in this
folder can be references using the ``@plot`` keyword.
**Plot**
This is the root folder type where main plots can be outlined. It is optional, but adding at
least brief notes can be useful in order to tag plot elements for the **Outline View**. Tags in
this folder can be references using the ``@plot`` keyword.
:guilabel:`Characters`
Character notes go in this root folder. These are especially important if you want to use the
Outline View to see which character appears where, and which part of the story is told from a
specific character's point-of-view, or focusing on a particular character's storyline. Tags in
this folder can be referenced using the ``@pov`` keyword for point-of-view characters,
``@focus`` for a focus character, or the ``@char`` keyword for any other characters.
**Characters**
Character notes go in this root folder type. These are especially important if you want to use
the **Outline View** to see which character appears where, which part of the story is told from
a specific character's point-of-view, or focusing on a particular character's storyline.
:guilabel:`Locations`
The locations folder is for various scene locations that you want to track. Tags in this folder
can be references using the ``@location`` keyword.
The character names can also be inserted into for instance chapter titles when you create your
manuscript. Tags in this type of folder can be referenced using the ``@pov`` keyword for
point-of-view characters, ``@focus`` for a focus character, or the ``@char`` keyword for any
other character present.
:guilabel:`Timeline`
If the story has multiple plot timelines or jumps in time within the same plot, this class of
notes can be used to track this. Tags in this folder can be references using the ``@time``
**Locations**
The locations folder type is for various scene locations that you want to track. Tags in this
folder can be references using the ``@location`` keyword.
**Timeline**
If the story has multiple plot timelines or jumps in time within the same plot, this folder type
can be used to track this. Tags in this type of folder can be references using the ``@time``
keyword.
:guilabel:`Objects`
Important objects in the story, for instance important objects that change hands often, can be
tracked here. Tags in this folder can be references using the ``@object`` keyword.
**Objects**
Important objects in the story, for instance physical objects that change hands often, can be
tracked here. Tags in this type of folder can be references using the ``@object`` keyword.
:guilabel:`Entities`
**Entities**
Does your plot have many powerful organisations or companies? Or other entities that are part of
the plot? They can be organised here. Tags in this folder can be references using the
the plot? They can be organised here. Tags in this type of folder can be references using the
``@entity`` keyword.
:guilabel:`Custom`
The custom root folder can be used for tracking anything else not covered by the above options.
Tags in this folder can be references using the ``@custom`` keyword.
**Custom**
The custom root folder type can be used for tracking anything else not covered by the above
options. Tags in this folder type can be references using the ``@custom`` keyword.
The root folders correspond to the categories of tags that can be used to reference them. For more
information about the tags listed, see :ref:`a_struct_tags`.
The root folders are closely tied to the tags and reference system. Each folder type corresponds to
categories of tags that can be used to reference them. For more information about the tags listed,
see :ref:`a_references_references`.
There is also a ``@mention`` keyword that can be used to reference any tag.
See :ref:`a_references_references` for more details.
.. note::
You can rename root folders to whatever you want. However, this doesn't change the reference
keyword.
Example of a character note:
.. code-block:: none
:linenos:
# Jane Doe
@tag: Jane
Some information about the character Jane Doe.
Example of a novel scene referencing the above character:
.. code-block:: none
:linenos:
### Chapter 1, Scene 1
@pov: Jane
When Jane woke up that morning ...
keyword or what they do.
.. _a_proj_roots_del:
@@ -122,13 +132,12 @@ Example of a novel scene referencing the above character:
Deleted Documents
-----------------
Deleted documents will be moved into a special :guilabel:`Trash` root folder. Documents in the
trash folder can then be deleted permanently, either individually, or by emptying the trash from
the menu. Documents in the trash folder are removed from the project index and cannot be
referenced.
Deleted documents are moved into a special **Trash** root folder. Documents in the trash folder can
then be deleted permanently, either individually, or by emptying the trash from the menu. Documents
in the trash folder are removed from the :term:`project index` and cannot be referenced.
A document or a folder can be deleted from the :guilabel:`Project` menu, or by pressing
:kbd:`Ctrl`:kbd:`Shift`:kbd:`Del`. Root folders can only be deleted when they are empty.
A document or a folder can be moved to trash from the **Project** menu, or by pressing
:kbd:`Ctrl+Shift+Del`. Root folders can only be removed when they are empty.
.. _a_proj_roots_out:
@@ -136,60 +145,14 @@ A document or a folder can be deleted from the :guilabel:`Project` menu, or by p
Archived Documents
------------------
If you don't want to delete a document, or put it in the :guilabel:`Trash` folder where it may be
deleted, but still want it out of your main project tree, you can create an :guilabel:`Archive`
root folder.
If you don't want to delete a document, or put it in the **Trash** folder where it may be deleted
accidentally, but still want it out of your main project tree, you can create an **Archive** root
folder instead and move it there. It has the same effect as moving it to **Trash**, but it is safe
from deletion.
You can drag any document to this folder and preserve its settings. The document will always be
excluded from the :guilabel:`Build Novel Project` builds. It is also removed from the project
index, so the tags and references defined in it will not show up anywhere else.
.. _a_proj_roots_orph:
Recovered Documents
-------------------
If novelWriter crashes or otherwise exits without saving the project state, or if you're using a
file synchronisation tool that runs out of sync, there may be files in the project folder that
aren't tracked in the core project file. These files, when discovered, are recovered and added back
into the project if possible.
The discovered files are scanned for meta information that give clues as to where the document may
previously have been located in the project. The project loading routines will try to put them back
as close as possible to this location, if it still exists. Generally, it will be appended to the
end of the folder where it previously was located. If that folder doesn't exist, it will try to add
it to the correct root folder. If it cannot figure out which root folder is correct, the document
will be added to the :guilabel:`Novel` root folder. Only if the :guilabel:`Novel` folder is
missing will it give up.
If the title of the document can be recovered, the word "Recovered:" will be added as a prefix. If
the title cannot be determined, the document will be named "Recovered File N" where N is a
sequential number.
.. _a_proj_roots_lock:
Project Lockfile
----------------
To prevent lost documents caused by file conflicts when novelWriter projects are synced with file
synchronisation tools, a project lockfile is written to the project folder. If you try to open a
project which has such a file present, you will be presented with a warning, and some information
about where else novelWriter thinks the project is also open. You will be give the option to ignore
this warning, and continue opening the project at your own risk.
.. note::
If, for some reason, novelWriter crashes, the lock file may remain even if there are no other
instances keeping the project open. In such a case it is safe to ignore the lock file warning
when re-opening the project.
.. warning::
If you choose to ignore the warning and continue opening the project, and multiple instances of
the project are in fact open, you are likely to cause inconsistencies and create diverging
project files, potentially resulting in loss of data and orphaned files. You are not likely to
lose any actual text unless both instances have the same document open in the editor, and
novelWriter will try to resolve project inconsistencies the next time you open the project.
excluded from the **Build Manuscript** tool. It is also removed from the :term:`project index`, so
the tags and references defined in it will not show up anywhere else.
.. _a_proj_roots_dirs:
@@ -197,19 +160,68 @@ this warning, and continue opening the project at your own risk.
Using Folders in the Project Tree
---------------------------------
Folders, aside from root folders, have no structural significance to the project. When novelWriter
is processing the documents in the novel, like for instance during export, these folders are
ignored. Only the order of the documents themselves matter.
Regular folders, those that are not root folders, have no structural significance to the project.
When novelWriter is processing the documents in a project, like for instance when you create a
manuscript from it, these folders are ignored. Only the order of the documents themselves matter.
The folders are there purely as a way for the user to organise the documents in meaningful sections
and to be able to collapse and hide them in the project tree when you're not working on those
The folders are there purely as a way for you to organise the documents in meaningful sections and
to be able to collapse and hide them in the project tree when you're not working on those
documents.
.. tip::
You can add child documents to other documents. This is particularly useful when you create
chapters and scenes. If you add separate scene documents, you should also add separate chapter
documents, even if they only contain a chapter heading. You can then add scene documents as
child items to the chapters.
In addition to using folders. it is also possible to add child documents to other documents. This
is particularly useful when you create chapters and scenes. If you add separate scene documents,
you should also add separate chapter documents, even if they only contain a chapter heading. You
can then add scene documents as child items to the chapters.
.. _a_proj_roots_orphaned:
Recovered Documents
-------------------
If novelWriter crashes or otherwise exits without saving the project state, or if you're using a
file synchronisation tool that runs out of sync, there may be files in the project storage folder
that aren't tracked in the core project file. These files, when discovered, are recovered and added
back into the project when a project is opened.
The discovered files are scanned for metadata that give clues as to where the document may
previously have been located in the project. The project loading routine will try to put them back
as close as possible to this location, if it still exists. Generally, it will be appended to the
end of the folder where it previously was located. If that folder doesn't exist, it will try to add
it to the correct root folder type. If it cannot figure out which root folder is correct, the
document will be added to the **Novel** root folder. Finally, if a **Novel** does not exist, one
will be created.
If the title of the document can be recovered, the word "Recovered:" will be added as a prefix to
indicate that it may need further attention. If the title cannot be determined, the document will
be named after its internal key, which is a string of characters and numbers.
.. _a_proj_roots_lock:
Project Lockfile
----------------
To prevent data loss caused by file conflicts when novelWriter projects are synchronised via file
synchronisation tools, a project lockfile is written to the project storage folder when a project
is open. If you try to open a project which already has such a file present, you will be presented
with a warning, and some information about where else novelWriter thinks the project is also open.
You will be given the option to ignore this warning, and continue opening the project at your own
risk.
.. note::
If, for some reason, novelWriter or your computer crashes, the lock file may remain even if
there are no other instances keeping the project open. In such a case it is safe to ignore the
lock file warning when re-opening the project.
.. warning::
If you choose to ignore the warning and continue opening the project, and multiple instances of
the project are in fact open, you are likely to cause inconsistencies and create diverging
project files, potentially resulting in loss of data and orphaned files. You are not likely to
lose any actual text unless both instances have the same document open in the editor, and
novelWriter will try to resolve project inconsistencies the next time you open the project.
.. _a_proj_files:
@@ -217,15 +229,28 @@ documents.
Project Documents
=================
New documents can be created from the tool bar in the Project Tree, or by pressing
:kbd:`Ctrl`:kbd:`N`. This will open the create new item menu and let you choose between a number of
pre-defined documents and folders. You will be prompted for a label for the new item. You can
always rename an item by selecting :guilabel:`Rename Item` from the :guilabel:`Project` menu, or by
pressing :kbd:`F2`.
New documents can be created from the toolbar in the project tree, or by pressing :kbd:`Ctrl+N`.
This will open the create new item menu and let you choose between a number of pre-defined
documents and folders. You will be prompted for a label for the new item.
Other settings for project items are available from the context menu that you can activate by
right-clicking on an item in the Project Tree. The :guilabel:`Transform` submenu includes options
for converting, splitting, or merging items.
You can always rename an item by selecting **Rename Item** from the **Project** menu, or by
pressing :kbd:`F2` when a document or folder is selected.
Other settings for project documents and folders are available from the context menu that you can
activate by right-clicking on an it in the tree. The **Transform** submenu includes options for
converting, splitting, or merging documents. See :ref:`a_ui_tree_split_merge` for more details on
the latter two.
Document Templates
------------------
If you wish to create template documents to be used when creating new project documents, like for
instance a character note template, you can add a **Templates** root folder to your project. Any
document added to this root folder will show up in the **Add Item** menu in the project tree
toolbar. When selected, a new document is created with its content copied from the chosen template.
.. versionadded:: 2.3
.. _a_proj_files_counts:
@@ -234,17 +259,20 @@ Word Counts
-----------
A character, word and paragraph count is maintained for each document, as well as for each section
of a document following a header. The word count and change of words in the current session is
displayed in the footer of any document open in the editor, and all stats are shown in the details
panel below the project tree for any document selected in the project or novel tree.
of a document following a :term:`heading<headings>`. The word count and change of words in the
current session is displayed in the footer of any document open in the editor, and all stats are
shown in the details panel below the project tree for any document selected in the project or novel
trees.
The word counts are not updated in real time, but run in the background every few seconds for as
long as the document is being actively edited.
A total project word count is displayed in the status bar. The total count depends on the sum of
the values in the project tree, which again depend on an up to date index. If the counts seem
wrong, a full project word recount can be initiated by rebuilding the project's index. Either form
the :guilabel:`Tools` menu, or by pressing :kbd:`F9`.
the values in the project tree, which again depend on an up to date :term:`project index`. If the
counts seem wrong, a full project word recount can be initiated by rebuilding the project's index.
Either from the **Tools** menu, or by pressing :kbd:`F9`.
The rules for how the counts are made is covered in more detail in :ref:`a_counting`.
.. _a_proj_settings:
@@ -252,45 +280,51 @@ the :guilabel:`Tools` menu, or by pressing :kbd:`F9`.
Project Settings
================
The :guilabel:`Project Settings` can be accessed from the :guilabel:`Project` menu, or by pressing
:kbd:`Ctrl`:kbd:`Shift`:kbd:`,`. This will open a dialog box, with a set of tabs.
The **Project Settings** can be accessed from the **Project** menu, or by pressing
:kbd:`Ctrl+Shift+,`. This will open a dialog box, with a set of tabs.
Settings Tab
------------
The :guilabel:`Settings` tab holds the project name, title, and author settings.
The **Settings** tab holds the project name, author, and language settings.
The :guilabel:`Project Name` can be set to a different value than the :guilabel:`Novel Title`. The
difference between them is simply that the :guilabel:`Project Name` is used for the GUI (main
window title) and for generating the backup files. The intention is that the
:guilabel:`Project Name` should remain unchanged throughout the project's lifetime, otherwise the
name of exported files and backup files may change too.
The **Project Name** can be edited here. It is used for the main window title and for generating
backup files. So keep in mind that if you do change this setting, the backup file names will change
too.
The :guilabel:`Novel Title` and :guilabel:`Authors` settings are used when building the manuscript,
for some formats.
You can also change the **Authors** and **Project Language** setting. These are only used when
building the manuscript, for some formats. The language setting is also used when inserting text
into documents in the viewer, like for instance labels for keywords and special comments.
If your project is in a different language than your main spell checking is set to, you can
override the default spell checking language here. You can also override the automatic backup
setting.
If your project is in a different language than your main spell checking language is set to, you
can override the default setting here. The project language can also be changed from the **Tools**
menu.
You can also override the automatic backup setting for the project if you wish.
Status and Importance Tabs
--------------------------
Each document or folder of type :guilabel:`Novel` can be given a *Status*_* label accompanied by a
coloured icon, and each document or folder of the remaining types can be given an *Importance*
label.
Each document or folder of type **Novel** can be given a "Status" label accompanied by a coloured
icon with an optional shape selected from a list of pre-defined shapes. Each document or folder of
the remaining types can be given an "Importance" label with the same customisation options.
These are purely there for the user's convenience, and you are not required to use them for any
These labels are there purely for your convenience, and you are not required to use them for any
other features to work. No other part of novelWriter accesses this information. The intention is to
use these to indicate at what stage of completion each novel document is, or how important the
content of a note is to the story. You don't have to use them this way, that's just what they were
intended for, but you can make them whatever you want.
Both status and importance labels can be exported and imported so you can share them between
projects, or define a standard set for all your writing projects. When you import labels to a
project, they are always added as *new* labels.
See also :ref:`a_ui_tree_status`.
.. note::
The status or importance level currently in use by one or more documents cannot be deleted, but
they can be edited.
@@ -302,7 +336,7 @@ A set of automatically replaced keywords can be added in this tab. The keywords
will be replaced by the text in the right column when documents are opened in the viewer. They will
also be applied to manuscript builds.
The auto-replace feature will replace text in angle brackets that are in this list. The syntax
The auto-replace feature will replace text in angle brackets that is in this list. The syntax
highlighter will add an alternate colour to text matching the syntax, but it doesn't check if the
text is in this list.
@@ -318,22 +352,22 @@ Backup
======
An automatic backup system is built into novelWriter. In order to use it, a backup path to where
the backup files are to be stored must be provided in :guilabel:`Preferences`.
the backup files are to be stored must be provided in **Preferences**. The path defaults to a
folder named "Backups" in your home directory.
Backups can be run automatically when a project is closed, which also implies it is run when the
application itself is closed. Backups are date stamped zip files of the project files in the
project folder (files not strictly a part of the project are ignored). The zip archives are stored
in a subfolder of the backup path. The subfolder will have the same name as the
:guilabel:`Project Name` as defined in :ref:`a_proj_settings`.
in a subfolder of the backup path. The subfolder will have the same name as the **Project Name** as
defined in :ref:`a_proj_settings`.
The backup feature, when configured, can also be run manually from the :guilabel:`Tools` menu.
It is also possible to disable automated backups for a given project in
:guilabel:`Project Settings`.
The backup feature, when configured, can also be run manually from the **Tools** menu. It is also
possible to disable automated backups for a given project in **Project Settings**.
.. note::
For the backup to be able to run, the :guilabel:`Project Name` must be set in
:guilabel:`Project Settings`. This value is used to generate the folder name for the zip files.
Without it, the backup will not run at all, but it will produce a warning message.
For the backup to be able to run, the **Project Name** must be set in **Project Settings**. This
value is used to generate the name and path of the backups. Without it, the backup will not run
at all, but it will produce a warning message.
.. _a_proj_stats:
@@ -343,19 +377,33 @@ Writing Statistics
When you work on a project, a log file records when you opened it, when you closed it, and the
total word counts of your novel documents and notes at the end of the session, provided that the
session lasted either more than 5 minutes, or that the total word count changed. You can view this
file in the ``meta`` folder in the directory where you saved your project. The file is named
``sessionStats.log``.
session lasted either more than 5 minutes, or that the total word count changed. For more details
about the log file, see :ref:`a_storage`.
A tool to view the content of this file is available in the :guilabel:`Tools` menu under
:guilabel:`Writing Statistics`. You can also launch it by pressing :kbd:`F6`, or find it on the
Sidebar.
A tool to view the content of the log file is available in the **Tools** menu under **Writing
Statistics**. You can also launch it by pressing :kbd:`F6`, or find it on the sidebar.
The tool will show a list of all your sessions, and a set of filters to apply to the data. You can
also export the filtered data to a JSON file or to a CSV file that can be opened by a spreadsheet
application like for instance Libre Office Calc.
application like for instance Libre Office Calc or Excel.
As of version 1.2, the log file also stores how much of the session time was spent idle. The
definition of idle here is that the novelWriter main window loses focus, or the user hasn't made
any changes to the currently open document in five minutes. The number of minutes can be altered in
:guilabel:`Preferences`.
.. versionadded:: 1.2
As of version 1.2, the log file also stores how much of the session time was spent idle. The
definition of idle here is that the novelWriter main window loses focus, or the user hasn't made
any changes to the currently open document in five minutes. The number of minutes can be altered
in **Preferences**.
Session Timer
-------------
A session timer is by default visible in the status bar. The icon will show you a clock icon when
you are active, and a pause icon when you are considered "idle" per the criteria mentioned above.
If you do not wish to see the timer, you can click on it once to hide it. The icon will still be
visible. Click the icon once more to display the timer again.
.. versionadded:: 2.6
As of version 2.6, clicking the timer text or icon in the status bar will toggle its visibility.

View File

@@ -0,0 +1,244 @@
.. _a_references:
*******************
Tags and References
*******************
In novelWriter there are no forms or tables to fill in to define characters, locations or other
elements of your story. Instead, you create :term:`project notes` which you can mark as
representing these story elements by creating a :term:`tag`. Whenever you want to link a piece of
your story to a note defining a story element, like a character, you create a :term:`reference`
back to that tag. You can also cross-link your project notes in the same way.
This is perhaps one of the features that makes novelWriter different from other, similar
applications. It is therefore not always obvious to new users how this is supposed to work, so
this chapter hopes to explain in more detail how to use this tags and references system.
.. tip::
If you find the Tags and Reference system difficult to follow just from reading this chapter,
you can create a new project in the **Welcome** dialog's New project form and select "Create an
example project" from the "Pre-fill project" option. The example project contains several
examples of tags and references.
.. _a_references_metadata:
Metadata in novelWriter
=======================
The structure of your novelWriter project is inferred from the :term:`headings` within the
documents, not the documents themselves. See :ref:`a_struct_heads` for more details. Therefore,
metadata is also associated with headings, and not the documents directly.
If you split your project into separate documents for each scene, this distinction may not matter.
However, there are several benefits to using documents at a larger structural scale when first
starting your project. For instance, it may make more sense to define all your scenes, and even
chapters, in a single document at first, or perhaps a document per act. You can later split these
documents up using the document split feature. See :ref:`a_ui_tree_split_merge` for more details.
You can do the same with your notes. You can treat each heading as an independent element of your
notes that can be referenced somewhere else. That way you can collect all your minor or background
characters in a single note file, and still be able to reference them individually by separating
them with headings and assigning each a tag. Or, you can lay out your plot in a single document and
have a tag for each plot stage under separate headings.
.. _a_references_tags:
How to Use Tags
===============
A "tag" in novelWriter is a word or phrase that you define as belonging to a heading. Tags are set
by using the ``@tag`` :term:`keyword`.
The basic format of a tag is ``@tag: tagName``.
An alternative format of a tag is ``@tag: tagName | displayName``.
``tagName`` (Required)
This is a unique identifier of your choosing. It is the value you use later for making
references back to this document, or section of the document.
``displayName`` (Optional)
This is an optional display name used for the tag. When you build your manuscript, you can for
instance insert the point of view character name directly into chapter headings. By default, the
``tagName`` value is used in such headings, but if you use a shortened format internally in your
project, you can use this to specify a more suitable format for your manuscript headings.
You can only set **one** tag per heading, and the tag has to be unique across **all** documents in
the project.
After a tag has been defined, it can be referenced in novel documents, or cross-referenced in other
notes. Tags will also show up in the **Outline View** and in the references panel under the
document viewer when a document is open in the viewer.
The syntax highlighter will indicate to you that the keyword is correctly used and that the tag is
allowed, that is, the tag is unique. Duplicate tags should be detected as long as the index is up
to date. An invalid tag should have a green wiggly line under it, and will not receive the colour
that valid tags do.
The tag is the only part of these notes that novelWriter uses. The rest of the document content is
there for you to use in whatever way you wish. Of course, the content of the documents can be added
to the manuscript, or an outline document. If you want to compile a single document of all your
notes, you can do this from the **Manuscript Build** tool.
.. versionadded:: 2.2
Tags are no longer case sensitive. The tags are by default displayed with the capitalisation you
use when defining the tag, but you don't have to use the same capitalisation when referencing
it later.
.. versionadded:: 2.3
Tags can have an optional display name for manuscript builds.
.. versionadded:: 2.6
You can now add tags also to Novel Documents. These can be used for cross-referencing between
chapters and scenes, and also from notes if desired.
Example of a heading with a tag for a character of the story:
.. code-block:: md
# Character: Jane Doe
@tag: Jane | Jane Doe
Some information about the character Jane Doe.
When this is done in a document in a :term:`Root Folder` of type "Characters", the tag is
automatically treated as an available character in your project with the value "Jane", and you will
be able to reference it in any of your other documents using the reference keywords for characters.
It will also show up in the Character tab in the Reference panel below the document viewer, and in
the reference auto-completer menu in the editor when you fill in references. See :ref:`a_ui_view`
and :ref:`a_references_completer`.
It is the root folder type that defines what category of story elements the tag is indexed under.
See the :ref:`a_proj_roots` section for an overview of available root folder types. They are also
covered in the next section.
.. _a_references_references:
How to Use References
=====================
Each heading of any level in your project can contain references to tags set in project notes. The
references are gathered by the indexer and used to generate the **Outline View**, among other
things.
References are set as a :term:`keyword` and a list of corresponding tags. The valid keywords are
listed below. The format of a reference line is ``@keyword: value1, [value2] ... [valueN]``. All
reference keywords allow multiple values.
``@pov``
The point-of-view character for the current section. The target must be a note tag in a
**Character** type root folder.
``@focus``
The character that has the focus for the current section. This can be used in cases where the
focus is not a point-of-view character. The target must be a note tag in a **Character** type
root folder.
``@char``
Other characters in the current section. The target must be a note tag in a **Character** type
root folder. This should not include the point-of-view or focus character if those references
are used.
``@plot``
The plot or subplot advanced in the current section. The target must be a note tag in a **Plot**
type root folder.
``@time``
The timelines touched by the current section. The target must be a note tag in a **Timeline**
type root folder.
``@location``
The location the current section takes place in. The target must be a note tag in a
**Locations** type root folder.
``@object``
Objects present in the current section. The target must be a note tag in a **Object** type root
folder.
``@entity``
Entities present in the current section. The target must be a note tag in an **Entities** type
root folder.
``@custom``
Custom references in the current section. The target must be a note tag in a **Custom** type
root folder. The custom folder are for any other category of notes you may want to use.
``@mention``
Anything mentioned, but not present in the current section. It is intended for those cases where
you reveal details about a character or place in a scene without it being otherwise a part of
it. This can be useful when checking for consistency later. Any tag in any root note folder can
be listed under mentions.
``@story``
This is used when referencing a Novel Document, like a scene or chapter, from somewhere else in
your project.
The syntax highlighter will alert the user that the tags and references are used correctly, and
that the tags referenced exist.
.. note::
The highlighter may be mistaken if the index of defined tags is out of date. If so, press
:kbd:`F9` to regenerate it, or select **Rebuild Index** from the **Tools** menu. In general, the
index for a document is regenerated when it is saved, so this shouldn't normally be necessary.
.. tip::
If you add a reference in the editor to a tag that doesn't yet exist, you can right-click it and
select **Create Note for Tag**. This will generate a new project note automatically with the new
tag defined. In order for this to be possible, a root folder for that category of references
must already exist.
One note can also reference another note in the same way novel documents do. When the note is
opened in the document viewer, the references become clickable links, making it easier to follow
connections in the plot. You can follow links in the document editor by clicking them with the
mouse while holding down the :kbd:`Ctrl` key. Clicked links are always opened in the view panel.
Project notes don't show up in the **Outline View**, so referencing between notes is only
meaningful if you want to be able to click-navigate between them, or of course if you just want to
highlight that two notes are related.
.. tip::
If you cross-reference between notes and export your project as an HTML document using the
**Manuscript Build** tool, the cross-references become clickable links in the exported HTML
document as well.
Example of a novel document with references to characters and plots:
.. code-block:: md
## Chapter 1
@pov: Jane
### Scene 1
@char: John, Sam
@plot: Main
Once upon a time ...
.. _a_references_completer:
The References Auto-Completer
-----------------------------
An auto-completer context menu will show up automatically in the document editor when you type the
character ``@`` on a new line. It will first suggest tag or reference keywords for you to add, and
after the ``:`` has been added, suggest references from the list of tags you have already defined.
You can use the auto-completer to add multiple references with a ``,`` between them, and even type
new ones. New references can be created by right-clicking on them and selecting **Create Note for
Tag** from the menu.
.. versionadded:: 2.2

View File

@@ -4,10 +4,15 @@
Novel Structure
***************
This section covers the structure of a novel project.
This chapter covers the structure of a novel project.
It concerns documents under the :guilabel:`Novel` type root folder only. There are some
restrictions and features that only apply to these types of documents.
There are two different types of documents in a project, **Novel Documents** and **Project Notes**.
Active novel documents can only live in a **Novel** type root folder. You can also move them to
**Archive** and **Trash** of course, where they become inactive.
The project tree can distinguish between the different heading levels of the novel documents using
coloured icons, and optionally add emphasis on the label. Emphasis can be enabled in
**Preferences**.
.. _a_struct_heads:
@@ -16,51 +21,64 @@ Importance of Headings
======================
Subfolders under root folders have no impact on the structure of the novel itself. The structure is
instead dictated by the heading level of the headers within the documents.
instead dictated by the heading level of the headings within the documents.
Four levels of headings are supported, signified by the number of hashes (``#``) preceding the
title. See also the :ref:`a_fmt` section for more details about the markdown syntax.
title. See also the :ref:`a_fmt` section for more details about the markup syntax.
.. note::
The header levels are not only important when generating the manuscript, they are also used by
the indexer when building the outline tree in the Outline as well as the Novel Tree. Each
heading also starts a new region where new references and tags can be defined.
The syntax for the four basic header types, and the two special header types, is listed in section
The heading levels are not only important when generating the manuscript, they are also used by
the indexer when building the outline tree in the **Outline View** as well as in the **Novel
Tree**. Each heading also starts a new region where new Tags and References can be defined. See
:ref:`a_references` for more details.
The syntax for the four basic heading types, and the three special types, is listed in section
:ref:`a_fmt_head`. The meaning of the four levels for the structure of your novel is as follows:
**Header Level 1: Partition**
This header level signifies that the text refers to a top level partition. This is useful when
**Heading Level 1: Partition**
This heading level signifies that the text refers to a top level heading. This is useful when
you want to split the manuscript up into books, parts, or acts. These headings are not required.
The novel title itself should use the special header level explained in :ref:`a_fmt_head`.
The novel title itself should use the special heading level ``#!`` covered in :ref:`a_fmt_head`.
**Header Level 2: Chapter**
This header level signifies a chapter level partition. Each time you want to start a new
chapter, you must add such a heading. If you choose to split your manuscript up into one
document per scene, you need a single chapter document with just the heading. You can of course
also add a synopsis and reference keywords to the chapter document. If you want to open the
chapter with a quote or other introductory text that isn't part of a scene, this is also where
you'd put that text.
**Heading Level 2: Chapter**
This heading level signifies a chapter. Each time you want to start a new chapter, you must add
such a heading. If you choose to split your manuscript up into one document per scene, you need
a single chapter document with just the heading. You can of course also add a synopsis and
reference keywords to the chapter document. If you want to open the chapter with a quote or
other introductory text that isn't part of a scene, this is also where you'd put that text.
**Header Level 3: Scene**
This header level signifies a scene level partition. You must provide a title text, but the
title text can be replaced with a scene separator or just skipped entirely when you build your
manuscript.
**Heading Level 3: Scene**
This heading level signifies a scene. You must provide a title text, but the title text can be
replaced with a scene separator or just skipped entirely when you build your manuscript. If you
need to distinguish between hard and soft scene breaks, there is an alternative format for
scenes you can use for this distinction. The formatting is covered in :ref:`a_fmt_head`. See
also :ref:`a_struct_heads_scenes`.
**Header Level 4: Section**
This header level signifies a sub-scene level partition, usually called a "section" in the
documentation and the user interface. These can be useful if you want to change tag references
**Heading Level 4: Section**
This heading level can be used to split up a scene, usually called a "section" in the
documentation and the user interface. These can be useful if you want to change references
mid-scene, like if you change the point-of-view character. You are free to use sections as you
wish, and you can filter them out of the final manuscript just like with scene titles.
wish, and you can filter them out of the final manuscript.
Page breaks are automatically added before level 1 and 2 headers when you build your project to a
format that supports page breaks, or when you print the document directly from the build tool. If
Page breaks can be automatically added before titles, partition, chapter and scene headings from
the **Manuscript Build** tool when you build your project to a format that supports page breaks. If
you want page breaks in other places, you have to specify them manually. See :ref:`a_fmt_break`.
.. tip::
There are multiple options of how to process novel titles when building the manuscript. For
There are multiple options of how to process novel headings when building the manuscript. For
instance, chapter numbers can be applied automatically, and so can scene numbers if you want
them in a draft manuscript. See the :ref:`a_export` page for more details.
them in a draft manuscript. You can also insert point-of-view character names in chapter titles.
See the :ref:`a_manuscript` page for more details.
.. note::
As of 2.6, the heading levels internally in novelWriter do not map directly to heading levels in
manuscript documents. In manuscript documents, chapters are considered the top level heading,
and partitions become plain text paragraphs with a larger font.
.. versionadded:: 2.6
.. _a_struct_heads_title:
@@ -68,18 +86,35 @@ you want page breaks in other places, you have to specify them manually. See :re
Novel Title and Front Matter
----------------------------
It is recommended that you add a document at the very top of each Novel root folder with the novel
title as the first line. You should modify the level 1 header format code with an ``!`` in order to
It is recommended that you add a document at the very top of each **Novel** root folder with the
novel title in it. You should modify the level 1 heading format code with an ``!`` in order to
render it as a document title that is excluded from any automatic Table of Content in a manuscript
build document, like so:
build document.
``#! My Novel``
You can also add the author name and address above this if this is required by the manuscript
format you use, and additional space added before the title.
This is the title page novelWriter generates automatically for a new project as of version 2.6:
.. code-block:: md
Jane Doe[br]
Address 1[br]
Address 2 <<
[vspace:5]
#! My Novel
>> **By Jane Doe** <<
>> Word Count: [field:textWords] <<
The title is by default centred on the page. You can add more text to the page as you wish, like
for instance the author's name and details.
If you want an additional page of text after the title page, starting on a fresh page, you can add
``[NEW PAGE]`` on a line by itself, and continue the text after it. This will insert a page break
``[new page]`` on a line by itself, and continue the text after it. This will insert a page break
before the text. See also :ref:`a_fmt_break`.
@@ -89,120 +124,40 @@ Unnumbered Chapter Headings
---------------------------
If you use the automatic numbering feature for your chapters, but you want to keep some special
chapters separate from this, you cam add a ``!`` to the level 2 header formatting code to tell the
build tool to skip these chapters.
chapters separate from this, you can add an ``!`` to the level 2 heading formatting code to tell
the build tool to skip these chapters when adding numbers.
``##! Unnumbered Chapter Title``
.. code-block:: md
There is a separate formatting feature for such chapters in the :guilabel:`Build Novel Project`
tool as well. See the :ref:`a_export` page for more details. When building a document of a format
that supports page breaks, also unnumbered chapters will have a page break added just like for
normal chapters.
##! Unnumbered Chapter Title
.. Note::
Previously, you could also disable the automatic numbering of a chapter by adding an ``*`` as
the first character of the chapter title itself. This feature has been dropped in favour of the
current format in order to keep level 1 and 2 headers consistent. Please update your chapter
headings if you've used this syntax.
Chapter Text
There is a separate formatting feature for such chapter titles in the **Manuscript Build** tool as
well. See the :ref:`a_manuscript` page for more details. When building a document of a format that
supports page breaks, also unnumbered chapters can have a page break added just like for normal
chapters.
.. _a_struct_tags:
.. _a_struct_heads_scenes:
Note References
===============
Hard and Soft Scene Breaks
--------------------------
Each text partition, indicated by a heading of any level, can contain references to tags set in the
project notes of the project. The references are gathered by the indexer and used to generate the
Outline View. This section covers how to make references to tags. See :ref:`a_notes_tags` for how
to define tags the references can point to.
If you need two different ways to style scenes in your manuscript, like if you want to insert
different scene separators for soft and hard scene breaks, there is an alternative scene format
available for scene headings with a ``!`` added to the formatting code.
References and tags are also clickable in the document editor and viewer, making it easy to
navigate between reference notes while writing. Clicked links are always opened in the view panel.
.. code-block:: md
References are set as a keyword and a list of corresponding tags. The valid keywords are listed
below. The format of a reference line is ``@keyword: value1, [value2] ... [valueN]``. All keywords
allow multiple values.
### Soft Scene Transition
``@pov``
The point-of-view character for the current section. The target must be a note tag in a
:guilabel:`Character` type root folder.
A soft scene break.
``@focus``
The character that has the focus for the current section. This can be used in cases where the
focus is not a point-of-view character. The target must be a note tag in a :guilabel:`Character`
type root folder.
###! Hard Scene Transition
``@char``
Other characters in the current section. The target must be a note tag in a
:guilabel:`Character` type root folder. This should not include the point-of-view or focus
character if those references are used.
A hard scene break.
``@plot``
The plot or subplot advanced in the current section. The target must be a note tag in a
:guilabel:`Plot` type root folder.
There is a separate formatting feature for these titles in the **Manuscript Build** tool.
``@time``
The timelines touched by the current section. The target must be a note tag in a
:guilabel:`Timeline` type root folder.
``@location``
The location the current section takes place in. The target must be a note tag in a
:guilabel:`Locations` type root folder.
``@object``
Objects present in the current section. The target must be a note tag in a :guilabel:`Object`
type root folder.
``@entity``
Entities present in the current section. The target must be a note tag in a
:guilabel:`Entities` type root folder.
``@custom``
Custom references in the current section. The target must be a note tag in a :guilabel:`Custom`
type root folder. The custom folder are for any other category of notes you may want to use.
The syntax highlighter will alert the user that the tags and references are used correctly, and
that the tags referenced exist.
The highlighter may be mistaken if the index of defined tags is out of date. If so, press :kbd:`F9`
to regenerate it, or select :guilabel:`Rebuild Index` from the :guilabel:`Tools` menu. In general,
the index for a document is regenerated when it is saved, so this shouldn't normally be necessary.
Example of a novel document with references to characters and plots:
.. code-block:: none
:linenos:
## Chapter 1
@pov: Jane
### Scene 1
@char: John, Sam
@plot: Main
Once upon a time ...
.. _a_struct_layout:
Document Layout
===============
All documents in the project can have a layout format set. Previously, there were multiple layouts
available to change how the documents where formatted on export. These have now been reduced to
just two layouts: :guilabel:`Novel Document` and :guilabel:`Project Note`.
Novel documents can only live in a :guilabel:`Novel` type root folder. You can also move them to
:guilabel:`Archive` and :guilabel:`Trash` of course. Project notes can be added anywhere in the
project.
The project tree can distinguish between the different layouts and header levels of the documents
using coloured icons, and optionally add emphasis on the label (See the :guilabel:`Preferences`.)
For novel documents, the heading level of the first heading is recorded, and indicated by the icon.
.. tip::
You can always start writing with a coarse setup with one or a few documents, and then later use
the split tool to split the documents into separate chapter and scene documents. You can split a
document on any of the four header levels.
.. versionadded:: 2.4

View File

@@ -1,4 +1,6 @@
furo
sphinx>=4.0
sphinx-book-theme
sphinx>=5.0
sphinx-favicon
sphinx-design
pygments>=2.7
docutils==0.17.1
docutils>=0.17.1

View File

@@ -7,7 +7,7 @@ File Locations
.. _QStandardPaths: https://doc.qt.io/qt-5/qstandardpaths.html
novelWriter will create a few files on your system outside of the application folder itself. These
file locations are described in this document.
file locations are described in this chapter.
.. _a_locations_conf:
@@ -15,17 +15,17 @@ file locations are described in this document.
Configuration
=============
The general configuration of novelWriter, including everything that is in :guilabel:`Preferences`,
is saved in one central configuration file. The location of this file depends on your operating
system. The system paths are provided by the Qt QStandardPaths_ class and its ConfigLocation value.
The general configuration of novelWriter, including everything that is in **Preferences**, is saved
in one central configuration file. The location of this file depends on your operating system. The
system paths are provided by the Qt QStandardPaths_ class and its ``ConfigLocation`` value.
The standard paths are:
* Linux: ``~/.config/novelwriter/novelwriter.conf``
* macOS: ``~/Library/Preferences/novelwriter/novelwriter.conf``
* MacOS: ``~/Library/Preferences/novelwriter/novelwriter.conf``
* Windows: ``C:\Users\<USER>\AppData\Local\novelwriter\novelwriter.conf``
Here, ``~`` corresponds to the user's home directory on Linux and macOS, and ``<USER>`` is the
Here, ``~`` corresponds to the user's home directory on Linux and MacOS, and ``<USER>`` is the
user's username on Windows.
.. note::
@@ -39,18 +39,27 @@ Application Data
================
novelWriter also stores a bit of data that is generated by the user's actions. This includes the
list of recent projects form the :guilabel:`Open Project` dialog. Custom themes should also be
saved here. The system paths are provided by the Qt QStandardPaths_ class and its AppDataLocation.
list of recent projects form the **Welcome** dialog. Custom themes should also be saved here. The
system paths are provided by the Qt QStandardPaths_ class and its ``AppDataLocation`` value.
The standard paths are:
* Linux: ``~/.local/share/novelwriter/``
* macOS: ``~/Library/Application Support/novelwriter/``
* MacOS: ``~/Library/Application Support/novelwriter/``
* Windows: ``C:\Users\<USER>\AppData\Roaming\novelwriter\``
Here, ``~`` corresponds to the user's home directory on Linux and macOS, and ``<USER>`` is the
Here, ``~`` corresponds to the user's home directory on Linux and MacOS, and ``<USER>`` is the
user's username on Windows.
.. note::
These are the standard operating system defined locations. If your system has been set up in a
different way, these locations may also be different.
The Application Data location also holds several folders:
``cache``
This folder is used to save the preview data for the **Manuscript Build** tool.
``icons``, ``syntax`` and ``themes``
These folders are empty by default, but this is where the user can store custom theme files.
See :ref:`a_custom` for more details.

View File

@@ -4,18 +4,25 @@
Running from Source
*******************
.. _main website: https://novelwriter.io
.. _GitHub: https://github.com/vkbo/novelWriter/releases
.. _PyPi: https://pypi.org/project/novelWriter/
.. _Sphinx Docs: https://www.sphinx-doc.org/
This section describes various ways of running novelWriter directly from the source code, and how
This chapter describes various ways of running novelWriter directly from the source code, and how
to build the various components like the translation files and documentation.
.. note::
The text below assumes the command ``python`` corresponds to a Python 3 executable. Python 2 is
now deprecated, but many systems still have both Python 2 and 3. For such systems, the command
``python3`` may be needed instead. Likewise, ``pip`` may need to be replaced with ``pip3``.
now deprecated, but on many systems the command ``python3`` may be needed instead. Likewise,
``pip`` may need to be replaced with ``pip3``.
Most of the custom commands for building packages of novelWriter, or building assets, are contained
in the ``pkgutils.py`` script in the root of the source code. You can list the available commands
by running:
.. code-block:: bash
python pkgutils.py help
.. _a_source_depend:
@@ -23,23 +30,18 @@ to build the various components like the translation files and documentation.
Dependencies
============
novelWriter has been designed to rely on as few dependencies as possible. Aside from the packages
needed to communicate with the Qt GUI libraries, only one package is required for handling the XML
format of the main project file. Everything else is handled with standard Python libraries.
novelWriter has been designed to rely on as few dependencies as possible. Only the Python wrapper
for the Qt GUI libraries is required. The package for spell checking is optional, but recommended.
Everything else is handled with standard Python libraries.
The following Python packages are needed to run novelWriter:
The following Python packages are needed to run all features of novelWriter:
* ``PyQt5`` – needed for connecting with the Qt5 libraries.
* ``lxml`` – needed for full XML support.
* ``PyEnchant`` – needed for spell checking (optional).
PyQt/Qt should be at least 5.10, but ideally 5.13 or higher for all features to work. For instance,
searching using regular expressions with full Unicode support requires 5.13. There is no known
minimum version requirement for package ``lxml``, but the code was originally written with 4.2,
which is therefore set as the minimum. It may work on lower versions. You have to test it.
If you want spell checking, you must install the ``PyEnchant`` package. The spell check library
must be at least 3.0 to work with Windows. On Linux, 2.0 also works fine.
PyQt/Qt must be at least 5.15.0. If you want spell checking, you must install the ``PyEnchant``
package. The spell check library must be at least 3.0 to work with Windows. On Linux, 2.0 also
works fine.
If you install from PyPi, these dependencies should be installed automatically. If you install from
source, dependencies can still be installed from PyPi with:
@@ -48,40 +50,44 @@ source, dependencies can still be installed from PyPi with:
pip install -r requirements.txt
.. note::
On Linux distros, the Qt library is usually split up into multiple packages. In some cases,
secondary dependencies may not be installed automatically. For novelWriter, the library files
for rendering the SVG icons may be left out and needs to be installed manually. This is the
case on for instance Arch Linux.
.. _a_source_install:
Install from Source
===================
Build and Install from Source
=============================
You can download the latest version of novelWriter from the source repository on GitHub_ and run
the setup manually. It is equivalent to what the ``pip install`` command does, and it installs
novelWriter to the default location for Python packages.
This step requires that you have ``setuptools`` installed on your system. If you don't have it
installed, it can usually be installed from your distro's repository. For Debian and Ubuntu this is
achieved with:
If you want to install novelWriter directly from the source available on GitHub_, you must first
build the package using the Python Packaging Authority's build tool. It can be installed with:
.. code-block:: bash
sudo apt install python3-setuptools
pip install build
The package is also available from PyPi:
On Debian-based systems the tool can also be installed with:
.. code-block:: bash
pip install --user setuptools
sudo apt install python3-build
With ``setuptools`` in place, novelWriter can be installed to the user space with:
With the tool installed, run the following command from the root of the novelWriter source code:
.. code-block:: bash
python setup.py install --user
python -m build --wheel
.. tip::
This should generate a ``.whl`` file in the ``dist/`` folder at your current location. The wheel
file can then be installed on your system. Here with example version number 2.0.7, but yours may be
different:
The main setup script has a number of options that may be useful to you. You can list them by
running ``python setup.py help``.
.. code-block:: bash
pip install --user dist/novelWriter-2.0.7-py3-none-any.whl
.. _a_source_i18n:
@@ -98,7 +104,7 @@ You can build the ``.qm`` files with:
.. code-block:: bash
python setup.py qtlrelease
python pkgutils.py qtlrelease
This requires that the Qt Linguist tool is installed on your system. On Ubuntu and Debian, the
needed package is called ``qttools5-dev-tools``.
@@ -115,11 +121,12 @@ Building the Example Project
============================
In order to be able to create new projects from example files, you need a ``sample.zip`` file in
the ``assets`` folder of the source. This file can be built from setup script by running:
the ``assets`` folder of the source. This file can be built from the ``pkgutils.py`` script by
running:
.. code-block:: bash
python setup.py sample
python pkgutils.py sample
.. _a_source_docs:
@@ -127,12 +134,12 @@ the ``assets`` folder of the source. This file can be built from setup script by
Building the Documentation
==========================
A local copy of this documentation can be generated as HTML. This requires the following Python
A local copy of this documentation can be generated as HTML. This requires installing some Python
packages from PyPi:
.. code-block:: bash
pip install furo sphinx
pip install -r docs/source/requirements.txt
The documentation can then be built from the root folder in the source code by running:
@@ -143,13 +150,12 @@ The documentation can then be built from the root folder in the source code by r
If successful, the documentation should be available in the ``docs/build/html`` folder and you can
open the ``index.html`` file in your browser.
You can also build a PDF manual from the documentation using the setup script:
You can also build a PDF manual from the documentation using the ``pkgutils.py`` script:
.. code-block:: bash
python setup.py manual
python pkgutils.py manual
This will build the documentation as a PDF using LaTeX. The file will then be copied into the
assets folder and made available in the :guilabel:`Help` menu in novelWriter. The Sphinx build
system has a few extra dependencies when building the PDF. Please check the `Sphinx Docs`_ for more
details.
assets folder and made available in the **Help** menu in novelWriter. The Sphinx build system has a
few extra dependencies when building the PDF. Please check the `Sphinx Docs`_ for more details.

View File

@@ -4,7 +4,9 @@
How Data is Stored
******************
This section contains details of how novelWriter stores and handles the project data.
.. _documentation: https://docs.novelwriter.io/
This chapter contains details of how novelWriter stores and handles the project data.
Project Structure
@@ -21,56 +23,61 @@ Main Project File
-----------------
The project itself requires a dedicated folder for storing its files, where novelWriter will create
its own "file system" where the folder and file hierarchy is described in a project XML file. This
is the main project file in the project's root folder with the name ``nwProject.nwx``. This file
also contains all the meta data required for the project, and a number of related project settings.
its own "file system" where the project's folder and file hierarchy is described in a project XML
file. This is the main project file in the project's root folder with the name ``nwProject.nwx``.
This file also contains all the meta data required for the project (except the index data), and a
number of related project settings.
If this file is lost or corrupted, the structure of the project is lost, although not the text
itself. It is important to keep this file backed up, either through the built-in backup tool, or
your own backup solution.
.. tip::
The novelWriter project folder is structured so that it can easily be added to a version control
system like git. If you do so, you may want to add a `.gitignore` file to exclude files with the
extensions `.json` as JSON files are used to cache the index and various run-time settings and
are generally large files that change often.
The project XML file is indent-formatted, and is suitable for diff tools and version control since
most of the file will stay static, although a timesetamp is set in the meta section on line 2, and
most of the file will stay static, although a timestamp is set in the meta section on line 2, and
various meta data entries incremented, on each save.
.. only:: not html
A full project file format specification is available in the online documentation_.
.. only:: html
A full description of the current file format is available in the
:download:`File Format Spec 1.5 <fileformatspec15.pdf>` document, available as a PDF.
Project Documents
=================
All the project documents are saved in a folder in the main project folder named ``content``. Each
document has a file handle based on a 52 bit random number, represented as a hexadecimal string.
The documents are saved with a filename assembled from this handle and the file extension ``.nwd``.
All the project documents are saved in a subfolder of the main project folder named ``content``.
Each document has a file handle based on a 52 bit random number, represented as a hexadecimal
string. The documents are saved with a filename assembled from this handle and the file extension
``.nwd``.
If you wish to find the file system location of a document in the project, you can either look it
up in the project XML file, select :guilabel:`Show File Details` from the :guilabel:`Document` menu
when having the document open, or look in the ``ToC.txt`` file in the root of the project folder.
The ``ToC.txt`` file has a list of all documents in the project, referenced by their label, and
where they are saved.
up in the project XML file, select **Show File Details** from the **Document** menu when having the
document open in the editor, or look in the ``ToC.txt`` file in the root of the project folder. The
``ToC.txt`` file has a list of all documents in the project, referenced by their label, and where
they are saved.
The reason for this cryptic file naming is to avoid issues with file naming conventions and
restrictions on different operating systems, and also to have a file name that does not depend on
what the user names the document within the project, or changes it to. This is particularly useful
when using a versioning system.
what you name the document within the project, or changes it to. This is particularly useful when
using a versioning system.
Each document file contains a plain text version of the text from the editor. The file can in
principle be edited in any text editor, and is suitable for diffing and version control if so
desired. Just make sure the file remains in utf-8 encoding, otherwise unicode characters may
become mangled when the file is opened in novelWriter again.
Editing these files is generally not recommended outside of special circumstances, whatever they
may be. The reason for this is that the index will not be automatically updated when doing so,
which means novelWriter doesn't know you've altered the file. If you do edit a file in this manner,
you should rebuild the index when you next open the project in novelWriter.
Editing these files is generally not recommended. The reason for this is that the index will not be
automatically updated when doing so, which means novelWriter doesn't know you've altered the file.
If you *do* edit a file in this manner, you should rebuild the index when you next open the project
in novelWriter.
The first lines of the file may contain some meta data starting with the characters ``%%~``. These
lines are mainly there to restore some information if it is lost from the project file, and the
information may be helpful if you do open the file in an external editor as it contains the
lines are mainly there to restore some information if the file is lost from the main project file,
and the information may be helpful if you do open the file in an external editor as it contains the
document label and the document class and layout. The lines can be deleted without any consequences
to the rest of the content of the file, and will be added back the next time the document is saved
in novelWriter.
@@ -80,14 +87,9 @@ The File Saving Process
-----------------------
When saving the project file, or any of the documents, the data is first saved to a temporary file.
If successful, the old data file is then removed, and the temporary file becomes the new file. This
ensures that the previously saved data is only replaced when the new data has been successfully
saved to the storage medium.
For the project XML file, a ``.bak`` file is in addition kept, which will always contain the
previous version of the file, although when auto-save is enabled, they may have the same content.
If the opening of a project file fails, novelWriter will automatically try to open the ``.bak``
file instead.
If successful, the old data file is then removed, and the temporary file replaces it. This ensures
that the previously saved data is only replaced when the new data has been successfully saved to
the storage medium.
Project Meta Data
@@ -95,19 +97,19 @@ Project Meta Data
The project folder contains a subfolder named ``meta``, containing a number of files. The meta
folder contains semi-important files. That is, they can be lost with only minor impact to the
project.
project. All files in this folder are JSON or JSON Lines files, although some other files may
remain from earlier versions of novelWriter as they haven't all been JSON files in the past.
If you use version control software on your project, you can exclude this folder, although you may
want to track the session log file and the custom words list. The JSON files within this folder can
safely be ignored as they will be automatically regenerated if lost.
want to track the session log file and the custom words list.
The Project Index
-----------------
Between writing sessions, the project index is saved in a JSON file in ``meta/tagsIndex.json``.
This file is not critical. If it is lost, it can be rebuilt from within novelWriter from the
:guilabel:`Tools` menu.
Between writing sessions, the project index is saved in a JSON file in ``meta/index.json``.
This file is not critical. If it is lost, it can be completely rebuilt from within novelWriter from
the **Tools** menu.
The index is maintained and updated whenever a document or note is saved in the editor. It contains
all references and tags in documents and notes, as well as the location of all headers in the
@@ -120,10 +122,17 @@ check somehow fails and novelWriter keeps crashing, you can delete the file manu
the index. If this too fails, you have likely encountered a bug.
Build Definitions
-----------------
The build definitions from the **Manuscript Build** tool are kept in the ``meta/builds.json`` file.
If this file is lost, all custom build definitions are lost too.
Cached GUI Options
------------------
A file named ``meta/guiOptions.json`` contains the latest state of various GUI buttons, switches,
A file named ``meta/options.json`` contains the latest state of various GUI buttons, switches,
dialog window sizes, column sizes, etc, from the GUI. These are the GUI settings that are specific
to the project. Global GUI settings are stored in the main config file.
@@ -134,26 +143,18 @@ settings.
Custom Word List
----------------
A file named ``meta/wordlist.txt`` contains all the custom words you've added to the project for
spell checking purposes. The content of the file can be edited from the :guilabel:`Tools` menu. If
you lose this file, all your custom spell check words will be lost too.
A file named ``meta/userdict.json`` contains all the custom words you've added to the project for
spell checking purposes. The content of the file can be edited from the **Tools** menu. If you lose
this file, all your custom spell check words will be lost too.
Session Stats
-------------
The writing progress is saved in the ``meta/sessionStats.log`` file. This file records the length
and word counts of each writing session on the given project. The file is used by the
:guilabel:`Writing Statistics` tool. If this file is lost, the history it contains is also lost,
but it has otherwise no impact on the project.
The writing progress is saved in the ``meta/sessions.jsonl`` file. This file records the length
and word counts of each writing session on the given project. The file is used by the **Writing
Statistics** tool. If this file is lost, the history it contains is also lost, but it has otherwise
no impact on the project.
Project Cache
=============
The project ``cache`` folder contains non-critical files. If these files are lost, there is no
impact on the functionality of novelWriter or the history of the project. It contains temporary
files, like the preview document in the :guilabel:`Build Novel Project` tool.
It should be excluded from version control tools if such are used. The folder will be removed
entirely in novelWriter 2.1.
Each session is recorded as a JSON object on a single line of the file. Each session record is
appended tot he file.

View File

@@ -15,7 +15,7 @@ The dependencies for running the tests can be installed with:
.. code-block:: bash
pip install -r requirements-dev.txt
pip install -r tests/requirements.txt
This will install a couple of extra packages for coverage and test management. The minimum
requirement is ``pytest`` and ``pytest-qt``.
@@ -34,12 +34,11 @@ Since several of the tests involve opening up the novelWriter GUI, you may want
for the duration of the test run. Moving your mouse while the tests are running may otherwise
interfere with the execution of some tests.
You can disable the renderring of the GUI by setting the flag ``export QT_QPA_PLATFORM=offscreen``,
or alternatively run the tests with the ``xvfb`` package, like so:
You can disable the renderring of the GUI by setting the flag ``QT_QPA_PLATFORM=offscreen``:
.. code-block:: bash
xvfb-run pytest
export QT_QPA_PLATFORM=offscreen pytest
Advanced Options
@@ -51,7 +50,7 @@ You can also add coverage report generation. For instance to HTML:
.. code-block:: bash
xvfb-run pytest -v --cov=novelwriter --cov-report=html
export QT_QPA_PLATFORM=offscreen pytest -v --cov=novelwriter --cov-report=html
Other useful report formats are ``xml``, and ``term`` for terminal output.
@@ -60,7 +59,7 @@ subpackage groups are ``base``, ``core``, and ``gui``. Consider for instance:
.. code-block:: bash
xvfb-run pytest -v --cov=novelwriter --cov-report=html -m core
export QT_QPA_PLATFORM=offscreen pytest -v --cov=novelwriter --cov-report=html -m core
This will only run the tests of the "core" package, that is, all the classes that deal with the
project data of a novelWriter project. The "gui" tests, likewise, will run the tests for the GUI
@@ -71,7 +70,7 @@ You can also filter the tests with the ``-k`` switch. The following will do the
.. code-block:: bash
xvfb-run pytest -v --cov=novelwriter --cov-report=html -k testCore
export QT_QPA_PLATFORM=offscreen pytest -v --cov=novelwriter --cov-report=html -k testCore
All tests are named in such a way that you can filter them by adding more bits of the test names.
They all start with the word "test". Then comes the group: "Core", "Base", "Dlg", "Tool", or "Gui".
@@ -80,6 +79,6 @@ file. For instance, running the following will run all tests for the document ed
.. code-block:: bash
xvfb-run pytest -v --cov=novelwriter --cov-report=html -k testGuiEditor
export QT_QPA_PLATFORM=offscreen pytest -v --cov=novelwriter --cov-report=html -k testGuiEditor
To run a single test, simply add the full test name to the ``-k`` switch.

View File

@@ -6,12 +6,13 @@ How it Works
.. _Fusion: https://doc.qt.io/qt-6/gallery.html
.. _Pandoc: https://pandoc.org/
.. _Typicons: https://github.com/stephenhutchings/typicons.font
.. _Open Document: https://en.wikipedia.org/wiki/OpenDocument
.. _Office Open XML: https://en.wikipedia.org/wiki/Office_Open_XML
.. _version control: https://en.wikipedia.org/wiki/Version_control
The main features of novelWriter are listed in the :ref:`a_intro` section. Here, we go into some
more details on how they are implemented. This is intended as an overview. Later on in this
documentation, these features will be covered in even more detail.
The main features of novelWriter are listed in the :ref:`a_intro` chapter. In this chapter, we go
into some more details on how they are implemented. This is intended as an overview. Later on in
this documentation these features will be covered in more detail.
.. _a_breakdown_design:
@@ -20,155 +21,230 @@ GUI Layout and Design
=====================
The user interface of novelWriter is intended to be as minimalistic as practically possible, while
at the same time provide a complete set of features needed for writing a novel.
at the same time provide useful features needed for writing a novel.
The main window does not have an editor toolbar like many other applications do. This reduces
clutter, and since the documents are formatted with style tags, is more or less redundant. However,
most formatting features supported are available through convenient keyboard shortcuts. They are
also available in the main menu so you don't have to look up formatting codes every time you need
them. For reference, a list of all shortcuts can be found in the :ref:`a_kb` section.
The main window does not by default have an editor toolbar like many other applications do. This
reduces clutter, and since the documents are formatted with style tags, it is not needed most of
the time. Still, a small formatting toolbar can be popped out by clicking the left-most button in
the header of the document editor. It gives quick access to standard formatting codes.
Most formatting features supported are available through convenient keyboard shortcuts. They are
also available in the main menu under **Format**, so you don't have to look up formatting codes
every time you need them. For reference, a list of all shortcuts can be found in the :ref:`a_kb`
chapter.
.. note::
novelWriter is not intended to be a full office type word processor. It doesn't support images,
links, tables, and other complex structures and objects often needed for such documents.
Formatting is limited to headers, emphasis, text alignment, and a few other simple features.
Formatting is limited to headings, in-line basic text formats, text alignment, and a few other
simple features.
On the left edge of the main window, you will find a sidebar. This bar has buttons for the standard
views you can switch between, a quick link to the :guilabel:`Build Novel Project` tool, and a set
of project-related tools as well as quick access to settings at the bottom.
On the left side of the main window, you will find a sidebar. This bar has buttons for the standard
views you can switch between, a quick link to the **Build Manuscript** tool, and a set of
project-related tools and quick access to settings at the bottom.
.. versionadded:: 2.2
A number of new formatting options were added in 2.2 to allow for some special formatting cases.
At the same time, a small formatting toolbar was added to the editor. It is hidden by default,
but can be opened by pressing the button in the top--left corner of the editor header.
Project Tree View
-----------------
Project Tree and Editor View
----------------------------
When in :guilabel:`Project Tree View` mode, the main work area of the main window is split in two,
or optionally three, panels. The left-most panel contains the project tree and all the documents in
your project. The second panel is the document editor. An optional third panel on the right is a
document viewer which can view any document in your project independently of what is open in the
document editor. This panel is not intended as a preview window, although you can use it for this
if you wish as it will apply the formatting tags you have specified. The main purpose of the viewer
is for viewing your notes next to your editor while you're writing.
.. figure:: images/fig_project_tree_view.png
The editor also has a :guilabel:`Focus Mode` you can toggle either from the menu, from the icon in
the editor header, or by pressing :kbd:`F8`. When :guilabel:`Focus Mode` is enabled, all the user
interface elements other than the document editor itself are hidden away.
A screenshot of the Project Tree and Editor View.
When the application is in **Project Tree View** mode, the work area of the main window is split in
two, or optionally three, panels. The left-most panel contains the project tree and all the
documents in your project. The second panel is the document editor.
An optional third panel on the right side contains a document viewer which can view any document in
your project independently of what is open in the document editor. This panel is not intended as a
preview window, although you can use it for this purpose if you wish. For instance if you need to
check that the formatting tags behave as you expect. However, the main purpose of the viewer is for
viewing your notes next to your editor while you're writing.
The editor also has a **Focus Mode** you can toggle either from the menu, from the icon in the
editor's header, or by pressing :kbd:`F8`. When **Focus Mode** is enabled, all the user interface
elements other than the document editor itself are hidden away.
The project tree will highlight with a different background colour the document that is currently
open in the editor.
.. versionadded:: 2.6
You can now drag and drop documents from the project tree onto the editor or viewer panels to
open them.
Novel Tree View
---------------
Novel View and Editor View
--------------------------
When in :guilabel:`Novel Tree View` mode, the project tree is replaces by an overview of your novel
structure. Instead of showing individual documents, the tree now shows all headings of your novel
text. This includes multiple headings within the same document.
.. figure:: images/fig_novel_tree_view.png
Each heading is indented according to the heading level. You can open and edit your novel documents
from this view as well. All headings contained in the currently open document should be highlighted
in the view to indicate which ones belong together.
A screenshot of the Novel Tree and Editor View.
If you have multiple Novel root folders, the header of the novel view becomes a droopdown box. You
can then switch between them by clicking the "Outline of ..." text. You can also click the novel
icon button next to it.
When the application is in **Novel Tree View** mode, the project tree is replaced by an overview of
your novel structure for a specific Novel :term:`root folder`. Instead of showing individual
documents, the tree now shows all headings of your novel text. This includes multiple headings
within the same document.
Each heading is indented according to the heading level, not its parent/child relationship to other
elements of your project. You can open and edit your novel documents from this view as well. All
headings contained in the currently open document should be highlighted in the view to indicate
which ones belong together in the same document.
If you have multiple **Novel** type root folders, the header of the novel view becomes a dropdown
box. You can then switch between them by clicking the :guilabel:`Outline of ...` text. You can also
click the novel icon button next to it.
Generally, the novel view should update when you make changes to the novel structure, including
edits of the current document in the editor. The information is only updated when the automatic
save of the document is initiated though. You can adjust the aut-save interval in
:guilabel:`Preferences`. You can also regenerate the whole novel view by pressing the refresh
button at the top.
save of the document is triggered, or you manually press :kbd:`Ctrl+S` to save changes. (You can
adjust the auto-save interval in **Preferences**.) You can also regenerate the whole novel view by
pressing the refresh button in the novel view header.
It is possible to show an optional third column in the novel view, The settings are available from
the menu button ath the top.
It is possible to show an optional third column in the novel view. The settings are available from
the menu button in the toolbar.
If you click the arrow icon to the right of each item, a tooltip will pop up showing you all the
meta data collected for that heading entry.
If you click the triangular icon to the right of each item, a tooltip will pop out showing all the
meta data collected for that heading.
Novel Outline View
------------------
When in :guilabel:`Novel Outline View` mode, the tree, editor and viewer will be replaced by a
large table that shows the entire novel structure with all the tags and references listed. Pretty
.. figure:: images/fig_outline_view.png
A screenshot of the Novel Outline View.
When the application is in **Novel Outline View** mode, the tree, editor and viewer are replaced by
a large table that shows the entire novel structure with all the tags and references listed. Pretty
much all collected meta data is available here in different columns.
You can select which novel root folder to display from the dropdown box, and you can select which
columns to show or hide from the menu button. You can also rearrange the columns by drag and drop.
The app will remember you column order and size between sessions, and for each individual project.
The app remembers your column order and sizes between sessions, and for each individual project.
Colour Themes
-------------
The default colour theme of the user interface is the default theme from the Qt library. By
default, novelWriter is loaded with the Fusion_ style setting. (You can override this with the
``--style=`` setting when starting novelWriter.)
By default, novelWriter uses a light colour theme. You can also choose between a standard dark
theme that have neutral colours, or a series of other included themes, from **Preferences**.
There is a standard dark theme provided as well, which is similar to the default Qt theme. Some
other light and dark colour themes are also provided. You can select which one you prefer from in
:guilabel:`Preferences` .
If you wish, you *can* create your own colour themes, and even have them added to the application.
See :ref:`a_custom_theme` for more details.
A number of syntax highlighting themes are also available in :guilabel:`Preferences`. These are
separate settings because there are a lot more options for syntax highlighting.
Switching the GUI colour theme does not affect the colours of the editor and viewer. They have
separate colour selectable from the "Document colour theme" setting in **Preferences**. They are
separated because there are a lot more options to choose from for the editor and viewer.
.. note::
If you switch to dark mode on the GUI, you should also switch syntax highlighting theme to
If you switch between light and dark mode on the GUI, you should also switch editor theme to
match, otherwise icons may be hard to see in the editor and viewer.
Project Search
--------------
A global search tool is available from the side bar. It allows you to search through your entire
project. The tool does not provide a replace feature. There is a search and replace tool available
in the document editor that acts on the open document.
.. versionadded:: 2.4
Switching Focus
---------------
If the project or novel view does not have focus, pressing :kbd:`Ctrl+T` switches focus to
whichever of the two is visible. If one of them already has focus, the key press will switch
between them instead.
Likewise, pressing :kbd:`Ctrl+E` will switch focus to the document editor or viewer, or if any of
them already have focus, it will switch focus between them,
These two shortcuts make it possible to jump between all these GUI elements without having to reach
for the mouse or touchpad.
.. _a_breakdown_project:
Project Layout
==============
This is a brief introduction to how you structure your writing projects. All of this will be
This is a brief introduction to how you should structure your writing projects. All of this will be
covered in more detail later.
The main point of novelWriter is that you are free to organise your project documents as you wish
into subfolders or subdocuments, and split the text between these documents in whatever way suits
into sub-folders or sub-documents, and split the text between these documents in whatever way suits
you. All that matters to novelWriter is the linear order the documents appear at in the project
tree (top to bottom). The chapters, scenes and sections of the novel are determined by the headings
within those documents.
The four heading levels (**H1** to **H4**) are treated as follows:
.. figure:: images/fig_header_levels.png
* **H1** is used for the book title, and for partitions.
* **H2** is used for chapter tiles.
* **H3** is used for scene titles – optionally replaced by separators.
* **H4** is for section titles within scenes, if such granularity is needed.
An illustration of how heading levels correspond to the novel structure.
The four heading levels, **Level 1** to **Level 4**, are treated as follows:
* **Level 1** is used for the novel title, and for partitions.
* **Level 2** is used for chapter tiles.
* **Level 3** is used for scene titles -- optionally replaced by separators.
* **Level 4** is for section titles within scenes, if such granularity is needed.
The project tree will select an icon for the document based on the first heading in it.
This header level structure is only taken into account for novel documents. For the project notes,
the header levels have no structural meaning, and the user is free to do whatever they want. See
:ref:`a_struct` and :ref:`a_notes` for more details.
This heading level structure is only taken into account for :term:`novel documents`. For
:term:`project notes`, the heading levels have no structural meaning, and you are free to use them
however you want. See :ref:`a_struct` and :ref:`a_references` for more details.
.. note::
You can add documents as child items of other documents if you wish. This is often more useful
than adding folders, since you anyway may want to have the chapter heading in a separate
document from your individual scene documents.
.. tip::
You can add documents as child items of other documents. This is often more useful than adding
folders, since you anyway may want to have the chapter heading in a separate document from your
individual scene documents so that you can rearrange scene documents freely without affecting
chapter placement.
.. versionadded:: 2.6
The heading levels for partitions, chapters and scenes only apply within novelWriter. When you
generate your manuscript, chapters are considered as the topmost heading level, with scenes
below it. Partitions are inserted as text elements in most formats.
.. _a_breakdown_export:
Building the Manuscript
=======================
Building a Manuscript
=====================
The project can at any time be assembled into a range of different formats through the
:guilabel:`Build Novel Project` tool. Natively, novelWriter supports `Open Document`_, HTML5, and
various flavours of Markdown.
**Build Manuscript** tool. Natively, novelWriter supports `Open Document`_, Microsoft Word Document
(known as `Office Open XML`_), HTML5, and various flavours of Markdown. You can also generate a PDF
document.
The HTML5 format is suitable for conversion by a number of other tools like Pandoc_, or for
importing into word processors if the Open Document format isn't suitable. In addition, printing
and printing to PDF is also possible.
importing into word processors if the Open Document or Word Document format isn't suitable. The
Open Document format is supported by most office type applications, so is the Word Document format.
In addition, printing is also possible.
You can also export the content of the project to a JSON file. This is useful if you want to write
your own processing script in for instance Python, as the entire novel can be read into a Python
dictionary with a couple of lines of code. The JSON file can be populated either with HTML
formatted text, or with the raw text as typed into the novel documents. See :ref:`a_export_options`
for more details.
For advanced processing, you can export the content of the project to a JSON file. This is useful
if you want to write your own custom processing script in for instance Python, as the entire novel
can be read into a Python dictionary with a couple of lines of code. The JSON file can be populated
with either HTML formatted text, or with the raw text as typed it into the novel documents.
A number of filter options can be applied to the :guilabel:`Build Novel Project` tool, allowing you
to make a draft manuscript, a reference document of notes, an outline based on chapter and scene
titles with a synopsis each, and so on. See :ref:`a_export` for more details on build features and
formats.
See :ref:`a_manuscript` for more details.
.. versionadded:: 2.1
You can now define multiple build definitions in the **Build Manuscript** tool. This allows you
to define specific settings for various types of draft documents, outline documents, and
manuscript formats. See :ref:`a_manuscript` for more details.
.. _a_breakdown_storage:
@@ -178,16 +254,22 @@ Project Storage
The files of a novelWriter project are stored in a dedicated project folder. The project structure
is kept in a file at the root of this folder called ``nwProject.nwx``. All the document files and
associated meta data is stored in the other folders below the project folder. For more technical
details about what all the files mean and how they're organised, see the :ref:`a_storage` section.
associated meta data are stored in other folders below the project folder. For a more technical
description of what all the files mean and how they're organised, see the :ref:`a_storage` section.
This way of storing data was chosen for several reasons. Firstly, all the text you add to your
project is saved directly to your project folder in separate files. Only the project structure and
the text you are currently editing is stored in memory at any given time. Secondly, having multiple
small files means it is very easy to sync them between computers with standard file synchronisation
tools. Thirdly, if you use version control software to track the changes to your project, the file
formats used for the files are well suited. Also the JSON documents have line breaks and indents,
which makes it easier to track them with version control software.
This way of storing data was chosen for several reasons.
Firstly, all the text you add to your project is saved directly to your project folder in separate
files. Only the project structure and the text you are currently editing is stored in memory at any
given time, which means there is a smaller risk of losing data if the application or your computer
crashes.
Secondly, having multiple small files means it is very easy to synchronise them between computers
with standard file synchronisation tools.
Thirdly, if you use `version control`_ software to track the changes to your project, the file
formats used for the files are well suited. All the JSON documents have line breaks and indents as
well, which makes it easier to track them with version control software.
.. note::
@@ -198,12 +280,11 @@ which makes it easier to track them with version control software.
.. caution::
You should not add additional files to the project folder yourself. Nor should you manually edit
files within it as a general rule. If you really must manually edit the text files, e.g. with
some automated task you want to perform, you need to rebuild the index when you open the project
again.
You should not add additional files to the project folder yourself. Nor should you, as a rule,
manually edit files within it. If you really must manually edit the text files, e.g. with some
automated task you want to perform, you need to rebuild the :term:`Project Index` when you open
the project again.
Editing text files in the ``content`` folder is less risky as they are just plain text. Editing
Editing text files in the ``content`` folder is less risky as these are just plain text. Editing
the main project XML file, however, may make the project file unreadable and you may crash
novelWriter and lose project structure information and project settings.

View File

@@ -6,12 +6,17 @@ Formatting Your Text
The novelWriter text editor is a plain text editor that uses formatting codes for setting meta data
values and allowing for some text formatting. The syntax is based on Markdown, but novelWriter is
*not* a Markdown editor. It supports basic formatting like emphasis (italic), strong importance
(bold) and strikethrough text, as well as four levels of headings.
**not** a Markdown editor. It supports basic formatting like emphasis (italic), strong importance
(bold) and strike through text, as well as four levels of headings. For some further complex
formatting needs, a set of shortcodes can be used.
In addition to formatting codes, novelWriter allows for comments, a synopsis tag, and a set of
keyword and value sets used for tags and references. There are also some codes that apply two whole
paragraphs. See :ref:`a_fmt_text` below for more details.
In addition to formatting codes, novelWriter allows for comments, a synopsis tag, and a number of
keyword and value sets used for :term:`tags<tag>` and :term:`references<reference>`. There are also
some codes that apply to whole paragraphs. See :ref:`a_fmt_text` for more details.
URLs should also be highlighted and become clickable. However, only URLs starting with "http" or
"https" are recognised. In the editor, you must hold down the :kbd:`Ctrl` key when clicking a URL
to follow it.
.. _a_fmt_hlight:
@@ -20,16 +25,21 @@ Syntax Highlighting
===================
The editor has a syntax highlighter feature that is meant to help you know when you've used the
formtatting tags or other features correctly. It will change the colour and font size of your
formatting tags or other features correctly. It will change the colour and font size of your
headings, change the text colour of emphasised text, and it can also show you where you have
dialogue in your text.
When you use the commands to set tags and references, these also change colour. Correct commands
have a dedicated colour, and the references themselves will get a colour if they are valid. Invalid
.. figure:: images/fig_references.png
An example of the colour highlighting of references. "Bob" is not defined, and "@blabla" is not
a valid reference type.
When you use the keywords to set tags and references, these also change colour. Correct keywords
have a distinct colour, and the references themselves will get a colour if they are valid. Invalid
references will get a squiggly error line underneath. The same applies to duplicate tags.
There are a number of syntax highlighter colour themes available, both for light and dark GUIs. You
can select them for :guilabel:`Preferences`.
can select them from **Preferences**.
.. _a_fmt_head:
@@ -37,41 +47,55 @@ can select them for :guilabel:`Preferences`.
Headings
========
Four levels of headings are allowed. For project notes, they are free to be used as you see fit.
That is, novelWriter doesn't assign the different headings any particular meaning. However, for
novel documents they indicate the structural level of the novel and must be used correctly to
produce the intended result. See :ref:`a_struct_heads` for more details.
.. figure:: images/fig_header_levels.png
An illustration of how heading levels correspond to the novel structure.
Four levels of headings are allowed. For :term:`project notes`, they are free to be used as you see
fit. That is, novelWriter doesn't assign the different headings any particular meaning. However,
for :term:`novel documents` they indicate the structural level of the novel and must be used
correctly to produce the intended result. See :ref:`a_struct_heads` for more details.
``# Title Text``
Heading level one. For novel documents, the header level indicates the start of a new partition.
Heading level one. For novel documents, the level indicates the start of a new partition.
Partitions are for when you want to split your story into "Part 1", "Part 2", etc. You can also
choose to use them for splitting the text up into acts, and then hide these headings in your
manuscript.
``## Title Text``
Heading level two. For novel documents, the header level indicates the start of a new chapter.
Chapter numbers can be inserted automatically when building the manuscript.
Heading level two. For novel documents, the level indicates the start of a new chapter. Chapter
numbers can be inserted automatically when building the manuscript.
``### Title Text``
Heading level three. For novel documents, the header level indicates the start of a new scene.
Scene numbers or scene separators can be inserted automatically when building the manuscript,
so you can use the title field as a working title for your scenes if you wish.
Heading level three. For novel documents, the level indicates the start of a new scene. Scene
numbers or scene separators can be inserted automatically when building the manuscript, so you
can use the title field as a working title for your scenes if you wish, but you must provide a
minimal title.
``#### Title Text``
Heading level four. For novel documents, the header level indicates the start of a new section.
Section titles can be replaced by separators or removed completely when building the manuscript.
Heading level four. For novel documents, the level indicates the start of a new section. Section
titles can be replaced by separators or ignored completely when building the manuscript.
For headers level one and two, adding a ``!`` modifies the behaviour of the heading:
For headings level one through three, adding a ``!`` modifies the meaning of the heading:
``#! Title Text``
This tells the build tool that the level one heading is intended to be used for the novel's
main title, like for instance on the front page. When building the manuscript, this will use a
different styling and will exclude the title from for instance a Table of Contents in Libre
Office.
This tells the build tool that the level one heading is intended to be used for the novel or
notes folder's main title, like for instance the novel title on the cover page. When building
the manuscript, this will use a different styling.
``##! Title Text``
This tells the build tool to not assign a chapter number to this chapter title if automatic
chapter numbers are being used. Such titles are useful for a prologue for instance. See
:ref:`a_struct_heads_unnum` for more details.
chapter numbers are being used. Such titles are useful for prologues and epilogues for instance.
See :ref:`a_struct_heads_unnum` for more details.
``###! Title Text``
This is an alternative scene heading that can be formatted differently in the **Manuscript
Build** tool. It is intended for separating "soft" and "hard" scene breaks. Aside from this, it
behaves identically to a regular scene heading. See :ref:`a_struct_heads_scenes` for more
details.
.. note::
The space after the ``#`` or ``!`` character is mandatory. The syntax highlighter will change
colour and font size when the heading is correctly formatted.
@@ -85,42 +109,49 @@ A text paragraph is indicated by a blank line. That is, you need two line breaks
fragments of text into two paragraphs. Single line breaks are treated as line breaks within a
paragraph.
In addition, the editor supports a few additional types of whitespaces:
In addition, the editor supports a few additional types of white spaces:
* A non-breaking space can be inserted with :kbd:`Ctrl`:kbd:`K`, :kbd:`Space`.
* Thin spaces are also supported, and can be inserted with :kbd:`Ctrl`:kbd:`K`,
:kbd:`Shift`:kbd:`Space`.
* Non-breaking thin space can be inserted with :kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`Space`.
* A non-breaking space can be inserted with :kbd:`Ctrl+K`, :kbd:`Space`.
* Thin spaces are also supported, and can be inserted with :kbd:`Ctrl+K`, :kbd:`Shift+Space`.
* Non-breaking thin space can be inserted with :kbd:`Ctrl+K`, :kbd:`Ctrl+Space`.
These are all insert features, and the :guilabel:`Insert` menu has more. They are also listed
in :ref:`a_kb_ins`.
These are all insert features, and the **Insert** menu has more. The keyboard shortcuts for them
are also listed in :ref:`a_kb_ins`.
Non-breaking spaces are highlighted by the syntax highlighter with an alternate coloured
background, depending on the selected theme.
.. tip::
Non-breaking spaces are for instance the correct type of space to separate a number from its
unit. Generally, non-breaking spaces are used to prevent line wrapping algorithms from adding
line breaks where they shouldn't.
.. note::
You should not manually apply text indentation in your paragraphs in the editor. These can be
added automatically in the **Manuscript Build** tool if you want to have them in the manuscript.
Each new paragraph should be separated from the previous content by an empty line and with no
indentation.
.. _a_fmt_emph:
Text Emphasis
=============
Text Emphasis with Markdown
===========================
A minimal set of text emphasis styles are supported.
A minimal set of Markdown text emphasis styles are supported for text paragraphs.
``_text_``
The text is rendered as emphasised text (italicised).
``**text**``
The text is rendered as strongly important text (bold).
The text is rendered as strongly emphasised text (bold).
``~~text~~``
Strikethrough text.
Strike through text.
In markdown guides it is often recommended to differentiate between strong importance and emphasis
In Markdown guides it is often recommended to differentiate between strong emphasis and emphasis
by using ``**`` for strong and ``_`` for emphasis, although Markdown generally also supports ``__``
for strong and ``*`` for emphasis. However, since the differentiation makes the highlighting and
conversion significantly simpler and faster, in novelWriter this is a rule, not just a
@@ -128,15 +159,65 @@ recommendation.
In addition, the following rules apply:
1. The emphasis and strikethrough formatting tags do not allow spaces between the words and the tag
itself. That is, ``**text**`` is valid, ``**text **`` is not.
1. The emphasis and strike through formatting tags do not allow spaces between the words and the
tag itself. That is, ``**text**`` is valid, ``**text **`` is not.
2. More generally, the delimiters must be on the outer edge of words. That is, ``some **text in
bold** here`` is valid, ``some** text in bold** here`` is not.
3. If using both ``**`` and ``_`` to wrap the same text, the underscore must be the inner wrapper.
This is due to the underscore also being a valid word character, so if they are on the outside,
they violate rule 2.
3. If using both ``**`` and ``_`` to wrap the same text, the underscore must be the **inner**
wrapper. This is due to the underscore also being a valid word character, so if they are on the
outside, they violate rule 2.
4. Text emphasis does not span past line breaks. If you need to add emphasis to multiple lines or
paragraphs, you must apply it to each of them in turn.
5. Text emphasis can only be used in comments and paragraphs. Headings and meta data tags don't
allow for formatting, and any formatting markup will be rendered as-is.
.. tip::
novelWriter supports standard escape syntax for the emphasis markup characters in case the
editor misunderstands your intended usage of them. That is, ``\*``, ``\_`` and ``\~`` will
generate a plain ``*``, ``_`` and ``~``, respectively, without interpreting them as part of the
markup.
.. _a_fmt_shortcodes:
Formatting with Shortcodes
==========================
For additional formatting options, you can use shortcodes. Shortcodes is a form of in-line codes
that can be used to change the format of the text that follows and opening code, and last until
that formatting region is ended with a closing code.
These shortcodes are intended for special formatting cases, or more complex cases that cannot be
solved with simple Markdown-like formatting codes. Available shortcodes are listed below.
.. csv-table:: Shortcodes Formats
:header: "Syntax", "Description"
:widths: 40, 60
:class: "tight-table"
"``[b]text[/b]``", "Text is rendered as bold text."
"``[i]text[/i]``", "Text is rendered as italicised text."
"``[s]text[/s]``", "Text is rendered as strike through text."
"``[u]text[/u]``", "Text is rendered as underlined text."
"``[m]text[/m]``", "Text is rendered as highlighted text."
"``[sup]text[/sup]``", "Text is rendered as superscript text."
"``[sub]text[/sub]``", "Text is rendered as subscript text."
Unlike Markdown style codes, these can be used anywhere within a paragraph. Even in the middle of a
word if you need to. You can also freely combine them to form more complex formatting.
The shortcodes are available from the **Format** menu and in the editor toolbar, which can be
activated by clicking the left-most icon button in the editor header.
.. note::
Shortcodes are not processed until you generate a preview or generate a manuscript document. So
there is no highlighting of the text between the formatting markers. There is also no check that
your markers make sense. You must ensure that you have both the opening and closing formatting
markers where you want them.
.. versionadded:: 2.2
.. _a_fmt_comm:
@@ -144,28 +225,101 @@ In addition, the following rules apply:
Comments and Synopsis
=====================
In addition to these standard Markdown features, novelWriter also allows for comments in documents.
The text of a comment is ignored by the word counter. The text can also be filtered out when
building the manuscript or viewing the document.
In addition to the above formatting features, novelWriter also allows for comments in documents.
The text of a comment is always ignored by the word counter. The text can also be filtered out
when building the manuscript or viewing the document.
If the first word of a comment is ``Synopsis:`` (with the colon included), the comment is treated
specially and will show up in the :ref:`a_ui_outline` in a dedicated column. The word ``synopsis``
is not case sensitive. If it is correctly formatted, the syntax highlighter will indicate this by
altering the colour of the word.
The first word of a comment, followed by a colon, can be one of a set of modifiers that indicates
the comment is intended for a specific purpose. For instance, if the comment starts with
``Synopsis:``, the comment is treated in a special manner and will show up in the
:ref:`a_ui_outline` in a dedicated column. The word ``synopsis`` is not case sensitive. If it is
correctly formatted, the syntax highlighter will indicate this by altering the colour of the word.
``% text...``
This is a comment. The text is not renderred by default (this can be overridden), seen in the
document viewer, or counted towards word counts.
The different styles of comments are as follows:
``% Synopsis: text...``
``% Your comment text ...``
This is a comment. The text is not rendered by default (this can be overridden), seen in the
document viewer, or counted towards word counts. It is intended for you to make notes in your
text for your own sake, whatever that may be, that isn't part of the story text. This is the
general format of a comment.
``%Synopsis: Your synopsis text ...``
This is a synopsis comment. It is generally treated in the same way as a regular comment, except
that it is also captured by the indexing algorithm and displayed in the :ref:`a_ui_outline`. It
can also be filtered separately when building the project to for instance generate an outline
document of the whole project.
``%Short: Your short description ...``
This is a short description comment. It is identical to the synopsis comment (they are
interchangeable), but is intended to be used for project notes. The text shows up in the
Reference panel below the document viewer in the last column labelled **Short Description**.
``%Footnote.<key>: Your footnote text ...``
This is a special comment assigned to a footnote marker. See :ref:`a_fmt_footnote` for how to
use them in your text.
.. note::
Only one comment can be flagged as a synopsis comment for each heading. If multiple comments are
flagged as synopsis comments, the last one will be used and the rest ignored.
Only one comment can be flagged as a synopsis or short comment for each heading. If multiple
comments are flagged as synopsis or short comments, the last one will be used and the rest
ignored.
.. _a_fmt_footnote:
Footnotes
=========
Footnotes are added with a shortcode, paired with a matching comment for the actual footnote text.
The matching is done with a key that links the two. If you insert a footnote from the **Insert**
menu, a unique key is generated for you.
The insert feature will add the footnote shortcode marker at the position of your cursor in the
text, and create the associated footnote comment right after the paragraph, and move the cursor
there so you can immediately start typing the footnote text.
The footnote comment can be anywhere in the document, so if you wish to move them to, say, the
bottom of the text, you are free to do so.
Footnote keys are only required to be unique within a document, so if you copy, move or merge text,
you must make sure the keys are not duplicated. If you use the automatically generated keys from
the **Insert** menu, they are unique among all indexed documents. They are not guaranteed to be
unique against footnotes in the Archive or Trash folder though, but the chance of accidentally
generating the same key twice in a project is relatively small in the first place (1 in 810 000).
This is what a footnote inserted into a paragraph may look like when completed:
.. code-block:: md
This is a text paragraph with a footnote[footnote:fn1] in the middle.
%Footnote.fn1: This is the text of the footnote.
.. versionadded:: 2.5
.. _a_fmt_ignore:
Ignored Text
============
If you want to completely ignore some of the text in your documents, but are not ready to delete
it, you can add ``%~`` before the text paragraph or line. This will cause novelWriter to skip the
text entirely when generating previews or building manuscripts.
This is a better way of removing text than converting them to regular comments, as you may want to
include regular comments in your previews or draft manuscript.
You can toggle the ignored text feature on and off for a paragraph by pressing :kbd:`Ctrl+Shift+D`
on your keyboard with your cursor somewhere in the paragraph.
Example:
.. code-block:: md
%~ This text is ignored.
This text is a regular paragraph.
.. _a_fmt_tags:
@@ -174,15 +328,24 @@ Tags and References
===================
The document editor supports a set of keywords used for setting tags, and making references between
documents. The tag can be set once per section defined by a heading. Setting it multiple times
under the same heading will just override the previous setting. References can be set anywhere
within a section, and are collected according to their category.
documents based on those tags.
``@keyword: value``
A keyword argument followed by a value, or a comma separated list of values.
You must use the keyword ``@tag:`` to define a tag. The tag can be set once per section defined by
a heading. Setting it multiple times under the same heading will just override the previous
setting.
The available tag and reference keywords are listed in the :ref:`a_struct_tags` section. They can
also be inserted at the cursor position in the editor via the :guilabel:`Insert` menu.
``@tag: value``
A tag keyword followed by the tag value, like for instance the name of a character.
References can be set anywhere within a section, and are collected according to their category.
References are on the form:
``@keyword: value1, value2, ..., valueN``
A reference keyword followed by a value, or a comma separated list of values.
Tags and references are covered in detail in the :ref:`a_references` chapter. The keywords can be
inserted at the cursor position in the editor via the **Insert** menu. If you start typing an ``@``
on a new line, and auto-complete menu will also pop up suggesting keywords.
.. _a_fmt_align:
@@ -190,8 +353,8 @@ also be inserted at the cursor position in the editor via the :guilabel:`Insert`
Paragraph Alignment and Indentation
===================================
All documents have the text by default aligned to the left or justified, depending on your
Preferences.
All documents have the text by default aligned to the left or justified, depending on your setting
in **Preferences**.
You can override the default text alignment on individual paragraphs by specifying alignment tags.
These tags are double angle brackets. Either ``>>`` or ``<<``. You put them either before or after
@@ -213,12 +376,44 @@ Examples:
"``>> Centred text <<``", "The text paragraph is centred."
"``> Left indented text``", "The text has an increased left margin."
"``Right indented text <``", "The text has an increased right margin."
"``> Left/right indented text <``", "The text has an both margins increased."
"``> Left/right indented text <``", "The text has both margins increased."
.. note::
The text editor will not show the alignment and indentation live. But the viewer will show them
when you open the document there. It will of course also be reflected in the document generated
from the build tool as long as the format supports paragraph alignment.
from the manuscript build tool as long as the format supports paragraph alignment.
Alignment with Line Breaks
--------------------------
If you have line breaks in the paragraph, the markers for all the lines are combined and used for
the entire paragraph. For the following text, all lines will be centred:
.. code-block:: md
>> I am the very model of a modern Major-General
I've information vegetable, animal, and mineral
I know the kings of England, and I quote the fights historical
From Marathon to Waterloo, in order categorical <<
Alignment with First Line Indent
--------------------------------
If you have first line indent enabled in your Manuscript build settings, you probably want to
disable it for text in verses. Adding any alignment tags will cause the first line indent to be
switched off for that paragraph.
The following text will always be aligned against the left margin:
.. code-block:: md
I am the very model of a modern Major-General <<
I've information vegetable, animal, and mineral
I know the kings of England, and I quote the fights historical
From Marathon to Waterloo, in order categorical
.. _a_fmt_break:
@@ -226,23 +421,50 @@ Examples:
Vertical Space and Page Breaks
==============================
Adding more than one line break between paragraphs will *not* increase the space between those
You can apply page breaks to partition, chapter and scene headings for novel documents from the
**Manuscript Build** tool. If you need to add a page break or additional vertical spacing in other
places, there are special codes available for this purpose.
Adding more than one line break between paragraphs will **not** increase the space between those
paragraphs when building the project. To add additional space between paragraphs, add the text
``[VSPACE]`` on a line of its own, and the build tool will insert a blank paragraph in its place.
``[vspace]`` on a line of its own, and the build tool will insert a blank paragraph in its place.
If you need multiple blank paragraphs just add a colon and a number to the above code. For
instance, writing ``[VSPACE:3]`` will insert three blank paragraphs.
instance, writing ``[vspace:3]`` will insert three blank paragraphs.
Normally, the build tool will insert a page break before all headers of level one and for all
headers of level two for novel documents, i.e. chapters, but not for project notes.
If you need to add a page break somewhere else, put the text ``[NEW PAGE]`` on a line by itself
before the text you wish to start on a new page.
Page breaks are automatically added to partition, chapter and unnumbered chapter headers of novel
documents. If you want such breaks for scenes and sections, you must add them manually.
If you need to add a page break somewhere, put the text ``[new page]`` on a line by itself before
the text you wish to start on a new page.
.. note::
The page break code is applied to the text that follows it. It adds a "page break before" mark
to the text when exporting to HTML or Open Document. This means that a ``[NEW PAGE]`` which has
to the text when exporting to HTML or Open Document. This means that a ``[new page]`` which has
no text following it, it will not result in a page break.
**Example:**
.. code-block:: md
This is a text paragraph.
[vspace:2]
This is another text paragraph, but there will be two empty paragraphs
between them.
[new page]
This text will start on a new page if the build format has pages.
.. _a_fmt_stats:
Inserting Word Counts in the Text
=================================
The cover page of a manuscript normally has the word count stated on it. Any statistics value
collected by novelWriter can be inserted into any document. You can generate the code for this from
the **Insert** menu under **Word/Character Count**.
The value inserted is the actual count for your entire manuscript, so it is not populated until you
run the **Manuscript Build** tool. Until then they will show up as "0" in the viewer panel.

View File

@@ -1,271 +0,0 @@
.. _a_ui:
******************
The User Interface
******************
.. _Compose Key: https://en.wikipedia.org/wiki/Compose_key
This sections covers in more detail what all the information on the user interface is for, and how
you can organise your project, and how you use the editor, viewer and outline panel.
.. _a_ui_tree:
The Project Tree
================
The main window contains a project tree in the left-most panel. It shows the entire structure of
the project, and has four columns:
**Column 1**
The first column shows the icon and label of each folder, document, or note in your project. The
label is not the same as the title you set inside the document. However, the document's label
will appear in the header above the document text itself so you know where in the project an
open document belongs. The icon is selected based on the type of item, and for novel documents,
the level of the first header in the document text.
**Column 2**
The second column shows the word count of the document, or the sum of words of the child items
for folders and documents with subdocuments. If the counts seem incorrect, they can be updated
by rebuilding the project index from the :guilabel:`Tools` menu, or by pressing :kbd:`F9`.
**Column 3**
The third column indicates whether the document is considered active or inactive in the project.
You can use this flag to indicate that a document is still in the project, but should not be
considered an active part of it. When you run the :guilabel:`Build Novel Project` tool, you can
filter based on this flag. You can change this value from the context menu.
**Column 4**
The fourth column shows the user-defined status or importance labels you've assigned to each
project item. See :ref:`a_ui_tree_status` for more details. You can change these labels from the
context menu.
Right-clicking an item in the project tree will open a context menu under the cursor, displaying
a selection of actions that can be performed on the selected item.
At the top of the tree, you will find a set of buttons.
* The first button is a quick links button that will show you a dropdown menu of all the root
folders in your project. Selecting one will move to that position in the tree. You can also
activate this menu by pressing :kbd:`Ctrl`:kbd:`L`.
* The next two buttons can be used to move items up and down in the project tree. This is the only
way to move root folders.
* The next button opens a dropdown menu for adding new items to the tree. This includes root
folders. You can also activate this dropdown menu by pressing :kbd:`Ctrl`:kbd:`N`.
* The last button is a menu of further actions on the entire project tree.
.. tip::
Under the :guilabel:`Transform` submenu in the context menu of an item, you will find several
options on how to change a document or folder. This includes changing between document and note,
splitting them into multiple documents, or merging child items into a single document.
Below the project tree you will find a small details panel showing the full information of the
currently selected item. This panel also includes the latest paragraph and character counts in
addition to the word count.
.. _a_ui_tree_novel:
The Novel Tree
--------------
An alternative way to view the project structure is the novel tree. You can switch to this view by
selecting the :guilabel:`Novel Tree View` button in the sidebar. This view is a simplified version
of the view in the :guilabel:`Outline`. It is convenient when you want to browse the structure of
the story itself rather than the document files.
.. note::
You cannot reorganise the entries in the novel tree, or add any new documents, as that would
imply restructuring the content of the document files. Any editing must be done in the project
tree. However, you can add new headings to existing documents, or change references, which will
be updated in this view.
.. _a_ui_tree_status:
Document Importance and Status
------------------------------
Each document or folder in your project can have either a "Status" or "Importance" flag set. These
are flags that you control and define yourself. The app doesn't do anything with them at all. To
modify the labels, go to their respective tabs in :guilabel:`Project Settings`.
The "Status" flag is intended to tag a Novel document as for instance a draft or as completed, and
the "Importance" flag is intended to tag character notes, or other notes, as for instance a main,
major or minor character.
Whether a document uses a "Status" or "Importance" flag depends on which root folder it lives in.
If it's in the :guilabel:`Novel` folder, it uses the "Status" flag, otherwise it uses an
"Importance" flag. Some folders, like :guilabel:`Trash` and :guilabel:`Archive` allow both.
.. _a_ui_tree_dnd:
Project Tree Drag & Drop
------------------------
The project tree allows drag & drop to a certain extent to allow you to reorder your documents and
folders. Moving a document in the project tree will affect the text's position when you assemble
your manuscript in the build tool.
Drag & drop has only limited support for moving documents. In general, bulk actions are not
allowed. This is deliberate to avoid accidentally messing up your project. If you make a mistake,
the last move action can be undone by pressing :kbd:`Ctrl`:kbd:`Shift`:kbd:`Z`.
Documents and their folders can be rearranged freely within their root folders. If you move a Novel
documents out of a Novel folder, it will be converted to a project note. Notes can be moved freely
between all root folders, but keep in mind that if you move a note into a :guilabel:`Novel` root
folder, its "Importance" setting will be switched with a "Status" setting. See
:ref:`a_ui_tree_status`. The old value will not be overwritten though, and should be restored if
you move it back at some point.
Root folders in the project tree cannot be dragged & dropped at all. If you want to reorder them,
you can move them up or down with respect to eachother from the arrow buttons at the top of the
project tree, or by pressing :kbd:`Ctrl`:kbd:`Shift` and the :kbd:`Up` or :kbd:`Down` key.
.. _a_ui_edit:
Editing and Viewing Documents
=============================
To edit a document, double-click it in the project tree, or press the :kbd:`Return` key while
having it selected. This will open the document in the document editor. The editor uses a
Markdown-like syntax for some features, and a novelWriter-specific syntax for others. The syntax
format is described in the :ref:`a_fmt` section.
The editor has a maximise button (toggles the :guilabel:`Focus Mode`) and a close button in the
top–right corner. On the top–left side you will find an edit button that opens the
:guilabel:`Item Label` dialog for the currently open document, and a search button to open the
search dialog.
Any document in the project tree can also be viewed in parallel in a right hand side document
viewer. To view a document, press :kbd:`Ctrl`:kbd:`R`, or select :guilabel:`View Document` in the
menu or context menu. If you have a middle mouse button, middle-clicking on the document will also
open it in the viewer.
The document viewed does not have to be the same document as currently being edited. However, If
you *are* viewing the same document, pressing :kbd:`Ctrl`:kbd:`R` again will update the document
with your latest changes. You can also press the reload button in the top–right corner of the view
panel, next to the close button, to achieve the same thing.
Both the document editor and viewer will show the label of the document in the header at the top of
the edit or view panel. Optionally, the full project path to the document can be shown. This can be
set in :guilabel:`Preferences`.
.. tip::
Clicking on the document title bar will select the document in the project tree and reveal its
location, making it easier to locate in a large project.
Any tag reference in the editor can be opened in the viewer by moving the cursor to the label and
pressing :kbd:`Ctrl`:kbd:`Return`. You can also control-click them with your mouse. In the viewer,
the references become clickable links. Clicking them will replace the content of the viewer with
the content of the document the reference points to.
The document viewer keeps a history of viewed documents, which you can navigate with the arrow
buttons in the top–left corner of the viewer. If your mouse has backward and forward navigation
buttons, these can be used as well. They work just like the backward and forward features in a
browser.
At the bottom of the view panel there is a :guilabel:`References` panel. (If it is hidden, click
the icon to reveal it.) This panel will show links to all documents referring back to the one
you're currently viewing, if any has been defined. The :guilabel:`Sticky` button will freeze the
content of the panel to the current document, even if you navigate to another document. This is
convenient if you want to quickly look through all documents in the list in the
:guilabel:`References` panel without losing the list in the process.
.. note::
The :guilabel:`References` panel relies on an up-to-date index of the project. The index is
maintained automatically. However, if anything is missing, or seems wrong, the index can always
be rebuilt by selecting :guilabel:`Rebuild Index` from the :guilabel:`Tools` menu, or by
pressing :kbd:`F9`.
.. _a_ui_edit_search:
Search & Replace
----------------
The document editor has a search and replace tool that can be activated with :kbd:`Ctrl`:kbd:`F`
for search mode or :kbd:`Ctrl`:kbd:`H` for search and replace mode.
Pressing :kbd:`Return` while in the search box will search for the next occurrence of the word, and
:kbd:`Shift`:kbd:`Return` for the previous. Pressing :kbd:`Return` in the replace box, will replace
the highlighted text and move to the next result.
There are a number of settings for the search tool available as toggle switches above the search
box. They allow you to search for, in order: matched case only, whole word results only, search
using regular expressions, loop search when reaching the end of the document, and move to the next
document when reaching the end. There is also a switch that will try to match the case of the word
when the replacement is made. That is, it will try to keep the word upper, lower, or capitalised to
match the word being replaced.
The regular expression search is somewhat dependant on which version of Qt your system has. If you
have Qt 5.13 or higher, there is better support for unicode symbols in the search.
.. _a_ui_edit_auto:
Auto-Replace as You Type
========================
A few auto-replace features are supported by the editor. You can control every aspect of the
auto-replace feature from :guilabel:`Preferences`. You can also disable this feature entirely if
you wish.
.. tip::
If you don't like auto-replacement, all symbols inserted by this feature are also available in
the :guilabel:`Insert` menu, and via convenient :ref:`a_kb_ins`. You may also be using a
`Compose Key`_ setup, which means you may not need the auto-replace feature.
The editor is able to replace two and three hyphens with short and long dashes, triple points with
ellipsis, and replace straight single and double quotes with user-defined quote symbols. It will
also try to determine whether to use the opening or closing symbol, although this feature isn't
always accurate. Especially distinguishing between closing single quote and apostrophe can be
tricky for languages that use the same symbol for these, like English does.
.. tip::
If the auto-replace feature changes a symbol when you did not want it to change, pressing
:kbd:`Ctrl`:kbd:`Z` immediately after the auto-replacement will undo it without undoing the
character you typed.
.. _a_ui_outline:
Project Outline View
====================
The project's Outline view is available as another view option from the views bar. The outline
provides an overview of the novel structure, displaying a tree hierarchy of the elements of the
novel, that is, the level 1 to 4 headings representing partitions, chapters, scenes and sections.
The document containing the heading can also be displayed as a separate column, as well as the line
number where it occurs. Double-clicking an entry will open the corresponding document in the
editor.
You can select which novel folder to display from the dropdown menu. You can optionally also choose
to show a combination of all novel folders.
.. note::
Since the internal structure of the novel does not depend directly on the folder and document
structure of the project tree, these will not necessarily look the same, depending on how you
choose to organise your documents. See the :ref:`a_struct` page for more details.
Various meta data and information extracted from tags can be displayed in columns in the outline.
A default set of such columns is visible, but you can turn on or off more columns from the menu
button in the toolbar. The order of the columns can also be rearranged by dragging them to a
different position. You column settings are saved between sessions on a per-project basis.
.. note::
The :guilabel:`Title` column cannot be disabled or moved.
The information viewed in the outline is based on the project's main index. While novelWriter does
its best to keep the index up to date when contents change, you can always rebuild it manually by
pressing :kbd:`F9` if something isn't right.
The outline view itself can be regenerated by pressing the refresh button. By default, the content
is refreshed each time you switch to this view.
The :guilabel:`Synopsis` column of the outline view takes its information from a specially
formatted comment. See :ref:`a_fmt_comm`.

View File

@@ -0,0 +1,235 @@
.. _a_ui_project:
*************
Project Views
*************
This chapter covers in more detail the different project views available in novelWriter.
.. figure:: images/fig_project_tree_detailed.png
The **Project Content** tree as it appears when loading a sample project.
.. _a_ui_tree:
The Project Tree
================
The main window contains a project tree in the left-most panel. It shows the entire structure of
the project, and has four columns.
**Column 1**
The first column shows the icon and label of each folder, document, or note in your project. The
label is not the same as the heading title you set inside the document. However, the document's
label will appear in the header above the document text itself so you know where in the project
an open document belongs. The icon is selected based on the type of item, and for novel
documents, the level of the first heading in the document text.
**Column 2**
The second column shows the word count of the document, or the sum of words of the child items
for folders and documents with sub-documents. If the counts seem incorrect, they can be updated
by rebuilding the :term:`project index` from the **Tools** menu, or by pressing :kbd:`F9`.
**Column 3**
The third column indicates whether the document is considered active or inactive in the project.
You can use this flag to indicate that a document is still in the project, but should not be
considered an active part of it. When you run the **Build Manuscript** tool, you can include or
exclude documents based on this flag. You can change this value from the right-click
:term:`context menu`.
**Column 4**
The fourth column shows the user-defined status or importance labels you've assigned to each
project item. See :ref:`a_ui_tree_status` for more details on how to uses these labels. You can
select these labels from the :term:`context menu`, and define them in **Project Settings**.
Right-clicking an item in the project tree will open a context menu under the cursor, displaying
a selection of actions that can be performed on the selected item.
At the top of the project tree, you will find a set of buttons.
* The first button is a quick links button that will show you a dropdown menu of all the
:term:`root folders<root folder>` in your project. Selecting one will move to that position in
the tree. You can also activate this menu by pressing :kbd:`Ctrl+L`.
* The next two buttons can be used to move items up and down in the project tree. This is the only
way to move root folders.
* The next button opens a dropdown menu for adding new items to the tree. This includes root
folders and template documents. You can also activate this dropdown menu by pressing
:kbd:`Ctrl+N`.
* The last button is a menu of further actions you can apply to the project tree.
Below the project tree you will find a small details panel showing the full information of the
currently selected item. This panel also includes the latest paragraph and character counts in
addition to the word count.
.. tip::
If you want to set the label of a document to be the same as a header within it, you can
right-click a header in the document when it is open in the editor and select
:guilabel:`Set as Document Name` from the context menu.
.. _a_ui_tree_split_merge:
Splitting and Merging Documents
-------------------------------
Under the **Transform** submenu in the context menu of an item in the project tree, you will find
several options on how to change a document or folder. This includes changing between document and
note, but also splitting them into multiple documents, or merging child items into a single
document.
Splitting Documents
^^^^^^^^^^^^^^^^^^^
.. figure:: images/fig_project_split_tool.png
The **Split Document** dialog.
The **Split Document by Headings** option will open a dialog that allows you to split the selected
document into multiple new documents based on the headings it contains. You can select at which
heading level the split is to be performed from the dropdown box. The list box will preview which
headings will be split into new documents.
You are given the option to create a folder for these new documents, and whether or not to create a
hierarchy of documents. That is, put sections under scenes, and scenes under chapters.
The source document **is not** deleted in the process, but you have the option to let the tool move
the source document to the :guilabel:`Trash` folder.
Merging Documents
^^^^^^^^^^^^^^^^^
.. figure:: images/fig_project_merge_tool.png
The **Merge Documents** dialog.
You have two options for merging documents that are child elements of another document. You can
either **Merge Child Items into Self** and **Merge Child Items into New**. The first option will
pull all content of child items and merge them into the parent document, while the second option
will create a new document in the process.
When merging documents in a folder, you only have the latter process is possible, so only the
choice **Merge Documents in Folder** is available.
In either case, the **Merge Documents** dialog will let you exclude documents you don't want to
include, and it also lets you reorder them if you wish.
.. _a_ui_tree_status:
Document Importance and Status
------------------------------
Each document or folder in your project can have either a "Status" or "Importance" flag set. These
are flags that you control and define yourself, and novelWriter doesn't use them for anything. To
modify the labels, go to their respective tabs in **Project Settings**.
The "Status" flag is intended to tag a :term:`novel document<novel documents>` as for instance a
draft or as completed, and the "Importance" flag is intended to tag character notes, or other
:term:`project notes`, as for instance a main, major, or minor character or story element.
Whether a document uses a "Status" or "Importance" flag depends on which :term:`root folder` it
lives in. If it's in a **Novel** type folder, it uses the "Status" flag, otherwise it uses an
"Importance" flag.
.. _a_ui_tree_dnd:
Project Tree Drag & Drop
------------------------
The project tree allows drag & drop to allow you to reorder your documents and folders. Moving a
document in the project tree will affect the text's position when you assemble your manuscript in
the **Manuscript Build** tool.
.. versionadded:: 2.2
You can now select multiple items in the project tree by holding down the :kbd:`Ctrl` or
:kbd:`Shift` key while selecting items.
Documents and their folders can be rearranged freely within their root folders. If you move a
**Novel Document** out of a **Novel** folder, it will be converted to a **Project Note**. Notes can
be moved freely between all root folders, but keep in mind that if you move a note into a **Novel**
type root folder, its "Importance" setting will be replaced by a "Status" setting. See
:ref:`a_ui_tree_status`. The old value will not be overwritten though, and should be restored if
you move it back at some point.
Root folders in the project tree cannot be dragged and dropped at all. If you want to reorder them,
you can move them up or down with respect to each other from the arrow buttons at the top of the
project tree, or by pressing :kbd:`Ctrl+Up` or :kbd:`Ctrl+Down` when they are selected.
.. tip::
You can drag and drop documents onto the editor or viewer panel to open them.
.. _a_ui_tree_novel:
The Novel Tree View
===================
.. figure:: images/fig_novel_tree_view.png
A screenshot of the Novel Tree View.
An alternative way to view the project structure is the novel view. You can switch to this view by
selecting the :guilabel:`Novel View` button in the sidebar. This view is a simplified version of
the view in the **Outline View**. It is convenient when you want to browse the structure of the
story itself rather than the document files.
.. note::
You cannot reorganise the entries in the novel view, or add any new documents, as that would
imply restructuring the content of the document files themselves. Any such editing must be done
in the project tree. However, you can add new headings to existing documents, or change
references, which will be updated in this view when the document is saved.
.. _a_ui_outline:
The Novel Outline View
======================
.. figure:: images/fig_outline_view.png
A screenshot of the Novel Outline View.
The project's **Novel Outline View** is available as another view option from the sidebar. The
outline provides an overview of the novel structure, displaying a tree hierarchy of the elements of
the novel, that is, the level 1 to 4 headings representing partitions, chapters, scenes and
sections.
The document containing the heading can also be displayed as a separate column, as well as the line
number where the heading is defined. Double-clicking an entry will open the corresponding document
in the editor and switch to **Project Tree View** mode.
You can select which novel folder to display from the dropdown menu. You can optionally also choose
to show a combination of all novel folders.
.. note::
Since the internal structure of the novel does not depend directly on the folder and document
structure of the project tree, this view will not necessarily look the same, depending on how
you choose to organise your documents. See the :ref:`a_struct` page for more details.
Various meta data and information extracted from :term:`tags<tag>` can be displayed in columns in
the outline. A default set of such columns is visible, but you can turn on or off more columns from
the menu button in the toolbar. The order of the columns can also be rearranged by dragging them to
a different position. You column settings are saved between sessions on a per-project basis.
.. note::
The **Title** column cannot be disabled or moved.
The information viewed in the outline is based on the :term:`project index`. While novelWriter does
its best to keep the index up to date when contents change, you can always rebuild it manually by
pressing :kbd:`F9` if something isn't right.
The outline view itself can be regenerated by pressing the refresh button. By default, the content
is refreshed each time you switch to this view.
The **Synopsis** column of the outline view takes its information from a specially formatted
comment. See :ref:`a_fmt_comm`.

View File

@@ -4,143 +4,196 @@
Keyboard Shortcuts
******************
Most features in novelWriter are available as keyboard shortcuts. This is a reference list if these
shortcuts. Most of them are also listed in the application.
Most features in novelWriter are available as keyboard shortcuts. This is a reference list of those
shortcuts. Most of them are also listed in the application's user interface.
.. note::
On MacOS, replace :kbd:`Ctrl` with :kbd:`Cmd`.
.. _a_kb_main:
Main Shortcuts
==============
Main Window Shortcuts
=====================
The main shorcuts are as follows:
.. csv-table:: Keyboard Shortcuts
.. csv-table::
:header: "Shortcut", "Description"
:widths: 22, 78
:class: "tight-table"
":kbd:`F1`", "Open the online user manual."
":kbd:`F2`", "If in the project tree, edit an item's label."
":kbd:`F3`", "Find next occurrence of search word in current document."
":kbd:`F5`", "Open the :guilabel:`Build Novel Project` dialog."
":kbd:`F6`", "Open the :guilabel:`Writing Statistics` dialog."
":kbd:`F7`", "Re-run spell checker."
":kbd:`F8`", "Toggle :guilabel:`Focus Mode`."
":kbd:`F9`", "Re-build the project index."
":kbd:`F11`", "Toggle full screen mode."
":kbd:`Return`", "If in the project tree, open a document for editing."
":kbd:`Alt`:kbd:`1`", "Switch focus to the project tree. On Windows, use :kbd:`Ctrl`:kbd:`Alt`:kbd:`1`."
":kbd:`Alt`:kbd:`2`", "Switch focus to document editor. On Windows, use :kbd:`Ctrl`:kbd:`Alt`:kbd:`2`."
":kbd:`Alt`:kbd:`3`", "Switch focus to document viewer. On Windows, use :kbd:`Ctrl`:kbd:`Alt`:kbd:`3`."
":kbd:`Alt`:kbd:`4`", "Switch focus to outline view. On Windows, use :kbd:`Ctrl`:kbd:`Alt`:kbd:`4`."
":kbd:`Alt`:kbd:`Left`", "Move backward in the view history of the document viewer."
":kbd:`Alt`:kbd:`Right`", "Move forward in the view history of the document viewer."
":kbd:`Ctrl`:kbd:`.`", "Open the context menu in the project tree or the document editor."
":kbd:`Ctrl`:kbd:`,`", "Open the :guilabel:`Preferences` dialog."
":kbd:`Ctrl`:kbd:`/`", "Toggle block format as comment."
":kbd:`Ctrl`:kbd:`0`", "Remove block formatting for block under cursor."
":kbd:`Ctrl`:kbd:`1`", "Change block format to header level 1."
":kbd:`Ctrl`:kbd:`2`", "Change block format to header level 2."
":kbd:`Ctrl`:kbd:`3`", "Change block format to header level 3."
":kbd:`Ctrl`:kbd:`4`", "Change block format to header level 4."
":kbd:`Ctrl`:kbd:`5`", "Change block alignment to left-aligned."
":kbd:`Ctrl`:kbd:`6`", "Change block alignment to centred."
":kbd:`Ctrl`:kbd:`7`", "Change block alignment to right-aligned."
":kbd:`Ctrl`:kbd:`8`", "Add a left margin to the block."
":kbd:`Ctrl`:kbd:`9`", "Add a right margin to the block."
":kbd:`Ctrl`:kbd:`A`", "Select all text in the document."
":kbd:`Ctrl`:kbd:`B`", "Format selected text, or word under cursor, with strong emphasis (bold)."
":kbd:`Ctrl`:kbd:`C`", "Copy selected text to clipboard."
":kbd:`Ctrl`:kbd:`D`", "Strikethrough selected text, or word under cursor."
":kbd:`Ctrl`:kbd:`F`", "Open the search bar and search for the selected word, if any is selected."
":kbd:`Ctrl`:kbd:`G`", "Find next occurrence of search word in current document."
":kbd:`Ctrl`:kbd:`H`", "Open the search and replace tool and search for the selected word, if any is selected. (On Mac, this is :kbd:`Cmd`:kbd:`=`.)"
":kbd:`Ctrl`:kbd:`I`", "Format selected text, or word under cursor, with emphasis (italic)."
":kbd:`Ctrl`:kbd:`K`", "Activate the insert commands. The commands are listed in :ref:`a_kb_ins`."
":kbd:`Ctrl`:kbd:`L`", "Open the :guilabel:`Quick Links` menu in the Project Tree."
":kbd:`Ctrl`:kbd:`N`", "Open the Create New Item menu in the Project Tree."
":kbd:`Ctrl`:kbd:`O`", "Open selected document."
":kbd:`Ctrl`:kbd:`Q`", "Exit novelWriter."
":kbd:`Ctrl`:kbd:`R`", "If in the project tree, open a document for viewing. If in the editor, open current document for viewing."
":kbd:`Ctrl`:kbd:`S`", "Save the current document in the document editor."
":kbd:`Ctrl`:kbd:`V`", "Paste text from clipboard to cursor position."
":kbd:`Ctrl`:kbd:`W`", "Close the current document in the document editor."
":kbd:`Ctrl`:kbd:`X`", "Cut selected text to clipboard."
":kbd:`Ctrl`:kbd:`Y`", "Redo latest undo."
":kbd:`Ctrl`:kbd:`Z`", "Undo latest changes."
":kbd:`Ctrl`:kbd:`F7`", "Toggle spell checking."
":kbd:`Ctrl`:kbd:`Up`", "Move item one step up in the project tree."
":kbd:`Ctrl`:kbd:`Down`", "Move item one step down in the project tree."
":kbd:`Ctrl`:kbd:`Del`", "Delete next word in editor."
":kbd:`Ctrl`:kbd:`Backspace`", "Delete previous word in editor."
":kbd:`Ctrl`:kbd:`'`", "Wrap selected text, or word under cursor, in single quotes."
":kbd:`Ctrl`:kbd:`""`", "Wrap selected text, or word under cursor, in double quotes."
":kbd:`Ctrl`:kbd:`Return`", "Open the tag or reference under the cursor in the Viewer."
":kbd:`Ctrl`:kbd:`Shift`:kbd:`,`", "Open the :guilabel:`Project Settings` dialog."
":kbd:`Ctrl`:kbd:`Shift`:kbd:`/`", "Remove block formatting for block under cursor."
":kbd:`Ctrl`:kbd:`Shift`:kbd:`1`", "Replace occurrence of search word in current document, and search for next occurrence."
":kbd:`Ctrl`:kbd:`Shift`:kbd:`A`", "Select all text in current paragraph."
":kbd:`Ctrl`:kbd:`Shift`:kbd:`G`", "Find previous occurrence of search word in current document."
":kbd:`Ctrl`:kbd:`Shift`:kbd:`I`", "Import text to the current document from a text file."
":kbd:`Ctrl`:kbd:`Shift`:kbd:`O`", "Open a project."
":kbd:`Ctrl`:kbd:`Shift`:kbd:`R`", "Close the document viewer."
":kbd:`Ctrl`:kbd:`Shift`:kbd:`S`", "Save the current project."
":kbd:`Ctrl`:kbd:`Shift`:kbd:`W`", "Close the current project."
":kbd:`Ctrl`:kbd:`Shift`:kbd:`Z`", "Undo move of project tree item."
":kbd:`Ctrl`:kbd:`Shift`:kbd:`Del`", "If in the project tree, move an item to Trash."
":kbd:`Shift`:kbd:`F1`", "Open the local user manual (PDF) if it is available."
":kbd:`Shift`:kbd:`F3`", "Find previous occurrence of search word in current document."
":kbd:`Shift`:kbd:`F6`", "Open the :guilabel:`Project Details` dialog."
":kbd:`F1`", "Open the online user manual"
":kbd:`F5`", "Open the **Build Manuscript** tool"
":kbd:`F6`", "Open the **Writing Statistics** tool"
":kbd:`F8`", "Toggle **Focus Mode**"
":kbd:`F9`", "Re-build the project's index"
":kbd:`F11`", "Toggle full screen mode"
":kbd:`Ctrl+,`", "Open the **Preferences** dialog"
":kbd:`Ctrl+E`", "Switch or toggle focus for the editor or viewer"
":kbd:`Ctrl+T`", "Switch or toggle focus for the project tree or novel view"
":kbd:`Ctrl+Q`", "Exit novelWriter"
":kbd:`Ctrl+Shift+,`", "Open the **Project Settings** dialog"
":kbd:`Ctrl+Shift+O`", "Open the Welcome dialog to open or create a project"
":kbd:`Ctrl+Shift+S`", "Save the current project"
":kbd:`Ctrl+Shift+T`", "Switch focus to the outline view"
":kbd:`Ctrl+Shift+W`", "Close the current project"
":kbd:`Shift+F1`", "Open the local user manual (PDF) if it is available"
":kbd:`Shift+F6`", "Open the **Project Details** dialog"
.. note::
On macOS, replace :kbd:`Ctrl` with :kbd:`Cmd`.
.. _a_kb_tree:
Project Tree Shortcuts
======================
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`F2`", "Edit the label of the selected item"
":kbd:`Return`", "Open the selected document in the editor"
":kbd:`Alt+Up`", "Jump or go to the previous item at same level in the tree"
":kbd:`Alt+Down`", "Jump or go to the next item at same level in the tree"
":kbd:`Alt+Left`", "Jump to the parent item in the tree"
":kbd:`Alt+Right`", "Jump to the first child item in the project tree"
":kbd:`Ctrl+.`", "Open the context menu on the selected item"
":kbd:`Ctrl+L`", "Open the **Quick Links** menu"
":kbd:`Ctrl+N`", "Open the **Create New Item** menu"
":kbd:`Ctrl+O`", "Open the selected document in the editor"
":kbd:`Ctrl+R`", "Open the selected document in the viewer"
":kbd:`Ctrl+Up`", "Move selected item one step up in the tree"
":kbd:`Ctrl+Down`", "Move selected item one step down in the tree"
":kbd:`Ctrl+Shift+Del`", "Move the selected item to Trash"
.. _a_kb_editor:
Document Editor Shortcuts
=========================
Text Search Shortcuts
---------------------
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`F3`", "Find the next occurrence of the search word"
":kbd:`Ctrl+F`", "Open search and look for the selected word"
":kbd:`Ctrl+G`", "Find the next occurrence of the search word"
":kbd:`Ctrl+H`", "Open replace and look for the selected word (Mac :kbd:`Cmd+=`)"
":kbd:`Ctrl+Shift+1`", "Replace selected occurrence, and move to the next"
":kbd:`Ctrl+Shift+G`", "Find the previous occurrence of the search word"
":kbd:`Ctrl+Shift+F`", "Open project search and look for the selected word"
":kbd:`Shift+F3`", "Find the previous occurrence of the search word"
Text Formatting Shortcuts
-------------------------
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`Ctrl+'`", "Wrap selected text, or word under cursor, in single quotes"
":kbd:`Ctrl+""`", "Wrap selected text, or word under cursor, in double quotes"
":kbd:`Ctrl+/`", "Toggle comment format for block or selected text"
":kbd:`Ctrl+0`", "Remove format for block or selected text"
":kbd:`Ctrl+1`", "Change block format to heading level 1"
":kbd:`Ctrl+2`", "Change block format to heading level 2"
":kbd:`Ctrl+3`", "Change block format to heading level 3"
":kbd:`Ctrl+4`", "Change block format to heading level 4"
":kbd:`Ctrl+5`", "Change block alignment to left-aligned"
":kbd:`Ctrl+6`", "Change block alignment to centred"
":kbd:`Ctrl+7`", "Change block alignment to right-aligned"
":kbd:`Ctrl+8`", "Add a left margin to the block"
":kbd:`Ctrl+9`", "Add a right margin to the block"
":kbd:`Ctrl+B`", "Format selected text, or word under cursor, with bold"
":kbd:`Ctrl+D`", "Format selected text, or word under cursor, with strike through"
":kbd:`Ctrl+I`", "Format selected text, or word under cursor, with italic"
":kbd:`Ctrl+Shift+/`", "Remove format for block or selected text"
":kbd:`Ctrl+Shift+D`", "Toggle ignored text format for block or selected text"
Other Editor Shortcuts
----------------------
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`F7`", "Re-run the spell checker on the document"
":kbd:`Ctrl+.`", "Open the context menu at the current cursor location"
":kbd:`Ctrl+A`", "Select all text in the document"
":kbd:`Ctrl+C`", "Copy selected text to clipboard"
":kbd:`Ctrl+K`", "Activate the insert commands (see list in :ref:`a_kb_ins`)"
":kbd:`Ctrl+R`", "Open or reload the current document in the viewer"
":kbd:`Ctrl+S`", "Save the current document"
":kbd:`Ctrl+V`", "Paste text from clipboard to cursor position"
":kbd:`Ctrl+W`", "Close the current document"
":kbd:`Ctrl+X`", "Cut selected text to clipboard"
":kbd:`Ctrl+Y`", "Redo latest undo"
":kbd:`Ctrl+Z`", "Undo latest changes"
":kbd:`Ctrl+Backspace`", "Delete the word before the cursor"
":kbd:`Ctrl+Del`", "Delete the word after the cursor"
":kbd:`Ctrl+F7`", "Toggle spell checking"
":kbd:`Ctrl+Return`", "Open the tag or reference under the cursor in the viewer"
":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph"
.. _a_kb_ins:
Insert Shortcuts
================
----------------
A set of insert features are also available through shortcuts, but they require a double
combination of key sequences. The insert feature is activated with :kbd:`Ctrl`:kbd:`K`, followed by
combination of key sequences. The insert feature is activated with :kbd:`Ctrl+K`, followed by
a key or key combination for the inserted content.
.. csv-table:: Keyboard Shortcuts
.. csv-table::
:header: "Shortcut", "Description"
:widths: 30, 70
:class: "tight-table"
":kbd:`Ctrl`:kbd:`K`, :kbd:`−`", "Insert a short dash (en dash)."
":kbd:`Ctrl`:kbd:`K`, :kbd:`_`", "Insert a long dash (em dash)."
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`_`", "Insert a horizontal bar (quotation dash)."
":kbd:`Ctrl`:kbd:`K`, :kbd:`~`", "Insert a figure dash (same width as a number)."
":kbd:`Ctrl`:kbd:`K`, :kbd:`1`", "Insert a left single quote."
":kbd:`Ctrl`:kbd:`K`, :kbd:`2`", "Insert a right single quote."
":kbd:`Ctrl`:kbd:`K`, :kbd:`3`", "Insert a left double quote."
":kbd:`Ctrl`:kbd:`K`, :kbd:`4`", "Insert a right double quote."
":kbd:`Ctrl`:kbd:`K`, :kbd:`'`", "Insert a modifier apostrophe."
":kbd:`Ctrl`:kbd:`K`, :kbd:`.`", "Insert an ellipsis."
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`'`", "Insert a prime."
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`""`", "Insert a double prime."
":kbd:`Ctrl`:kbd:`K`, :kbd:`Space`", "Insert a non-breaking space."
":kbd:`Ctrl`:kbd:`K`, :kbd:`Shift`:kbd:`Space`", "Insert a thin space."
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`Space`", "Insert a thin non-breaking space."
":kbd:`Ctrl`:kbd:`K`, :kbd:`*`", "Insert a list bullet."
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`−`", "Insert a hyphen bullet (alternative bullet)."
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`*`", "Insert a flower mark (alternative bullet)."
":kbd:`Ctrl`:kbd:`K`, :kbd:`%`", "Insert a per mille symbol."
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`O`", "Insert a degree symbol."
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`X`", "Insert a times sign."
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`D`", "Insert a division sign."
":kbd:`Ctrl`:kbd:`K`, :kbd:`G`", "Insert a ``@tag`` keyword."
":kbd:`Ctrl`:kbd:`K`, :kbd:`V`", "Insert a ``@pov`` keyword."
":kbd:`Ctrl`:kbd:`K`, :kbd:`F`", "Insert a ``@focus`` keyword."
":kbd:`Ctrl`:kbd:`K`, :kbd:`C`", "Insert a ``@char`` keyword."
":kbd:`Ctrl`:kbd:`K`, :kbd:`P`", "Insert a ``@plot`` keyword."
":kbd:`Ctrl`:kbd:`K`, :kbd:`S`", "Insert a synopsis comment."
":kbd:`Ctrl`:kbd:`K`, :kbd:`T`", "Insert a ``@time`` keyword."
":kbd:`Ctrl`:kbd:`K`, :kbd:`L`", "Insert a ``@location`` keyword."
":kbd:`Ctrl`:kbd:`K`, :kbd:`O`", "Insert an ``@object`` keyword."
":kbd:`Ctrl`:kbd:`K`, :kbd:`E`", "Insert an ``@entity`` keyword."
":kbd:`Ctrl`:kbd:`K`, :kbd:`X`", "Insert a ``@custom`` keyword."
":kbd:`Ctrl+K`, :kbd:`Space`", "Insert a non-breaking space"
":kbd:`Ctrl+K`, :kbd:`_`", "Insert a long dash (em dash)"
":kbd:`Ctrl+K`, :kbd:`.`", "Insert an ellipsis"
":kbd:`Ctrl+K`, :kbd:`'`", "Insert a modifier apostrophe"
":kbd:`Ctrl+K`, :kbd:`*`", "Insert a list bullet"
":kbd:`Ctrl+K`, :kbd:`%`", "Insert a per mille symbol"
":kbd:`Ctrl+K`, :kbd:`~`", "Insert a figure dash (same width as a number)"
":kbd:`Ctrl+K`, :kbd:`−`", "Insert a short dash (en dash)"
":kbd:`Ctrl+K`, :kbd:`1`", "Insert a left single quote"
":kbd:`Ctrl+K`, :kbd:`2`", "Insert a right single quote"
":kbd:`Ctrl+K`, :kbd:`3`", "Insert a left double quote"
":kbd:`Ctrl+K`, :kbd:`4`", "Insert a right double quote"
":kbd:`Ctrl+K`, :kbd:`C`", "Insert a ``@char`` keyword"
":kbd:`Ctrl+K`, :kbd:`E`", "Insert an ``@entity`` keyword"
":kbd:`Ctrl+K`, :kbd:`F`", "Insert a ``@focus`` keyword"
":kbd:`Ctrl+K`, :kbd:`G`", "Insert a ``@tag`` keyword"
":kbd:`Ctrl+K`, :kbd:`H`", "Insert a short description comment"
":kbd:`Ctrl+K`, :kbd:`L`", "Insert a ``@location`` keyword"
":kbd:`Ctrl+K`, :kbd:`M`", "Insert a ``@mention`` keyword"
":kbd:`Ctrl+K`, :kbd:`O`", "Insert an ``@object`` keyword"
":kbd:`Ctrl+K`, :kbd:`P`", "Insert a ``@plot`` keyword"
":kbd:`Ctrl+K`, :kbd:`S`", "Insert a synopsis comment"
":kbd:`Ctrl+K`, :kbd:`T`", "Insert a ``@time`` keyword"
":kbd:`Ctrl+K`, :kbd:`V`", "Insert a ``@pov`` keyword"
":kbd:`Ctrl+K`, :kbd:`X`", "Insert a ``@custom`` keyword"
":kbd:`Ctrl+K`, :kbd:`Ctrl+Space`", "Insert a thin non-breaking space"
":kbd:`Ctrl+K`, :kbd:`Ctrl+_`", "Insert a horizontal bar (quotation dash)"
":kbd:`Ctrl+K`, :kbd:`Ctrl+'`", "Insert a prime"
":kbd:`Ctrl+K`, :kbd:`Ctrl+""`", "Insert a double prime"
":kbd:`Ctrl+K`, :kbd:`Ctrl+*`", "Insert a flower mark (alternative bullet)"
":kbd:`Ctrl+K`, :kbd:`Ctrl+−`", "Insert a hyphen bullet (alternative bullet)"
":kbd:`Ctrl+K`, :kbd:`Ctrl+D`", "Insert a division sign"
":kbd:`Ctrl+K`, :kbd:`Ctrl+O`", "Insert a degree symbol"
":kbd:`Ctrl+K`, :kbd:`Ctrl+X`", "Insert a times sign"
":kbd:`Ctrl+K`, :kbd:`Shift+Space`", "Insert a thin space"
.. _a_kb_viewer:
Document Viewer Shortcuts
=========================
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`Alt+Left`", "Move backward in the view history"
":kbd:`Alt+Right`", "Move forward in the view history"
":kbd:`Ctrl+C`", "Copy selected text to clipboard"
":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph"
":kbd:`Ctrl+Shift+R`", "Close the document viewer"

View File

@@ -11,7 +11,7 @@ Typographical Notes
novelWriter has some support for typographical symbols that are not usually easily available in
many text editors. This includes for instance the proper unicode quotation marks, dashes, ellipsis,
thin spaces, etc. All these symbols are available from the :guilabel:`Insert` menu, and via
thin spaces, etc. All these symbols are available from the **Insert** menu, and via
keyboard shortcuts. See :ref:`a_kb_ins`.
This chapter provides some additional information on how novelWriter handles these symbols.
@@ -30,8 +30,8 @@ Dashes and Ellipsis
With the auto-replace feature enabled (see :ref:`a_ui_edit_auto`), multiple hyphens are converted
automatically to short and long dashes, and three dots to ellipsis. The last auto-replace can
always be reverted with the undo command :kbd:`Ctrl`:kbd:`Z`, reverting the text to what you typed
before the automatic replacement occurred.
always be reverted with the undo command :kbd:`Ctrl+Z`, reverting the text to what you typed before
the automatic replacement occurred.
In addition, "Figure Dash" is available. The Figure Dash is a dash that has the same width as the
numbers of the same font, for most fonts. It helps to align numbers nicely in columns when you need
@@ -43,25 +43,25 @@ Single and Double Quotes
All the different quotation marks listed on the `Quotation Mark`_ Wikipedia page are available, and
can be selected as auto-replaced symbols for straight single and double quote key strokes. The
settings can be found in :guilabel:`Preferences`.
settings can be found in **Preferences**.
Ordinarily, text wrapped in quotes are highlighted by the editor. This is meant as a convenience
for highlighting dialogue between characters. This feature can be disabled in
:guilabel:`Preferences` if this feature isn't wanted.
**Preferences** if this feature isn't wanted.
The editor distinguishes between text wrapped in regular straight double quotes and the
user-selected double quote symbols. This is to help the writer recognise which parts of the text
are not using the chosen quote symbols. Two convenience functions in the :guilabel:`Format` menu
are not using the chosen quote symbols. Two convenience functions in the **Format** menu
can be used to re-format a selected section of text with the correct quote symbols.
Single and Double Prime
------------------------
Both single and double prime symbols are available in the :guilabel:`Insert` menu. These symbols
are the correct symbols to use for unit symbols for feet, inches, minutes and seconds. The usage of
these is described in more detail on the Wikipedia Prime_ page. They look very similar to single
and double straight quotes, and may be renderred similarly by the font, but they have different
Both single and double prime symbols are available in the **Insert** menu. These symbols
are the correct symbols to use for unit symbols for feet, inches, minutes, and seconds. The usage
of these is described in more detail on the Wikipedia Prime_ page. They look very similar to single
and double straight quotes, and may be rendered similarly by the font, but they have different
codes. Using these correctly will also prevent the auto-replace and dialogue highlighting features
misunderstanding their meaning in the text.
@@ -74,14 +74,14 @@ even if it is intended as an apostrophe. This also includes the syntax highlight
assume the first following apostrophe is the closing symbol of a single quoted region of text.
To get around this, an alternative apostrophe is available. It is a special Unicode character that
is not categorised as punctuation, but as a modifier. It is usually renderred the same way as the
is not categorised as punctuation, but as a modifier. It is usually rendered the same way as the
right single quotation marks, depending on the font. There is a Wikipedia article for the
`Modifier letter apostrophe`_ with more details.
.. note::
On export with the :guilabel:`Build Novel Project` tool, these apostrophes will be replaced
On export with the **Build Manuscript** tool, these apostrophes will be replaced
automatically with the corresponding right hand single quote symbol as is generally recommended.
Therefore it doesn't really matter if you only use them to correct highlighting.
Therefore it doesn't really matter if you only use them to correct syntax highlighting.
Special Space Symbols

View File

@@ -0,0 +1,188 @@
.. _a_ui_writing:
*********************
The Editor and Viewer
*********************
.. _Compose Key: https://en.wikipedia.org/wiki/Compose_key
This chapter covers in more detail how the document editor and viewer panels work.
.. _a_ui_edit:
Editing a Document
==================
.. figure:: images/fig_editor.png
A screenshot of the Document Editor panel.
To edit a document, double-click it in the project tree, press the :kbd:`Return` key while having
it selected, or drag and drop it onto the editor panel. This will open the document in the document
editor. The editor uses a Markdown-like syntax for some features, and a novelWriter-specific syntax
for others. The syntax format is described in the :ref:`a_fmt` chapter.
The editor has a maximise button, which toggles the **Focus Mode**, and a close button in the
top--right corner. On the top--left side you will find a tools button that opens a toolbar with a
few buttons for applying text formatting, a drop down menu for navigating between headings, and a
search button to open the search dialog.
Both the document editor and viewer will show the label of the currently open document in the
header at the top of the edit or view panel. Optionally, the full project path to the document can
be shown. This can be set in **Preferences**.
.. tip::
Clicking on the document title bar will select the document in the project tree and thus reveal
its location there, making it easier to find in a large project.
Any :term:`references<reference>` in the editor can be opened in the viewer by moving the cursor to
the label and pressing :kbd:`Ctrl+Return`. You can also control-click them with your mouse.
Spell Checking
--------------
A third party library called Enchant is used for spell checking in the editor. The controls for
spell checking can be found in the **Tools** menu. You can also set spell checking language in
**Project Settings**.
This spell checking library comes with support for custom words that you can add by selecting
"Add Word to Dictionary" from the context menu when a word is highlighted by the spell checker as
misspelled. The custom words are managed on a per-project basis, and can the list of words can be
edited from the **Project Word List** tool available from the **Tools** menu.
.. note::
Generally, spell checking dictionaries are collected from your operating system, but on Windows
they are not. See :ref:`a_custom_dict` for how to add spell checking dictionaries on Windows.
Editor Auto-Completer
---------------------
If you type the character ``@`` on a new line, a pop-up menu will appear showing the different
available keywords. The list will shorten as you type. Once a keyword command has been selected or
typed, the editor may suggest further options based on your project content. See
:ref:`a_references_completer` for more details.
.. versionadded:: 2.2
.. _a_ui_view:
Viewing a Document
==================
.. figure:: images/fig_viewer.png
A screenshot of the Document Viewer panel.
Any document in the project tree can also be viewed in parallel in a right hand side document
viewer. To view a document, press :kbd:`Ctrl+R`, select **View Document** in the menu or context
menu, or drag and drop the document onto the viewer panel. If you have a middle mouse button,
middle-clicking on the document will also open it in the viewer.
The document viewed does not have to be the same document as the one currently being edited.
However, If you *are* viewing the same document, pressing :kbd:`Ctrl+R` from the editor will update
the document with your latest changes. You can also press the reload button in the top--right
corner of the viewer panel, next to the close button, to achieve the same thing.
In the viewer :term:`references<reference>` become clickable links. Clicking them will replace the
content of the viewer with the content of the document the reference points to.
The document viewer keeps a history of viewed documents, which you can navigate with the arrow
buttons in the top--left corner of the viewer. If your mouse has backward and forward navigation
buttons, these can be used as well. They work just like the backward and forward features in a
browser. The left-most button is a dropdown menu for quickly navigation between headings in the
document. The edit button on the right will open the viewed document in the editor.
At the bottom of the view panel there is a **References** panel. (If it is hidden, click the button
on the left side of the footer area to reveal it.) This panel contains a References tab with links
to all documents referring back to the one you're currently viewing, if any has been defined. If
you have created root folders and tags for various story elements like characters and plot points,
these will appear as additional tabs in this panel.
.. note::
The **References** panel relies on an up-to-date :term:`index<project index>` of the project.
The index is maintained automatically. However, if anything is missing, or seems wrong, the
index can always be rebuilt by selecting **Rebuild Index** from the **Tools** menu, or by
pressing :kbd:`F9`.
.. versionadded:: 2.2
The reference panel was redesigned and the additional tabs added.
.. _a_ui_edit_search:
Search & Replace
================
.. figure:: images/fig_editor_search.png
A screenshot of the Document Editor search box.
The document editor has a search and replace tool that can be activated with :kbd:`Ctrl+F` for
search mode or :kbd:`Ctrl+H` for search and replace mode.
Pressing :kbd:`Return` while in the search box will search for the next occurrence of the word, and
:kbd:`Shift+Return` for the previous. Pressing :kbd:`Return` in the replace box, will replace the
highlighted text and move to the next result.
There are a number of settings for the search tool available as toggle switches above the search
box. They allow you to search for, in order: matched case only, whole word results only, search
using regular expressions, loop search when reaching the end of the document, and move to the next
document when reaching the end. There is also a switch that will try to match the case of the word
when the replacement is made. That is, it will try to keep the word upper, lower, or capitalised to
match the word being replaced.
.. seealso::
For more information on the capabilities of the Regular Expression option, see the Qt
documentation for the `QRegularExpression <https://doc.qt.io/qt-5/qregularexpression.html>`_
class.
.. _a_ui_edit_auto:
Auto-Replace as You Type
========================
A few auto-replace features are supported by the editor. You can control every aspect of the
auto-replace feature from **Preferences**. You can also disable this feature entirely if you wish.
.. tip::
If you don't like auto-replacement, all symbols inserted by this feature are also available in
the :guilabel:`Insert` menu, and via :ref:`a_kb_ins`. You may also be using a `Compose Key`_
setup, which means you may not need the auto-replace feature at all.
The editor is able to replace two and three hyphens with short and long dashes, triple points with
ellipsis, and replace straight single and double quotes with user-defined quote symbols. It will
also try to determine whether to use the opening or closing symbol, although this feature isn't
always accurate. Especially distinguishing between closing single quote and apostrophe can be
tricky for languages that use the same symbol for these, like English does.
.. tip::
If the auto-replace feature changes a symbol when you did not want it to change, pressing
:kbd:`Ctrl+Z` once after the auto-replacement will undo it without undoing the character
you typed before it.
.. _a_ui_edit_dialogue:
Dialogue Highlighting
=====================
The editor and viewer can optionally highlight character dialogue in your novel documents. By
default, this feature is set to display text in double quotes as dialogue. In **Preferences**, you
can change this to support various other dialogue markers that instead uses dashes to indicate
dialogue, like those used in Spanish, Portuguese, Polish, etc.
Various styles are supported by changing the settings under "Text Highlighting" in **Preferences**.
It is also possible to include the dialogue highlighting in your manuscripts.

View File

@@ -48,6 +48,7 @@ instance `en_GB` for British English.
You will need the translation tool Qt 5 Linguist on your system.
For Ubuntu/Debian, run:
```bash
sudo apt install qttools5-dev-tools
```
@@ -75,8 +76,9 @@ The `i18n` folder at the root of the repository contains the `nw_XX.ts` translat
Whether to add a new language to the translation framework, or to update the file against the
current source code, you must first run the `qtlupdate` command:
```bash
python3 setup.py qtlupdate i18n/nw_XX.ts
python3 pkgutils.py qtlupdate i18n/nw_XX.ts
```
The file name must be in the correct format. All translation files must be located in the `i18n`
@@ -86,6 +88,10 @@ be a valid ISO language code, otherwise novelWriter will not accept the file.
For instance, the French translation uses the language code `fr_FR`, so its translation file will
be `nw_fr_FR.ts`
Note: The `qtlupdate` command needs the `lupdate` tool provided by PyQt6, which uses the latest
TS file format. The tool in PyQt5 generates an older file format. On Debian/Ubuntu it is provided
by the package `pyqt6-dev-tools`.
### Edit the Translation File in Qt Linguist
@@ -100,8 +106,9 @@ Please select "English" and "United Kingdom" as the _source_ language if prompte
The application does not use `.ts` files directly. The `novelwriter/assets/i18n/nw_XX.qm` files are
the actual files used to translate the GUI into another language other than the default British
English. These files are not generated by default, but they can be built with:
```bash
python3 setup.py qtlrelease
python3 pkgutils.py qtlrelease
```
You can now test the translation in novelWriter. The Preferences dialog should list the newly added

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

5102
i18n/nw_it_IT.ts Normal file

File diff suppressed because it is too large Load Diff

5102
i18n/nw_ja_JP.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

5102
i18n/nw_pl_PL.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

5067
i18n/nw_ru_RU.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
# PyQt6 Linguist Tool
This is a copy of the `pylupdate` tool from PyQt6 version 6.2.1 from
[PyPi](https://pypi.org/project/PyQt6/).
The tool is stripped down to run for novelWriter.
PyQt6 is licensed under GPL 3.0

View File

@@ -1,22 +0,0 @@
# Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
#
# This file is part of PyQt6.
#
# This file may be used under the terms of the GNU General Public License
# version 3.0 as published by the Free Software Foundation and appearing in
# the file LICENSE included in the packaging of this file. Please review the
# following information to ensure the GNU General Public License version 3.0
# requirements will be met: http://www.gnu.org/copyleft/gpl.html.
#
# If you do not wish to use this file under the terms of the GPL version 3.0
# then you may purchase a commercial license. For more information contact
# info@riverbankcomputing.com.
#
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
# The public API.
from .lupdate import lupdate
__all__ = ["lupdate"]

View File

@@ -1,90 +0,0 @@
# Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
#
# This file is part of PyQt6.
#
# This file may be used under the terms of the GNU General Public License
# version 3.0 as published by the Free Software Foundation and appearing in
# the file LICENSE included in the packaging of this file. Please review the
# following information to ensure the GNU General Public License version 3.0
# requirements will be met: http://www.gnu.org/copyleft/gpl.html.
#
# If you do not wish to use this file under the terms of the GPL version 3.0
# then you may purchase a commercial license. For more information contact
# info@riverbankcomputing.com.
#
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
import fnmatch
import os
# from .designer_source import DesignerSource
from .python_source import PythonSource
from .translation_file import TranslationFile
from .user import UserException
def lupdate(
sources, translation_files, no_obsolete=False, no_summary=True, verbose=False, excludes=None
):
""" Update a sequence of translation (.ts) files from a sequence of Python
source (.py) files, Designer source (.ui) files or directories containing
source files.
"""
if excludes is None:
excludes = ()
# Read the .ts files.
translations = [
TranslationFile(ts, no_obsolete=no_obsolete, no_summary=no_summary, verbose=verbose)
for ts in translation_files
]
# Read the sources.
source_files = []
for source in sources:
if os.path.isdir(source):
for dirpath, _, filenames in os.walk(source):
for fn in filenames:
# Apply any exclusion patterns.
for exclude in excludes:
if fnmatch.fnmatch(fn, exclude):
fn = None
break
if fn is None:
continue
filename = os.path.join(dirpath, fn)
if filename.endswith('.py'):
source_files.append(PythonSource(filename=filename, verbose=verbose))
# UI file support is disabled
# elif filename.endswith('.ui'):
# source_files.append(
# DesignerSource(filename=filename,
# verbose=verbose))
elif verbose:
print("Ignoring", filename)
elif source.endswith('.py'):
source_files.append(PythonSource(filename=source, verbose=verbose))
# UI file support is disabled
# elif source.endswith('.ui'):
# source_files.append(
# DesignerSource(filename=source, verbose=verbose))
else:
raise UserException("{0} must be a directory or a .py or a .ui file".format(source))
# Update each translation for each source.
for t in translations:
for s in source_files:
t.update(s)
t.write()

View File

@@ -1,362 +0,0 @@
# Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
#
# This file is part of PyQt6.
#
# This file may be used under the terms of the GNU General Public License
# version 3.0 as published by the Free Software Foundation and appearing in
# the file LICENSE included in the packaging of this file. Please review the
# following information to ensure the GNU General Public License version 3.0
# requirements will be met: http://www.gnu.org/copyleft/gpl.html.
#
# If you do not wish to use this file under the terms of the GPL version 3.0
# then you may purchase a commercial license. For more information contact
# info@riverbankcomputing.com.
#
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
import ast
import re
import tokenize
from .source_file import SourceFile
from .translations import Context, EmbeddedComments, Message
from .user import User, UserException
class PythonSource(SourceFile, User):
""" Encapsulate a Python source file. """
# The regular expression to extract a PEP 263 encoding.
_PEP_263 = re.compile(rb'^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)')
def __init__(self, **kwargs):
""" Initialise the object. """
super().__init__(**kwargs)
# Read the source file.
self.progress("Reading {0}...".format(self.filename))
with open(self.filename, 'rb') as f:
source = f.read()
# Implement universal newlines.
source = source.replace(b'\r\n', b'\n').replace(b'\r', b'\n')
# Try and extract a PEP 263 encoding.
encoding = 'UTF-8'
for line_nr, line in enumerate(source.split(b'\n')):
if line_nr > 1:
break
match = re.match(self._PEP_263, line)
if match:
encoding = match.group(1).decode('ascii')
break
# Decode the source according to the encoding.
try:
source = source.decode(encoding)
except LookupError:
raise UserException("Unsupported encoding '{0}'".format(encoding))
# Parse the source file.
self.progress("Parsing {0}...".format(self.filename))
try:
tree = ast.parse(source, filename=self.filename)
except SyntaxError as e:
raise UserException(
"Invalid syntax at line {0} of {1}:\n{2}".format(
e.lineno, e.filename, e.text.rstrip()
)
)
# Look for translation contexts and their contents.
visitor = Visitor(self)
visitor.visit(tree)
# Read the file again as a sequence of tokens so that we see the
# comments.
with open(self.filename, 'rb') as f:
current = None
for token in tokenize.tokenize(f.readline):
if token.type == tokenize.COMMENT:
# See if it is an embedded comment.
parts = token.string.split(' ', maxsplit=1)
if len(parts) == 2:
if parts[0] == '#:':
if current is None:
current = EmbeddedComments()
current.extra_comments.append(parts[1])
elif parts[0] == '#=':
if current is None:
current = EmbeddedComments()
current.message_id = parts[1]
elif parts[0] == '#~':
parts = parts[1].split(' ', maxsplit=1)
if len(parts) == 1:
parts.append('')
if current is None:
current = EmbeddedComments()
current.extras.append(parts)
elif token.type == tokenize.NL:
continue
elif current is not None:
# Associate the embedded comment with the line containing
# this token.
line_nr = token.start[0]
# See if there is a message on that line.
for context in self.contexts:
for message in context.messages:
if message.line_nr == line_nr:
break
else:
message = None
if message is not None:
message.embedded_comments = current
break
current = None
class Visitor(ast.NodeVisitor):
""" A visitor that extracts translation contexts. """
def __init__(self, source):
""" Initialise the visitor. """
self._source = source
self._context_stack = []
super().__init__()
def visit_Call(self, node):
""" Visit a call. """
# Parse the arguments if a translation function is being called.
call_args = None
if isinstance(node.func, ast.Attribute):
name = node.func.attr
if name == 'tr':
call_args = self._parse_tr(node)
elif name == 'translate':
call_args = self._parse_translate(node)
elif isinstance(node.func, ast.Name):
name = node.func.id
if name == 'QT_TR_NOOP':
call_args = self._parse_QT_TR_NOOP(node)
elif name == 'QT_TRANSLATE_NOOP':
call_args = self._parse_QT_TRANSLATE_NOOP(node)
# Update the context if the arguments are usable.
if call_args is not None and call_args.source != '':
call_args.context.messages.append(
Message(
self._source.filename, node.lineno,
call_args.source, call_args.disambiguation,
(call_args.numerus)
)
)
self.generic_visit(node)
def visit_ClassDef(self, node):
""" Visit a class. """
try:
name = self._context_stack[-1].name + '.' + node.name
except IndexError:
name = node.name
self._context_stack.append(Context(name))
self.generic_visit(node)
context = self._context_stack.pop()
if context.messages:
self._source.contexts.append(context)
def _get_current_context(self):
""" Return the current Context object if there is one. """
return self._context_stack[-1] if self._context_stack else None
@classmethod
def _get_first_str(cls, args):
""" Get the first of a list of arguments as a str. """
# Check that there is at least one argument.
if not args:
return None
return cls._get_str(args[0])
def _get_or_create_context(self, name):
""" Return the Context object for a name, creating it if necessary. """
for context in self._source.contexts:
if context.name == name:
return context
context = Context(name)
self._source.contexts.append(context)
return context
@staticmethod
def _get_str(node, allow_none=False):
""" Return the str from a node or None if it wasn't an appropriate
node.
"""
if isinstance(node, ast.Str):
return node.s
if isinstance(node, ast.Constant):
if isinstance(node.value, str):
return node.value
if allow_none and node.value is None:
return ''
return None
def _parse_QT_TR_NOOP(self, node):
""" Parse the arguments to QT_TR_NOOP(). """
# Ignore unless there is a current context.
context = self._get_current_context()
if context is None:
return None
call_args = self._parse_noop_without_context(node.args, node.keywords)
if call_args is None:
return None
call_args.context = context
return call_args
def _parse_QT_TRANSLATE_NOOP(self, node):
""" Parse the arguments to QT_TRANSLATE_NOOP(). """
# Get the context.
name = self._get_first_str(node.args)
if name is None:
return None
call_args = self._parse_noop_without_context(node.args[1:], node.keywords)
if call_args is None:
return None
call_args.context = self._get_or_create_context(name)
return call_args
def _parse_tr(self, node):
""" Parse the arguments to tr(). """
# Ignore unless there is a current context.
context = self._get_current_context()
if context is None:
return None
call_args = self._parse_without_context(node.args, node.keywords)
if call_args is None:
return None
call_args.context = context
return call_args
def _parse_translate(self, node):
""" Parse the arguments to translate(). """
# Get the context.
name = self._get_first_str(node.args)
if name is None:
return None
call_args = self._parse_without_context(node.args[1:], node.keywords)
if call_args is None:
return None
call_args.context = self._get_or_create_context(name)
return call_args
def _parse_without_context(self, args, keywords):
""" Parse arguments for a message source and optional disambiguation
and n.
"""
# The source is required.
source = self._get_first_str(args)
if source is None:
return None
if len(args) > 1:
disambiguation = self._get_str(args[1], allow_none=True)
else:
for kw in keywords:
if kw.arg == 'disambiguation':
disambiguation = self._get_str(kw.value, allow_none=True)
break
else:
disambiguation = ''
# Ignore if the disambiguation is specified but isn't a string.
if disambiguation is None:
return None
if len(args) > 2:
numerus = True
else:
numerus = 'n' in keywords
if len(args) > 3:
return None
return CallArguments(source, disambiguation, numerus)
def _parse_noop_without_context(self, args, keywords):
""" Parse arguments for a message source. """
# There must be exactly one positional argument.
if len(args) != 1 or len(keywords) != 0:
return None
source = self._get_str(args[0])
if source is None:
return None
return CallArguments(source)
class CallArguments:
""" Encapsulate the possible arguments of a translation function. """
def __init__(self, source, disambiguation='', numerus=False):
""" Initialise the object. """
self.context = None
self.source = source
self.disambiguation = disambiguation
self.numerus = numerus

View File

@@ -1,29 +0,0 @@
# Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
#
# This file is part of PyQt6.
#
# This file may be used under the terms of the GNU General Public License
# version 3.0 as published by the Free Software Foundation and appearing in
# the file LICENSE included in the packaging of this file. Please review the
# following information to ensure the GNU General Public License version 3.0
# requirements will be met: http://www.gnu.org/copyleft/gpl.html.
#
# If you do not wish to use this file under the terms of the GPL version 3.0
# then you may purchase a commercial license. For more information contact
# info@riverbankcomputing.com.
#
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
class SourceFile:
""" The base class for any source file that provides translation contexts.
"""
def __init__(self, filename, **kwargs):
""" Initialise the object. """
super().__init__(**kwargs)
self.filename = filename
self.contexts = []

View File

@@ -1,390 +0,0 @@
# Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
#
# This file is part of PyQt6.
#
# This file may be used under the terms of the GNU General Public License
# version 3.0 as published by the Free Software Foundation and appearing in
# the file LICENSE included in the packaging of this file. Please review the
# following information to ensure the GNU General Public License version 3.0
# requirements will be met: http://www.gnu.org/copyleft/gpl.html.
#
# If you do not wish to use this file under the terms of the GPL version 3.0
# then you may purchase a commercial license. For more information contact
# info@riverbankcomputing.com.
#
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
import os
from xml.etree import ElementTree
from .user import User, UserException
class TranslationFile(User):
""" Encapsulate a translation file. """
def __init__(self, ts_file, no_obsolete, no_summary, **kwargs):
""" Initialise the translation file. """
super().__init__(**kwargs)
if os.path.isfile(ts_file):
self.progress("Reading {0}...".format(ts_file))
try:
self._root = ElementTree.parse(ts_file).getroot()
except Exception as e:
raise UserException(
"{}: {}: {}".format(ts_file, "invalid translation file", str(e))
)
else:
self._root = ElementTree.fromstring(_EMPTY_TS)
self._ts_file = ts_file
self._no_obsolete = no_obsolete
self._no_summary = no_summary
self._updated_contexts = {}
# Create a dict of contexts keyed by the context name and having the
# list of message elements as the value.
self._contexts = {}
# Also create a dict of existing translations so that they can be
# re-used.
self._translations = {}
context_els = []
for context_el in self._root:
if context_el.tag != 'context':
continue
context_els.append(context_el)
name = ''
message_els = []
for el in context_el:
if el.tag == 'name':
name = el.text
elif el.tag == 'message':
message_els.append(el)
if name:
self._contexts[name] = message_els
for message_el in message_els:
source_el = message_el.find('source')
if source_el is None or not source_el.text:
continue
translation_el = message_el.find('translation')
if translation_el is None or not translation_el.text:
continue
self._translations[source_el.text] = translation_el.text
# Remove the context elements but keep everything else in the root
# (probably set by Linguist).
for context_el in context_els:
self._root.remove(context_el)
# Clear the summary statistics.
self._nr_new = 0
self._nr_new_duplicates = 0
self._nr_new_using_existing_translation = 0
self._nr_existing = 0
self._nr_kept_obsolete = 0
self._nr_discarded_obsolete = 0
self._nr_discarded_untranslated = 0
# Remember all new messages so we can make the summary less confusing
# than it otherwise might be.
self._new_message_els = []
def update(self, source):
""" Update the translation file from a SourceFile object. """
self.progress("Updating {0} from {1}...".format(self._ts_file, source.filename))
for context in source.contexts:
# Get the messages that we already know about for this context.
try:
message_els = self._contexts[context.name]
except KeyError:
message_els = []
# Get the messages that have already been updated.
updated_message_els = self._get_updated_message_els(context.name)
for message in context.messages:
message_el = self._find_message(message, message_els)
if message_el is not None:
# Move the message to the updated list.
message_els.remove(message_el)
self._add_message_el(message_el, updated_message_els)
else:
# See if this is a new message. If not then we just have
# another location for an existing message.
message_el = self._find_message(message, updated_message_els)
if message_el is None:
message_el = self._make_message_el(message)
updated_message_els.append(message_el)
self.progress("Added new message '{0}'".format(self.pretty(message.source)))
self._nr_new += 1
else:
self.progress("Updated message '{0}'".format(self.pretty(message.source)))
# Don't count another copy of a new message as an existing
# one.
if message_el in self._new_message_els:
self._nr_new_duplicates += 1
else:
self._nr_existing += 1
message_el.insert(0, self._make_location_el(message))
def write(self):
""" Write the translation file back to the filesystem. """
# If we are keeping obsolete messages then add them to the updated
# message elements list.
for name, message_els in self._contexts.items():
updated_message_els = None
for message_el in message_els:
source = self.pretty(message_el.find('source').text)
translation_el = message_el.find('translation')
if translation_el is not None and translation_el.text:
if self._no_obsolete:
self.progress("Discarded obsolete message '{0}'".format(source))
self._nr_discarded_obsolete += 1
else:
translation_el.set('type', 'vanished')
if updated_message_els is None:
updated_message_els = self._get_updated_message_els(name)
self._add_message_el(message_el, updated_message_els)
self.progress("Kept obsolete message '{0}'".format(source))
self._nr_kept_obsolete += 1
else:
self.progress("Discarded untranslated message '{0}'".format(source))
self._nr_discarded_untranslated += 1
# Created the sorted context elements.
for name in sorted(self._updated_contexts.keys()):
context_el = ElementTree.Element('context')
name_el = ElementTree.Element('name')
name_el.text = name
context_el.append(name_el)
context_el.extend(self._updated_contexts[name])
self._root.append(context_el)
self.progress("Writing {0}...".format(self._ts_file))
with open(self._ts_file, 'w', encoding='utf-8', newline='\n') as f:
f.write('<?xml version="1.0" encoding="utf-8"?>\n')
f.write('<!DOCTYPE TS>\n')
# Python v3.9 and later.
if hasattr(ElementTree, 'indent'):
ElementTree.indent(self._root)
ElementTree.ElementTree(self._root).write(f, encoding='unicode')
f.write('\n')
if not self._no_summary:
self._summary()
@staticmethod
def _add_message_el(message_el, updated_message_els):
""" Add a message element to a list of updated message elements. """
# Remove all the location elements.
for location_el in message_el.findall('location'):
message_el.remove(location_el)
# Add the message to the updated list.
updated_message_els.append(message_el)
@classmethod
def _find_message(cls, message, message_els):
""" Return the message element for a message from a list. """
for message_el in message_els:
source = ''
comment = ''
extra_comment = ''
extras = []
# Extract the data from the element.
for el in message_el:
if el.tag == 'source':
source = el.text
elif el.tag == 'comment':
comment = el.text
elif el.tag == 'extracomment':
extra_comment = el.text
elif el.tag.startswith('extra-'):
extras.append([el.tag[6:], el.text])
# Compare with the message.
if source != message.source:
continue
if comment != message.comment:
continue
if extra_comment != cls._get_message_extra_comments(message):
continue
if extras != message.embedded_comments.extras:
continue
return message_el
return None
@staticmethod
def _get_message_extra_comments(message):
""" Return a message's extra comments as they appear in a .ts file. """
return ' '.join(message.embedded_comments.extra_comments)
def _get_updated_message_els(self, name):
""" Return the list of updated message elements for a context. """
try:
updated_message_els = self._updated_contexts[name]
except KeyError:
updated_message_els = []
self._updated_contexts[name] = updated_message_els
return updated_message_els
def _make_location_el(self, message):
""" Return a 'location' element. """
return ElementTree.Element(
'location',
filename=os.path.relpath(
message.filename, start=os.path.dirname(os.path.abspath(self._ts_file))
),
line=str(message.line_nr)
)
def _make_message_el(self, message):
""" Return a 'message' element. """
attrs = {}
if message.embedded_comments.message_id:
attrs['id'] = message.embedded_comments.message_id
if message.numerus:
attrs['numerus'] = 'yes'
message_el = ElementTree.Element('message', attrs)
source_el = ElementTree.Element('source')
source_el.text = message.source
message_el.append(source_el)
if message.comment:
comment_el = ElementTree.Element('comment')
comment_el.text = message.comment
message_el.append(comment_el)
if message.embedded_comments.extra_comments:
extracomment_el = ElementTree.Element('extracomment')
extracomment_el.text = self._get_message_extra_comments(message)
message_el.append(extracomment_el)
translation_el = ElementTree.Element('translation', type='unfinished')
# Try and find another message with the same source and use its
# translation if it has one.
translation = self._translations.get(message.source)
if translation:
translation_el.text = translation
self.progress("Reused existing translation for '{0}'".format(
self.pretty(message.source))
)
self._nr_new_using_existing_translation += 1
if message.numerus:
translation_el.append(ElementTree.Element('numerusform'))
message_el.append(translation_el)
for field, value in message.embedded_comments.extras:
el = ElementTree.Element('extra-' + field)
el.text = value
message_el.append(el)
self._new_message_els.append(message_el)
return message_el
def _summary(self):
""" Display the summary of changes to the user. """
summary_lines = []
# Display a line of the summary and the heading if not already done.
def summary(line):
nonlocal summary_lines
if not summary_lines:
summary_lines.append("Summary of changes to {ts}:".format(ts=self._ts_file))
summary_lines.append(" " + line)
if self._nr_new:
if self._nr_new_duplicates:
summary("{0} new messages were added (and {1} duplicates)".format(
self._nr_new, self._nr_new_duplicates))
else:
summary("{0} new messages were added".format(self._nr_new))
if self._nr_new_using_existing_translation:
summary("{0} messages reused existing translations".format(
self._nr_new_using_existing_translation))
if self._nr_existing:
summary("{0} existing messages were found".format(
self._nr_existing))
if self._nr_kept_obsolete:
summary("{0} obsolete messages were kept".format(
self._nr_kept_obsolete))
if self._nr_discarded_obsolete:
summary("{0} obsolete messages were discarded".format(
self._nr_discarded_obsolete))
if self._nr_discarded_untranslated:
summary("{0} untranslated messages were discarded".format(
self._nr_discarded_untranslated))
if not summary_lines:
summary_lines.append("{ts} was unchanged".format(ts=self._ts_file))
print(os.linesep.join(summary_lines))
# The XML of an empty .ts file. This is what a current lupdate will create
# with an empty C++ source file.
_EMPTY_TS = '''<TS version="2.1">
</TS>
'''

View File

@@ -1,51 +0,0 @@
# Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
#
# This file is part of PyQt6.
#
# This file may be used under the terms of the GNU General Public License
# version 3.0 as published by the Free Software Foundation and appearing in
# the file LICENSE included in the packaging of this file. Please review the
# following information to ensure the GNU General Public License version 3.0
# requirements will be met: http://www.gnu.org/copyleft/gpl.html.
#
# If you do not wish to use this file under the terms of the GPL version 3.0
# then you may purchase a commercial license. For more information contact
# info@riverbankcomputing.com.
#
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
class Context:
""" Encapsulate a message context. """
def __init__(self, name):
""" Initialise the context. """
self.name = name
self.messages = []
class EmbeddedComments:
""" Encapsulate information for a translator embedded in comments. """
def __init__(self):
""" Initialise the object. """
self.message_id = ''
self.extra_comments = []
self.extras = []
class Message:
""" Encapsulate a message. """
def __init__(self, filename, line_nr, source, comment, numerus):
""" Initialise the message. """
self.filename = filename
self.line_nr = line_nr
self.source = source
self.comment = comment
self.numerus = numerus
self.embedded_comments = EmbeddedComments()

View File

@@ -1,47 +0,0 @@
# Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
#
# This file is part of PyQt6.
#
# This file may be used under the terms of the GNU General Public License
# version 3.0 as published by the Free Software Foundation and appearing in
# the file LICENSE included in the packaging of this file. Please review the
# following information to ensure the GNU General Public License version 3.0
# requirements will be met: http://www.gnu.org/copyleft/gpl.html.
#
# If you do not wish to use this file under the terms of the GPL version 3.0
# then you may purchase a commercial license. For more information contact
# info@riverbankcomputing.com.
#
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
class UserException(Exception):
""" Encapsulate an exception ultimate caused by the user. """
pass
class User:
""" A mixin that provides methods for communicating with the user. """
def __init__(self, verbose, **kwargs):
""" Initialise the object. """
super().__init__(**kwargs)
self._verbose = verbose
@staticmethod
def pretty(text):
""" Returns a pretty-fied version of some text suitable for displaying
to the user.
"""
return text.replace('\n', '\\n')
def progress(self, message):
""" Display a progress message. """
if self._verbose:
print(message)

View File

@@ -47,19 +47,3 @@ QT_TRANSLATE_NOOP("QPlatformTheme", "Help")
QT_TRANSLATE_NOOP("QPlatformTheme", "Apply")
QT_TRANSLATE_NOOP("QPlatformTheme", "Reset")
QT_TRANSLATE_NOOP("QPlatformTheme", "Restore Defaults")
# QWizard
# =======
QT_TRANSLATE_NOOP("QWizard", "Go Back")
QT_TRANSLATE_NOOP("QWizard", "< &Back")
QT_TRANSLATE_NOOP("QWizard", "Continue")
QT_TRANSLATE_NOOP("QWizard", "&Next")
QT_TRANSLATE_NOOP("QWizard", "&Next >")
QT_TRANSLATE_NOOP("QWizard", "Commit")
QT_TRANSLATE_NOOP("QWizard", "Done")
QT_TRANSLATE_NOOP("QWizard", "&Finish")
QT_TRANSLATE_NOOP("QWizard", "Cancel")
QT_TRANSLATE_NOOP("QWizard", "Cancel")
QT_TRANSLATE_NOOP("QWizard", "Help")
QT_TRANSLATE_NOOP("QWizard", "&Help")

Some files were not shown because too many files have changed in this diff Show More