Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
66cc3777dc | ||
|
|
b1def7b568 | ||
|
|
1b177ff5b5 | ||
|
|
594ccd45c7 | ||
|
|
2b0216a398 | ||
|
|
347266a9bd | ||
|
|
e7bce03be4 | ||
|
|
9d08d83c2c | ||
|
|
e0f7e50b64 | ||
|
|
b57d53adcd | ||
|
|
875bde2253 | ||
|
|
e77426f364 | ||
|
|
9af6fa062c | ||
|
|
6bc59eb7de | ||
|
|
49cab9ec29 | ||
|
|
32d75567e3 |
2
.github/workflows/test_linux.yml
vendored
2
.github/workflows/test_linux.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
- name: Install Packages (apt)
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install libenchant-dev qttools5-dev-tools aspell-en
|
||||
sudo apt install libenchant-2-dev qttools5-dev-tools aspell-en
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v3
|
||||
- name: Install Dependencies (pip)
|
||||
|
||||
43
CHANGELOG.md
43
CHANGELOG.md
@@ -1,5 +1,48 @@
|
||||
# novelWriter Changelog
|
||||
|
||||
## Version 2.0.2 [2022-12-01]
|
||||
|
||||
### Release Notes
|
||||
|
||||
This is a patch release that fixes a minor issues with syntax highlighting not updating when the
|
||||
highlighting preferences were changed. It also fixes an issue that broke the FreeBSD release.
|
||||
|
||||
### Detailed Changelog
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fix an issue where changing the Highlighting Preferences for highlighting quotes, emphasis, and
|
||||
multiple or trailing spaces would not reload the syntax highlighter in the editor. The changes
|
||||
would only take effect after restarting the app. Issue #1274. PR #1278.
|
||||
|
||||
**Packaging and Installation**
|
||||
|
||||
* The 2.0.1 release was broken on Linux, but was fixed and the packages rebuilt. However, the
|
||||
FreeBSD port was still broken. This release fixes this issue. Issue #1277. PR #1272.
|
||||
|
||||
----
|
||||
|
||||
## Version 2.0.1 [2022-11-29]
|
||||
|
||||
### Release Notes
|
||||
|
||||
This is a patch release that fixes a minor issues with loading custom GUI themes that haven't been
|
||||
updated to include the icon theme setting. The patch also updates the French translation.
|
||||
|
||||
### Detailed Changelog
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fix an issue where starting the app with a custom GUI theme enabled would not load any icons at
|
||||
all if the `icontheme` setting isn't specified. The app now loads the `typicons_light` theme by
|
||||
default if no icon theme is set. Issue #1263. PR #1264.
|
||||
|
||||
**Internationalisation**
|
||||
|
||||
* The French translations has now been completed by @aaribaud. PR #1265.
|
||||
|
||||
----
|
||||
|
||||
## Version 2.0 [2022-11-28]
|
||||
|
||||
### Release Notes
|
||||
|
||||
@@ -63,3 +63,95 @@ first time you start novelWriter.
|
||||
|
||||
Once the files are copied there, they should show up in :guilabel:`Preferences` with the label you
|
||||
set as ``name`` inside the file.
|
||||
|
||||
.. note::
|
||||
In novelWriter 2.0 the ``icontheme`` value was added to GUI themes. Make sure you set this value
|
||||
in existing custom themes. Otherwise it defaults to ``typicons_light``, which may not match your
|
||||
theme colour scheme.
|
||||
|
||||
|
||||
Gustom GUI Theme
|
||||
----------------
|
||||
|
||||
A GUI theme conf file consists of the follwing settings:
|
||||
|
||||
.. code-block:: cfg
|
||||
|
||||
[Main]
|
||||
name = My Custom Theme
|
||||
description = A description of my custom theme
|
||||
author = Jane Doe
|
||||
credit = John Doe
|
||||
url = https://example.com
|
||||
license = CC BY-SA 4.0
|
||||
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
|
||||
icontheme = typicons_light
|
||||
|
||||
[Palette]
|
||||
window = 100, 100, 100
|
||||
windowtext = 100, 100, 100
|
||||
base = 100, 100, 100
|
||||
alternatebase = 100, 100, 100
|
||||
text = 100, 100, 100
|
||||
tooltipbase = 100, 100, 100
|
||||
tooltiptext = 100, 100, 100
|
||||
button = 100, 100, 100
|
||||
buttontext = 100, 100, 100
|
||||
brighttext = 100, 100, 100
|
||||
highlight = 100, 100, 100
|
||||
highlightedtext = 100, 100, 100
|
||||
link = 100, 100, 100
|
||||
linkvisited = 100, 100, 100
|
||||
|
||||
[GUI]
|
||||
statusnone = 100, 100, 100
|
||||
statussaved = 100, 100, 100
|
||||
statusunsaved = 100, 100, 100
|
||||
|
||||
In the Main section you must at least define the ``name`` and ``icontheme`` settings. The
|
||||
``icontheme`` settings should correspond to one of the internal icon themes. Either
|
||||
``typicons_light`` or ``typicons_dark``.
|
||||
|
||||
The Palette values correspond the the Qt enum values for QPalette::ColorRole, see the
|
||||
`Qt documentation <https://doc.qt.io/qt-5.15/qpalette.html#ColorRole-enum>`_ for more details. The
|
||||
colour values are RGB numbers on the format ``r, g, b`` where each is an integer from to 255.
|
||||
Omitted values are not loaded and will use default values.
|
||||
|
||||
|
||||
Custom Syntax Theme
|
||||
-------------------
|
||||
|
||||
A syntax theme conf file consists of the follwing settings:
|
||||
|
||||
.. code-block:: cfg
|
||||
|
||||
[Main]
|
||||
name = My Syntax Theme
|
||||
author = Jane Doe
|
||||
credit = John Doe
|
||||
url = https://example.com
|
||||
license = CC BY-SA 4.0
|
||||
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
|
||||
|
||||
[Syntax]
|
||||
background = 255, 255, 255
|
||||
text = 0, 0, 0
|
||||
link = 0, 0, 0
|
||||
headertext = 0, 0, 0
|
||||
headertag = 0, 0, 0
|
||||
emphasis = 0, 0, 0
|
||||
straightquotes = 0, 0, 0
|
||||
doublequotes = 0, 0, 0
|
||||
singlequotes = 0, 0, 0
|
||||
hidden = 0, 0, 0
|
||||
keyword = 0, 0, 0
|
||||
value = 0, 0, 0
|
||||
spellcheckline = 0, 0, 0
|
||||
errorline = 0, 0, 0
|
||||
replacetag = 0, 0, 0
|
||||
modifier = 0, 0, 0
|
||||
|
||||
|
||||
In the Main section, you must define at least the ``name`` setting. The Syntax colour values are
|
||||
RGB numbers on the format ``r, g, b`` where each is an integer from to 255. Omitted values are set
|
||||
to black, except ``background`` which defaults to white,
|
||||
|
||||
1044
i18n/nw_fr_FR.ts
1044
i18n/nw_fr_FR.ts
File diff suppressed because it is too large
Load Diff
@@ -59,9 +59,9 @@ __license__ = "GPLv3"
|
||||
__author__ = "Veronica Berglyd Olsen"
|
||||
__maintainer__ = "Veronica Berglyd Olsen"
|
||||
__email__ = "code@vkbo.net"
|
||||
__version__ = "2.0"
|
||||
__hexversion__ = "0x020000f0"
|
||||
__date__ = "2022-11-28"
|
||||
__version__ = "2.0.2"
|
||||
__hexversion__ = "0x020002f0"
|
||||
__date__ = "2022-12-01"
|
||||
__status__ = "Stable"
|
||||
__domain__ = "novelwriter.io"
|
||||
__url__ = "https://novelwriter.io"
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
<h2>Release Notes for 2.0</h2>
|
||||
<p><i>Released on 28 November 2022</i></p>
|
||||
|
||||
<p>Scroll down for <a href="#patch">Patch Notes</a></p>
|
||||
|
||||
<p>This release includes a major update to the way your project is managed. It also modernises the
|
||||
user interface. The project file format has also been updated, and your projects will be upgraded
|
||||
the first time you open them in this release.</p>
|
||||
@@ -85,5 +87,17 @@ Project Settings dialog has been updated to reflect some of the same changes.</p
|
||||
|
||||
<p><i>See also the <a href="https://github.com/vkbo/novelWriter/releases">Releases</a> page.</i></p>
|
||||
|
||||
<a name="patch"></a><h2>Patch Notes</h2>
|
||||
|
||||
<h3>Patch 2.0.1 – 29 November 2022</h3>
|
||||
|
||||
<p>This is a patch release that fixes a minor issues with loading custom GUI themes that haven't
|
||||
been updated to include the icon theme setting. The patch also updates the French translation.</p>
|
||||
|
||||
<h3>Patch 2.0.2 – 1 December 2022</h3>
|
||||
|
||||
<p>This is a patch release that fixes a minor issues with syntax highlighting not updating when the
|
||||
highlighting preferences were changed. It also fixes an issue that broke the FreeBSD release.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,40 +1,3 @@
|
||||
"""
|
||||
novelWriter – Core Init
|
||||
=======================
|
||||
|
||||
This file is a part of novelWriter
|
||||
Copyright 2018–2022, Veronica Berglyd Olsen
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
novelWriter – Core Init File
|
||||
"""
|
||||
|
||||
from novelwriter.core.coretools import DocMerger, DocSplitter, ProjectBuilder
|
||||
from novelwriter.core.index import countWords
|
||||
from novelwriter.core.project import NWProject
|
||||
from novelwriter.core.spellcheck import NWSpellEnchant
|
||||
from novelwriter.core.tohtml import ToHtml
|
||||
from novelwriter.core.toodt import ToOdt
|
||||
from novelwriter.core.tomd import ToMarkdown
|
||||
|
||||
__all__ = [
|
||||
"DocMerger",
|
||||
"DocSplitter",
|
||||
"ProjectBuilder",
|
||||
"countWords",
|
||||
"NWProject",
|
||||
"NWSpellEnchant",
|
||||
"ToHtml",
|
||||
"ToOdt",
|
||||
"ToMarkdown",
|
||||
]
|
||||
|
||||
@@ -36,10 +36,8 @@ from pathlib import Path
|
||||
|
||||
from novelwriter.enum import nwItemType, nwItemLayout
|
||||
from novelwriter.error import logException
|
||||
from novelwriter.common import checkInt, isHandle, isItemClass, isTitleTag, jsonEncode
|
||||
from novelwriter.constants import nwFiles, nwKeyWords, nwUnicode, nwHeaders
|
||||
from novelwriter.common import (
|
||||
checkInt, isHandle, isItemClass, isTitleTag, jsonEncode
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -30,11 +30,11 @@ from time import time
|
||||
from pathlib import Path
|
||||
from zipfile import ZIP_DEFLATED, ZIP_STORED, ZipFile
|
||||
|
||||
from novelwriter.error import logException
|
||||
from novelwriter.common import minmax
|
||||
from novelwriter.constants import nwFiles
|
||||
from novelwriter.core.document import NWDocument
|
||||
from novelwriter.core.projectxml import ProjectXMLReader, ProjectXMLWriter
|
||||
from novelwriter.error import logException
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -25,8 +25,8 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
import logging
|
||||
|
||||
from novelwriter.core.tokenizer import Tokenizer
|
||||
from novelwriter.constants import nwKeyWords, nwLabels, nwHtmlUnicode
|
||||
from novelwriter.core.tokenizer import Tokenizer
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -1,46 +1,3 @@
|
||||
"""
|
||||
novelWriter – Dialogs Init
|
||||
==========================
|
||||
|
||||
This file is a part of novelWriter
|
||||
Copyright 2018–2022, Veronica Berglyd Olsen
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
novelWriter – Dialogs Init File
|
||||
"""
|
||||
|
||||
from novelwriter.dialogs.about import GuiAbout
|
||||
from novelwriter.dialogs.docmerge import GuiDocMerge
|
||||
from novelwriter.dialogs.docsplit import GuiDocSplit
|
||||
from novelwriter.dialogs.editlabel import GuiEditLabel
|
||||
from novelwriter.dialogs.preferences import GuiPreferences
|
||||
from novelwriter.dialogs.projdetails import GuiProjectDetails
|
||||
from novelwriter.dialogs.projload import GuiProjectLoad
|
||||
from novelwriter.dialogs.projsettings import GuiProjectSettings
|
||||
from novelwriter.dialogs.quotes import GuiQuoteSelect
|
||||
from novelwriter.dialogs.updates import GuiUpdates
|
||||
from novelwriter.dialogs.wordlist import GuiWordList
|
||||
|
||||
__all__ = [
|
||||
"GuiAbout",
|
||||
"GuiDocMerge",
|
||||
"GuiDocSplit",
|
||||
"GuiEditLabel",
|
||||
"GuiPreferences",
|
||||
"GuiProjectDetails",
|
||||
"GuiProjectLoad",
|
||||
"GuiProjectSettings",
|
||||
"GuiQuoteSelect",
|
||||
"GuiUpdates",
|
||||
"GuiWordList",
|
||||
]
|
||||
|
||||
@@ -826,6 +826,7 @@ class GuiPreferencesSyntax(QWidget):
|
||||
super().__init__(parent=prefsGui)
|
||||
|
||||
self.mainConf = novelwriter.CONFIG
|
||||
self.prefsGui = prefsGui
|
||||
self.mainGui = prefsGui.mainGui
|
||||
self.mainTheme = prefsGui.mainGui.mainTheme
|
||||
|
||||
@@ -893,16 +894,21 @@ class GuiPreferencesSyntax(QWidget):
|
||||
def saveValues(self):
|
||||
"""Save the values set for this tab.
|
||||
"""
|
||||
# Quotes & Dialogue
|
||||
self.mainConf.highlightQuotes = self.highlightQuotes.isChecked()
|
||||
self.mainConf.allowOpenSQuote = self.allowOpenSQuote.isChecked()
|
||||
self.mainConf.allowOpenDQuote = self.allowOpenDQuote.isChecked()
|
||||
highlightQuotes = self.highlightQuotes.isChecked()
|
||||
allowOpenSQuote = self.allowOpenSQuote.isChecked()
|
||||
allowOpenDQuote = self.allowOpenDQuote.isChecked()
|
||||
highlightEmph = self.highlightEmph.isChecked()
|
||||
showMultiSpaces = self.showMultiSpaces.isChecked()
|
||||
|
||||
# Text Emphasis
|
||||
self.mainConf.highlightEmph = self.highlightEmph.isChecked()
|
||||
self.prefsGui._updateSyntax |= self.mainConf.highlightQuotes != highlightQuotes
|
||||
self.prefsGui._updateSyntax |= self.mainConf.highlightEmph != highlightEmph
|
||||
self.prefsGui._updateSyntax |= self.mainConf.showMultiSpaces != showMultiSpaces
|
||||
|
||||
# Text Errors
|
||||
self.mainConf.showMultiSpaces = self.showMultiSpaces.isChecked()
|
||||
self.mainConf.highlightQuotes = highlightQuotes
|
||||
self.mainConf.allowOpenSQuote = allowOpenSQuote
|
||||
self.mainConf.allowOpenDQuote = allowOpenDQuote
|
||||
self.mainConf.highlightEmph = highlightEmph
|
||||
self.mainConf.showMultiSpaces = showMultiSpaces
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -1,45 +1,3 @@
|
||||
"""
|
||||
novelWriter – GUI Init
|
||||
======================
|
||||
|
||||
This file is a part of novelWriter
|
||||
Copyright 2018–2022, Veronica Berglyd Olsen
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
novelWriter – GUI Init File
|
||||
"""
|
||||
|
||||
from novelwriter.gui.doceditor import GuiDocEditor
|
||||
from novelwriter.gui.docviewer import GuiDocViewer, GuiDocViewDetails
|
||||
from novelwriter.gui.itemdetails import GuiItemDetails
|
||||
from novelwriter.gui.mainmenu import GuiMainMenu
|
||||
from novelwriter.gui.noveltree import GuiNovelView
|
||||
from novelwriter.gui.outline import GuiOutlineView
|
||||
from novelwriter.gui.projtree import GuiProjectView
|
||||
from novelwriter.gui.statusbar import GuiMainStatus
|
||||
from novelwriter.gui.theme import GuiTheme
|
||||
from novelwriter.gui.sidebar import GuiSideBar
|
||||
|
||||
__all__ = [
|
||||
"GuiDocEditor",
|
||||
"GuiDocViewDetails",
|
||||
"GuiDocViewer",
|
||||
"GuiItemDetails",
|
||||
"GuiMainMenu",
|
||||
"GuiMainStatus",
|
||||
"GuiNovelView",
|
||||
"GuiOutlineView",
|
||||
"GuiProjectView",
|
||||
"GuiTheme",
|
||||
"GuiSideBar",
|
||||
]
|
||||
|
||||
@@ -50,10 +50,11 @@ from PyQt5.QtWidgets import (
|
||||
QFrame
|
||||
)
|
||||
|
||||
from novelwriter.core import NWSpellEnchant, countWords
|
||||
from novelwriter.enum import nwAlert, nwDocAction, nwDocInsert, nwDocMode, nwItemClass
|
||||
from novelwriter.common import minmax, transferCase
|
||||
from novelwriter.constants import nwConst, nwFiles, nwKeyWords, nwUnicode
|
||||
from novelwriter.core.index import countWords
|
||||
from novelwriter.core.spellcheck import NWSpellEnchant
|
||||
from novelwriter.gui.dochighlight import GuiDocHighlighter
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -33,8 +33,8 @@ from PyQt5.QtGui import (
|
||||
QColor, QTextCharFormat, QFont, QSyntaxHighlighter, QBrush
|
||||
)
|
||||
|
||||
from novelwriter.constants import nwRegEx, nwUnicode
|
||||
from novelwriter.common import checkInt
|
||||
from novelwriter.constants import nwRegEx, nwUnicode
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -41,10 +41,10 @@ from PyQt5.QtWidgets import (
|
||||
QAction, QMenu, QFrame
|
||||
)
|
||||
|
||||
from novelwriter.core import ToHtml
|
||||
from novelwriter.enum import nwItemType, nwDocAction, nwDocMode
|
||||
from novelwriter.error import logException
|
||||
from novelwriter.constants import nwUnicode
|
||||
from novelwriter.core.tohtml import ToHtml
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -39,10 +39,13 @@ from PyQt5.QtWidgets import (
|
||||
QVBoxLayout, QWidget
|
||||
)
|
||||
|
||||
from novelwriter.core import DocMerger, DocSplitter
|
||||
from novelwriter.enum import nwDocMode, nwItemType, nwItemClass, nwItemLayout, nwAlert
|
||||
from novelwriter.dialogs import GuiDocMerge, GuiDocSplit, GuiEditLabel, GuiProjectSettings
|
||||
from novelwriter.constants import nwHeaders, nwUnicode, trConst, nwLabels
|
||||
from novelwriter.core.coretools import DocMerger, DocSplitter
|
||||
from novelwriter.dialogs.docmerge import GuiDocMerge
|
||||
from novelwriter.dialogs.docsplit import GuiDocSplit
|
||||
from novelwriter.dialogs.editlabel import GuiEditLabel
|
||||
from novelwriter.dialogs.projsettings import GuiProjectSettings
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -246,7 +246,7 @@ class GuiTheme:
|
||||
self.statSaved = self._parseColour(confParser, cnfSec, "statussaved")
|
||||
|
||||
# Icons
|
||||
self.iconCache.loadTheme(self.themeIcons)
|
||||
self.iconCache.loadTheme(self.themeIcons or "typicons_light")
|
||||
|
||||
# Update Dependant Colours
|
||||
backCol = self._guiPalette.window().color()
|
||||
|
||||
@@ -38,19 +38,30 @@ from PyQt5.QtWidgets import (
|
||||
QMessageBox, QDialog, QStackedWidget
|
||||
)
|
||||
|
||||
from novelwriter.gui import (
|
||||
GuiDocEditor, GuiDocViewDetails, GuiDocViewer, GuiItemDetails, GuiMainMenu,
|
||||
GuiMainStatus, GuiNovelView, GuiOutlineView, GuiProjectView, GuiTheme,
|
||||
GuiSideBar
|
||||
)
|
||||
from novelwriter.dialogs import (
|
||||
GuiAbout, GuiPreferences, GuiProjectDetails, GuiProjectLoad,
|
||||
GuiProjectSettings, GuiUpdates, GuiWordList
|
||||
)
|
||||
from novelwriter.tools import (
|
||||
GuiBuildNovel, GuiLipsum, GuiProjectWizard, GuiWritingStats
|
||||
)
|
||||
from novelwriter.core import NWProject, ProjectBuilder
|
||||
from novelwriter.gui.theme import GuiTheme
|
||||
from novelwriter.gui.sidebar import GuiSideBar
|
||||
from novelwriter.gui.outline import GuiOutlineView
|
||||
from novelwriter.gui.mainmenu import GuiMainMenu
|
||||
from novelwriter.gui.projtree import GuiProjectView
|
||||
from novelwriter.gui.doceditor import GuiDocEditor
|
||||
from novelwriter.gui.docviewer import GuiDocViewDetails, GuiDocViewer
|
||||
from novelwriter.gui.noveltree import GuiNovelView
|
||||
from novelwriter.gui.statusbar import GuiMainStatus
|
||||
from novelwriter.gui.itemdetails import GuiItemDetails
|
||||
from novelwriter.dialogs.about import GuiAbout
|
||||
from novelwriter.dialogs.updates import GuiUpdates
|
||||
from novelwriter.dialogs.projload import GuiProjectLoad
|
||||
from novelwriter.dialogs.wordlist import GuiWordList
|
||||
from novelwriter.dialogs.preferences import GuiPreferences
|
||||
from novelwriter.dialogs.projdetails import GuiProjectDetails
|
||||
from novelwriter.dialogs.projsettings import GuiProjectSettings
|
||||
from novelwriter.tools.build import GuiBuildNovel
|
||||
from novelwriter.tools.lipsum import GuiLipsum
|
||||
from novelwriter.tools.projwizard import GuiProjectWizard
|
||||
from novelwriter.tools.writingstats import GuiWritingStats
|
||||
from novelwriter.core.project import NWProject
|
||||
from novelwriter.core.coretools import ProjectBuilder
|
||||
|
||||
from novelwriter.enum import (
|
||||
nwDocMode, nwItemType, nwItemClass, nwAlert, nwWidget, nwView
|
||||
)
|
||||
|
||||
@@ -1,32 +1,3 @@
|
||||
"""
|
||||
novelWriter – Tools Init
|
||||
========================
|
||||
|
||||
This file is a part of novelWriter
|
||||
Copyright 2018–2022, Veronica Berglyd Olsen
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
novelWriter – Tools Init File
|
||||
"""
|
||||
|
||||
from novelwriter.tools.build import GuiBuildNovel
|
||||
from novelwriter.tools.lipsum import GuiLipsum
|
||||
from novelwriter.tools.projwizard import GuiProjectWizard
|
||||
from novelwriter.tools.writingstats import GuiWritingStats
|
||||
|
||||
__all__ = [
|
||||
"GuiBuildNovel",
|
||||
"GuiLipsum",
|
||||
"GuiProjectWizard",
|
||||
"GuiWritingStats",
|
||||
]
|
||||
|
||||
@@ -43,12 +43,14 @@ from PyQt5.QtWidgets import (
|
||||
)
|
||||
from PyQt5.QtPrintSupport import QPrinter, QPrintPreviewDialog
|
||||
|
||||
from novelwriter.core import ToHtml, ToOdt, ToMarkdown
|
||||
from novelwriter.enum import nwAlert, nwItemType, nwItemLayout, nwItemClass
|
||||
from novelwriter.error import formatException, logException
|
||||
from novelwriter.common import fuzzyTime, makeFileNameSafe
|
||||
from novelwriter.custom import QSwitch
|
||||
from novelwriter.constants import nwConst, nwFiles
|
||||
from novelwriter.core.tomd import ToMarkdown
|
||||
from novelwriter.core.toodt import ToOdt
|
||||
from novelwriter.core.tohtml import ToHtml
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<novelWriterXML appVersion="2.0" hexVersion="0x020000f0" fileVersion="1.5" timeStamp="2022-11-28 17:12:35">
|
||||
<project id="e2be99af-f9bf-4403-857a-c3d1ac25abea" saveCount="1458" autoCount="237" editTime="74191">
|
||||
<novelWriterXML appVersion="2.0.2" hexVersion="0x020002f0" fileVersion="1.5" timeStamp="2022-12-01 23:33:10">
|
||||
<project id="e2be99af-f9bf-4403-857a-c3d1ac25abea" saveCount="1463" autoCount="237" editTime="74319">
|
||||
<name>Sample Project</name>
|
||||
<title>Sample Project</title>
|
||||
<author>Jane Smith</author>
|
||||
|
||||
2
setup.py
2
setup.py
@@ -1146,7 +1146,7 @@ def makeWindowsEmbedded(sysArgs):
|
||||
minimalZip = sysArgs[1]
|
||||
|
||||
if minimalZip is None:
|
||||
print("Please provide the path to the minimal win pacage as an argument")
|
||||
print("Please provide the path to the minimal win package as an argument")
|
||||
sys.exit(1)
|
||||
|
||||
packVersion = os.path.basename(minimalZip).split("-")[1]
|
||||
|
||||
@@ -25,9 +25,9 @@ from PyQt5.QtGui import QIcon
|
||||
|
||||
from tools import C, buildTestProject
|
||||
|
||||
from novelwriter.enum import nwItemClass, nwItemType, nwItemLayout
|
||||
from novelwriter.core.item import NWItem
|
||||
from novelwriter.core.project import NWProject
|
||||
from novelwriter.enum import nwItemClass, nwItemType, nwItemLayout
|
||||
|
||||
|
||||
@pytest.mark.core
|
||||
|
||||
@@ -31,13 +31,15 @@ from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtWidgets import QDialog, QMessageBox, QInputDialog
|
||||
|
||||
from novelwriter.enum import nwItemType, nwView, nwWidget
|
||||
from novelwriter.tools import GuiProjectWizard
|
||||
from novelwriter.dialogs import GuiEditLabel, GuiAbout, GuiProjectLoad
|
||||
from novelwriter.constants import nwFiles
|
||||
from novelwriter.gui.outline import GuiOutlineView
|
||||
from novelwriter.gui.projtree import GuiProjectTree
|
||||
from novelwriter.gui.doceditor import GuiDocEditor
|
||||
from novelwriter.gui.noveltree import GuiNovelView
|
||||
from novelwriter.dialogs.about import GuiAbout
|
||||
from novelwriter.dialogs.projload import GuiProjectLoad
|
||||
from novelwriter.dialogs.editlabel import GuiEditLabel
|
||||
from novelwriter.tools.projwizard import GuiProjectWizard
|
||||
|
||||
KEY_DELAY = 1
|
||||
|
||||
|
||||
@@ -26,14 +26,14 @@ from pathlib import Path
|
||||
from configparser import ConfigParser
|
||||
|
||||
from mock import causeOSError
|
||||
from novelwriter.constants import nwLabels
|
||||
from novelwriter.enum import nwItemClass, nwItemLayout, nwItemType
|
||||
from tools import writeFile
|
||||
|
||||
from PyQt5.QtGui import QIcon, QPalette, QPixmap
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
|
||||
from novelwriter.enum import nwItemClass, nwItemLayout, nwItemType
|
||||
from novelwriter.config import Config
|
||||
from novelwriter.constants import nwLabels
|
||||
from novelwriter.gui.theme import GuiIcons, GuiTheme
|
||||
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ from tools import cmpFiles, getGuiItem
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtWidgets import QAction, QFileDialog
|
||||
|
||||
from novelwriter.tools import GuiBuildNovel
|
||||
from novelwriter.tools.build import GuiBuildNovel
|
||||
|
||||
|
||||
@pytest.mark.gui
|
||||
|
||||
@@ -25,7 +25,7 @@ from tools import C, getGuiItem, buildTestProject
|
||||
|
||||
from PyQt5.QtWidgets import QAction
|
||||
|
||||
from novelwriter.tools import GuiLipsum
|
||||
from novelwriter.tools.lipsum import GuiLipsum
|
||||
|
||||
|
||||
@pytest.mark.gui
|
||||
|
||||
@@ -28,8 +28,8 @@ from tools import getGuiItem, writeFile, buildTestProject
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtWidgets import QAction, QFileDialog
|
||||
|
||||
from novelwriter.tools import GuiWritingStats
|
||||
from novelwriter.constants import nwFiles
|
||||
from novelwriter.tools.writingstats import GuiWritingStats
|
||||
|
||||
|
||||
@pytest.mark.gui
|
||||
|
||||
@@ -158,7 +158,7 @@ def buildTestProject(theObject, projPath):
|
||||
object as the parent.
|
||||
"""
|
||||
from novelwriter.enum import nwItemClass
|
||||
from novelwriter.core import NWProject
|
||||
from novelwriter.core.project import NWProject
|
||||
|
||||
if isinstance(theObject, NWProject):
|
||||
theGUI = None
|
||||
|
||||
Reference in New Issue
Block a user