diff --git a/novelwriter/common.py b/novelwriter/common.py index bf150794..92b304e7 100644 --- a/novelwriter/common.py +++ b/novelwriter/common.py @@ -436,7 +436,7 @@ def describeFont(font: QFont) -> str: def qtLambda(func: Callable, *args: Any, **kwargs: Any) -> Callable: """A replacement for Python lambdas that works for Qt slots.""" - def wrapper(*args_: Any, **kwargs_: Any) -> None: + def wrapper(*a_: Any) -> None: func(*args, **kwargs) return wrapper diff --git a/novelwriter/dialogs/projectsettings.py b/novelwriter/dialogs/projectsettings.py index 7e7b4f4a..6cbff7d2 100644 --- a/novelwriter/dialogs/projectsettings.py +++ b/novelwriter/dialogs/projectsettings.py @@ -35,7 +35,7 @@ from PyQt5.QtWidgets import ( ) from novelwriter import CONFIG, SHARED -from novelwriter.common import simplified +from novelwriter.common import qtLambda, simplified from novelwriter.constants import nwLabels, trConst from novelwriter.core.status import NWStatus, StatusEntry from novelwriter.enum import nwStatusShape @@ -365,10 +365,10 @@ class _StatusPage(NFixedPage): self.delButton.clicked.connect(self._delItem) self.upButton = NIconToolButton(self, iSz, "up") - self.upButton.clicked.connect(lambda: self._moveItem(-1)) + self.upButton.clicked.connect(qtLambda(self._moveItem, -1)) self.dnButton = NIconToolButton(self, iSz, "down") - self.dnButton.clicked.connect(lambda: self._moveItem(1)) + self.dnButton.clicked.connect(qtLambda(self._moveItem, 1)) # Edit Form self.editName = QLineEdit(self) diff --git a/novelwriter/gui/docviewer.py b/novelwriter/gui/docviewer.py index a304b12e..aa6248e2 100644 --- a/novelwriter/gui/docviewer.py +++ b/novelwriter/gui/docviewer.py @@ -38,6 +38,7 @@ from PyQt5.QtWidgets import ( ) from novelwriter import CONFIG, SHARED +from novelwriter.common import qtLambda from novelwriter.constants import nwStyles, nwUnicode from novelwriter.enum import nwDocAction, nwDocMode, nwItemType from novelwriter.error import logException @@ -396,25 +397,25 @@ class GuiDocViewer(QTextBrowser): if userSelection: mnuCopy = QAction(self.tr("Copy"), ctxMenu) - mnuCopy.triggered.connect(lambda: self.docAction(nwDocAction.COPY)) + mnuCopy.triggered.connect(qtLambda(self.docAction, nwDocAction.COPY)) ctxMenu.addAction(mnuCopy) ctxMenu.addSeparator() mnuSelAll = QAction(self.tr("Select All"), ctxMenu) - mnuSelAll.triggered.connect(lambda: self.docAction(nwDocAction.SEL_ALL)) + mnuSelAll.triggered.connect(qtLambda(self.docAction, nwDocAction.SEL_ALL)) ctxMenu.addAction(mnuSelAll) mnuSelWord = QAction(self.tr("Select Word"), ctxMenu) - mnuSelWord.triggered.connect( - lambda: self._makePosSelection(QTextCursor.SelectionType.WordUnderCursor, point) - ) + mnuSelWord.triggered.connect(qtLambda( + self._makePosSelection, QTextCursor.SelectionType.WordUnderCursor, point + )) ctxMenu.addAction(mnuSelWord) mnuSelPara = QAction(self.tr("Select Paragraph"), ctxMenu) - mnuSelPara.triggered.connect( - lambda: self._makePosSelection(QTextCursor.SelectionType.BlockUnderCursor, point) - ) + mnuSelPara.triggered.connect(qtLambda( + self._makePosSelection, QTextCursor.SelectionType.BlockUnderCursor, point + )) ctxMenu.addAction(mnuSelPara) # Open the context menu diff --git a/novelwriter/gui/noveltree.py b/novelwriter/gui/noveltree.py index aa5adb2f..795622c0 100644 --- a/novelwriter/gui/noveltree.py +++ b/novelwriter/gui/noveltree.py @@ -39,7 +39,7 @@ from PyQt5.QtWidgets import ( ) from novelwriter import CONFIG, SHARED -from novelwriter.common import minmax +from novelwriter.common import minmax, qtLambda from novelwriter.constants import nwKeyWords, nwLabels, nwStyles, trConst from novelwriter.core.index import IndexHeading from novelwriter.enum import nwDocMode, nwItemClass, nwOutline @@ -346,7 +346,7 @@ class GuiNovelToolBar(QWidget): aLast = self.mLastCol.addAction(actionLabel) aLast.setCheckable(True) aLast.setActionGroup(self.gLastCol) - aLast.triggered.connect(lambda: self.setLastColType(colType)) + aLast.triggered.connect(qtLambda(self.setLastColType, colType)) self.aLastCol[colType] = aLast return diff --git a/novelwriter/gui/sidebar.py b/novelwriter/gui/sidebar.py index 6f4669c7..124ecf83 100644 --- a/novelwriter/gui/sidebar.py +++ b/novelwriter/gui/sidebar.py @@ -32,6 +32,7 @@ from PyQt5.QtGui import QPalette from PyQt5.QtWidgets import QMenu, QVBoxLayout, QWidget from novelwriter import CONFIG, SHARED +from novelwriter.common import qtLambda from novelwriter.enum import nwView from novelwriter.extensions.eventfilters import StatusTipFilter from novelwriter.extensions.modified import NIconToolButton @@ -63,19 +64,19 @@ class GuiSideBar(QWidget): # Buttons self.tbProject = NIconToolButton(self, iSz) self.tbProject.setToolTip("{0} [Ctrl+T]".format(self.tr("Project Tree View"))) - self.tbProject.clicked.connect(lambda: self.requestViewChange.emit(nwView.PROJECT)) + self.tbProject.clicked.connect(qtLambda(self.requestViewChange.emit, nwView.PROJECT)) self.tbNovel = NIconToolButton(self, iSz) self.tbNovel.setToolTip("{0} [Ctrl+T]".format(self.tr("Novel Tree View"))) - self.tbNovel.clicked.connect(lambda: self.requestViewChange.emit(nwView.NOVEL)) + self.tbNovel.clicked.connect(qtLambda(self.requestViewChange.emit, nwView.NOVEL)) self.tbSearch = NIconToolButton(self, iSz) self.tbSearch.setToolTip("{0} [Ctrl+Shift+F]".format(self.tr("Project Search"))) - self.tbSearch.clicked.connect(lambda: self.requestViewChange.emit(nwView.SEARCH)) + self.tbSearch.clicked.connect(qtLambda(self.requestViewChange.emit, nwView.SEARCH)) self.tbOutline = NIconToolButton(self, iSz) self.tbOutline.setToolTip("{0} [Ctrl+Shift+T]".format(self.tr("Novel Outline View"))) - self.tbOutline.clicked.connect(lambda: self.requestViewChange.emit(nwView.OUTLINE)) + self.tbOutline.clicked.connect(qtLambda(self.requestViewChange.emit, nwView.OUTLINE)) self.tbBuild = NIconToolButton(self, iSz) self.tbBuild.setToolTip("{0} [F5]".format(self.tr("Build Manuscript"))) diff --git a/novelwriter/tools/manussettings.py b/novelwriter/tools/manussettings.py index 350e48a4..098b1ce7 100644 --- a/novelwriter/tools/manussettings.py +++ b/novelwriter/tools/manussettings.py @@ -37,7 +37,7 @@ from PyQt5.QtWidgets import ( ) from novelwriter import CONFIG, SHARED -from novelwriter.common import describeFont +from novelwriter.common import describeFont, qtLambda from novelwriter.constants import nwHeadFmt, nwKeyWords, nwLabels, nwStyles, trConst from novelwriter.core.buildsettings import BuildSettings, FilterMode from novelwriter.extensions.configlayout import ( @@ -329,16 +329,16 @@ class _FilterTab(NFixedPage): self.includedButton = NIconToolButton(self, iSz) self.includedButton.setToolTip(self.tr("Always included")) self.includedButton.setIcon(self._statusFlags[self.F_INCLUDED]) - self.includedButton.clicked.connect(lambda: self._setSelectedMode(self.F_INCLUDED)) + self.includedButton.clicked.connect(qtLambda(self._setSelectedMode, self.F_INCLUDED)) self.excludedButton = NIconToolButton(self, iSz) self.excludedButton.setToolTip(self.tr("Always excluded")) self.excludedButton.setIcon(self._statusFlags[self.F_EXCLUDED]) - self.excludedButton.clicked.connect(lambda: self._setSelectedMode(self.F_EXCLUDED)) + self.excludedButton.clicked.connect(qtLambda(self._setSelectedMode, self.F_EXCLUDED)) self.resetButton = NIconToolButton(self, iSz, "revert") self.resetButton.setToolTip(self.tr("Reset to default")) - self.resetButton.clicked.connect(lambda: self._setSelectedMode(self.F_FILTERED)) + self.resetButton.clicked.connect(qtLambda(self._setSelectedMode, self.F_FILTERED)) self.modeBox = QHBoxLayout() self.modeBox.addWidget(QLabel(self.tr("Mark selection as"), self)) @@ -589,7 +589,7 @@ class _HeadingsTab(NScrollablePage): self.fmtPart = QLineEdit("", self) self.fmtPart.setReadOnly(True) self.btnPart = NIconToolButton(self, iSz, "edit") - self.btnPart.clicked.connect(lambda: self._editHeading(self.EDIT_TITLE)) + self.btnPart.clicked.connect(qtLambda(self._editHeading, self.EDIT_TITLE)) self.hdePart = QLabel(trHide, self) self.hdePart.setIndent(bSp) self.swtPart = NSwitch(self, height=iPx) @@ -605,7 +605,7 @@ class _HeadingsTab(NScrollablePage): self.fmtChapter = QLineEdit("", self) self.fmtChapter.setReadOnly(True) self.btnChapter = NIconToolButton(self, iSz, "edit") - self.btnChapter.clicked.connect(lambda: self._editHeading(self.EDIT_CHAPTER)) + self.btnChapter.clicked.connect(qtLambda(self._editHeading, self.EDIT_CHAPTER)) self.hdeChapter = QLabel(trHide, self) self.hdeChapter.setIndent(bSp) self.swtChapter = NSwitch(self, height=iPx) @@ -621,7 +621,7 @@ class _HeadingsTab(NScrollablePage): self.fmtUnnumbered = QLineEdit("", self) self.fmtUnnumbered.setReadOnly(True) self.btnUnnumbered = NIconToolButton(self, iSz, "edit") - self.btnUnnumbered.clicked.connect(lambda: self._editHeading(self.EDIT_UNNUM)) + self.btnUnnumbered.clicked.connect(qtLambda(self._editHeading, self.EDIT_UNNUM)) self.hdeUnnumbered = QLabel(trHide, self) self.hdeUnnumbered.setIndent(bSp) self.swtUnnumbered = NSwitch(self, height=iPx) @@ -637,7 +637,7 @@ class _HeadingsTab(NScrollablePage): self.fmtScene = QLineEdit("", self) self.fmtScene.setReadOnly(True) self.btnScene = NIconToolButton(self, iSz, "edit") - self.btnScene.clicked.connect(lambda: self._editHeading(self.EDIT_SCENE)) + self.btnScene.clicked.connect(qtLambda(self._editHeading, self.EDIT_SCENE)) self.hdeScene = QLabel(trHide, self) self.hdeScene.setIndent(bSp) self.swtScene = NSwitch(self, height=iPx) @@ -653,7 +653,7 @@ class _HeadingsTab(NScrollablePage): self.fmtAScene = QLineEdit("", self) self.fmtAScene.setReadOnly(True) self.btnAScene = NIconToolButton(self, iSz, "edit") - self.btnAScene.clicked.connect(lambda: self._editHeading(self.EDIT_HSCENE)) + self.btnAScene.clicked.connect(qtLambda(self._editHeading, self.EDIT_HSCENE)) self.hdeAScene = QLabel(trHide, self) self.hdeAScene.setIndent(bSp) self.swtAScene = NSwitch(self, height=iPx) @@ -669,7 +669,7 @@ class _HeadingsTab(NScrollablePage): self.fmtSection = QLineEdit("", self) self.fmtSection.setReadOnly(True) self.btnSection = NIconToolButton(self, iSz, "edit") - self.btnSection.clicked.connect(lambda: self._editHeading(self.EDIT_SECTION)) + self.btnSection.clicked.connect(qtLambda(self._editHeading, self.EDIT_SECTION)) self.hdeSection = QLabel(trHide, self) self.hdeSection.setIndent(bSp) self.swtSection = NSwitch(self, height=iPx) @@ -702,15 +702,15 @@ class _HeadingsTab(NScrollablePage): self.aInsCharPOV = self.menuInsert.addAction(self.tr("Point of View Character")) self.aInsCharFocus = self.menuInsert.addAction(self.tr("Focus Character")) - self.aInsTitle.triggered.connect(lambda: self._insertIntoForm(nwHeadFmt.TITLE)) - self.aInsChNum.triggered.connect(lambda: self._insertIntoForm(nwHeadFmt.CH_NUM)) - self.aInsChWord.triggered.connect(lambda: self._insertIntoForm(nwHeadFmt.CH_WORD)) - self.aInsChRomU.triggered.connect(lambda: self._insertIntoForm(nwHeadFmt.CH_ROMU)) - self.aInsChRomL.triggered.connect(lambda: self._insertIntoForm(nwHeadFmt.CH_ROML)) - self.aInsScNum.triggered.connect(lambda: self._insertIntoForm(nwHeadFmt.SC_NUM)) - self.aInsScAbs.triggered.connect(lambda: self._insertIntoForm(nwHeadFmt.SC_ABS)) - self.aInsCharPOV.triggered.connect(lambda: self._insertIntoForm(nwHeadFmt.CHAR_POV)) - self.aInsCharFocus.triggered.connect(lambda: self._insertIntoForm(nwHeadFmt.CHAR_FOCUS)) + self.aInsTitle.triggered.connect(qtLambda(self._insertIntoForm, nwHeadFmt.TITLE)) + self.aInsChNum.triggered.connect(qtLambda(self._insertIntoForm, nwHeadFmt.CH_NUM)) + self.aInsChWord.triggered.connect(qtLambda(self._insertIntoForm, nwHeadFmt.CH_WORD)) + self.aInsChRomU.triggered.connect(qtLambda(self._insertIntoForm, nwHeadFmt.CH_ROMU)) + self.aInsChRomL.triggered.connect(qtLambda(self._insertIntoForm, nwHeadFmt.CH_ROML)) + self.aInsScNum.triggered.connect(qtLambda(self._insertIntoForm, nwHeadFmt.SC_NUM)) + self.aInsScAbs.triggered.connect(qtLambda(self._insertIntoForm, nwHeadFmt.SC_ABS)) + self.aInsCharPOV.triggered.connect(qtLambda(self._insertIntoForm, nwHeadFmt.CHAR_POV)) + self.aInsCharFocus.triggered.connect(qtLambda(self._insertIntoForm, nwHeadFmt.CHAR_FOCUS)) self.btnInsert = QPushButton(self.tr("Insert"), self) self.btnInsert.setMenu(self.menuInsert) diff --git a/novelwriter/tools/writingstats.py b/novelwriter/tools/writingstats.py index 864ad177..0ba1d52f 100644 --- a/novelwriter/tools/writingstats.py +++ b/novelwriter/tools/writingstats.py @@ -38,7 +38,7 @@ from PyQt5.QtWidgets import ( ) from novelwriter import CONFIG, SHARED -from novelwriter.common import checkInt, checkIntTuple, formatTime, minmax +from novelwriter.common import checkInt, checkIntTuple, formatTime, minmax, qtLambda from novelwriter.constants import nwConst from novelwriter.error import formatException from novelwriter.extensions.modified import NToolDialog @@ -277,11 +277,11 @@ class GuiWritingStats(NToolDialog): self.btnSave.setMenu(self.saveMenu) self.saveJSON = QAction(self.tr("JSON Data File (.json)"), self) - self.saveJSON.triggered.connect(lambda: self._saveData(self.FMT_JSON)) + self.saveJSON.triggered.connect(qtLambda(self._saveData, self.FMT_JSON)) self.saveMenu.addAction(self.saveJSON) self.saveCSV = QAction(self.tr("CSV Data File (.csv)"), self) - self.saveCSV.triggered.connect(lambda: self._saveData(self.FMT_CSV)) + self.saveCSV.triggered.connect(qtLambda(self._saveData, self.FMT_CSV)) self.saveMenu.addAction(self.saveCSV) # Assemble