Merge pull request #171 from vkbo/release_0.4.4

Release 0.4.4
This commit is contained in:
Veronica K. Berglyd Olsen
2020-02-17 14:12:36 +01:00
committed by GitHub
12 changed files with 38 additions and 32 deletions
+23
View File
@@ -1,5 +1,28 @@
# novelWriter ChangeLog
## Version 0.4.4 [2020-02-17]
**Features**
* A project can now be opened from the command line by providing the project path to the launching script. PRs #164 and #166.
**User Interface**
* Added functionality to split a document into a folder of multiple documents, and also to merge a folder of documents into a single document. PRs #159 and #163.
* It is now possible to permanently delete files from the Trash folder. This can be done file-by-file or by using the Empty Trash option in the menu. PRs #159 and #163.
* When running the spell checker, a wait cursor is displayed. This will alert the user that novelWriter is working on something when, for instance, a very large document is opened and initial spell checking is running. PR #158.
**Bug Fixes**
* Fixed a few keyboard shortcuts that were not working in distraction free mode. PR #157.
* Added a check to ensure the user does not drag and drop an item into the Orphaned Items folder. Since this folder is not an actual project item, novelWriter would crash when trying to change the dropped item's parent item to the Orphaned Items folder. Now, instead, the drop event is cancelled if the target folder is Orphaned Items. PR #163.
**Code Improvements**
* The way project files are saved has been altered slightly. When a project file or document file is saved, the data is first streamed to a temp file. Then the old storage file is renamed to .bak, and and the temp file is renamed to the correct storage file name. This ensures that the storage file is only replaced after a complete and successful write. PR #165.
* The cache folder has been removed. It was used to store the 10 most recent versions of the project file. Instead, the previous project file is renamed to .bak, and can be restored if opening from the latest project file fails. Any additional restore capabilities should be ensured by backup solutions, either the internal simple zip backup, or other third party tools. PR #165.
* The dependency on the Python package `appdirs` has been dropped. It was used only for extracting the path to the user's config folder, a feature which is also provided by Qt. PR #169.
## Version 0.4.3 [2019-11-24]
**User Interface**
+3 -3
View File
@@ -20,13 +20,13 @@
# -- Project information -----------------------------------------------------
project = "novelWriter"
copyright = "2018-2019, Veronica Berglyd Olsen"
copyright = "2018-2020, Veronica Berglyd Olsen"
author = "Veronica Berglyd Olsen"
# The short X.Y version
version = "0.4.3"
version = "0.4.4"
# The full version, including alpha/beta/rc tags
release = "0.4.3"
release = "0.4.4"
# -- General configuration ---------------------------------------------------
+7 -12
View File
@@ -23,10 +23,10 @@ from nw.config import Config
__package__ = "novelWriter"
__author__ = "Veronica Berglyd Olsen"
__copyright__ = "Copyright 20182019, Veronica Berglyd Olsen"
__copyright__ = "Copyright 20182020, Veronica Berglyd Olsen"
__license__ = "GPLv3"
__version__ = "0.4.3"
__date__ = "2019-11-24"
__version__ = "0.4.4"
__date__ = "2020-02-17"
__maintainer__ = "Veronica Berglyd Olsen"
__email__ = "code@vkbo.net"
__status__ = "Development"
@@ -77,14 +77,13 @@ def main(sysArgs=None):
sysArgs = sys.argv[1:]
# Valid Input Options
shortOpt = "hdiqtl:v"
shortOpt = "hdiql:v"
longOpt = [
"help",
"debug",
"info",
"verbose",
"quiet",
"time",
"logfile=",
"version",
"config=",
@@ -103,7 +102,6 @@ def main(sysArgs=None):
" -d, --debug Print debug output.\n"
" --verbose Increase verbosity of debug output.\n"
" -q, --quiet Disable output to command line. Does not affect log file.\n"
" -t, --time Shows time stamp in logging output.\n"
" -l, --logfile= Specify log file.\n"
" --style= Set Qt5 style flag. Defaults to 'Fusion'.\n"
" --config= Alternative config file.\n"
@@ -118,11 +116,9 @@ def main(sysArgs=None):
# Defaults
debugLevel = logging.WARN
debugStr = "{levelname:8} {message:}"
timeStr = "[{asctime:}] "
logFile = ""
toFile = False
toStd = True
showTime = False
confPath = None
testMode = False
qtStyle = "Fusion"
@@ -149,7 +145,7 @@ def main(sysArgs=None):
debugLevel = logging.INFO
elif inOpt in ("-d", "--debug"):
debugLevel = logging.DEBUG
debugStr = "{name:>30}:{lineno:<4d} {levelname:8} {message:}"
debugStr = "[{asctime:}] {name:>30}:{lineno:<4d} {levelname:8} {message:}"
elif inOpt in ("-l","--logfile"):
logFile = inArg
toFile = True
@@ -157,8 +153,6 @@ def main(sysArgs=None):
toStd = False
elif inOpt in ("--verbose"):
debugLevel = VERBOSE
elif inOpt in ("-t","--time"):
showTime = True
elif inOpt in ("--style"):
qtStyle = inArg
elif inOpt in ("--config"):
@@ -172,7 +166,6 @@ def main(sysArgs=None):
CONFIG.cmdOpen = cmdOpen
# Set Logging
if showTime: debugStr = timeStr+debugStr
logFmt = logging.Formatter(fmt=debugStr,datefmt="%Y-%m-%d %H:%M:%S",style="{")
if not logFile == "" and toFile:
@@ -201,6 +194,8 @@ def main(sysArgs=None):
return nwGUI
else:
nwApp = QApplication([__package__,("-style=%s" % qtStyle)])
nwApp.setApplicationName(__package__)
nwApp.setApplicationVersion(__version__)
nwGUI = GuiMain()
sys.exit(nwApp.exec_())
+1 -1
View File
@@ -15,7 +15,7 @@ import configparser
import sys
import nw
from os import path, mkdir, makedirs
from os import path, mkdir
from datetime import datetime
from PyQt5.Qt import PYQT_VERSION_STR
-2
View File
@@ -13,8 +13,6 @@
import logging
import nw
from os import path
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (
QDialog, QHBoxLayout, QVBoxLayout, QGroupBox, QFormLayout, QLineEdit,
-2
View File
@@ -13,8 +13,6 @@
import logging
import nw
from os import path
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon, QPixmap, QColor, QBrush
from PyQt5.QtWidgets import (
-2
View File
@@ -13,8 +13,6 @@
import logging
import nw
from os import path
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QColor, QPixmap
from PyQt5.QtWidgets import (
+2 -2
View File
@@ -26,8 +26,8 @@ from PyQt5.QtGui import (
from nw.project import NWDoc
from nw.gui.tools import GuiDocHighlighter, WordCounter
from nw.tools import NWSpellCheck, NWSpellSimple
from nw.constants import nwFiles, nwUnicode, nwDocAction, nwAlert
from nw.tools import NWSpellSimple
from nw.constants import nwUnicode, nwDocAction
logger = logging.getLogger(__name__)
-2
View File
@@ -18,8 +18,6 @@ from PyQt5.QtWidgets import (
QWidget, QLabel, QScrollArea, QFrame, QToolButton, QCheckBox, QGridLayout
)
from nw.constants import nwLabels
logger = logging.getLogger(__name__)
class GuiDocViewDetails(QWidget):
-3
View File
@@ -14,7 +14,6 @@ import logging
import nw
from lxml import etree
from datetime import datetime
from nw.common import checkInt
from nw.constants import nwItemType, nwItemClass, nwItemLayout
@@ -23,8 +22,6 @@ logger = logging.getLogger(__name__)
class NWItem():
MAX_DEPTH = 8
def __init__(self, theProject):
self.theProject = theProject
-1
View File
@@ -14,7 +14,6 @@ import logging
import nw
from os import path, mkdir, listdir, unlink, rename
from shutil import copyfile
from lxml import etree
from hashlib import sha256
from datetime import datetime
+2 -2
View File
@@ -6,7 +6,7 @@ with open("README.md", "r") as inFile:
setuptools.setup(
name = "novelWriter",
version = "0.4.3",
version = "0.4.4",
author = "Veronica Berglyd Olsen",
author_email = "code@vkbo.net",
description = "A markdown-like document editor for writing novels",
@@ -35,7 +35,7 @@ setuptools.setup(
"Natural Language :: English",
"Topic :: Text Editors",
],
python_requires = ">=3.5",
python_requires = ">=3.6",
install_requires = [
"pyqt5",
"lxml",