Release Notes
This patch release fixes a few minor cosmetic issues, a minor issue with the indexer, and a bug when adding words to the user's own spell check dictionary. Additionally, the documentation has been updated based on user feedback, and some install issues resolved.
Detailed Changelog
Installation
- The dependency list was missing in the setup configuration for PyPi due to a bug in the
setup.cfgfile. The dependencies have been moved to a different section where the setup tool now picks them up properly. Issue #570, PR #573 by @stranger-danger-zamu.
Bug Fixes
- Fixed an issue with note files being moved between a non-novel root folder and a novel root folder without clearing its index entry in the former note or novel index. This would cause duplicate entries for such a file. PR #558.
- Fixed a cosmetic issue where the meta data panel below the project tree was not cleared when the project was closed. PR #559.
- Fixed an issue where the main window title would not be cleared when a project was closed, and the new title not set when a new project was first created. Issue #560, PR #561.
- The editor context menu option to "Add Word to Dictionary" should also be visible when there are no spell checker suggestions. The entry was erroneously added under an if-condition that excluded it in those cases. Issue #574, PR #575.
Documentation
- Fixed some typos and spelling mistakes in the documentation, and reworded parts of the text that were unclear. The technical page has also been extended with more information on project folder structure. PR #557.
- Clarify install instructions, and remove the duplicate instructions in the README file and replace them with a brief section. The full instructions are in the documentation. Issues #566 and #570, PR #576.
Assets
5
vkbo
released this
Release Notes
This release is mainly to bring the documentation up to date, as I forgot to update the install instructions in the original 1.0 release. I also forgot to change the various settings and help texts that describe novelWriter as under initial development (beta state).
Some minor improvements have been made to the "Edit Project Item" dialog and some restrictions on the settings available for documents created in the "Outtakes" folder relaxed. A few minor issues with the document and project changed icons on the status bar have also been resolved. The indicators were previously set to changed status even if no actual change had been made to the project.
Detailed Changelog
User Interface
- Added the Outtakes folder to a list of root folders that will allow the setting of file layouts otherwise only permitted under the Novel root folder. It makes sense to permit the files in this folder to have the same extended settings that Novel files have. PR #552.
- The text input and dropdown boxes of the Edit Project Item dialog box now extend when the dialog window is resized. Previously, the space between the label and the box would stretch instead, which isn't very useful. PR #552.
- The document and project changed status icons on the status bar are now set to unchanged status when the project is opened. In addition, an issue with the status being set to changed on various events that were not actual changes to the document or project has been resolved. For instance, changing the size of the document editor would flag the document itself as changed. PR #554.
Documentation
Assets
5
Release Notes
Based on my own testing and usage, and no serious bugs discovered in quite some time (aside from a few corner case issues), it appears that novelWriter is stable enough for a 1.0 release. Thanks to all the new users who keep providing feedback on bugs, cosmetic issues, or suggesting improvements and new features. I'm glad to hear that others find my application useful, and I will keep making improvements as I get new suggestions and have new ideas myself. At the same time, I will continue to keep novelWriter simple and clean and avoid feature-bloat.
This release mainly fixes cosmetic and other minor issues to the user interface and makes a few minor improvements to some less used features. Aside from this, nothing major has changed since the last release candidate.
This release concludes over two years of tinkering with this project. The project grew out of numerous lunch and coffee discussions with my colleague Marian Lückhof at my former job. We were both looking for a tool for writing novels on Linux that suited our needs. We started assembling a wish list of features that has become novelWriter. In addition, users on GitHub have continued to test new features, provide very helpful feedback, and make new suggestions for improvements. Especially the feedback from @johnblommers has been helpful during much of the initial development time. Over the last months more users have started posting ideas and feedback. Thanks to all of you for your contributions.
The 1.0 release is intended as a first release of the core features of novelWriter. That does not mean that all planned features have been fully implemented. There is a long list of ideas and suggestions to consider and implement. New ideas and suggestions are welcome. Either as feature requests in the issue tracker, or if not fully formed, can be discussed on the [discussions page] (https://github.com/vkbo/novelWriter/discussions).
Detailed Changelog
Bugfixes
- Fixed a minor cosmetic issue with the checkbox next to the "Distraction Free Mode" entry in the menu where its checkmark wouldn't always correspond to the current state of the mode. PR #532.
- When opening the "Writing Stats" dialog in a new project where there is no session log file yet, an error dialog would pop up to complain the file is missing. A missing file is not an error, and should just be quietly ignored. PR #535.
- Don't enforce string data type in meta data lines written to the head of documents. Some of the entries can potentially be of NoneType, and the enforced type will then cause a crash. PR #539.
- Fixed a couple of faulty checks in the index and outline details panel. The checks were not reachable by user actions, but put in place to capture coding errors. PR #549.
User Interface
- The placeholder text in the "Build Novel Project" tool was referring to the name of the build button by a previous label. It now refers to the label that is on the current button. PR #535.
- Add "Move Item Up" and "Move Item Down" to the project tree context menu. These connect to the same function as the same entries in the Tools menu. PR #535.
- Block the Item Editor for the root Trash folder. PR #539.
Other Changes
- The special "Orphaned Files" folder has been dropped. Since the document class saves most of the document meta data to the header of document files, it is no longer strictly necessary and it does complicate the code behind the project tree as the orphaned folder isn't a tracked folder and therefore needs a fair bit of customised code to fit into the rest of the tree data model. Files found in the project's storage folder that do not exist in the project file will now be imported into the main project tree based on a set of fallbacks. All recovered files are prefixed with the word "Recovered". Issue #540, PR #543.
- Changed the way novel headers are added to the Outline view in cases where the strict logic of header levelled isn't obeyed. Previously. a scene header not under a chapter would be added to a previous chapter. That may be a bit confusing. Now, instead, a scene outside a chapter will just be bumped up one level. PR #549.
Documentation
- Fixed some minor typo or wrong word errors in the contributing guidelines. PR #537 by Curtis Gedak @gedakc.
- Fixed minor grammar and typo issues in documentation. PR #544 by Curtis Gedak @gedakc.
- Updated documentation with latest changes and rewritten some sections to make the terminology more consistent. PR #548.
Code Improvements
- Also enforce the maximum line length in text documents. PR #534.
- Updated various parts of the code where a question message box is opened and redirected the call to the main GUI class. This was done mostly for consistency, but the feature was added earlier to ensure that core classes do not depend on Qt libraries. PR #535.
Assets
5
vkbo
released this
Release Notes
This second release candidate for 1.0 comes with only minor changes and improvements, and a handful of minor bugfixes.
Among the improvements is the addition of all the possible @-keywords for tags and references to the "Insert" menu under the sub-menu "Tags and References". The "Help" menu has also received a few improvements and additional links to useful webpages. This release also adds a "Release" notes tab to the "About novelWriter" dialog. The release notes are displayed automatically the first time you launch novelWriter after updating to a new version.
Among the fixes is better support for high resolution screens. A few elements on the GUI did not scale properly, among them the document editor and viewer header and footer. These were clipped on high res screens due to an underlying issue with the Qt widget underestimating how much space it required to accommodate the text. Unfortunately, dragging the novelWriter app between screens of different scaling factors is not currently supported. However, the GUI should scale properly to the scaling factor on the screen it is opened on.
The work leading up to this release has mostly been focused on improving the test coverage of the source code of novelWriter. This helps to ensure that the code does what it is intended to do, and is able to handle corner cases and unexpected external errors and user actions that may occur. While writing these tests, a number of minor potential issues have been uncovered and handled. Most of these are corner cases that may not even be reachable by unexpected user actions.
Hopefully, these changes have resulted in an even more stable version of novelWriter. If no more issues are discovered, the next release will be the final version 1.0 release.
Detailed Changelog
Bugfixes
- The headers and footers of the document editor and viewer would be clipped on high DPI monitors. This was due to the QWidget holding these did not automatically scale in the layout. The proper height of these are now calculated and enforced instead of relying on automated scaling. Issue #499, PR #502.
- Fixed a few inconsistencies in scaling of toggle switches, the form layouts, and the margins of the Item Editor when viewing on a high DPI screen. PR #502.
- Switching syntax theme live would not update all colours in the editor and viewer. This has now been fixed. PR #516.
- Using the Tools menu to move items up or down in the project tree, without selecting an item to move, would cause a crash. The move actions are now quietly rejected if no item is selected. Issue #521, PR #522.
User Interface
- Added all the possible keywords for tags and references to the Insert menu. Since the list was growing long, the Insert menu entries have been split up into four sub menus according to the previous grouping. Issue #501, PR #503.
- A "Release Notes" tab has been added to the "About novelWriter" dialog where the latest release notes can be displayed. PR #508.
- Menu entries that will open the "Releases" and "Discussions" pages on the novelWriter GitHub repo has been added to the Help menu. PRs #509, #511 and #520.
- The help text of many of the Preferences options have been clarified and rewritten. PR #516.
- Added two greyscale syntax themes. These will match with the greyscale icon themes to produce a GUI without colours. PR #516.
Other Changes
- The Windows installer now properly sets up the mime type for novelWriter, meaning novelWriter project files can be opened from the Explorer directly into novelWriter. PR #511.
- It is now possible to create new files in the Outtakes root folder from the context menu. Issue #517, PR #519.
Test Suite
- The tests for the core classes of novelWriter have been completely rewritten. Every class or source file of the core functionality (everything handling the actual project data and documents, as well as the meta data) is now covered by its own testmodule with a 100% coverage for each module. PR #512.
- Likewise, the base tests have been rewritten to cover the
Configclass, themainfunction that launches the app, and the error handling class. The structure matches the core tests from #512. PR #514. - The GUI tests have been reorganised to match the new test structure, and somewhat improved, but some parts still need additional coverage. PR #527.
Assets
5
vkbo
released this
Release Notes
This is the first release candidate for the upcoming release of novelWriter 1.0.
Since the fifth beta release about four weeks ago, not much has been changed in novelWriter. A few minor tweaks have been made to the GUI.
A number of features and tools are now automatically switched off when there is no project or document open for those features to act upon. Previously, this was a bit inconsistent, although no serious bugs have been reported or encountered.
Most of the minor changes in this release should not be noticeable to most users. However, there are a couple of noticeable changes.
Typewriter Mode
The "Typewriter Mode" of the editor has been improved. Essentially, this feature is a sort of smart scroll. It tries to keep the cursor stationary in the vertical direction, and will try to scroll the document up when the cursor skips to a new line while typing (or down in case of backspaces). This is similar to the way a typewriter scrolls the paper when hitting the return key. It improves the writing experience as the current active line will stay at the same eye heightlevel on the screen.
Previously, the feature would lock the cursor to a given vertical position defined by the user. Now, instead, the cursor will remain stationary in the vertical direction at any position the user sets it to by mouse click or keyboard navigation. The user can define a minimum distance from the top where this feature is activated. These changes makes it more flexible in terms of where the
focus is in the editor. The feature can be controlled from the main Preferences.
Switching Syntax Theme
It is now possible to switch syntax highlighting theme without restarting novelWriter. Previously, changing the theme would only half-way update the document, header and footer background and text colours. The new settings would not be fully applied until the application was shut down and started again, thus making it a bit tedious to look through syntax themes to find the
one you want.
Switching main GUI theme still requires a restart.
Detailed Changelog
Installation
- A new setup option
setup.py xdg-installwill install the desktop integration (icons, mime and launcher) using the OS'xdg-utils. This is a more standardised way of installing these elements, and replaces the previouslauncheroption. PR #484.
Bugfixes
- The Details Panel below the Outline Tree View was not cleared when a project was closed, and whatever was listed there was still present if a new project was opened. The panel is now reset when a project is closed. Issue #490, PR #491.
User Interface
- The Typewriter Mode feature has been improved to keep the cursor stationary at any point in the editor viewport as long as the cursor is at a user-defined minimum distance from the top of the viewport. The mouse, arrow and page keys do not trigger a reposition. The new behaviour is similar to that of the Gutenberg editor in WordPress. PR #482.
- The document editor and viewer are now properly updated when the user switches syntax theme. There is no longer a need to restart novelWriter first to apply the changes. PR #487.
- Some minor GUI changes include: don't run the background word counter when there is no document open, make the split panels of the Build Novel Project tool non-collapsible, and set the initial column widths of tree views to more sensible values. PR #489.
- Block various menu actions, like split and merge documents, project backup, inserts, etc, when there is no project open. None of these being active caused any errors as these actions were all handled by the various tools, but they shouldn't even trigger when there is no project or document to perform the action on. PR #492.
- Clarify the message of the Close Project and Exit novelWriter dialogs. Previously, it may have seemed to some users that clicking "No" would allow the closing to procede without saving changes. This is not true as changes are saved automatically when editing a project. The dialog text should now make this clearer. Issue #494, PR #495.
Other Changes
- The index cache file
meta/tagsIndex.jsonnow has line breaks and indents. This makes it easier to version control if the user really wants to track this file. PR #483. - The format of the meta data at the top of document files has been changed to be easier to parse, and easier to extend with new settings. It is also more human-readable in cases where the user opens a document file with other software. PR #486.
- Remove the
ToC.jsonfile and improve theToC.txtfile. There latter now has additional information and the format has been improved slightly to be easier to parse if read by an external program or script. PR #493.
Code Improvements
- There has been some clean-up of comments and docstrings, as well as optimisation and merging of a few functions that were implemented in multiple places. PR #485.
- Move some of the constants defined in various other classes into the appropriate constants classes, and make all constants upper case variables. PR #489.
Assets
5
vkbo
released this
Changes
Important Notes
- The minimal supported Python version is now 3.6. While novelWriter has worked fine in the post with versions as low as 3.4, neither 3.4 nor 3.5 is tested. They have also both reached end of life. There are a couple of good reasons to drop support for older versions. PR #470.
- Python 3.6 introduces ordered dictionaries as the standard.
- The format string decorator (
f"") was added in 3.6, and is much less clunky in many parts of the code than the full"".format()syntax. - Especially 3.4 has limited support for
*varexpansion of iterables. These are used several places in the code.
Bugfixes
- Fixed a bug in the Build Novel Project tool where novelWriter would crash when trying to build the preview when running a version of the Qt library lower than 5.14. Issue #471, PR #472.
User Interface
- An option has been added in Preferences to hide horizontal or vertical scroll bars on the main GUI. These optons will hide scroll bars on the Project Tree, Document Editor, Document Viewer, Outline Tab and on the controls of the Build Novel Project tool. Scroll bars take up space, and as long as the project doesn't contain very long documents, scrolling with the mouse wheel is enough. The feature is of course entirely optional. PRs #468 and #469.
- It is no possible to enable scrolling past the end of the document with a new option in Preferences. Previously, the editor would just allow scrolling to the bottom of the document. The new option adds a margin to the bottom of the document itself that allows for scrolling past this point. This avoids having to type text at the bottom of the editor window. PRs #468 and #469.
- A new feature called "Typewriter Scrolling" has been added. It basically means that the editor window will try to keep the cursor at a given vertical position and instead scroll the document when the cursor moves to a new line, either by arrow keys or while typing. The position can also be defined in Preferences. The scroll bar uses an animation effect to perform the scrolling to avoid abrupt jumps in the editor window. PRs #468 and #474.
- The line counter in the Document Editor footer now shows the location in the document in terms of percentage. This is convenient for very large documents. PR #474.
- A "Follow Tag" option has been added to the Document Editor context menu. This option appears when right-clicking a tag value on a meta data line. PR #474.
- When applying a format from the format menu to a selection of multiple paragraphs (or lines), only the first paragraph (or line) receives the formatting. The editor doesn't allow markdown formatting to span multiple lines. Issue #451, PR #475.
- The syntax highlighter no longer uses the same colour to highlight strikethrough text as for emphasised text. The colour is intended to stand out, which makes little sense for such text. Instead, the highlighter uses the same colour as for comments. PR #476.
Other Changes
- Since support for Python < 3.6 has been dropped, it is now possible to use
f""formatted strings in many more places in the source code where this is convenient. This has been implemented many places, but the code is still a mix of all three styles of formatting text. PR #478. - Extensive changes have been made to the build and distribute tools. The
install.pyfile has been dropped, and the features in it merged into a new file namedmake.py. The make file can now also build a setup installer for Windows. Thesetup.pyfile has been rewritten to a more standardised source layout, and all the setup configuration moved to thesetup.cfgfile. PRs #479 and #480.
Assets
5
vkbo
released this
Changes
Bugfixes
- When the Trash folder didn't exist because nothing had been deleted yet, the lookup function for the Trash folder's handle returned
None. That meant that any item with a parent handleNonewould be treated as a Trash folder in many parts of the code before the Trash folder was first used. This caused a few decision branches to make non-critical mistakes. In particular the project tree context menu. This issue has now been fixed with a new check function that takes this into account. PRs #452 and #453. - If an older project was opened, one with a different project file layout than the more recent versions, a dialog asked whether the user wants the project updated or not. However, the function that moves files to their new location would actually start working before the dialog asked for permission. The permission would only be applied to the project XML file. Now, the check is still run before the dialog, but the action of moving files around are postponed to after the permission has been given and the project XML file parsed. PR #453.
- If there were multiple headings in a file, and the last paragraph did not end in a line break, the word counter for the individual sections would miss the last paragraph of the last section due to an indexing error. This has now been fixed. PR #453.
- The last cursor position of a document in the editor would only be saved if the document had been altered. It is now also saved in the cases where the user makes no changes. PR #460.
- When using an aspell dictionary for spell checking, words containing a hyphen would be highlighted as misspelled. This is not the case for hunspell dictionaries. The hyphen is now taken into account when splitting sentences into words for spell check highlighting. PR #462.
- Some of the file dialogs would fail with a non-critical error when the cancel button was clicked. The cancel is now captured consistently in all instances where such a dialog is used, and the calling function exited properly. PR #463.
User Interface
- Some minor changes to the text formatting on the Recent Projects dialog. PR #452.
- The Build Novel Project tool has been improved. The settings side panel is now scrollable, and the document and settings panel now have a movable splitter between them. This gives more flexibility to the sizes of the various parts. PR #459.
- A new option to replace tabs with spaces has been added to the Build Novel Project tool. Previously, they were always replaces for HTML output. However, converting them to the HTML code for a tab is actually convenient for later import into for instance Libre Office, which then converts them back to regular tabs. Issue #458, PR #459.
- Non-breaking spaces have been removed from the HTML conversion of keywords and tags. Issue #458, PR #459.
- An upper limit of how large a document the Build Novel Project tool can view has been set. It is 10 megabytes of generated HTML. The tool will still build larger documents, but they aren't displayed. This also limits which options are available in the "Save As" list for such large documents. Only native novelWriter exports are supported in such cases. The limit is an order of magnitude larger than a typical long novel. PR #460.
- The language indicator in the status bar now has a tooltip stating what tool and spell check dictionary provider is being used. PR #462.
- All representations of integers, mostly word counts, are now presented in the same way. They should all use a thousand separator representation defined by the local language settings. PR #464.
- Many parts of the GUI have had a spin/wait cursor added for processes that may take a while and will block the GUI in the meantime. PRs #460, #463 and #464.
- A line counter has been added to the footer of the document editor next to the word counter. It makes it easier to compare the position in the document when also accessing it in an external editor. PR #466.
Improvements for macOS
- The native macOS menu bar now pulls the correct menu entries into the first menu column. PR #463.
- The application name in the main menu would state Python instead of novelWriter. As long as the
pyobjcpackage is installed, the label will now correctly state novelWriter. PR #463. - Install and run instructions for macOS have been added to the main README. PR #463.
Editor Performance
- The syntax highlighter now remembers what type of line every line in the document is. This means that certain types of lines can be re-highlighted without having to process the entire document again. This is particularly useful for refreshing the highlighting of keywords and tags after the index has been rebuilt. PR #460.
- On a few occasions, the entire document in the editor would be reloaded in order to update the layout and formatting. This is not only slow for big documents, it also resets the undo stack. Instead, the entire document is "marked as dirty" to force the Qt library to update the layout, which is much faster. PR #460.
- For very large documents (in the megabyte range), the repositioning of the cursor when the document was opened would sometimes interfere with the rendering of the document itself. This could potentially cause the editor to hang for up to a couple of minutes. Instead, the repositioning of the cursor is now postponed until the document layout size has reached past the character where the cursor is to be moved. This mode is only used for documents larger than 50 kilobytes. PR #460.
- The document editor will no longer accept single documents larger than 5 megabytes. This restriction has also been applied to the Build Novel Project tool. For reference, a typical long novel is less than 1 megabyte in size. PR #460.
Other Changes
- The command line switches
--quietand--logfile=have been removed. They were intended for testing, but have never been used. The default mode of only printing warnings and errors is quiet enough, and logging to file shouldn't be necessary for a GUI application. PR #453. - A number of if-statements and conditions in the code that were intended to alter behaviour when running tests, mostly to stop modal dialogs from blocking the main thread, have been removed. These types of changes to the program flow when running tests have now been reduced to a minimum, and modifications instead handled with pytest monkeypatches. PR #453.
- The
QtSvgpackage is no longer in use by novelWriter. The internal dependency check has been removed. PR #457. - It is no longer possible to set the user's home folder as the root directory of a project. The home folder is the default lookup folder in many cases, so it's easy to do by mistake. PR #457.
- The background word counter has been rewritten to run on an application wide thread pool. This is a more appropriate way of running background tasks. PR #462.
Test Suite
- Major additions to the test suite, taking the test coverage to 91%. PR #453.
- Test coverage for Linux (Ubuntu) for Python versions 3.6, 3.7, and 3.8 are now separate jobs. In addition, Windows with Python 3.8 and macOS with Python 3.8 is also tested. All OSes are piped into test coverage, and they all have status badges. PRs #453 and #454.
Assets
4
vkbo
released this
Changes
Bugfixes
- After recent changes, the
Edit Project Itementry (or shortcutF2) in the menu would cause an error. Other means of triggering the edit dialog for a selected item were working fine. The error was caused by a dummy variable being sent by the menu QAction element that was caught by a new optional variable in the dialog function. All other menu actions have been wrapped in lambda functions to prevent this from happening again. PR #448. - The Merge Tool was permitting a merge on an empty list of files to be merged. This would result in a new, empty file. The Merge Tool will now stop if the list of files is empty. PR #448.
- The orphaned file handling function would cause an error if the orphaned file was empty. This would trigger a secondary issue with uninitialised variables, which has also been fixed. PR #448.
- The context menu on the Project Tree would not show the
New FileandNew Folderoptions on root folders if there were no Trash folder present. This weird bug was caused by the filter getting aNoneTrash handle and therefore assuming all root folders were Trash folders as they too have parent handleNone. PR #452.
User Interface
- The Last Opened column in the Open Project dialog now has a fixed width font, and the Words column has a thin space between number and multiplier unit to make it easier to read. PR #452.
Code Improvements
- Minor improvemenmts have been made to the core project classes to improve encapsulation and better ensure consistency between the different data structures that store the novel project in memory. PR #447.
- Some unused or redundant code has been removed, and in some places, functions have been merged to reduce code repetition. PR #449.
Test Suite
- A lot more tests have been added and test coverage improved. PR #449.
Assets
4
vkbo
released this
Changes
Bugfixes
- If the horizontal scroll bar appeared at the bottom of the document editor or viewer, for instance if a long, un-wrapable line was entered, the scroll bar would sit on top of the document footer. The footer bar now properly moves out of the way when the horizontal scroll bar appears. Issue #433, PR #434.
New Features
- It is now possible to set a different spell check language for a project than the one set in the main Preferences. It is only possible to select a different language, not a different spell check tool. The setting is managed in the first tab of the Project Settings dialog. Issue #368, PR #437.
- The document editor now has the Cut/Copy/Paste options in the main context menu. In addition, Select All, Select Word, and Select Paragraph have been added to the menu. The latter two will select the word or paragraph under the mouse pointer, not the cursor as the main menu entries do. Issue #438, PR #439.
- The document viewer has a new custom context menu with Copy, Select All, Select Word and Select Paragraph with identical functionality and look to the context menu entries in the document editor. PR #439.
- The document view panel now has a back navigation and forward navigation history of 20 documents. The navigation is activated by two buttons in the header, menu entries and keyboard shortcuts in the
Viewmenu, and by navigation buttons on the mouse. Issue #441, PR #442. - Clicking on a document in the project tree with the middle mouse button will now open the document in the document viewer. PR #443.
- Added an edit and a search button to the top left corner of the document editor, in the header. The edit button opens the edit item dialog for the open document, and the search button toggles the search box for the document. PR #445.
- Added show/hide comment and synopsis buttons to the bottom right corner of the document viewer, in the footer. These toggle on and off the rendering of these elements in the viewed document. The corresponding settings in Preferences have been removed. PR #445.
Feature Improvements
- The document split tool now asks for permission before generating the documents. This adds a final confirmation before generating a lot of new documents that it can be tedious to clean up if the action was activated by mistake. PR #436.
- Both split and merge tools now preserve the document status or importance value from the source item. Previously, it would be reset to the default value. PR #436.
Test Suite
- Improved test coverage. PR #446.
Assets
4
vkbo
released this
Changes
Bugfixes
- Not technically a bug, but the clearing of the document editor footer bar, both during start-up and when a document was closed, would print two ERROR messages to the terminal window. These were benign, but are now prevented from occurring by a slight change in the logic. Issue #418, PR #420.
- Fixed spell check highlighting for words separated by a forward slash, which was treated as a single word. Issue #427, PR #428.
New Features
- A new root folder has been added. It is named "Outtakes" by default, and functions as an archive folder for any file that the user wants to take out of the main project tree. The file retains its meta data, is editable, and is always excluded from builds. It is not possible to create files in this folder, but you can create subfolders for organising them. PRs #415, #416 and #419.
- Support an alternative apostrophe. There is a unicode character defined for this, but the regular right hand single quote symbol is the recommended character. However, sometimes this confuses the syntax highlighter. The alternative character bypasses this, and may also be useful for languages that don't use the same type of symbol for these. PRs #429 and #430.
Feature Improvements
- The way the enter and tab keys work in the document editor have been improved. If the search or replace text box has focus, the tab key switches between them, and the enter key always triggers the button that is to the right of the box with focus. If the editor has focus, the tab and enter keys work as expected for a text editor. PRs #412 and #413.
- The keyboard sequence
Ctrl+Shift+Zis now again an alternative toCtrl+Yfor the redo functionality. PR #413. - It is now possible to drag and drop files into the Trash folder. PR #415.
- Files moved to Outtakes or Trash are now cleared from the index, except their word counts. All tags and references are thus out of the project. They are automatically put back in when the file is dragged into the main project tree again. PR #416.
- Tabs and tab stops are now rendered properly in the document viewer. Since the
setHtmlfunction of the Qt widget used here strips tabs, they were previously just converted to eight spaces. This prevented the tabs from aligning vertically like they do in the editor. The stripping of tabs is now bypassed by replacing them with a placeholder text, and reverting the replacement after the document content has been set. This change also applies to the preview in the Build Novel Project tool, and therefore also the print and print to PDF functions. PR #419. - The syntax highlighter is now better at detecting what is a single quoted string and what is an apostrophe in a word. PR #430.
Other Changes
- A hard maximum project tree folder depth of 30 has been added. Level 28 is the last level where a folder can be created, to allow for one more level of files. There is no particular reason for the number 30, it was mostly a matter of picking a number. 30 is assumed to be excessive. It is hard to navigate a project tree with that many folders. The value was set because many places in the code there was a soft limit of 200. If you created more, various parts of the code would stop working. PRs #416 and #421.
- The dialog for reporting unhandled errors has been changed and a new custom Qt subclass written. It does essentially the same thing as the standard QErrorMessage box did, but adds the feature of a clickable link to the issues tracker on GitHub, and a monospace formatted traceback for the issues ticket. In addition, a crash that pops this dialog will now trigger an attempted controlled shutdown of novelWriter. Before, it would try to keep running, but often leave novelWriter in a half defunct state. PR #417.
Test Suite
- Added better test coverage of the Project Load dialog and the Project Outline tool. PR #423.
- Switched from Travis-CI to GitHub actions for running Python tests. PRs #424, #425 and #426.
- All tests can now be run independently of other tests on a function level. Before, this was only possible on a test file level. Issue #431, PR #432.