Drop code for pre Qt 5.15 versions

This commit is contained in:
Veronica Berglyd Olsen
2024-04-16 23:45:59 +02:00
parent 1733938eb4
commit ac7b0bc9a2
5 changed files with 21 additions and 54 deletions
-10
View File
@@ -370,17 +370,7 @@ class DocSearch:
def _buildPattern(self, search: str) -> str: def _buildPattern(self, search: str) -> str:
"""Build the search pattern string.""" """Build the search pattern string."""
if self._escape: if self._escape:
if CONFIG.verQtValue >= 0x050f00:
search = QRegularExpression.escape(search) search = QRegularExpression.escape(search)
else:
# For older Qt versions, we escape manually
escaped = ""
for c in search:
if c.isalnum() or c == "_":
escaped += c
else:
escaped += f"\\{c}"
search = escaped
if self._words: if self._words:
search = f"(?:^|\\b){search}(?:$|\\b)" search = f"(?:^|\\b){search}(?:$|\\b)"
return search return search
+3 -17
View File
@@ -39,8 +39,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, QRegExp, QRegularExpression, pyqtSignal, pyqtSlot, QObject, QPoint, QRegularExpression, QRunnable, Qt,
QRunnable, Qt, QTimer QTimer
) )
from PyQt5.QtGui import ( from PyQt5.QtGui import (
QColor, QCursor, QFont, QKeyEvent, QKeySequence, QMouseEvent, QPalette, QColor, QCursor, QFont, QKeyEvent, QKeySequence, QMouseEvent, QPalette,
@@ -2538,32 +2538,18 @@ class GuiDocEditSearch(QFrame):
# Getters # Getters
## ##
def getSearchObject(self) -> str | QRegularExpression | QRegExp: def getSearchObject(self) -> str | QRegularExpression:
"""Return the current search text either as text or as a regular """Return the current search text either as text or as a regular
expression object. expression object.
""" """
text = self.searchBox.text() text = self.searchBox.text()
if CONFIG.searchRegEx: if CONFIG.searchRegEx:
# Using the Unicode-capable QRegularExpression class was
# only added in Qt 5.13. Otherwise, 5.3 and up supports
# only the QRegExp class.
if CONFIG.verQtValue >= 0x050d00:
rxOpt = QRegularExpression.PatternOption.UseUnicodePropertiesOption rxOpt = QRegularExpression.PatternOption.UseUnicodePropertiesOption
if not CONFIG.searchCase: if not CONFIG.searchCase:
rxOpt |= QRegularExpression.PatternOption.CaseInsensitiveOption rxOpt |= QRegularExpression.PatternOption.CaseInsensitiveOption
regEx = QRegularExpression(text, rxOpt) regEx = QRegularExpression(text, rxOpt)
self._alertSearchValid(regEx.isValid()) self._alertSearchValid(regEx.isValid())
return regEx return regEx
else: # pragma: no cover
# >= 50300 to < 51300
if CONFIG.searchCase:
rxOpt = Qt.CaseSensitivity.CaseSensitive
else:
rxOpt = Qt.CaseSensitivity.CaseInsensitive
regEx = QRegExp(text, rxOpt)
self._alertSearchValid(regEx.isValid())
return regEx
return text return text
## ##
-1
View File
@@ -209,7 +209,6 @@ class GuiDocViewerPanel(QWidget):
def _updateTabVisibility(self) -> None: def _updateTabVisibility(self) -> None:
"""Hide class tabs with no content.""" """Hide class tabs with no content."""
if CONFIG.verQtValue >= 0x050f00:
for tClass, cTab in self.kwTabs.items(): for tClass, cTab in self.kwTabs.items():
self.mainTabs.setTabVisible(self.idTabs[tClass], cTab.countEntries() > 0) self.mainTabs.setTabVisible(self.idTabs[tClass], cTab.countEntries() > 0)
return return
-7
View File
@@ -427,13 +427,6 @@ def testCoreTools_DocSearch(monkeypatch, mockGUI, fncPath, mockRnd, ipsumText):
# ======== # ========
# Escape Using QRegularExpression # Escape Using QRegularExpression
with monkeypatch.context() as mp:
mp.setattr(CONFIG, "verQtValue", 0x050f00)
assert search._buildPattern("[A-Za-z0-9_]+") == r"\[A\-Za\-z0\-9_\]\+"
# Escape Using Custom Implementation
with monkeypatch.context() as mp:
mp.setattr(CONFIG, "verQtValue", 0x050d00)
assert search._buildPattern("[A-Za-z0-9_]+") == r"\[A\-Za\-z0\-9_\]\+" assert search._buildPattern("[A-Za-z0-9_]+") == r"\[A\-Za\-z0\-9_\]\+"
# Whole Words # Whole Words
+1 -2
View File
@@ -26,7 +26,7 @@ from tools import C, buildTestProject
from PyQt5.QtGui import QIcon from PyQt5.QtGui import QIcon
from novelwriter import CONFIG, SHARED from novelwriter import SHARED
from novelwriter.constants import nwLists from novelwriter.constants import nwLists
from novelwriter.core.item import NWItem from novelwriter.core.item import NWItem
from novelwriter.dialogs.editlabel import GuiEditLabel from novelwriter.dialogs.editlabel import GuiEditLabel
@@ -151,7 +151,6 @@ def testGuiViewerPanel_Tags(qtbot, monkeypatch, caplog, nwGUI, projPath, mockRnd
nwGUI.docEditor._processTag(cursor, create=True) nwGUI.docEditor._processTag(cursor, create=True)
# Check Panel Tab Visibility # Check Panel Tab Visibility
if CONFIG.verQtValue >= 0x050f00:
assert viewPanel.mainTabs.isTabVisible(viewPanel.idTabs["CHARACTER"]) is True assert viewPanel.mainTabs.isTabVisible(viewPanel.idTabs["CHARACTER"]) is True
assert viewPanel.mainTabs.isTabVisible(viewPanel.idTabs["PLOT"]) is False assert viewPanel.mainTabs.isTabVisible(viewPanel.idTabs["PLOT"]) is False
assert viewPanel.mainTabs.isTabVisible(viewPanel.idTabs["WORLD"]) is False assert viewPanel.mainTabs.isTabVisible(viewPanel.idTabs["WORLD"]) is False