Preserve case repalce now works
This commit is contained in:
@@ -172,3 +172,24 @@ def splitVersionNumber(vString):
|
||||
vInt = vMajor*10000 + vMinor*100 + vPatch
|
||||
|
||||
return [vMajor, vMinor, vPatch, vInt]
|
||||
|
||||
def transferCase(theSource, theTarget):
|
||||
"""Transfers the case of the source word to the target word. This
|
||||
will consider all upper or lower, and first char capitalisation.
|
||||
"""
|
||||
theResult = theTarget
|
||||
|
||||
if not isinstance(theSource, str) or not isinstance(theTarget, str):
|
||||
return theResult
|
||||
if len(theTarget) < 1 or len(theSource) < 1:
|
||||
return theResult
|
||||
|
||||
if theSource[0] == theSource[0].upper():
|
||||
theResult = theTarget[0].upper() + theTarget[1:]
|
||||
|
||||
if theSource == theSource.upper():
|
||||
theResult = theTarget.upper()
|
||||
elif theSource == theSource.lower():
|
||||
theResult = theTarget.lower()
|
||||
|
||||
return theResult
|
||||
|
||||
+12
-4
@@ -48,6 +48,7 @@ from nw.core import NWDoc
|
||||
from nw.gui.dochighlight import GuiDocHighlighter
|
||||
from nw.core import NWSpellSimple, countWords
|
||||
from nw.constants import nwUnicode, nwDocAction
|
||||
from nw.common import transferCase
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -1185,16 +1186,23 @@ class GuiDocEditor(QTextEdit):
|
||||
self._beginSearch()
|
||||
return
|
||||
|
||||
if not theCursor.hasSelection():
|
||||
return
|
||||
|
||||
theCursor = self.textCursor()
|
||||
searchFor = self.docSearch.getSearchText()
|
||||
replWith = self.docSearch.getReplaceText()
|
||||
selText = theCursor.selectedText()
|
||||
|
||||
if not self.docSearch.isCaseSense:
|
||||
searchFor = searchFor.lower()
|
||||
selText = selText.lower()
|
||||
if self.docSearch.doPreserve:
|
||||
replWith = transferCase(selText, replWith)
|
||||
|
||||
if theCursor.hasSelection() and selText == searchFor:
|
||||
if not self.docSearch.isCaseSense:
|
||||
isMatch = searchFor.lower() == selText.lower()
|
||||
else:
|
||||
isMatch = searchFor == selText
|
||||
|
||||
if isMatch:
|
||||
theCursor.beginEditBlock()
|
||||
theCursor.removeSelectedText()
|
||||
theCursor.insertText(replWith)
|
||||
|
||||
Reference in New Issue
Block a user