Save both status and importance flags (#1030)

* Put the status icons in the status object itself
* Allow saving both status and importance values
* Update current tests
* Improve test coverage
* Update sample project file
This commit is contained in:
Veronica Berglyd Olsen
2022-04-03 22:43:11 +02:00
committed by GitHub
parent a04b44d890
commit 23fd6b815f
29 changed files with 481 additions and 418 deletions
+7
View File
@@ -36,6 +36,13 @@ from PyQt5.QtWidgets import QMessageBox # noqa: E402
from novelwriter.config import Config # noqa: E402
@pytest.fixture(autouse=True)
def initQt(qtbot):
"""Ensures that the qt main thread is always available in all tests.
"""
return
##
# Core Test Folders
##
+32 -32
View File
@@ -1,12 +1,12 @@
<?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-02-17 22:04:38">
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-04-03 21:36:12">
<project>
<name>Lorem Ipsum</name>
<title>Lorem Ipsum</title>
<author>lipsum.com</author>
<saveCount>21</saveCount>
<saveCount>23</saveCount>
<autoCount>24</autoCount>
<editTime>1847</editTime>
<editTime>1854</editTime>
</project>
<settings>
<doBackup>False</doBackup>
@@ -31,102 +31,102 @@
<section></section>
</titleFormat>
<status>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Note</entry>
<entry blue="0" green="150" red="200">Draft</entry>
<entry blue="0" green="200" red="50">Finished</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Note</entry>
<entry red="200" green="150" blue="0">Draft</entry>
<entry red="50" green="200" blue="0">Finished</entry>
</status>
<importance>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Minor</entry>
<entry blue="0" green="150" red="200">Major</entry>
<entry blue="0" green="200" red="50">Main</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Minor</entry>
<entry red="200" green="150" blue="0">Major</entry>
<entry red="50" green="200" blue="0">Main</entry>
</importance>
</settings>
<content count="21">
<item handle="b3643d0f92e32" parent="None" order="0" type="ROOT" class="NOVEL">
<meta expanded="True"/>
<name status="New">Novel</name>
<name status="New" import="New">Novel</name>
</item>
<item handle="7a992350f3eb6" parent="b3643d0f92e32" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="230" wordCount="40" paraCount="3" cursorPos="148"/>
<name status="Finished" exported="True">Lorem Ipsum</name>
<name status="Finished" import="New" exported="True">Lorem Ipsum</name>
</item>
<item handle="8c58a65414c23" parent="b3643d0f92e32" order="1" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="1058" wordCount="176" paraCount="2" cursorPos="43"/>
<name status="Finished" exported="True">Front Matter</name>
<name status="Finished" import="New" exported="True">Front Matter</name>
</item>
<item handle="88d59a277361b" parent="b3643d0f92e32" order="2" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="584" wordCount="92" paraCount="1" cursorPos="4"/>
<name status="Draft" exported="True">Prologue</name>
<name status="Draft" import="New" exported="True">Prologue</name>
</item>
<item handle="db7e733775d4d" parent="b3643d0f92e32" order="3" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="35" wordCount="6" paraCount="1" cursorPos="42"/>
<name status="New" exported="True">Act One</name>
<name status="New" import="New" exported="True">Act One</name>
</item>
<item handle="45e6b01ca35c1" parent="b3643d0f92e32" order="4" type="FOLDER" class="NOVEL">
<meta expanded="True"/>
<name status="Draft">Chapter One</name>
<name status="Draft" import="New">Chapter One</name>
</item>
<item handle="fb609cd8319dc" parent="45e6b01ca35c1" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="419" wordCount="67" paraCount="1" cursorPos="56"/>
<name status="Draft" exported="True">Chapter One</name>
<name status="Draft" import="New" exported="True">Chapter One</name>
</item>
<item handle="88243afbe5ed8" parent="45e6b01ca35c1" order="1" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="2758" wordCount="404" paraCount="4" cursorPos="1528"/>
<name status="Finished" exported="True">Scene One</name>
<name status="Finished" import="New" exported="True">Scene One</name>
</item>
<item handle="f96ec11c6a3da" parent="45e6b01ca35c1" order="2" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="4043" wordCount="600" paraCount="6" cursorPos="2335"/>
<name status="Finished" exported="True">Scene Two</name>
<name status="Finished" import="New" exported="True">Scene Two</name>
</item>
<item handle="846352075de7d" parent="b3643d0f92e32" order="5" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="631" wordCount="109" paraCount="3" cursorPos="376"/>
<name status="New" exported="False">Interlude</name>
<name status="New" import="New" exported="False">Interlude</name>
</item>
<item handle="6bd935d2490cd" parent="b3643d0f92e32" order="6" type="FOLDER" class="NOVEL">
<meta expanded="True"/>
<name status="Draft">Chapter Two</name>
<name status="Draft" import="New">Chapter Two</name>
</item>
<item handle="441420a886d82" parent="6bd935d2490cd" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="477" wordCount="70" paraCount="1" cursorPos="56"/>
<name status="Draft" exported="True">Chapter Two</name>
<name status="Draft" import="New" exported="True">Chapter Two</name>
</item>
<item handle="eb103bc70c90c" parent="6bd935d2490cd" order="1" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="3006" wordCount="439" paraCount="4" cursorPos="57"/>
<name status="Finished" exported="True">Scene Three</name>
<name status="Finished" import="New" exported="True">Scene Three</name>
</item>
<item handle="f8c0562e50f1b" parent="6bd935d2490cd" order="2" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="3839" wordCount="563" paraCount="6" cursorPos="56"/>
<name status="Finished" exported="True">Scene Four</name>
<name status="Finished" import="New" exported="True">Scene Four</name>
</item>
<item handle="47666c91c7ccf" parent="6bd935d2490cd" order="3" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="3644" wordCount="543" paraCount="5" cursorPos="351"/>
<name status="Finished" exported="True">Scene Five</name>
<name status="Finished" import="New" exported="True">Scene Five</name>
</item>
<item handle="67a8707f2f249" parent="None" order="1" type="ROOT" class="CHARACTER">
<meta expanded="True"/>
<name status="New">Characters</name>
<name status="New" import="New">Characters</name>
</item>
<item handle="4c4f28287af27" parent="67a8707f2f249" order="0" type="FILE" class="CHARACTER" layout="NOTE">
<meta charCount="1864" wordCount="284" paraCount="3" cursorPos="1883"/>
<name status="Major" exported="True">Mr. Nobody</name>
<name status="New" import="New" exported="True">Mr. Nobody</name>
</item>
<item handle="6c6afb1247750" parent="None" order="2" type="ROOT" class="PLOT">
<meta expanded="True"/>
<name status="New">Plot</name>
<name status="New" import="New">Plot</name>
</item>
<item handle="2426c6f0ca922" parent="6c6afb1247750" order="0" type="FILE" class="PLOT" layout="NOTE">
<meta charCount="1369" wordCount="195" paraCount="2" cursorPos="1387"/>
<name status="Main" exported="True">Main</name>
<name status="New" import="New" exported="True">Main</name>
</item>
<item handle="60bdf227455cc" parent="None" order="3" type="ROOT" class="WORLD">
<meta expanded="True"/>
<name status="New">World</name>
<name status="New" import="New">World</name>
</item>
<item handle="04468803b92e1" parent="60bdf227455cc" order="0" type="FILE" class="WORLD" layout="NOTE">
<meta charCount="1770" wordCount="259" paraCount="3" cursorPos="1792"/>
<name status="Minor" exported="True">Ancient Europe</name>
<name status="New" import="New" exported="True">Ancient Europe</name>
</item>
</content>
</novelWriterXML>
+19 -19
View File
@@ -1,13 +1,13 @@
<?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-02-17 21:57:21">
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-04-03 21:36:18">
<project>
<name>Test Minimal</name>
<title>Minimal</title>
<author>Jane Doe</author>
<author>John Doh</author>
<saveCount>12</saveCount>
<saveCount>14</saveCount>
<autoCount>2</autoCount>
<editTime>129</editTime>
<editTime>135</editTime>
</project>
<settings>
<doBackup>True</doBackup>
@@ -29,50 +29,50 @@
<section></section>
</titleFormat>
<status>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Note</entry>
<entry blue="0" green="150" red="200">Draft</entry>
<entry blue="0" green="200" red="50">Finished</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Note</entry>
<entry red="200" green="150" blue="0">Draft</entry>
<entry red="50" green="200" blue="0">Finished</entry>
</status>
<importance>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Minor</entry>
<entry blue="0" green="150" red="200">Major</entry>
<entry blue="0" green="200" red="50">Main</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Minor</entry>
<entry red="200" green="150" blue="0">Major</entry>
<entry red="50" green="200" blue="0">Main</entry>
</importance>
</settings>
<content count="8">
<item handle="a508bb932959c" parent="None" order="0" type="ROOT" class="NOVEL">
<meta expanded="True"/>
<name status="New">Novel</name>
<name status="New" import="New">Novel</name>
</item>
<item handle="a35baf2e93843" parent="a508bb932959c" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="28" wordCount="6" paraCount="1" cursorPos="33"/>
<name status="New" exported="True">Title Page</name>
<name status="New" import="New" exported="True">Title Page</name>
</item>
<item handle="a6d311a93600a" parent="a508bb932959c" order="1" type="FOLDER" class="NOVEL">
<meta expanded="True"/>
<name status="New">New Chapter</name>
<name status="New" import="New">New Chapter</name>
</item>
<item handle="f5ab3e30151e1" parent="a6d311a93600a" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="11" wordCount="2" paraCount="0" cursorPos="16"/>
<name status="New" exported="True">New Chapter</name>
<name status="New" import="New" exported="True">New Chapter</name>
</item>
<item handle="8c659a11cd429" parent="a6d311a93600a" order="1" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="9" wordCount="2" paraCount="0" cursorPos="15"/>
<name status="New" exported="True">New Scene</name>
<name status="New" import="New" exported="True">New Scene</name>
</item>
<item handle="7695ce551d265" parent="None" order="1" type="ROOT" class="PLOT">
<meta expanded="False"/>
<name status="New">Plot</name>
<name status="New" import="New">Plot</name>
</item>
<item handle="afb3043c7b2b3" parent="None" order="2" type="ROOT" class="CHARACTER">
<meta expanded="False"/>
<name status="New">Characters</name>
<name status="New" import="New">Characters</name>
</item>
<item handle="9d5247ab588e0" parent="None" order="3" type="ROOT" class="WORLD">
<meta expanded="False"/>
<name status="New">World</name>
<name status="New" import="New">World</name>
</item>
</content>
</novelWriterXML>
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-02-17 21:57:31">
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-04-03 21:38:23">
<project>
<name>Test Custom</name>
<title>Test Novel</title>
@@ -29,110 +29,110 @@
<section></section>
</titleFormat>
<status>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Note</entry>
<entry blue="0" green="150" red="200">Draft</entry>
<entry blue="0" green="200" red="50">Finished</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Note</entry>
<entry red="200" green="150" blue="0">Draft</entry>
<entry red="50" green="200" blue="0">Finished</entry>
</status>
<importance>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Minor</entry>
<entry blue="0" green="150" red="200">Major</entry>
<entry blue="0" green="200" red="50">Main</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Minor</entry>
<entry red="200" green="150" blue="0">Major</entry>
<entry red="50" green="200" blue="0">Main</entry>
</importance>
</settings>
<content count="23">
<item handle="73475cb40a568" parent="None" order="0" type="ROOT" class="NOVEL">
<meta expanded="False"/>
<name status="New">Novel</name>
<name status="New" import="None">Novel</name>
</item>
<item handle="44cb730c42048" parent="None" order="0" type="ROOT" class="PLOT">
<meta expanded="False"/>
<name status="New">Plot</name>
<name status="New" import="None">Plot</name>
</item>
<item handle="71ee45a3c0db9" parent="None" order="0" type="ROOT" class="CHARACTER">
<meta expanded="False"/>
<name status="New">Characters</name>
<name status="New" import="None">Characters</name>
</item>
<item handle="811786ad1ae74" parent="None" order="0" type="ROOT" class="WORLD">
<meta expanded="False"/>
<name status="New">Locations</name>
<name status="New" import="None">Locations</name>
</item>
<item handle="25fc0e7096fc6" parent="None" order="0" type="ROOT" class="TIMELINE">
<meta expanded="False"/>
<name status="New">Timeline</name>
<name status="New" import="None">Timeline</name>
</item>
<item handle="31489056e0916" parent="None" order="0" type="ROOT" class="OBJECT">
<meta expanded="False"/>
<name status="New">Objects</name>
<name status="New" import="None">Objects</name>
</item>
<item handle="98010bd9270f9" parent="None" order="0" type="ROOT" class="ENTITY">
<meta expanded="False"/>
<name status="New">Entities</name>
<name status="New" import="None">Entities</name>
</item>
<item handle="0e17daca5f3e1" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Title Page</name>
<name status="New" import="None" exported="True">Title Page</name>
</item>
<item handle="1a6562590ef19" parent="73475cb40a568" order="0" type="FOLDER" class="NOVEL">
<meta expanded="False"/>
<name status="New">Chapter 1</name>
<name status="New" import="None">Chapter 1</name>
</item>
<item handle="031b4af5197ec" parent="1a6562590ef19" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Chapter 1</name>
<name status="New" import="None" exported="True">Chapter 1</name>
</item>
<item handle="41cfc0d1f2d12" parent="1a6562590ef19" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 1.1</name>
<name status="New" import="None" exported="True">Scene 1.1</name>
</item>
<item handle="2858dcd1057d3" parent="1a6562590ef19" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 1.2</name>
<name status="New" import="None" exported="True">Scene 1.2</name>
</item>
<item handle="2fca346db6561" parent="1a6562590ef19" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 1.3</name>
<name status="New" import="None" exported="True">Scene 1.3</name>
</item>
<item handle="02d20bbd7e394" parent="73475cb40a568" order="0" type="FOLDER" class="NOVEL">
<meta expanded="False"/>
<name status="New">Chapter 2</name>
<name status="New" import="None">Chapter 2</name>
</item>
<item handle="7688b6ef52555" parent="02d20bbd7e394" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Chapter 2</name>
<name status="New" import="None" exported="True">Chapter 2</name>
</item>
<item handle="c837649cce43f" parent="02d20bbd7e394" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 2.1</name>
<name status="New" import="None" exported="True">Scene 2.1</name>
</item>
<item handle="6208ef0f7750c" parent="02d20bbd7e394" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 2.2</name>
<name status="New" import="None" exported="True">Scene 2.2</name>
</item>
<item handle="3e1e967e9b793" parent="02d20bbd7e394" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 2.3</name>
<name status="New" import="None" exported="True">Scene 2.3</name>
</item>
<item handle="39fa9ec190eee" parent="73475cb40a568" order="0" type="FOLDER" class="NOVEL">
<meta expanded="False"/>
<name status="New">Chapter 3</name>
<name status="New" import="None">Chapter 3</name>
</item>
<item handle="d029fa3a95e17" parent="39fa9ec190eee" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Chapter 3</name>
<name status="New" import="None" exported="True">Chapter 3</name>
</item>
<item handle="81b8a03f97e87" parent="39fa9ec190eee" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 3.1</name>
<name status="New" import="None" exported="True">Scene 3.1</name>
</item>
<item handle="da4ea2a5506f2" parent="39fa9ec190eee" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 3.2</name>
<name status="New" import="None" exported="True">Scene 3.2</name>
</item>
<item handle="a68b412c42825" parent="39fa9ec190eee" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 3.3</name>
<name status="New" import="None" exported="True">Scene 3.3</name>
</item>
</content>
</novelWriterXML>
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-02-17 21:57:31">
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-04-03 21:38:23">
<project>
<name>Test Custom</name>
<title>Test Novel</title>
@@ -29,74 +29,74 @@
<section></section>
</titleFormat>
<status>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Note</entry>
<entry blue="0" green="150" red="200">Draft</entry>
<entry blue="0" green="200" red="50">Finished</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Note</entry>
<entry red="200" green="150" blue="0">Draft</entry>
<entry red="50" green="200" blue="0">Finished</entry>
</status>
<importance>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Minor</entry>
<entry blue="0" green="150" red="200">Major</entry>
<entry blue="0" green="200" red="50">Main</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Minor</entry>
<entry red="200" green="150" blue="0">Major</entry>
<entry red="50" green="200" blue="0">Main</entry>
</importance>
</settings>
<content count="14">
<item handle="73475cb40a568" parent="None" order="0" type="ROOT" class="NOVEL">
<meta expanded="False"/>
<name status="New">Novel</name>
<name status="New" import="None">Novel</name>
</item>
<item handle="44cb730c42048" parent="None" order="0" type="ROOT" class="PLOT">
<meta expanded="False"/>
<name status="New">Plot</name>
<name status="New" import="None">Plot</name>
</item>
<item handle="71ee45a3c0db9" parent="None" order="0" type="ROOT" class="CHARACTER">
<meta expanded="False"/>
<name status="New">Characters</name>
<name status="New" import="None">Characters</name>
</item>
<item handle="811786ad1ae74" parent="None" order="0" type="ROOT" class="WORLD">
<meta expanded="False"/>
<name status="New">Locations</name>
<name status="New" import="None">Locations</name>
</item>
<item handle="25fc0e7096fc6" parent="None" order="0" type="ROOT" class="TIMELINE">
<meta expanded="False"/>
<name status="New">Timeline</name>
<name status="New" import="None">Timeline</name>
</item>
<item handle="31489056e0916" parent="None" order="0" type="ROOT" class="OBJECT">
<meta expanded="False"/>
<name status="New">Objects</name>
<name status="New" import="None">Objects</name>
</item>
<item handle="98010bd9270f9" parent="None" order="0" type="ROOT" class="ENTITY">
<meta expanded="False"/>
<name status="New">Entities</name>
<name status="New" import="None">Entities</name>
</item>
<item handle="0e17daca5f3e1" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Title Page</name>
<name status="New" import="None" exported="True">Title Page</name>
</item>
<item handle="1a6562590ef19" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 1</name>
<name status="New" import="None" exported="True">Scene 1</name>
</item>
<item handle="031b4af5197ec" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 2</name>
<name status="New" import="None" exported="True">Scene 2</name>
</item>
<item handle="41cfc0d1f2d12" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 3</name>
<name status="New" import="None" exported="True">Scene 3</name>
</item>
<item handle="2858dcd1057d3" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 4</name>
<name status="New" import="None" exported="True">Scene 4</name>
</item>
<item handle="2fca346db6561" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 5</name>
<name status="New" import="None" exported="True">Scene 5</name>
</item>
<item handle="02d20bbd7e394" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Scene 6</name>
<name status="New" import="None" exported="True">Scene 6</name>
</item>
</content>
</novelWriterXML>
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-02-17 21:57:32">
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-04-03 21:38:23">
<project>
<name>New Project</name>
<title></title>
@@ -27,58 +27,58 @@
<section></section>
</titleFormat>
<status>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Note</entry>
<entry blue="0" green="150" red="200">Draft</entry>
<entry blue="0" green="200" red="50">Finished</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Note</entry>
<entry red="200" green="150" blue="0">Draft</entry>
<entry red="50" green="200" blue="0">Finished</entry>
</status>
<importance>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Minor</entry>
<entry blue="0" green="150" red="200">Major</entry>
<entry blue="0" green="200" red="50">Main</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Minor</entry>
<entry red="200" green="150" blue="0">Major</entry>
<entry red="50" green="200" blue="0">Main</entry>
</importance>
</settings>
<content count="10">
<item handle="73475cb40a568" parent="None" order="0" type="ROOT" class="NOVEL">
<meta expanded="False"/>
<name status="New">Novel</name>
<name status="New" import="New">Novel</name>
</item>
<item handle="44cb730c42048" parent="None" order="0" type="ROOT" class="PLOT">
<meta expanded="False"/>
<name status="New">Plot</name>
<name status="New" import="New">Plot</name>
</item>
<item handle="71ee45a3c0db9" parent="None" order="0" type="ROOT" class="CHARACTER">
<meta expanded="False"/>
<name status="New">Characters</name>
<name status="New" import="New">Characters</name>
</item>
<item handle="811786ad1ae74" parent="None" order="0" type="ROOT" class="WORLD">
<meta expanded="False"/>
<name status="New">World</name>
<name status="New" import="New">World</name>
</item>
<item handle="25fc0e7096fc6" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Title Page</name>
<name status="New" import="New" exported="True">Title Page</name>
</item>
<item handle="31489056e0916" parent="73475cb40a568" order="0" type="FOLDER" class="NOVEL">
<meta expanded="False"/>
<name status="New">New Chapter</name>
<name status="New" import="New">New Chapter</name>
</item>
<item handle="98010bd9270f9" parent="31489056e0916" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">New Chapter</name>
<name status="New" import="New" exported="True">New Chapter</name>
</item>
<item handle="0e17daca5f3e1" parent="31489056e0916" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">New Scene</name>
<name status="New" import="New" exported="True">New Scene</name>
</item>
<item handle="1a6562590ef19" parent="31489056e0916" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Hello</name>
<name status="New" import="None" exported="True">Hello</name>
</item>
<item handle="031b4af5197ec" parent="71ee45a3c0db9" order="0" type="FILE" class="CHARACTER" layout="NOTE">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Jane</name>
<name status="New" import="None" exported="True">Jane</name>
</item>
</content>
</novelWriterXML>
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-02-17 21:57:31">
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-04-03 21:54:40">
<project>
<name>New Project</name>
<title></title>
@@ -27,50 +27,50 @@
<section></section>
</titleFormat>
<status>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Note</entry>
<entry blue="0" green="150" red="200">Draft</entry>
<entry blue="0" green="200" red="50">Finished</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Note</entry>
<entry red="200" green="150" blue="0">Draft</entry>
<entry red="50" green="200" blue="0">Finished</entry>
</status>
<importance>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Minor</entry>
<entry blue="0" green="150" red="200">Major</entry>
<entry blue="0" green="200" red="50">Main</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Minor</entry>
<entry red="200" green="150" blue="0">Major</entry>
<entry red="50" green="200" blue="0">Main</entry>
</importance>
</settings>
<content count="8">
<item handle="73475cb40a568" parent="None" order="0" type="ROOT" class="NOVEL">
<meta expanded="False"/>
<name status="New">Novel</name>
<name status="New" import="New">Novel</name>
</item>
<item handle="44cb730c42048" parent="None" order="0" type="ROOT" class="PLOT">
<meta expanded="False"/>
<name status="New">Plot</name>
<name status="New" import="New">Plot</name>
</item>
<item handle="71ee45a3c0db9" parent="None" order="0" type="ROOT" class="CHARACTER">
<meta expanded="False"/>
<name status="New">Characters</name>
<name status="New" import="New">Characters</name>
</item>
<item handle="811786ad1ae74" parent="None" order="0" type="ROOT" class="WORLD">
<meta expanded="False"/>
<name status="New">World</name>
<name status="New" import="New">World</name>
</item>
<item handle="25fc0e7096fc6" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Title Page</name>
<name status="New" import="New" exported="True">Title Page</name>
</item>
<item handle="31489056e0916" parent="73475cb40a568" order="0" type="FOLDER" class="NOVEL">
<meta expanded="False"/>
<name status="New">New Chapter</name>
<name status="New" import="New">New Chapter</name>
</item>
<item handle="98010bd9270f9" parent="31489056e0916" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">New Chapter</name>
<name status="New" import="New" exported="True">New Chapter</name>
</item>
<item handle="0e17daca5f3e1" parent="31489056e0916" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">New Scene</name>
<name status="New" import="New" exported="True">New Scene</name>
</item>
</content>
</novelWriterXML>
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-02-17 21:57:32">
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-04-03 21:38:23">
<project>
<name>New Project</name>
<title></title>
@@ -27,66 +27,66 @@
<section></section>
</titleFormat>
<status>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Note</entry>
<entry blue="0" green="150" red="200">Draft</entry>
<entry blue="0" green="200" red="50">Finished</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Note</entry>
<entry red="200" green="150" blue="0">Draft</entry>
<entry red="50" green="200" blue="0">Finished</entry>
</status>
<importance>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Minor</entry>
<entry blue="0" green="150" red="200">Major</entry>
<entry blue="0" green="200" red="50">Main</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Minor</entry>
<entry red="200" green="150" blue="0">Major</entry>
<entry red="50" green="200" blue="0">Main</entry>
</importance>
</settings>
<content count="12">
<item handle="73475cb40a568" parent="None" order="0" type="ROOT" class="NOVEL">
<meta expanded="False"/>
<name status="New">Novel</name>
<name status="New" import="New">Novel</name>
</item>
<item handle="44cb730c42048" parent="None" order="0" type="ROOT" class="PLOT">
<meta expanded="False"/>
<name status="New">Plot</name>
<name status="New" import="New">Plot</name>
</item>
<item handle="71ee45a3c0db9" parent="None" order="0" type="ROOT" class="CHARACTER">
<meta expanded="False"/>
<name status="New">Characters</name>
<name status="New" import="New">Characters</name>
</item>
<item handle="811786ad1ae74" parent="None" order="0" type="ROOT" class="WORLD">
<meta expanded="False"/>
<name status="New">World</name>
<name status="New" import="New">World</name>
</item>
<item handle="25fc0e7096fc6" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Title Page</name>
<name status="New" import="New" exported="True">Title Page</name>
</item>
<item handle="31489056e0916" parent="73475cb40a568" order="0" type="FOLDER" class="NOVEL">
<meta expanded="False"/>
<name status="New">New Chapter</name>
<name status="New" import="New">New Chapter</name>
</item>
<item handle="98010bd9270f9" parent="31489056e0916" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">New Chapter</name>
<name status="New" import="New" exported="True">New Chapter</name>
</item>
<item handle="0e17daca5f3e1" parent="31489056e0916" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="0" wordCount="0" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">New Scene</name>
<name status="New" import="New" exported="True">New Scene</name>
</item>
<item handle="1a6562590ef19" parent="None" order="0" type="ROOT" class="TIMELINE">
<meta expanded="False"/>
<name status="New">Timeline</name>
<name status="New" import="None">Timeline</name>
</item>
<item handle="031b4af5197ec" parent="None" order="0" type="ROOT" class="OBJECT">
<meta expanded="False"/>
<name status="New">Object</name>
<name status="New" import="None">Object</name>
</item>
<item handle="41cfc0d1f2d12" parent="None" order="0" type="ROOT" class="CUSTOM">
<meta expanded="False"/>
<name status="New">Custom1</name>
<name status="New" import="None">Custom1</name>
</item>
<item handle="2858dcd1057d3" parent="None" order="0" type="ROOT" class="CUSTOM">
<meta expanded="False"/>
<name status="New">Custom2</name>
<name status="New" import="None">Custom2</name>
</item>
</content>
</novelWriterXML>
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-02-17 22:05:03">
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-04-03 21:31:53">
<project>
<name>New Project</name>
<title></title>
@@ -27,66 +27,66 @@
<section></section>
</titleFormat>
<status>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Note</entry>
<entry blue="0" green="150" red="200">Draft</entry>
<entry blue="0" green="200" red="50">Finished</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Note</entry>
<entry red="200" green="150" blue="0">Draft</entry>
<entry red="50" green="200" blue="0">Finished</entry>
</status>
<importance>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Minor</entry>
<entry blue="0" green="150" red="200">Major</entry>
<entry blue="0" green="200" red="50">Main</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Minor</entry>
<entry red="200" green="150" blue="0">Major</entry>
<entry red="50" green="200" blue="0">Main</entry>
</importance>
</settings>
<content count="12">
<item handle="73475cb40a568" parent="None" order="0" type="ROOT" class="NOVEL">
<meta expanded="True"/>
<name status="New">Novel</name>
<name status="New" import="New">Novel</name>
</item>
<item handle="25fc0e7096fc6" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="11" wordCount="2" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Title Page</name>
<name status="New" import="New" exported="True">Title Page</name>
</item>
<item handle="31489056e0916" parent="73475cb40a568" order="1" type="FOLDER" class="NOVEL">
<meta expanded="True"/>
<name status="New">New Chapter</name>
<name status="New" import="New">New Chapter</name>
</item>
<item handle="98010bd9270f9" parent="31489056e0916" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="11" wordCount="2" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">New Chapter</name>
<name status="New" import="New" exported="True">New Chapter</name>
</item>
<item handle="0e17daca5f3e1" parent="31489056e0916" order="1" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="612" wordCount="95" paraCount="10" cursorPos="768"/>
<name status="New" exported="True">New Scene</name>
<name status="New" import="New" exported="True">New Scene</name>
</item>
<item handle="44cb730c42048" parent="None" order="1" type="ROOT" class="PLOT">
<meta expanded="True"/>
<name status="New">Plot</name>
<name status="New" import="New">Plot</name>
</item>
<item handle="031b4af5197ec" parent="44cb730c42048" order="0" type="FILE" class="PLOT" layout="NOTE">
<meta charCount="48" wordCount="10" paraCount="1" cursorPos="69"/>
<name status="New" exported="True">New File</name>
<name status="New" import="None" exported="True">New File</name>
</item>
<item handle="71ee45a3c0db9" parent="None" order="2" type="ROOT" class="CHARACTER">
<meta expanded="True"/>
<name status="New">Characters</name>
<name status="New" import="New">Characters</name>
</item>
<item handle="1a6562590ef19" parent="71ee45a3c0db9" order="0" type="FILE" class="CHARACTER" layout="NOTE">
<meta charCount="34" wordCount="8" paraCount="1" cursorPos="51"/>
<name status="New" exported="True">New File</name>
<name status="New" import="None" exported="True">New File</name>
</item>
<item handle="811786ad1ae74" parent="None" order="3" type="ROOT" class="WORLD">
<meta expanded="True"/>
<name status="New">World</name>
<name status="New" import="New">World</name>
</item>
<item handle="41cfc0d1f2d12" parent="811786ad1ae74" order="0" type="FILE" class="WORLD" layout="NOTE">
<meta charCount="51" wordCount="9" paraCount="1" cursorPos="68"/>
<name status="New" exported="True">New File</name>
<name status="New" import="None" exported="True">New File</name>
</item>
<item handle="2fca346db6561" parent="None" order="4" type="TRASH" class="TRASH">
<meta expanded="True"/>
<name status="None">Trash</name>
<name status="None" import="None">Trash</name>
</item>
</content>
</novelWriterXML>
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-02-17 21:57:41">
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-04-03 21:00:21">
<project>
<name>New Project</name>
<title></title>
@@ -27,50 +27,50 @@
<section></section>
</titleFormat>
<status>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Note</entry>
<entry blue="0" green="150" red="200">Draft</entry>
<entry blue="0" green="200" red="50">Finished</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Note</entry>
<entry red="200" green="150" blue="0">Draft</entry>
<entry red="50" green="200" blue="0">Finished</entry>
</status>
<importance>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Minor</entry>
<entry blue="0" green="150" red="200">Major</entry>
<entry blue="0" green="200" red="50">Main</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Minor</entry>
<entry red="200" green="150" blue="0">Major</entry>
<entry red="50" green="200" blue="0">Main</entry>
</importance>
</settings>
<content count="8">
<item handle="73475cb40a568" parent="None" order="0" type="ROOT" class="NOVEL">
<meta expanded="False"/>
<name status="New">Novel</name>
<name status="New" import="None">Novel</name>
</item>
<item handle="25fc0e7096fc6" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="11" wordCount="2" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Title Page</name>
<name status="New" import="None" exported="True">Title Page</name>
</item>
<item handle="31489056e0916" parent="73475cb40a568" order="1" type="FOLDER" class="NOVEL">
<meta expanded="False"/>
<name status="New">New Chapter</name>
<name status="New" import="None">New Chapter</name>
</item>
<item handle="98010bd9270f9" parent="31489056e0916" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="11" wordCount="2" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">New Chapter</name>
<name status="New" import="None" exported="True">New Chapter</name>
</item>
<item handle="0e17daca5f3e1" parent="31489056e0916" order="1" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="9" wordCount="2" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">New Scene</name>
<name status="New" import="None" exported="True">New Scene</name>
</item>
<item handle="44cb730c42048" parent="None" order="1" type="ROOT" class="PLOT">
<meta expanded="False"/>
<name status="New">Plot</name>
<name status="New" import="None">Plot</name>
</item>
<item handle="71ee45a3c0db9" parent="None" order="2" type="ROOT" class="CHARACTER">
<meta expanded="False"/>
<name status="New">Characters</name>
<name status="New" import="None">Characters</name>
</item>
<item handle="811786ad1ae74" parent="None" order="3" type="ROOT" class="WORLD">
<meta expanded="False"/>
<name status="New">World</name>
<name status="New" import="None">World</name>
</item>
</content>
</novelWriterXML>
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-02-17 21:57:36">
<novelWriterXML appVersion="1.7-alpha0" hexVersion="0x010700a0" fileVersion="1.4" timeStamp="2022-04-03 21:00:18">
<project>
<name>Project Name</name>
<title>Project Title</title>
@@ -33,50 +33,50 @@
<section></section>
</titleFormat>
<status>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Note</entry>
<entry blue="0" green="200" red="50">Finished</entry>
<entry blue="40" green="30" red="20">Final</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Note</entry>
<entry red="50" green="200" blue="0">Finished</entry>
<entry red="20" green="30" blue="40">Final</entry>
</status>
<importance>
<entry blue="100" green="100" red="100">New</entry>
<entry blue="0" green="50" red="200">Minor</entry>
<entry blue="0" green="150" red="200">Major</entry>
<entry blue="0" green="0" red="0">Final</entry>
<entry red="100" green="100" blue="100">New</entry>
<entry red="200" green="50" blue="0">Minor</entry>
<entry red="200" green="150" blue="0">Major</entry>
<entry red="0" green="0" blue="0">Final</entry>
</importance>
</settings>
<content count="8">
<item handle="73475cb40a568" parent="None" order="0" type="ROOT" class="NOVEL">
<meta expanded="False"/>
<name status="New">Novel</name>
<name status="New" import="None">Novel</name>
</item>
<item handle="25fc0e7096fc6" parent="73475cb40a568" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="11" wordCount="2" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">Title Page</name>
<name status="New" import="None" exported="True">Title Page</name>
</item>
<item handle="31489056e0916" parent="73475cb40a568" order="1" type="FOLDER" class="NOVEL">
<meta expanded="False"/>
<name status="New">New Chapter</name>
<name status="New" import="None">New Chapter</name>
</item>
<item handle="98010bd9270f9" parent="31489056e0916" order="0" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="11" wordCount="2" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">New Chapter</name>
<name status="New" import="None" exported="True">New Chapter</name>
</item>
<item handle="0e17daca5f3e1" parent="31489056e0916" order="1" type="FILE" class="NOVEL" layout="DOCUMENT">
<meta charCount="9" wordCount="2" paraCount="0" cursorPos="0"/>
<name status="New" exported="True">New Scene</name>
<name status="New" import="None" exported="True">New Scene</name>
</item>
<item handle="44cb730c42048" parent="None" order="1" type="ROOT" class="PLOT">
<meta expanded="False"/>
<name status="New">Plot</name>
<name status="New" import="None">Plot</name>
</item>
<item handle="71ee45a3c0db9" parent="None" order="2" type="ROOT" class="CHARACTER">
<meta expanded="False"/>
<name status="New">Characters</name>
<name status="New" import="None">Characters</name>
</item>
<item handle="811786ad1ae74" parent="None" order="3" type="ROOT" class="WORLD">
<meta expanded="False"/>
<name status="New">World</name>
<name status="New" import="None">World</name>
</item>
</content>
</novelWriterXML>
+60 -15
View File
@@ -23,6 +23,8 @@ import pytest
from lxml import etree
from PyQt5.QtGui import QIcon
from novelwriter.core import NWProject
from novelwriter.core.item import NWItem
from novelwriter.enum import nwItemClass, nwItemType, nwItemLayout
@@ -74,16 +76,17 @@ def testCoreItem_Setters(mockGUI):
assert theItem.itemOrder == 1
# Importance
theItem.setStatus("Nonsense")
assert theItem.itemStatus == "New"
theItem.setStatus("New")
assert theItem.itemStatus == "New"
theItem.setStatus("Minor")
assert theItem.itemStatus == "Minor"
theItem.setStatus("Major")
assert theItem.itemStatus == "Major"
theItem.setStatus("Main")
assert theItem.itemStatus == "Main"
theItem._class = nwItemClass.CHARACTER
theItem.setImport("Nonsense")
assert theItem.itemImport == "New"
theItem.setImport("New")
assert theItem.itemImport == "New"
theItem.setImport("Minor")
assert theItem.itemImport == "Minor"
theItem.setImport("Major")
assert theItem.itemImport == "Major"
theItem.setImport("Main")
assert theItem.itemImport == "Main"
# Status
theItem._class = nwItemClass.NOVEL
@@ -98,6 +101,27 @@ def testCoreItem_Setters(mockGUI):
theItem.setStatus("Finished")
assert theItem.itemStatus == "Finished"
# Status/Importance Wrapper
theItem._class = nwItemClass.CHARACTER
theItem.setImportStatus("New")
assert theItem.itemImport == "New"
theItem.setImportStatus("Minor")
assert theItem.itemImport == "Minor"
theItem.setImportStatus("Note")
assert theItem.itemImport == "New"
theItem.setImportStatus("Draft")
assert theItem.itemImport == "New"
theItem._class = nwItemClass.NOVEL
theItem.setImportStatus("New")
assert theItem.itemStatus == "New"
theItem.setImportStatus("Minor")
assert theItem.itemStatus == "New"
theItem.setImportStatus("Note")
assert theItem.itemStatus == "Note"
theItem.setImportStatus("Draft")
assert theItem.itemStatus == "Draft"
# Expanded
theItem.setExpanded(8)
assert theItem.isExpanded is False
@@ -196,6 +220,22 @@ def testCoreItem_Methods(mockGUI):
theItem.setLayout("NOTE")
assert theItem.describeMe() == "Project Note"
# Status + Icon
# =============
theItem.setType("FILE")
theItem.setStatus("Note")
theItem.setImport("Minor")
theItem.setClass("NOVEL")
stT, stI = theItem.getImportStatus()
assert stT == "Note"
assert isinstance(stI, QIcon)
theItem.setClass("CHARACTER")
stT, stI = theItem.getImportStatus()
assert stT == "Minor"
assert isinstance(stI, QIcon)
# Representation
# ==============
@@ -342,9 +382,11 @@ def testCoreItem_XMLPackUnpack(mockGUI, caplog):
xContent = etree.SubElement(nwXML, "content")
theItem.packXML(xContent)
assert etree.tostring(xContent, pretty_print=False, encoding="utf-8") == (
b'<content><item handle="0123456789abc" parent="0123456789abc" order="1" type="FILE" '
b'class="NOVEL" layout="NOTE"><meta charCount="7" wordCount="5" paraCount="3" '
b'cursorPos="11"/><name status="New" exported="False">A Name</name></item></content>'
b'<content>'
b'<item handle="0123456789abc" parent="0123456789abc" order="1" type="FILE" class="NOVEL" '
b'layout="NOTE"><meta charCount="7" wordCount="5" paraCount="3" cursorPos="11"/>'
b'<name status="New" import="None" exported="False">A Name</name></item>'
b'</content>'
)
# Unpack
@@ -385,8 +427,11 @@ def testCoreItem_XMLPackUnpack(mockGUI, caplog):
xContent = etree.SubElement(nwXML, "content")
theItem.packXML(xContent)
assert etree.tostring(xContent, pretty_print=False, encoding="utf-8") == (
b'<content><item handle="0123456789abc" parent="0123456789abc" order="1" type="FOLDER" '
b'class="NOVEL"><meta expanded="True"/><name status="New">A Name</name></item></content>'
b'<content>'
b'<item handle="0123456789abc" parent="0123456789abc" order="1" type="FOLDER" '
b'class="NOVEL"><meta expanded="True"/><name status="New" import="None">A Name</name>'
b'</item>'
b'</content>'
)
# Unpack
+2 -6
View File
@@ -61,10 +61,6 @@ def testCoreProject_NewMinimal(fncDir, outDir, refDir, mockGUI):
# Creating the project once more should fail
assert theProject.newProject({"projPath": fncDir}) is False
# Check the new project
copyfile(projFile, testFile)
assert cmpFiles(testFile, compFile, [2, 6, 7, 8])
# Open again
assert theProject.openProject(projFile) is True
@@ -857,7 +853,7 @@ def testCoreProject_Methods(monkeypatch, nwMinimal, mockGUI, tmpDir):
# Change importance
fHandle = theProject.newFile("Jane Doe", nwItemClass.CHARACTER, "afb3043c7b2b3")
theProject.projTree[fHandle].setStatus("Main")
theProject.projTree[fHandle].setImport("Main")
newList = [
("New", 1, 1, 1, "New"),
("Minor", 2, 2, 2, "Minor"),
@@ -872,7 +868,7 @@ def testCoreProject_Methods(monkeypatch, nwMinimal, mockGUI, tmpDir):
assert theProject.importItems._theColours == [
(1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4), (5, 5, 5)
]
assert theProject.projTree[fHandle].itemStatus == "Min"
assert theProject.projTree[fHandle].itemImport == "Min"
# Check status counts
assert theProject.statusItems._theCounts == [0, 0, 0, 0, 0]
+22 -11
View File
@@ -23,6 +23,8 @@ import pytest
from lxml import etree
from PyQt5.QtGui import QIcon
from novelwriter.core.status import NWStatus
@@ -48,9 +50,9 @@ def testCoreStatus_Entries():
assert theStatus._theLength == 4
# Lookups
assert theStatus.lookupEntry(None) is None
assert theStatus.lookupEntry("stuff") is None
assert theStatus.lookupEntry("Main") == 3
assert theStatus._getIndex(None) is None
assert theStatus._getIndex("stuff") is None
assert theStatus._getIndex("Main") == 3
# Checks
assert theStatus.checkEntry(123) == "New"
@@ -58,6 +60,10 @@ def testCoreStatus_Entries():
assert theStatus.checkEntry("New ") == "New"
assert theStatus.checkEntry(" Main ") == "Main"
# Icons
assert isinstance(theStatus.getIcon("Stuff"), QIcon)
assert isinstance(theStatus.getIcon("New"), QIcon)
# Set new list
newList = [
("New", 1, 1, 1, "New"),
@@ -87,12 +93,17 @@ def testCoreStatus_Entries():
assert theStatus._theCounts == countTo
# Iterate
for i, (sA, sB, sC) in enumerate(theStatus):
for i, (sA, sB, sC, sD) in enumerate(theStatus):
assert sA == theStatus._theLabels[i]
assert sB == theStatus._theColours[i]
assert sC == theStatus._theCounts[i]
assert sD == theStatus._theIcons[i]
assert theStatus[9] == (None, None, None)
sA, sB, sC, sD = theStatus[9]
assert sA is None
assert sB is None
assert sC is None
assert isinstance(sD, QIcon)
# Clear counts
theStatus.resetCounts()
@@ -122,12 +133,12 @@ def testCoreStatus_XMLPackUnpack():
xStatus = etree.SubElement(nwXML, "status")
theStatus.packXML(xStatus)
assert etree.tostring(xStatus, pretty_print=False, encoding="utf-8") == (
b"<status>"
b"<entry blue=\"100\" green=\"100\" red=\"100\">New</entry>"
b"<entry blue=\"0\" green=\"50\" red=\"200\">Minor</entry>"
b"<entry blue=\"0\" green=\"150\" red=\"200\">Major</entry>"
b"<entry blue=\"0\" green=\"200\" red=\"50\">Main</entry>"
b"</status>"
b'<status>'
b'<entry red="100" green="100" blue="100">New</entry>'
b'<entry red="200" green="50" blue="0">Minor</entry>'
b'<entry red="200" green="150" blue="0">Major</entry>'
b'<entry red="50" green="200" blue="0">Main</entry>'
b'</status>'
)
# Unpack
+5 -1
View File
@@ -30,7 +30,7 @@ from novelwriter.core.tokenizer import Tokenizer
class BareTokenizer(Tokenizer):
def doConvert(self):
pass
super().doConvert()
@pytest.mark.core
@@ -219,6 +219,10 @@ def testCoreToken_TextOps(monkeypatch, nwMinimal, mockGUI):
"# Notes: Plot\n\n"
)
# Ckeck abstract method
with pytest.raises(NotImplementedError):
theToken.doConvert()
# END Test testCoreToken_TextOps
+12 -11
View File
@@ -387,25 +387,26 @@ def testCoreTree_XMLPackUnpack(mockGUI, mockItems):
assert etree.tostring(nwXML, pretty_print=False, encoding="utf-8") == (
b'<novelWriterXML>'
b'<content count="8">'
b'<item handle="a000000000001" parent="None" order="0" type="ROOT" class="NOVEL">'
b'<meta expanded="True"/><name status="None">Novel</name></item>'
b'<item handle="a000000000001" parent="None" order="0" type="ROOT" class="NOVEL"><meta '
b'expanded="True"/><name status="None" import="None">Novel</name></item>'
b'<item handle="b000000000001" parent="a000000000001" order="0" type="FOLDER" '
b'class="NOVEL"><meta expanded="True"/><name status="None">Act One</name></item>'
b'class="NOVEL"><meta expanded="True"/><name status="None" import="None">Act One</name>'
b'</item>'
b'<item handle="c000000000001" parent="b000000000001" order="0" type="FILE" class="NOVEL" '
b'layout="DOCUMENT"><meta charCount="300" wordCount="50" paraCount="2" cursorPos="0"/>'
b'<name status="None" exported="True">Chapter One</name></item>'
b'<name status="None" import="None" exported="True">Chapter One</name></item>'
b'<item handle="c000000000002" parent="b000000000001" order="0" type="FILE" class="NOVEL" '
b'layout="DOCUMENT"><meta charCount="3000" wordCount="500" paraCount="20" cursorPos="0"/>'
b'<name status="None" exported="True">Scene One</name></item>'
b'<item handle="a000000000002" parent="None" order="0" type="ROOT" class="ARCHIVE">'
b'<meta expanded="False"/><name status="None">Outtakes</name></item>'
b'<item handle="a000000000003" parent="None" order="0" type="TRASH" class="TRASH">'
b'<meta expanded="False"/><name status="None">Trash</name></item>'
b'<name status="None" import="None" exported="True">Scene One</name></item>'
b'<item handle="a000000000002" parent="None" order="0" type="ROOT" class="ARCHIVE"><meta '
b'expanded="False"/><name status="None" import="None">Outtakes</name></item>'
b'<item handle="a000000000003" parent="None" order="0" type="TRASH" class="TRASH"><meta '
b'expanded="False"/><name status="None" import="None">Trash</name></item>'
b'<item handle="a000000000004" parent="None" order="0" type="ROOT" class="CHARACTER">'
b'<meta expanded="True"/><name status="None">Characters</name></item>'
b'<meta expanded="True"/><name status="None" import="None">Characters</name></item>'
b'<item handle="b000000000002" parent="a000000000002" order="0" type="FILE" '
b'class="CHARACTER" layout="NOTE"><meta charCount="2000" wordCount="400" paraCount="16" '
b'cursorPos="0"/><name status="None" exported="True">Jane Doe</name></item>'
b'cursorPos="0"/><name status="None" import="None" exported="True">Jane Doe</name></item>'
b'</content>'
b'</novelWriterXML>'
)
+3 -2
View File
@@ -174,11 +174,12 @@ def testDlgItemEditor_Note(qtbot, monkeypatch, nwGUI, fncProj):
itemEdit.editName.setText("New Character")
itemEdit.editStatus.setCurrentIndex(1)
itemEdit.editExport.setChecked(False)
itemEdit._doSave()
# Check New Settings
itemEdit._doSave()
assert itemEdit.theItem.itemName == "New Character"
assert itemEdit.theItem.itemStatus == "Minor"
assert itemEdit.theItem.itemStatus == "New"
assert itemEdit.theItem.itemImport == "Minor"
assert itemEdit.theItem.itemLayout == nwItemLayout.NOTE
assert itemEdit.theItem.isExported is False