Merge branch 'dev' into mark_text

This commit is contained in:
Veronica Berglyd Olsen
2024-02-26 11:07:21 +01:00
3 changed files with 27 additions and 25 deletions
+12 -16
View File
@@ -160,7 +160,7 @@ class Tokenizer(ABC):
# Instance Variables # Instance Variables
self._hFormatter = HeadingFormatter(self._project) self._hFormatter = HeadingFormatter(self._project)
self._allowSeparator = False # Flag to indicate that the first scene of the chapter self._skipSeparator = False # Flag to indicate that we skip the scene separator
# This File # This File
self._isNone = False # Document has unknown layout self._isNone = False # Document has unknown layout
@@ -668,13 +668,9 @@ class Tokenizer(ABC):
for n, token in enumerate(self._tokens): for n, token in enumerate(self._tokens):
if token[0] == self.T_TEXT: if token[0] == self.T_TITLE: # Title
# If we see text before a scene, we consider it a "scene"
self._allowSeparator = False
elif token[0] == self.T_TITLE: # Title
# For new titles, we reset all counters # For new titles, we reset all counters
self._allowSeparator = True self._skipSeparator = True
self._hFormatter.resetAll() self._hFormatter.resetAll()
elif token[0] == self.T_HEAD1: # Partition elif token[0] == self.T_HEAD1: # Partition
@@ -685,10 +681,10 @@ class Tokenizer(ABC):
) )
# Set scene variables # Set scene variables
self._allowSeparator = True self._skipSeparator = True
self._hFormatter.resetScene() self._hFormatter.resetScene()
elif token[0] in (self.T_HEAD2, self.T_UNNUM): # Chapter elif token[0] in (self.T_HEAD2, self.T_UNNUM): # Chapter, Unnumbered
# Numbered or Unnumbered # Numbered or Unnumbered
if token[0] == self.T_UNNUM: if token[0] == self.T_UNNUM:
@@ -703,7 +699,7 @@ class Tokenizer(ABC):
) )
# Set scene variables # Set scene variables
self._allowSeparator = True self._skipSeparator = True
self._hFormatter.resetScene() self._hFormatter.resetScene()
elif token[0] == self.T_HEAD3: # Scene elif token[0] == self.T_HEAD3: # Scene
@@ -717,21 +713,21 @@ class Tokenizer(ABC):
) )
elif tTemp == "" and not self._hideScene: elif tTemp == "" and not self._hideScene:
self._tokens[n] = ( self._tokens[n] = (
self.T_EMPTY if self._allowSeparator else self.T_SKIP, token[1], self.T_EMPTY if self._skipSeparator else self.T_SKIP, token[1],
"", [], self.A_NONE if self._allowSeparator else token[4] "", [], self.A_NONE if self._skipSeparator else token[4]
) )
elif tTemp == self._fmtScene: elif tTemp == self._fmtScene:
self._tokens[n] = ( self._tokens[n] = (
self.T_EMPTY if self._allowSeparator else self.T_SEP, token[1], self.T_EMPTY if self._skipSeparator else self.T_SEP, token[1],
"" if self._allowSeparator else tTemp, [], "" if self._skipSeparator else tTemp, [],
self.A_NONE if self._allowSeparator else (token[4] | self.A_CENTRE) self.A_NONE if self._skipSeparator else (token[4] | self.A_CENTRE)
) )
else: else:
self._tokens[n] = ( self._tokens[n] = (
token[0], token[1], tTemp, [], token[4] token[0], token[1], tTemp, [], token[4]
) )
self._allowSeparator = False self._skipSeparator = False
elif token[0] == self.T_HEAD4: # Section elif token[0] == self.T_HEAD4: # Section
+14 -8
View File
@@ -1123,7 +1123,7 @@ def testCoreToken_ProcessHeaders(mockGUI):
# H3: Scene wo/Format, first # H3: Scene wo/Format, first
tokens._text = "### Scene One\n" tokens._text = "### Scene One\n"
tokens.setSceneFormat("", False) tokens.setSceneFormat("", False)
tokens._allowSeparator = True tokens._skipSeparator = True
tokens.tokenizeText() tokens.tokenizeText()
tokens.doHeaders() tokens.doHeaders()
assert tokens._tokens == [ assert tokens._tokens == [
@@ -1134,7 +1134,7 @@ def testCoreToken_ProcessHeaders(mockGUI):
# H3: Scene wo/Format, not first # H3: Scene wo/Format, not first
tokens._text = "### Scene One\n" tokens._text = "### Scene One\n"
tokens.setSceneFormat("", False) tokens.setSceneFormat("", False)
tokens._allowSeparator = False tokens._skipSeparator = False
tokens.tokenizeText() tokens.tokenizeText()
tokens.doHeaders() tokens.doHeaders()
assert tokens._tokens == [ assert tokens._tokens == [
@@ -1145,7 +1145,7 @@ def testCoreToken_ProcessHeaders(mockGUI):
# H3: Scene Separator, first # H3: Scene Separator, first
tokens._text = "### Scene One\n" tokens._text = "### Scene One\n"
tokens.setSceneFormat("* * *", False) tokens.setSceneFormat("* * *", False)
tokens._allowSeparator = True tokens._skipSeparator = True
tokens.tokenizeText() tokens.tokenizeText()
tokens.doHeaders() tokens.doHeaders()
assert tokens._tokens == [ assert tokens._tokens == [
@@ -1156,7 +1156,7 @@ def testCoreToken_ProcessHeaders(mockGUI):
# H3: Scene Separator, not first # H3: Scene Separator, not first
tokens._text = "### Scene One\n" tokens._text = "### Scene One\n"
tokens.setSceneFormat("* * *", False) tokens.setSceneFormat("* * *", False)
tokens._allowSeparator = False tokens._skipSeparator = False
tokens.tokenizeText() tokens.tokenizeText()
tokens.doHeaders() tokens.doHeaders()
assert tokens._tokens == [ assert tokens._tokens == [
@@ -1231,13 +1231,19 @@ def testCoreToken_ProcessHeaders(mockGUI):
(Tokenizer.T_EMPTY, 1, "", [], Tokenizer.A_NONE), (Tokenizer.T_EMPTY, 1, "", [], Tokenizer.A_NONE),
] ]
# Check the first scene detector # Check the first scene detector, plain text
assert tokens._allowSeparator is False tokens._skipSeparator = True
tokens._allowSeparator = True
tokens._text = "Some text ...\n" tokens._text = "Some text ...\n"
tokens.tokenizeText() tokens.tokenizeText()
tokens.doHeaders() tokens.doHeaders()
assert tokens._allowSeparator is False assert tokens._skipSeparator is True
# Check the first scene detector, text plus scene
tokens._skipSeparator = True
tokens._text = "Some text ...\n\n### Scene\n\nText"
tokens.tokenizeText()
tokens.doHeaders()
assert tokens._skipSeparator is False
# END Test testCoreToken_ProcessHeaders # END Test testCoreToken_ProcessHeaders
+1 -1
View File
@@ -47,7 +47,7 @@ def testManuscript_Init(monkeypatch, qtbot: QtBot, nwGUI: GuiMain, projPath: Pat
buildTestProject(nwGUI, projPath) buildTestProject(nwGUI, projPath)
nwGUI.openProject(projPath) nwGUI.openProject(projPath)
SHARED.project.storage.getDocument(C.hChapterDoc).writeDocument("## A Chapter\n\n\t\tHi") SHARED.project.storage.getDocument(C.hChapterDoc).writeDocument("## A Chapter\n\n\t\tHi")
allText = "New Novel\nBy Jane Doe\nA Chapter\n\t\tHi\n* * *" allText = "New Novel\nBy Jane Doe\nA Chapter\n\t\tHi"
nwGUI.mainMenu.aBuildManuscript.activate(QAction.Trigger) nwGUI.mainMenu.aBuildManuscript.activate(QAction.Trigger)
qtbot.waitUntil(lambda: SHARED.findTopLevelWidget(GuiManuscript) is not None, timeout=1000) qtbot.waitUntil(lambda: SHARED.findTopLevelWidget(GuiManuscript) is not None, timeout=1000)