Simplify setting cursor position in the editor

This commit is contained in:
Veronica Berglyd Olsen
2023-09-06 18:20:25 +02:00
parent 8c3e906fc5
commit 0bfa3cb592
3 changed files with 111 additions and 159 deletions
+11 -57
View File
@@ -37,8 +37,8 @@ from time import time
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from PyQt5.QtCore import ( from PyQt5.QtCore import (
pyqtSignal, pyqtSlot, QObject, QPoint, QPointF, QPropertyAnimation, pyqtSignal, pyqtSlot, QObject, QPoint, QPropertyAnimation, QRegExp,
QRegExp, QRegularExpression, QRunnable, QSize, QSizeF, Qt, QTimer QRegularExpression, QRunnable, QSize, Qt, QTimer
) )
from PyQt5.QtGui import ( from PyQt5.QtGui import (
QColor, QCursor, QFont, QFontMetrics, QKeyEvent, QKeySequence, QMouseEvent, QColor, QCursor, QFont, QFontMetrics, QKeyEvent, QKeySequence, QMouseEvent,
@@ -107,7 +107,6 @@ class GuiDocEditor(QPlainTextEdit):
self._lastActive = 0.0 # Time stamp of last activity self._lastActive = 0.0 # Time stamp of last activity
self._lastFind = None # Position of the last found search word self._lastFind = None # Position of the last found search word
self._doReplace = False # Switch to temporarily disable auto-replace self._doReplace = False # Switch to temporarily disable auto-replace
self._queuePos = None # Used for delayed change of cursor position
# Typography Cache # Typography Cache
self._typPadChar = " " self._typPadChar = " "
@@ -125,7 +124,6 @@ class GuiDocEditor(QPlainTextEdit):
# Core Elements and Signals # Core Elements and Signals
qDoc = self.document() qDoc = self.document()
qDoc.contentsChange.connect(self._docChange) qDoc.contentsChange.connect(self._docChange)
qDoc.documentLayout().documentSizeChanged.connect(self._docSizeChanged)
self.selectionChanged.connect(self._updateSelectedStatus) self.selectionChanged.connect(self._updateSelectedStatus)
# Document Title # Document Title
@@ -238,7 +236,6 @@ class GuiDocEditor(QPlainTextEdit):
self._lastActive = 0.0 self._lastActive = 0.0
self._lastFind = None self._lastFind = None
self._doReplace = False self._doReplace = False
self._queuePos = None
self.setDocumentChanged(False) self.setDocumentChanged(False)
self.docHeader.setTitleFromHandle(self._docHandle) self.docHeader.setTitleFromHandle(self._docHandle)
@@ -415,14 +412,7 @@ class GuiDocEditor(QPlainTextEdit):
self.updateDocMargins() self.updateDocMargins()
if tLine is None and self._nwItem is not None: if tLine is None and self._nwItem is not None:
# For large documents, we queue the repositioning until the self.setCursorPosition(self._nwItem.cursorPos)
# document layout has grown past the point we want to move
# the cursor to. This makes the loading significantly
# faster.
if docSize > 50000:
self._queuePos = self._nwItem.cursorPos
else:
self.setCursorPosition(self._nwItem.cursorPos)
elif isinstance(tLine, int): elif isinstance(tLine, int):
self.setCursorLine(tLine) self.setCursorLine(tLine)
@@ -628,32 +618,16 @@ class GuiDocEditor(QPlainTextEdit):
self.editedStatusChanged.emit(self._docChanged) self.editedStatusChanged.emit(self._docChanged)
return self._docChanged return self._docChanged
def setCursorPosition(self, position: int) -> bool: def setCursorPosition(self, position: int) -> None:
"""Move the cursor to a given position in the document.""" """Move the cursor to a given position in the document."""
if not isinstance(position, int):
return False
nChars = self.document().characterCount() nChars = self.document().characterCount()
if nChars > 1: if nChars > 1 and isinstance(position, int):
theCursor = self.textCursor() cursor = self.textCursor()
theCursor.setPosition(minmax(position, 0, nChars-1)) cursor.setPosition(minmax(position, 0, nChars-1))
self.setTextCursor(theCursor) self.setTextCursor(cursor)
self.centerCursor()
# By default, the editor scrolls so the cursor is on the
# last line, so we must correct it. The user setting for
# auto-scroll is used to determine the scroll distance. This
# makes it compatible with the typewriter scrolling feature
# when it is enabled. By default, it's 30% of viewport.
vPos = self.verticalScrollBar().value()
cPos = self.cursorRect().topLeft().y()
mPos = int(CONFIG.autoScrollPos*0.01 * self.viewport().height())
if cPos > mPos:
# Only scroll if the cursor is past the auto-scroll limit
self.verticalScrollBar().setValue(max(0, vPos + cPos - mPos))
self.docFooter.updateLineCount() self.docFooter.updateLineCount()
return
return True
def saveCursorPosition(self) -> None: def saveCursorPosition(self) -> None:
"""Save the cursor position to the current project item.""" """Save the cursor position to the current project item."""
@@ -1283,8 +1257,7 @@ class GuiDocEditor(QPlainTextEdit):
@pyqtSlot(int, int, int) @pyqtSlot(int, int, int)
def _updateSelCounts(self, cCount: int, wCount: int, pCount: int) -> None: def _updateSelCounts(self, cCount: int, wCount: int, pCount: int) -> None:
"""Slot for the word counter's finished signal """Update the counts on the counter's finished signal."""
"""
if self._docHandle is None or self._nwItem is None: if self._docHandle is None or self._nwItem is None:
return return
@@ -1294,25 +1267,6 @@ class GuiDocEditor(QPlainTextEdit):
return return
@pyqtSlot("QSizeF")
def _docSizeChanged(self, size: QSizeF) -> None:
"""Called whenever the underlying document layout size changes.
This is used to queue the repositioning of the cursor for very
large documents to ensure the region where the cursor is being
moved to has been drawn before the move is made.
"""
if self._queuePos is not None:
thePos = self.document().documentLayout().hitTest(
QPointF(size.width(), size.height()), Qt.FuzzyHit
)
if self._queuePos <= thePos:
logger.debug("Allowed cursor move to %d <= %d", self._queuePos, thePos)
self.setCursorPosition(self._queuePos)
self._queuePos = None
else:
logger.debug("Denied cursor move to %d > %d", self._queuePos, thePos)
return
## ##
# Search & Replace # Search & Replace
## ##
+89 -90
View File
@@ -194,8 +194,7 @@ def testGuiEditor_MetaData(qtbot, nwGUI, projPath, mockRnd):
assert nwGUI.docEditor.isEmpty is False assert nwGUI.docEditor.isEmpty is False
# Cursor Position # Cursor Position
assert nwGUI.docEditor.setCursorPosition(None) is False nwGUI.docEditor.setCursorPosition(10)
assert nwGUI.docEditor.setCursorPosition(10) is True
assert nwGUI.docEditor.getCursorPosition() == 10 assert nwGUI.docEditor.getCursorPosition() == 10
assert SHARED.project.tree[C.hSceneDoc].cursorPos != 10 assert SHARED.project.tree[C.hSceneDoc].cursorPos != 10
nwGUI.docEditor.saveCursorPosition() nwGUI.docEditor.saveCursorPosition()
@@ -244,7 +243,7 @@ def testGuiEditor_Actions(qtbot, nwGUI, projPath, ipsumText, mockRnd):
theCursor.clearSelection() theCursor.clearSelection()
# Select Paragraph # Select Paragraph
assert nwGUI.docEditor.setCursorPosition(1000) is True nwGUI.docEditor.setCursorPosition(1000)
assert nwGUI.docEditor.getCursorPosition() == 1000 assert nwGUI.docEditor.getCursorPosition() == 1000
assert nwGUI.docEditor.docAction(nwDocAction.SEL_PARA) is True assert nwGUI.docEditor.docAction(nwDocAction.SEL_PARA) is True
theCursor = nwGUI.docEditor.textCursor() theCursor = nwGUI.docEditor.textCursor()
@@ -252,7 +251,7 @@ def testGuiEditor_Actions(qtbot, nwGUI, projPath, ipsumText, mockRnd):
# Cut Selected Text # Cut Selected Text
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(1000) is True nwGUI.docEditor.setCursorPosition(1000)
assert nwGUI.docEditor.docAction(nwDocAction.SEL_PARA) is True assert nwGUI.docEditor.docAction(nwDocAction.SEL_PARA) is True
assert nwGUI.docEditor.docAction(nwDocAction.CUT) is True assert nwGUI.docEditor.docAction(nwDocAction.CUT) is True
@@ -270,12 +269,12 @@ def testGuiEditor_Actions(qtbot, nwGUI, projPath, ipsumText, mockRnd):
# Copy Next Paragraph # Copy Next Paragraph
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(1500) is True nwGUI.docEditor.setCursorPosition(1500)
assert nwGUI.docEditor.docAction(nwDocAction.SEL_PARA) is True assert nwGUI.docEditor.docAction(nwDocAction.SEL_PARA) is True
assert nwGUI.docEditor.docAction(nwDocAction.COPY) is True assert nwGUI.docEditor.docAction(nwDocAction.COPY) is True
# Paste at End # Paste at End
assert nwGUI.docEditor.setCursorPosition(theDoc.characterCount()) is True nwGUI.docEditor.setCursorPosition(theDoc.characterCount())
theCursor = nwGUI.docEditor.textCursor() theCursor = nwGUI.docEditor.textCursor()
theCursor.insertBlock() theCursor.insertBlock()
theCursor.insertBlock() theCursor.insertBlock()
@@ -295,21 +294,21 @@ def testGuiEditor_Actions(qtbot, nwGUI, projPath, ipsumText, mockRnd):
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
# Emphasis # Emphasis
assert nwGUI.docEditor.setCursorPosition(50) is True nwGUI.docEditor.setCursorPosition(50)
assert nwGUI.docEditor.docAction(nwDocAction.EMPH) is True assert nwGUI.docEditor.docAction(nwDocAction.EMPH) is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "_consectetur_") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "_consectetur_")
assert nwGUI.docEditor.docAction(nwDocAction.UNDO) is True assert nwGUI.docEditor.docAction(nwDocAction.UNDO) is True
assert nwGUI.docEditor.getText() == theText assert nwGUI.docEditor.getText() == theText
# Strong # Strong
assert nwGUI.docEditor.setCursorPosition(50) is True nwGUI.docEditor.setCursorPosition(50)
assert nwGUI.docEditor.docAction(nwDocAction.STRONG) is True assert nwGUI.docEditor.docAction(nwDocAction.STRONG) is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "**consectetur**") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "**consectetur**")
assert nwGUI.docEditor.docAction(nwDocAction.UNDO) is True assert nwGUI.docEditor.docAction(nwDocAction.UNDO) is True
assert nwGUI.docEditor.getText() == theText assert nwGUI.docEditor.getText() == theText
# Strikeout # Strikeout
assert nwGUI.docEditor.setCursorPosition(50) is True nwGUI.docEditor.setCursorPosition(50)
assert nwGUI.docEditor.docAction(nwDocAction.STRIKE) is True assert nwGUI.docEditor.docAction(nwDocAction.STRIKE) is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "~~consectetur~~") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "~~consectetur~~")
assert nwGUI.docEditor.docAction(nwDocAction.UNDO) is True assert nwGUI.docEditor.docAction(nwDocAction.UNDO) is True
@@ -328,14 +327,14 @@ def testGuiEditor_Actions(qtbot, nwGUI, projPath, ipsumText, mockRnd):
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
# Add Single Quotes # Add Single Quotes
assert nwGUI.docEditor.setCursorPosition(50) is True nwGUI.docEditor.setCursorPosition(50)
assert nwGUI.docEditor.docAction(nwDocAction.S_QUOTE) is True assert nwGUI.docEditor.docAction(nwDocAction.S_QUOTE) is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "\u2018consectetur\u2019") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "\u2018consectetur\u2019")
assert nwGUI.docEditor.docAction(nwDocAction.UNDO) is True assert nwGUI.docEditor.docAction(nwDocAction.UNDO) is True
assert nwGUI.docEditor.getText() == theText assert nwGUI.docEditor.getText() == theText
# Add Double Quotes # Add Double Quotes
assert nwGUI.docEditor.setCursorPosition(50) is True nwGUI.docEditor.setCursorPosition(50)
assert nwGUI.docEditor.docAction(nwDocAction.D_QUOTE) is True assert nwGUI.docEditor.docAction(nwDocAction.D_QUOTE) is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "\u201cconsectetur\u201d") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "\u201cconsectetur\u201d")
assert nwGUI.docEditor.docAction(nwDocAction.UNDO) is True assert nwGUI.docEditor.docAction(nwDocAction.UNDO) is True
@@ -371,62 +370,62 @@ def testGuiEditor_Actions(qtbot, nwGUI, projPath, ipsumText, mockRnd):
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
# Header 1 # Header 1
assert nwGUI.docEditor.setCursorPosition(0) is True nwGUI.docEditor.setCursorPosition(0)
assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_H1) is True assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_H1) is True
assert nwGUI.docEditor.getText() == "# Scene Title\n\nScene text.\n\n" assert nwGUI.docEditor.getText() == "# Scene Title\n\nScene text.\n\n"
# Header 2 # Header 2
assert nwGUI.docEditor.setCursorPosition(0) is True nwGUI.docEditor.setCursorPosition(0)
assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_H2) is True assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_H2) is True
assert nwGUI.docEditor.getText() == "## Scene Title\n\nScene text.\n\n" assert nwGUI.docEditor.getText() == "## Scene Title\n\nScene text.\n\n"
# Header 3 # Header 3
assert nwGUI.docEditor.setCursorPosition(0) is True nwGUI.docEditor.setCursorPosition(0)
assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_H3) is True assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_H3) is True
assert nwGUI.docEditor.getText() == "### Scene Title\n\nScene text.\n\n" assert nwGUI.docEditor.getText() == "### Scene Title\n\nScene text.\n\n"
# Header 4 # Header 4
assert nwGUI.docEditor.setCursorPosition(0) is True nwGUI.docEditor.setCursorPosition(0)
assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_H4) is True assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_H4) is True
assert nwGUI.docEditor.getText() == "#### Scene Title\n\nScene text.\n\n" assert nwGUI.docEditor.getText() == "#### Scene Title\n\nScene text.\n\n"
# Comment # Comment
assert nwGUI.docEditor.setCursorPosition(20) is True nwGUI.docEditor.setCursorPosition(20)
assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_COM) is True assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_COM) is True
assert nwGUI.docEditor.getText() == "#### Scene Title\n\n% Scene text.\n\n" assert nwGUI.docEditor.getText() == "#### Scene Title\n\n% Scene text.\n\n"
# Text # Text
assert nwGUI.docEditor.setCursorPosition(20) is True nwGUI.docEditor.setCursorPosition(20)
assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "#### Scene Title\n\nScene text.\n\n" assert nwGUI.docEditor.getText() == "#### Scene Title\n\nScene text.\n\n"
# Align Left # Align Left
assert nwGUI.docEditor.setCursorPosition(20) is True nwGUI.docEditor.setCursorPosition(20)
assert nwGUI.docEditor.docAction(nwDocAction.ALIGN_L) is True assert nwGUI.docEditor.docAction(nwDocAction.ALIGN_L) is True
assert nwGUI.docEditor.getText() == "#### Scene Title\n\nScene text. <<\n\n" assert nwGUI.docEditor.getText() == "#### Scene Title\n\nScene text. <<\n\n"
# Align Right # Align Right
assert nwGUI.docEditor.setCursorPosition(20) is True nwGUI.docEditor.setCursorPosition(20)
assert nwGUI.docEditor.docAction(nwDocAction.ALIGN_R) is True assert nwGUI.docEditor.docAction(nwDocAction.ALIGN_R) is True
assert nwGUI.docEditor.getText() == "#### Scene Title\n\n>> Scene text.\n\n" assert nwGUI.docEditor.getText() == "#### Scene Title\n\n>> Scene text.\n\n"
# Align Centre # Align Centre
assert nwGUI.docEditor.setCursorPosition(20) is True nwGUI.docEditor.setCursorPosition(20)
assert nwGUI.docEditor.docAction(nwDocAction.ALIGN_C) is True assert nwGUI.docEditor.docAction(nwDocAction.ALIGN_C) is True
assert nwGUI.docEditor.getText() == "#### Scene Title\n\n>> Scene text. <<\n\n" assert nwGUI.docEditor.getText() == "#### Scene Title\n\n>> Scene text. <<\n\n"
# Indent Left # Indent Left
assert nwGUI.docEditor.setCursorPosition(20) is True nwGUI.docEditor.setCursorPosition(20)
assert nwGUI.docEditor.docAction(nwDocAction.INDENT_L) is True assert nwGUI.docEditor.docAction(nwDocAction.INDENT_L) is True
assert nwGUI.docEditor.getText() == "#### Scene Title\n\n> Scene text.\n\n" assert nwGUI.docEditor.getText() == "#### Scene Title\n\n> Scene text.\n\n"
# Indent Right # Indent Right
assert nwGUI.docEditor.setCursorPosition(20) is True nwGUI.docEditor.setCursorPosition(20)
assert nwGUI.docEditor.docAction(nwDocAction.INDENT_R) is True assert nwGUI.docEditor.docAction(nwDocAction.INDENT_R) is True
assert nwGUI.docEditor.getText() == "#### Scene Title\n\n> Scene text. <\n\n" assert nwGUI.docEditor.getText() == "#### Scene Title\n\n> Scene text. <\n\n"
# Text (Reset) # Text (Reset)
assert nwGUI.docEditor.setCursorPosition(20) is True nwGUI.docEditor.setCursorPosition(20)
assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor.docAction(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "#### Scene Title\n\nScene text.\n\n" assert nwGUI.docEditor.getText() == "#### Scene Title\n\nScene text.\n\n"
@@ -466,28 +465,28 @@ def testGuiEditor_Insert(qtbot, monkeypatch, nwGUI, projPath, ipsumText, mockRnd
# No Document Handle # No Document Handle
nwGUI.docEditor._docHandle = None nwGUI.docEditor._docHandle = None
assert nwGUI.docEditor.setCursorPosition(24) is True nwGUI.docEditor.setCursorPosition(24)
assert nwGUI.docEditor.insertText("Stuff") is False assert nwGUI.docEditor.insertText("Stuff") is False
nwGUI.docEditor._docHandle = C.hSceneDoc nwGUI.docEditor._docHandle = C.hSceneDoc
# Insert String # Insert String
assert nwGUI.docEditor.setCursorPosition(24) is True nwGUI.docEditor.setCursorPosition(24)
assert nwGUI.docEditor.insertText(", ipsumer,") is True assert nwGUI.docEditor.insertText(", ipsumer,") is True
assert nwGUI.docEditor.getText() == theText[:24] + ", ipsumer," + theText[24:] assert nwGUI.docEditor.getText() == theText[:24] + ", ipsumer," + theText[24:]
# Single Quotes # Single Quotes
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(41) is True nwGUI.docEditor.setCursorPosition(41)
assert nwGUI.docEditor.insertText(nwDocInsert.QUOTE_LS) is True assert nwGUI.docEditor.insertText(nwDocInsert.QUOTE_LS) is True
assert nwGUI.docEditor.setCursorPosition(53) is True nwGUI.docEditor.setCursorPosition(53)
assert nwGUI.docEditor.insertText(nwDocInsert.QUOTE_RS) is True assert nwGUI.docEditor.insertText(nwDocInsert.QUOTE_RS) is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "\u2018consectetur\u2019") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "\u2018consectetur\u2019")
# Double Quotes # Double Quotes
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(41) is True nwGUI.docEditor.setCursorPosition(41)
assert nwGUI.docEditor.insertText(nwDocInsert.QUOTE_LD) is True assert nwGUI.docEditor.insertText(nwDocInsert.QUOTE_LD) is True
assert nwGUI.docEditor.setCursorPosition(53) is True nwGUI.docEditor.setCursorPosition(53)
assert nwGUI.docEditor.insertText(nwDocInsert.QUOTE_RD) is True assert nwGUI.docEditor.insertText(nwDocInsert.QUOTE_RD) is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "\u201cconsectetur\u201d") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "\u201cconsectetur\u201d")
@@ -519,7 +518,7 @@ def testGuiEditor_Insert(qtbot, monkeypatch, nwGUI, projPath, ipsumText, mockRnd
assert nwGUI.docEditor.insertKeyWord(nwKeyWords.POV_KEY) is False assert nwGUI.docEditor.insertKeyWord(nwKeyWords.POV_KEY) is False
# Insert In-Block # Insert In-Block
assert nwGUI.docEditor.setCursorPosition(20) is True nwGUI.docEditor.setCursorPosition(20)
assert nwGUI.docEditor.insertKeyWord(nwKeyWords.CHAR_KEY) is True assert nwGUI.docEditor.insertKeyWord(nwKeyWords.CHAR_KEY) is True
assert nwGUI.docEditor.insertText("John") assert nwGUI.docEditor.insertText("John")
assert nwGUI.docEditor.getText() == theText.replace( assert nwGUI.docEditor.getText() == theText.replace(
@@ -546,7 +545,7 @@ def testGuiEditor_TextManipulation(qtbot, monkeypatch, nwGUI, projPath, ipsumTex
# No Selection # No Selection
theText = "### A Scene\n\n%s" % ipsumText[0] theText = "### A Scene\n\n%s" % ipsumText[0]
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
theCursor = nwGUI.docEditor.textCursor() theCursor = nwGUI.docEditor.textCursor()
assert nwGUI.docEditor._clearSurrounding(theCursor, 1) is False assert nwGUI.docEditor._clearSurrounding(theCursor, 1) is False
@@ -554,7 +553,7 @@ def testGuiEditor_TextManipulation(qtbot, monkeypatch, nwGUI, projPath, ipsumTex
# Clear Characters, 1 Layer # Clear Characters, 1 Layer
repText = theText.replace("consectetur", "=consectetur=") repText = theText.replace("consectetur", "=consectetur=")
assert nwGUI.docEditor.replaceText(repText) is True assert nwGUI.docEditor.replaceText(repText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
theCursor = nwGUI.docEditor.textCursor() theCursor = nwGUI.docEditor.textCursor()
theCursor.select(QTextCursor.WordUnderCursor) theCursor.select(QTextCursor.WordUnderCursor)
@@ -564,7 +563,7 @@ def testGuiEditor_TextManipulation(qtbot, monkeypatch, nwGUI, projPath, ipsumTex
# Clear Characters, 2 Layers # Clear Characters, 2 Layers
repText = theText.replace("consectetur", "==consectetur==") repText = theText.replace("consectetur", "==consectetur==")
assert nwGUI.docEditor.replaceText(repText) is True assert nwGUI.docEditor.replaceText(repText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
theCursor = nwGUI.docEditor.textCursor() theCursor = nwGUI.docEditor.textCursor()
theCursor.select(QTextCursor.WordUnderCursor) theCursor.select(QTextCursor.WordUnderCursor)
@@ -576,7 +575,7 @@ def testGuiEditor_TextManipulation(qtbot, monkeypatch, nwGUI, projPath, ipsumTex
theText = "### A Scene\n\n%s" % "\n\n".join(ipsumText[0:2]) theText = "### A Scene\n\n%s" % "\n\n".join(ipsumText[0:2])
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
# No Selection # No Selection
with monkeypatch.context() as mp: with monkeypatch.context() as mp:
@@ -585,13 +584,13 @@ def testGuiEditor_TextManipulation(qtbot, monkeypatch, nwGUI, projPath, ipsumTex
# Wrap Equal # Wrap Equal
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
assert nwGUI.docEditor._wrapSelection("=") is True assert nwGUI.docEditor._wrapSelection("=") is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "=consectetur=") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "=consectetur=")
# Wrap Unequal # Wrap Unequal
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
assert nwGUI.docEditor._wrapSelection("=", "*") is True assert nwGUI.docEditor._wrapSelection("=", "*") is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "=consectetur*") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "=consectetur*")
@@ -613,7 +612,7 @@ def testGuiEditor_TextManipulation(qtbot, monkeypatch, nwGUI, projPath, ipsumTex
theText = "### A Scene\n\n%s" % "\n\n".join(ipsumText[0:2]) theText = "### A Scene\n\n%s" % "\n\n".join(ipsumText[0:2])
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
# No Selection # No Selection
with monkeypatch.context() as mp: with monkeypatch.context() as mp:
@@ -622,7 +621,7 @@ def testGuiEditor_TextManipulation(qtbot, monkeypatch, nwGUI, projPath, ipsumTex
# Wrap Single Equal # Wrap Single Equal
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
assert nwGUI.docEditor._toggleFormat(1, "=") is True assert nwGUI.docEditor._toggleFormat(1, "=") is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "=consectetur=") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "=consectetur=")
@@ -641,20 +640,20 @@ def testGuiEditor_TextManipulation(qtbot, monkeypatch, nwGUI, projPath, ipsumTex
# Wrap Double Equal # Wrap Double Equal
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
assert nwGUI.docEditor._toggleFormat(2, "=") is True assert nwGUI.docEditor._toggleFormat(2, "=") is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "==consectetur==") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "==consectetur==")
# Toggle Double Equal # Toggle Double Equal
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
assert nwGUI.docEditor._toggleFormat(2, "=") is True assert nwGUI.docEditor._toggleFormat(2, "=") is True
assert nwGUI.docEditor._toggleFormat(2, "=") is True assert nwGUI.docEditor._toggleFormat(2, "=") is True
assert nwGUI.docEditor.getText() == theText assert nwGUI.docEditor.getText() == theText
# Toggle Triple+Double Equal # Toggle Triple+Double Equal
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
assert nwGUI.docEditor._toggleFormat(3, "=") is True assert nwGUI.docEditor._toggleFormat(3, "=") is True
assert nwGUI.docEditor._toggleFormat(2, "=") is True assert nwGUI.docEditor._toggleFormat(2, "=") is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "=consectetur=") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "=consectetur=")
@@ -662,7 +661,7 @@ def testGuiEditor_TextManipulation(qtbot, monkeypatch, nwGUI, projPath, ipsumTex
# Toggle Unequal # Toggle Unequal
repText = theText.replace("consectetur", "=consectetur==") repText = theText.replace("consectetur", "=consectetur==")
assert nwGUI.docEditor.replaceText(repText) is True assert nwGUI.docEditor.replaceText(repText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
assert nwGUI.docEditor._toggleFormat(1, "=") is True assert nwGUI.docEditor._toggleFormat(1, "=") is True
assert nwGUI.docEditor.getText() == theText.replace("consectetur", "consectetur=") assert nwGUI.docEditor.getText() == theText.replace("consectetur", "consectetur=")
assert nwGUI.docEditor._toggleFormat(1, "=") is True assert nwGUI.docEditor._toggleFormat(1, "=") is True
@@ -674,14 +673,14 @@ def testGuiEditor_TextManipulation(qtbot, monkeypatch, nwGUI, projPath, ipsumTex
# No Selection # No Selection
theText = "### A Scene\n\n%s" % ipsumText[0].replace("consectetur", "=consectetur=") theText = "### A Scene\n\n%s" % ipsumText[0].replace("consectetur", "=consectetur=")
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
assert nwGUI.docEditor._replaceQuotes("=", "<", ">") is False assert nwGUI.docEditor._replaceQuotes("=", "<", ">") is False
# First Paragraph Selected # First Paragraph Selected
# This should not replace anything in second paragraph # This should not replace anything in second paragraph
theText = "### A Scene\n\n%s" % "\n\n".join(ipsumText[0:2]).replace("ipsum", "=ipsum=") theText = "### A Scene\n\n%s" % "\n\n".join(ipsumText[0:2]).replace("ipsum", "=ipsum=")
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
assert nwGUI.docEditor.docAction(nwDocAction.SEL_PARA) assert nwGUI.docEditor.docAction(nwDocAction.SEL_PARA)
assert nwGUI.docEditor._replaceQuotes("=", "<", ">") is True assert nwGUI.docEditor._replaceQuotes("=", "<", ">") is True
@@ -693,7 +692,7 @@ def testGuiEditor_TextManipulation(qtbot, monkeypatch, nwGUI, projPath, ipsumTex
# Edge of Document # Edge of Document
theText = ipsumText[0].replace("Lorem", "=Lorem=") theText = ipsumText[0].replace("Lorem", "=Lorem=")
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
assert nwGUI.docEditor.docAction(nwDocAction.SEL_ALL) assert nwGUI.docEditor.docAction(nwDocAction.SEL_ALL)
assert nwGUI.docEditor._replaceQuotes("=", "<", ">") is True assert nwGUI.docEditor._replaceQuotes("=", "<", ">") is True
assert nwGUI.docEditor.getText() == theText.replace("=Lorem=", "<Lorem>") assert nwGUI.docEditor.getText() == theText.replace("=Lorem=", "<Lorem>")
@@ -707,7 +706,7 @@ def testGuiEditor_TextManipulation(qtbot, monkeypatch, nwGUI, projPath, ipsumTex
# Remove All # Remove All
theText = "### A Scene\n\n%s\n\n%s" % (parOne, parTwo) theText = "### A Scene\n\n%s\n\n%s" % (parOne, parTwo)
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
assert nwGUI.docEditor.setCursorPosition(45) is True nwGUI.docEditor.setCursorPosition(45)
nwGUI.docEditor._removeInParLineBreaks() nwGUI.docEditor._removeInParLineBreaks()
assert nwGUI.docEditor.getText() == "### A Scene\n\n%s\n" % "\n\n".join(ipsumText[0:2]) assert nwGUI.docEditor.getText() == "### A Scene\n\n%s\n" % "\n\n".join(ipsumText[0:2])
@@ -753,21 +752,21 @@ def testGuiEditor_BlockFormatting(qtbot, monkeypatch, nwGUI, projPath, ipsumText
assert nwGUI.docEditor.replaceText(theText) is True assert nwGUI.docEditor.replaceText(theText) is True
# Invalid Block # Invalid Block
assert nwGUI.docEditor.setCursorPosition(0) is True nwGUI.docEditor.setCursorPosition(0)
with monkeypatch.context() as mp: with monkeypatch.context() as mp:
mp.setattr(QTextBlock, "isValid", lambda *a, **k: False) mp.setattr(QTextBlock, "isValid", lambda *a, **k: False)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is False assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is False
# Keyword # Keyword
assert nwGUI.docEditor.replaceText("@pov: Jane\n\n") is True assert nwGUI.docEditor.replaceText("@pov: Jane\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is False assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is False
assert nwGUI.docEditor.getText() == "@pov: Jane\n\n" assert nwGUI.docEditor.getText() == "@pov: Jane\n\n"
assert nwGUI.docEditor.getCursorPosition() == 5 assert nwGUI.docEditor.getCursorPosition() == 5
# Unsupported Format # Unsupported Format
assert nwGUI.docEditor.replaceText("% Comment\n\n") is True assert nwGUI.docEditor.replaceText("% Comment\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.NO_ACTION) is False assert nwGUI.docEditor._formatBlock(nwDocAction.NO_ACTION) is False
# Block Stripping : Left Side # Block Stripping : Left Side
@@ -775,91 +774,91 @@ def testGuiEditor_BlockFormatting(qtbot, monkeypatch, nwGUI, projPath, ipsumText
# Strip Comment w/Space # Strip Comment w/Space
assert nwGUI.docEditor.replaceText("% Comment\n\n") is True assert nwGUI.docEditor.replaceText("% Comment\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Comment\n\n" assert nwGUI.docEditor.getText() == "Comment\n\n"
assert nwGUI.docEditor.getCursorPosition() == 3 assert nwGUI.docEditor.getCursorPosition() == 3
# Strip Comment wo/Space # Strip Comment wo/Space
assert nwGUI.docEditor.replaceText("%Comment\n\n") is True assert nwGUI.docEditor.replaceText("%Comment\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Comment\n\n" assert nwGUI.docEditor.getText() == "Comment\n\n"
assert nwGUI.docEditor.getCursorPosition() == 4 assert nwGUI.docEditor.getCursorPosition() == 4
# Strip Header 1 # Strip Header 1
assert nwGUI.docEditor.replaceText("# Title\n\n") is True assert nwGUI.docEditor.replaceText("# Title\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Title\n\n" assert nwGUI.docEditor.getText() == "Title\n\n"
assert nwGUI.docEditor.getCursorPosition() == 3 assert nwGUI.docEditor.getCursorPosition() == 3
# Strip Header 2 # Strip Header 2
assert nwGUI.docEditor.replaceText("## Title\n\n") is True assert nwGUI.docEditor.replaceText("## Title\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Title\n\n" assert nwGUI.docEditor.getText() == "Title\n\n"
assert nwGUI.docEditor.getCursorPosition() == 2 assert nwGUI.docEditor.getCursorPosition() == 2
# Strip Header 3 # Strip Header 3
assert nwGUI.docEditor.replaceText("### Title\n\n") is True assert nwGUI.docEditor.replaceText("### Title\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Title\n\n" assert nwGUI.docEditor.getText() == "Title\n\n"
assert nwGUI.docEditor.getCursorPosition() == 1 assert nwGUI.docEditor.getCursorPosition() == 1
# Strip Header 4 # Strip Header 4
assert nwGUI.docEditor.replaceText("#### Title\n\n") is True assert nwGUI.docEditor.replaceText("#### Title\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Title\n\n" assert nwGUI.docEditor.getText() == "Title\n\n"
assert nwGUI.docEditor.getCursorPosition() == 0 assert nwGUI.docEditor.getCursorPosition() == 0
# Strip Novel Title # Strip Novel Title
assert nwGUI.docEditor.replaceText("#! Title\n\n") is True assert nwGUI.docEditor.replaceText("#! Title\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Title\n\n" assert nwGUI.docEditor.getText() == "Title\n\n"
assert nwGUI.docEditor.getCursorPosition() == 2 assert nwGUI.docEditor.getCursorPosition() == 2
# Strip Unnumbered CHapter # Strip Unnumbered CHapter
assert nwGUI.docEditor.replaceText("##! Title\n\n") is True assert nwGUI.docEditor.replaceText("##! Title\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Title\n\n" assert nwGUI.docEditor.getText() == "Title\n\n"
assert nwGUI.docEditor.getCursorPosition() == 1 assert nwGUI.docEditor.getCursorPosition() == 1
# Strip Text # Strip Text
assert nwGUI.docEditor.replaceText("Generic text\n\n") is True assert nwGUI.docEditor.replaceText("Generic text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Generic text\n\n" assert nwGUI.docEditor.getText() == "Generic text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 5 assert nwGUI.docEditor.getCursorPosition() == 5
# Strip Left Angle Brackets : Double w/Space # Strip Left Angle Brackets : Double w/Space
assert nwGUI.docEditor.replaceText(">> Some text\n\n") is True assert nwGUI.docEditor.replaceText(">> Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Some text\n\n" assert nwGUI.docEditor.getText() == "Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 2 assert nwGUI.docEditor.getCursorPosition() == 2
# Strip Left Angle Brackets : Single w/Space # Strip Left Angle Brackets : Single w/Space
assert nwGUI.docEditor.replaceText("> Some text\n\n") is True assert nwGUI.docEditor.replaceText("> Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Some text\n\n" assert nwGUI.docEditor.getText() == "Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 3 assert nwGUI.docEditor.getCursorPosition() == 3
# Strip Left Angle Brackets : Double wo/Space # Strip Left Angle Brackets : Double wo/Space
assert nwGUI.docEditor.replaceText(">>Some text\n\n") is True assert nwGUI.docEditor.replaceText(">>Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Some text\n\n" assert nwGUI.docEditor.getText() == "Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 3 assert nwGUI.docEditor.getCursorPosition() == 3
# Strip Left Angle Brackets : Single wo/Space # Strip Left Angle Brackets : Single wo/Space
assert nwGUI.docEditor.replaceText(">Some text\n\n") is True assert nwGUI.docEditor.replaceText(">Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Some text\n\n" assert nwGUI.docEditor.getText() == "Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 4 assert nwGUI.docEditor.getCursorPosition() == 4
@@ -869,28 +868,28 @@ def testGuiEditor_BlockFormatting(qtbot, monkeypatch, nwGUI, projPath, ipsumText
# Strip Right Angle Brackets : Double w/Space # Strip Right Angle Brackets : Double w/Space
assert nwGUI.docEditor.replaceText("Some text <<\n\n") is True assert nwGUI.docEditor.replaceText("Some text <<\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Some text\n\n" assert nwGUI.docEditor.getText() == "Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 5 assert nwGUI.docEditor.getCursorPosition() == 5
# Strip Right Angle Brackets : Single w/Space # Strip Right Angle Brackets : Single w/Space
assert nwGUI.docEditor.replaceText("Some text <\n\n") is True assert nwGUI.docEditor.replaceText("Some text <\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Some text\n\n" assert nwGUI.docEditor.getText() == "Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 5 assert nwGUI.docEditor.getCursorPosition() == 5
# Strip Right Angle Brackets : Double wo/Space # Strip Right Angle Brackets : Double wo/Space
assert nwGUI.docEditor.replaceText("Some text<<\n\n") is True assert nwGUI.docEditor.replaceText("Some text<<\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Some text\n\n" assert nwGUI.docEditor.getText() == "Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 5 assert nwGUI.docEditor.getCursorPosition() == 5
# Strip Right Angle Brackets : Single wo/Space # Strip Right Angle Brackets : Single wo/Space
assert nwGUI.docEditor.replaceText("Some text<\n\n") is True assert nwGUI.docEditor.replaceText("Some text<\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Some text\n\n" assert nwGUI.docEditor.getText() == "Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 5 assert nwGUI.docEditor.getCursorPosition() == 5
@@ -915,84 +914,84 @@ def testGuiEditor_BlockFormatting(qtbot, monkeypatch, nwGUI, projPath, ipsumText
# Comment # Comment
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_COM) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_COM) is True
assert nwGUI.docEditor.getText() == "% Some text\n\n" assert nwGUI.docEditor.getText() == "% Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 7 assert nwGUI.docEditor.getCursorPosition() == 7
# Toggle Comment w/Space # Toggle Comment w/Space
assert nwGUI.docEditor.replaceText("% Some text\n\n") is True assert nwGUI.docEditor.replaceText("% Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_COM) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_COM) is True
assert nwGUI.docEditor.getText() == "Some text\n\n" assert nwGUI.docEditor.getText() == "Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 3 assert nwGUI.docEditor.getCursorPosition() == 3
# Toggle Comment wo/Space # Toggle Comment wo/Space
assert nwGUI.docEditor.replaceText("%Some text\n\n") is True assert nwGUI.docEditor.replaceText("%Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_COM) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_COM) is True
assert nwGUI.docEditor.getText() == "Some text\n\n" assert nwGUI.docEditor.getText() == "Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 4 assert nwGUI.docEditor.getCursorPosition() == 4
# Header 1 # Header 1
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_H1) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_H1) is True
assert nwGUI.docEditor.getText() == "# Some text\n\n" assert nwGUI.docEditor.getText() == "# Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 7 assert nwGUI.docEditor.getCursorPosition() == 7
# Header 2 # Header 2
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_H2) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_H2) is True
assert nwGUI.docEditor.getText() == "## Some text\n\n" assert nwGUI.docEditor.getText() == "## Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 8 assert nwGUI.docEditor.getCursorPosition() == 8
# Header 3 # Header 3
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_H3) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_H3) is True
assert nwGUI.docEditor.getText() == "### Some text\n\n" assert nwGUI.docEditor.getText() == "### Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 9 assert nwGUI.docEditor.getCursorPosition() == 9
# Header 4 # Header 4
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_H4) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_H4) is True
assert nwGUI.docEditor.getText() == "#### Some text\n\n" assert nwGUI.docEditor.getText() == "#### Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 10 assert nwGUI.docEditor.getCursorPosition() == 10
# Novel Title # Novel Title
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TTL) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TTL) is True
assert nwGUI.docEditor.getText() == "#! Some text\n\n" assert nwGUI.docEditor.getText() == "#! Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 8 assert nwGUI.docEditor.getCursorPosition() == 8
# Unnumbered Chapter # Unnumbered Chapter
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_UNN) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_UNN) is True
assert nwGUI.docEditor.getText() == "##! Some text\n\n" assert nwGUI.docEditor.getText() == "##! Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 9 assert nwGUI.docEditor.getCursorPosition() == 9
# Left Indent # Left Indent
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.INDENT_L) is True assert nwGUI.docEditor._formatBlock(nwDocAction.INDENT_L) is True
assert nwGUI.docEditor.getText() == "> Some text\n\n" assert nwGUI.docEditor.getText() == "> Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 7 assert nwGUI.docEditor.getCursorPosition() == 7
# Right Indent # Right Indent
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.INDENT_R) is True assert nwGUI.docEditor._formatBlock(nwDocAction.INDENT_R) is True
assert nwGUI.docEditor.getText() == "Some text <\n\n" assert nwGUI.docEditor.getText() == "Some text <\n\n"
assert nwGUI.docEditor.getCursorPosition() == 5 assert nwGUI.docEditor.getCursorPosition() == 5
# Right/Left Indent # Right/Left Indent
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.INDENT_L) is True assert nwGUI.docEditor._formatBlock(nwDocAction.INDENT_L) is True
assert nwGUI.docEditor._formatBlock(nwDocAction.INDENT_R) is True assert nwGUI.docEditor._formatBlock(nwDocAction.INDENT_R) is True
assert nwGUI.docEditor.getText() == "> Some text <\n\n" assert nwGUI.docEditor.getText() == "> Some text <\n\n"
@@ -1000,28 +999,28 @@ def testGuiEditor_BlockFormatting(qtbot, monkeypatch, nwGUI, projPath, ipsumText
# Left Align # Left Align
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.ALIGN_L) is True assert nwGUI.docEditor._formatBlock(nwDocAction.ALIGN_L) is True
assert nwGUI.docEditor.getText() == "Some text <<\n\n" assert nwGUI.docEditor.getText() == "Some text <<\n\n"
assert nwGUI.docEditor.getCursorPosition() == 5 assert nwGUI.docEditor.getCursorPosition() == 5
# Right Align # Right Align
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.ALIGN_R) is True assert nwGUI.docEditor._formatBlock(nwDocAction.ALIGN_R) is True
assert nwGUI.docEditor.getText() == ">> Some text\n\n" assert nwGUI.docEditor.getText() == ">> Some text\n\n"
assert nwGUI.docEditor.getCursorPosition() == 8 assert nwGUI.docEditor.getCursorPosition() == 8
# Centre Align # Centre Align
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.ALIGN_C) is True assert nwGUI.docEditor._formatBlock(nwDocAction.ALIGN_C) is True
assert nwGUI.docEditor.getText() == ">> Some text <<\n\n" assert nwGUI.docEditor.getText() == ">> Some text <<\n\n"
assert nwGUI.docEditor.getCursorPosition() == 8 assert nwGUI.docEditor.getCursorPosition() == 8
# Left/Right Align (Overrides) # Left/Right Align (Overrides)
assert nwGUI.docEditor.replaceText("Some text\n\n") is True assert nwGUI.docEditor.replaceText("Some text\n\n") is True
assert nwGUI.docEditor.setCursorPosition(5) is True nwGUI.docEditor.setCursorPosition(5)
assert nwGUI.docEditor._formatBlock(nwDocAction.ALIGN_L) is True assert nwGUI.docEditor._formatBlock(nwDocAction.ALIGN_L) is True
assert nwGUI.docEditor._formatBlock(nwDocAction.ALIGN_R) is True assert nwGUI.docEditor._formatBlock(nwDocAction.ALIGN_R) is True
assert nwGUI.docEditor.getText() == ">> Some text\n\n" assert nwGUI.docEditor.getText() == ">> Some text\n\n"
@@ -1032,7 +1031,7 @@ def testGuiEditor_BlockFormatting(qtbot, monkeypatch, nwGUI, projPath, ipsumText
# Final Cursor Position Out of Range # Final Cursor Position Out of Range
assert nwGUI.docEditor.replaceText("#### Title\n\n") is True assert nwGUI.docEditor.replaceText("#### Title\n\n") is True
assert nwGUI.docEditor.setCursorPosition(3) is True nwGUI.docEditor.setCursorPosition(3)
assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True assert nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) is True
assert nwGUI.docEditor.getText() == "Title\n\n" assert nwGUI.docEditor.getText() == "Title\n\n"
assert nwGUI.docEditor.getCursorPosition() == 5 assert nwGUI.docEditor.getCursorPosition() == 5
@@ -1081,21 +1080,21 @@ def testGuiEditor_Tags(qtbot, nwGUI, projPath, ipsumText, mockRnd):
assert nwGUI.docEditor._followTag() is False assert nwGUI.docEditor._followTag() is False
# On Tag Keyword # On Tag Keyword
assert nwGUI.docEditor.setCursorPosition(15) is True nwGUI.docEditor.setCursorPosition(15)
assert nwGUI.docEditor._followTag() is False assert nwGUI.docEditor._followTag() is False
# On Unknown Tag # On Unknown Tag
assert nwGUI.docEditor.setCursorPosition(28) is True nwGUI.docEditor.setCursorPosition(28)
assert nwGUI.docEditor._followTag() is True assert nwGUI.docEditor._followTag() is True
assert nwGUI.docViewer._docHandle is None assert nwGUI.docViewer._docHandle is None
# On Known Tag, No Follow # On Known Tag, No Follow
assert nwGUI.docEditor.setCursorPosition(22) is True nwGUI.docEditor.setCursorPosition(22)
assert nwGUI.docEditor._followTag(loadTag=False) is True assert nwGUI.docEditor._followTag(loadTag=False) is True
assert nwGUI.docViewer._docHandle is None assert nwGUI.docViewer._docHandle is None
# On Known Tag, Follow # On Known Tag, Follow
assert nwGUI.docEditor.setCursorPosition(22) is True nwGUI.docEditor.setCursorPosition(22)
assert nwGUI.docViewer._docHandle is None assert nwGUI.docViewer._docHandle is None
assert nwGUI.docEditor._followTag(loadTag=True) is True assert nwGUI.docEditor._followTag(loadTag=True) is True
assert nwGUI.docViewer._docHandle == cHandle assert nwGUI.docViewer._docHandle == cHandle
@@ -1228,7 +1227,7 @@ def testGuiEditor_Search(qtbot, monkeypatch, nwGUI, prjLipsum):
# Close search # Close search
nwGUI.docEditor.docSearch.cancelSearch.activate(QAction.Trigger) nwGUI.docEditor.docSearch.cancelSearch.activate(QAction.Trigger)
assert nwGUI.docEditor.docSearch.isVisible() is False assert nwGUI.docEditor.docSearch.isVisible() is False
assert nwGUI.docEditor.setCursorPosition(15) nwGUI.docEditor.setCursorPosition(15)
# Toggle search again with header button # Toggle search again with header button
qtbot.mouseClick(nwGUI.docEditor.docHeader.searchButton, Qt.LeftButton, delay=KEY_DELAY) qtbot.mouseClick(nwGUI.docEditor.docHeader.searchButton, Qt.LeftButton, delay=KEY_DELAY)
@@ -1298,7 +1297,7 @@ def testGuiEditor_Search(qtbot, monkeypatch, nwGUI, prjLipsum):
assert nwGUI.docEditor.docSearch.doMatchCap is True assert nwGUI.docEditor.docSearch.doMatchCap is True
# Replace "Sus" with "Foo" via menu # Replace "Sus" with "Foo" via menu
assert nwGUI.docEditor.setCursorPosition(590) nwGUI.docEditor.setCursorPosition(590)
nwGUI.mainMenu.aFindNext.activate(QAction.Trigger) nwGUI.mainMenu.aFindNext.activate(QAction.Trigger)
nwGUI.mainMenu.aReplaceNext.activate(QAction.Trigger) nwGUI.mainMenu.aReplaceNext.activate(QAction.Trigger)
assert nwGUI.docEditor.getText()[608:619] == "Foopendisse" assert nwGUI.docEditor.getText()[608:619] == "Foopendisse"
@@ -1327,7 +1326,7 @@ def testGuiEditor_Search(qtbot, monkeypatch, nwGUI, prjLipsum):
# Close search and select "est" again # Close search and select "est" again
nwGUI.docEditor.docSearch.cancelSearch.activate(QAction.Trigger) nwGUI.docEditor.docSearch.cancelSearch.activate(QAction.Trigger)
assert nwGUI.docEditor.setCursorPosition(630) nwGUI.docEditor.setCursorPosition(630)
nwGUI.docEditor._makeSelection(QTextCursor.WordUnderCursor) nwGUI.docEditor._makeSelection(QTextCursor.WordUnderCursor)
theCursor = nwGUI.docEditor.textCursor() theCursor = nwGUI.docEditor.textCursor()
assert theCursor.selectedText() == "est" assert theCursor.selectedText() == "est"
+11 -12
View File
@@ -46,8 +46,7 @@ def testGuiMenu_EditFormat(qtbot, monkeypatch, nwGUI, prjLipsum):
# Split By Chapter # Split By Chapter
assert nwGUI.openDocument("4c4f28287af27") is True assert nwGUI.openDocument("4c4f28287af27") is True
assert nwGUI.docEditor.setCursorPosition(42) is True nwGUI.docEditor.setCursorPosition(42)
cleanText = nwGUI.docEditor.getText()[39:86] cleanText = nwGUI.docEditor.getText()[39:86]
# Bold # Bold
@@ -95,7 +94,7 @@ def testGuiMenu_EditFormat(qtbot, monkeypatch, nwGUI, prjLipsum):
# Block Formats # Block Formats
# ============= # =============
# cSpell:ignore Pellentesque erat nulla posuere commodo # cSpell:ignore Pellentesque erat nulla posuere commodo
assert nwGUI.docEditor.setCursorPosition(42) nwGUI.docEditor.setCursorPosition(42)
# Header 1 # Header 1
nwGUI.mainMenu.aFmtHead1.activate(QAction.Trigger) nwGUI.mainMenu.aFmtHead1.activate(QAction.Trigger)
@@ -141,7 +140,7 @@ def testGuiMenu_EditFormat(qtbot, monkeypatch, nwGUI, prjLipsum):
assert nwGUI.docEditor.getText()[39:86] == cleanText assert nwGUI.docEditor.getText()[39:86] == cleanText
# Check comment with no space before text # Check comment with no space before text
assert nwGUI.docEditor.setCursorPosition(39) nwGUI.docEditor.setCursorPosition(39)
assert nwGUI.docEditor.insertText("%") assert nwGUI.docEditor.insertText("%")
fmtStr = "%Pellentesque nec erat ut nulla posuere commodo." fmtStr = "%Pellentesque nec erat ut nulla posuere commodo."
assert nwGUI.docEditor.getText()[39:87] == fmtStr assert nwGUI.docEditor.getText()[39:87] == fmtStr
@@ -157,7 +156,7 @@ def testGuiMenu_EditFormat(qtbot, monkeypatch, nwGUI, prjLipsum):
assert nwGUI.docEditor.getText()[39:86] == cleanText assert nwGUI.docEditor.getText()[39:86] == cleanText
# Cut, Copy and Paste # Cut, Copy and Paste
assert nwGUI.docEditor.setCursorPosition(39) nwGUI.docEditor.setCursorPosition(39)
nwGUI.docEditor._makeSelection(QTextCursor.WordUnderCursor) nwGUI.docEditor._makeSelection(QTextCursor.WordUnderCursor)
nwGUI.mainMenu.aEditCut.activate(QAction.Trigger) nwGUI.mainMenu.aEditCut.activate(QAction.Trigger)
@@ -170,7 +169,7 @@ def testGuiMenu_EditFormat(qtbot, monkeypatch, nwGUI, prjLipsum):
"Pellentesque nec erat ut nulla posuere commodo. Cu" "Pellentesque nec erat ut nulla posuere commodo. Cu"
) )
assert nwGUI.docEditor.setCursorPosition(39) nwGUI.docEditor.setCursorPosition(39)
nwGUI.docEditor._makeSelection(QTextCursor.WordUnderCursor) nwGUI.docEditor._makeSelection(QTextCursor.WordUnderCursor)
nwGUI.mainMenu.aEditCopy.activate(QAction.Trigger) nwGUI.mainMenu.aEditCopy.activate(QAction.Trigger)
@@ -178,7 +177,7 @@ def testGuiMenu_EditFormat(qtbot, monkeypatch, nwGUI, prjLipsum):
"Pellentesque nec erat ut nulla posuere commodo. Cu" "Pellentesque nec erat ut nulla posuere commodo. Cu"
) )
assert nwGUI.docEditor.setCursorPosition(39) nwGUI.docEditor.setCursorPosition(39)
nwGUI.mainMenu.aEditPaste.activate(QAction.Trigger) nwGUI.mainMenu.aEditPaste.activate(QAction.Trigger)
assert nwGUI.docEditor.getText()[39:89] == ( assert nwGUI.docEditor.getText()[39:89] == (
"PellentesquePellentesque nec erat ut nulla posuere" "PellentesquePellentesque nec erat ut nulla posuere"
@@ -186,7 +185,7 @@ def testGuiMenu_EditFormat(qtbot, monkeypatch, nwGUI, prjLipsum):
nwGUI.mainMenu.aEditUndo.activate(QAction.Trigger) nwGUI.mainMenu.aEditUndo.activate(QAction.Trigger)
# Select Paragraph/All # Select Paragraph/All
assert nwGUI.docEditor.setCursorPosition(42) nwGUI.docEditor.setCursorPosition(42)
nwGUI.mainMenu.aSelectPar.activate(QAction.Trigger) nwGUI.mainMenu.aSelectPar.activate(QAction.Trigger)
theCursor = nwGUI.docEditor.textCursor() theCursor = nwGUI.docEditor.textCursor()
assert theCursor.selectedText() == ( assert theCursor.selectedText() == (
@@ -199,7 +198,7 @@ def testGuiMenu_EditFormat(qtbot, monkeypatch, nwGUI, prjLipsum):
"nunc lacus, imperdiet nec posuere ac, interdum non lectus." "nunc lacus, imperdiet nec posuere ac, interdum non lectus."
) )
assert nwGUI.docEditor.setCursorPosition(42) nwGUI.docEditor.setCursorPosition(42)
nwGUI.mainMenu.aSelectAll.activate(QAction.Trigger) nwGUI.mainMenu.aSelectAll.activate(QAction.Trigger)
theCursor = nwGUI.docEditor.textCursor() theCursor = nwGUI.docEditor.textCursor()
assert len(theCursor.selectedText()) == 1895 assert len(theCursor.selectedText()) == 1895
@@ -213,7 +212,7 @@ def testGuiMenu_EditFormat(qtbot, monkeypatch, nwGUI, prjLipsum):
cleanText = "A single, short paragraph.\n\n" cleanText = "A single, short paragraph.\n\n"
nwGUI.docEditor.setPlainText(cleanText) nwGUI.docEditor.setPlainText(cleanText)
assert nwGUI.docEditor.setCursorPosition(0) nwGUI.docEditor.setCursorPosition(0)
# Left Align # Left Align
nwGUI.mainMenu.aFmtAlignLeft.activate(QAction.Trigger) nwGUI.mainMenu.aFmtAlignLeft.activate(QAction.Trigger)
@@ -322,11 +321,11 @@ def testGuiMenu_EditFormat(qtbot, monkeypatch, nwGUI, prjLipsum):
)) ))
# Cannot Format Tag # Cannot Format Tag
assert nwGUI.docEditor.setCursorPosition(17) nwGUI.docEditor.setCursorPosition(17)
assert not nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT) assert not nwGUI.docEditor._formatBlock(nwDocAction.BLOCK_TXT)
# Invalid Action # Invalid Action
assert nwGUI.docEditor.setCursorPosition(30) nwGUI.docEditor.setCursorPosition(30)
assert not nwGUI.docEditor._formatBlock(nwDocAction.NO_ACTION) assert not nwGUI.docEditor._formatBlock(nwDocAction.NO_ACTION)
# Ensure No Changes # Ensure No Changes