Fri, 24 Sep 2021 16:34:15 +0200
Extended the Quick Commit (and other commit alike dialogs) to respect the project spell check language settings.
--- a/eric7/EricWidgets/EricSpellCheckedTextEdit.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/EricWidgets/EricSpellCheckedTextEdit.py Fri Sep 24 16:34:15 2021 +0200 @@ -324,11 +324,7 @@ @type QAction """ language = act.data() - self.__highlighter.setDict(enchant.Dict( - language, - SpellCheckMixin.DefaultUserWordList, - SpellCheckMixin.DefaultUserExceptionList - )) + self.setLanguage(language) @pyqtSlot(QAction) def __setFormat(self, act): @@ -372,6 +368,46 @@ """ self.__highlighter.setDict(spellDict) + @pyqtSlot(str) + def setLanguage(self, language): + """ + Public slot to set the spellchecker language. + + @param language language to be set + @type str + """ + epwl = self.dict().pwl + pwl = ( + epwl.provider.file + if isinstance(epwl, enchant.Dict) else + None + ) + + epel = self.dict().pel + pel = ( + epel.provider.file + if isinstance(epel, enchant.Dict) else + None + ) + self.setLanguageWithPWL(language, pwl, pel) + + @pyqtSlot(str, str, str) + def setLanguageWithPWL(self, language, pwl, pel): + """ + Public slot to set the spellchecker language and associated user + word lists. + + @param language language to be set + @type str + @param pwl file name of the personal word list + @type str + @param pel file name of the personal exclude list + @type str + """ + self.__highlighter.setDict( + enchant.DictWithPWL(language, pwl, pel) + ) + @classmethod def setDefaultLanguage(cls, language, pwl=None, pel=None): """
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitCommitDialog.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsGit/GitCommitDialog.py Fri Sep 24 16:34:15 2021 +0200 @@ -10,6 +10,8 @@ from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt from PyQt6.QtWidgets import QWidget, QDialogButtonBox +from EricWidgets.EricApplication import ericApp + from .Ui_GitCommitDialog import Ui_GitCommitDialog @@ -38,7 +40,12 @@ self.__vcs = vcs + project = ericApp().getObject("Project") + pwl, pel = project.getProjectDictionaries() + language = project.getProjectSpellLanguage() + self.logEdit.setLanguageWithPWL(language, pwl or None, pel or None) self.logEdit.setPlainText(msg) + self.amendCheckBox.setChecked(amend) self.stagedCheckBox.setChecked(not commitAll)
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitMergeDialog.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsGit/GitMergeDialog.py Fri Sep 24 16:34:15 2021 +0200 @@ -10,6 +10,8 @@ from PyQt6.QtCore import pyqtSlot from PyQt6.QtWidgets import QDialog, QDialogButtonBox +from EricWidgets.EricApplication import ericApp + from .Ui_GitMergeDialog import Ui_GitMergeDialog @@ -34,6 +36,12 @@ self.buttonBox.button( QDialogButtonBox.StandardButton.Ok).setEnabled(False) + project = ericApp().getObject("Project") + pwl, pel = project.getProjectDictionaries() + language = project.getProjectSpellLanguage() + self.commitMessageEdit.setLanguageWithPWL( + language, pwl or None, pel or None) + self.__currentBranch = currentBranch self.tagCombo.addItems(sorted(tagsList))
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/CloseheadExtension/HgCloseHeadSelectionDialog.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsMercurial/CloseheadExtension/HgCloseHeadSelectionDialog.py Fri Sep 24 16:34:15 2021 +0200 @@ -10,6 +10,8 @@ from PyQt6.QtCore import pyqtSlot from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem +from EricWidgets.EricApplication import ericApp + from .Ui_HgCloseHeadSelectionDialog import Ui_HgCloseHeadSelectionDialog @@ -34,6 +36,11 @@ self.buttonBox.button( QDialogButtonBox.StandardButton.Ok).setEnabled(False) + project = ericApp().getObject("Project") + pwl, pel = project.getProjectDictionaries() + language = project.getProjectSpellLanguage() + self.logEdit.setLanguageWithPWL(language, pwl or None, pel or None) + heads = self.__getHeads(vcs) for revision, branch in heads: QTreeWidgetItem(self.headsList, [revision, branch])
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/GpgExtension/HgGpgSignDialog.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsMercurial/GpgExtension/HgGpgSignDialog.py Fri Sep 24 16:34:15 2021 +0200 @@ -10,6 +10,8 @@ from PyQt6.QtCore import pyqtSlot from PyQt6.QtWidgets import QDialog, QDialogButtonBox +from EricWidgets.EricApplication import ericApp + from .Ui_HgGpgSignDialog import Ui_HgGpgSignDialog @@ -33,6 +35,12 @@ self.buttonBox.button( QDialogButtonBox.StandardButton.Ok).setEnabled(False) + project = ericApp().getObject("Project") + pwl, pel = project.getProjectDictionaries() + language = project.getProjectSpellLanguage() + self.messageEdit.setLanguageWithPWL( + language, pwl or None, pel or None) + self.tagCombo.addItems(sorted(tagsList)) self.branchCombo.addItems(["default"] + sorted(branchesList)) if bookmarksList is not None:
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgBackoutDialog.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgBackoutDialog.py Fri Sep 24 16:34:15 2021 +0200 @@ -10,6 +10,8 @@ from PyQt6.QtCore import pyqtSlot, QDateTime from PyQt6.QtWidgets import QDialog, QDialogButtonBox +from EricWidgets.EricApplication import ericApp + from .Ui_HgBackoutDialog import Ui_HgBackoutDialog @@ -33,6 +35,12 @@ self.buttonBox.button( QDialogButtonBox.StandardButton.Ok).setEnabled(False) + project = ericApp().getObject("Project") + pwl, pel = project.getProjectDictionaries() + language = project.getProjectSpellLanguage() + self.messageEdit.setLanguageWithPWL( + language, pwl or None, pel or None) + self.tagCombo.addItems(sorted(tagsList)) self.branchCombo.addItems(["default"] + sorted(branchesList)) if bookmarksList is not None:
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgCommitDialog.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgCommitDialog.py Fri Sep 24 16:34:15 2021 +0200 @@ -10,6 +10,8 @@ from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QDateTime from PyQt6.QtWidgets import QWidget, QDialogButtonBox +from EricWidgets.EricApplication import ericApp + from .Ui_HgCommitDialog import Ui_HgCommitDialog @@ -38,6 +40,10 @@ self.__vcs = vcs + project = ericApp().getObject("Project") + pwl, pel = project.getProjectDictionaries() + language = project.getProjectSpellLanguage() + self.logEdit.setLanguageWithPWL(language, pwl or None, pel or None) self.logEdit.setPlainText(msg) if mq or merge:
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgImportDialog.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgImportDialog.py Fri Sep 24 16:34:15 2021 +0200 @@ -10,6 +10,7 @@ from PyQt6.QtCore import pyqtSlot, QDateTime from PyQt6.QtWidgets import QDialog, QDialogButtonBox +from EricWidgets.EricApplication import ericApp from EricWidgets.EricPathPicker import EricPathPickerModes from .Ui_HgImportDialog import Ui_HgImportDialog @@ -40,6 +41,12 @@ self.buttonBox.button( QDialogButtonBox.StandardButton.Ok).setEnabled(False) + project = ericApp().getObject("Project") + pwl, pel = project.getProjectDictionaries() + language = project.getProjectSpellLanguage() + self.messageEdit.setLanguageWithPWL( + language, pwl or None, pel or None) + self.__initDateTime = QDateTime.currentDateTime() self.dateEdit.setDateTime(self.__initDateTime)
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditCommitEditor.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditCommitEditor.py Fri Sep 24 16:34:15 2021 +0200 @@ -10,6 +10,7 @@ from PyQt6.QtCore import pyqtSlot, QCoreApplication from PyQt6.QtWidgets import QDialog +from EricWidgets.EricApplication import ericApp from EricWidgets import EricMessageBox from Ui_HgHisteditCommitEditor import Ui_HgHisteditCommitEditor @@ -34,6 +35,12 @@ super().__init__(parent) self.setupUi(self) + project = ericApp().getObject("Project") + pwl, pel = project.getProjectDictionaries() + language = project.getProjectSpellLanguage() + self.messageEdit.setLanguageWithPWL( + language, pwl or None, pel or None) + self.__fileName = fileName self.__readFile()
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesFoldDialog.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesFoldDialog.py Fri Sep 24 16:34:15 2021 +0200 @@ -10,6 +10,8 @@ from PyQt6.QtCore import pyqtSlot, Qt from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem +from EricWidgets.EricApplication import ericApp + from .Ui_HgQueuesFoldDialog import Ui_HgQueuesFoldDialog import UI.PixmapCache @@ -34,6 +36,12 @@ self.upButton.setIcon(UI.PixmapCache.getIcon("1uparrow")) self.downButton.setIcon(UI.PixmapCache.getIcon("1downarrow")) + project = ericApp().getObject("Project") + pwl, pel = project.getProjectDictionaries() + language = project.getProjectSpellLanguage() + self.messageEdit.setLanguageWithPWL( + language, pwl or None, pel or None) + for patch in patchesList: name, summary = patch.split("@@") QTreeWidgetItem(self.sourcePatches, [name, summary])
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesNewPatchDialog.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesNewPatchDialog.py Fri Sep 24 16:34:15 2021 +0200 @@ -10,6 +10,8 @@ from PyQt6.QtCore import pyqtSlot, QDateTime from PyQt6.QtWidgets import QDialog, QDialogButtonBox +from EricWidgets.EricApplication import ericApp + from .Ui_HgQueuesNewPatchDialog import Ui_HgQueuesNewPatchDialog @@ -42,6 +44,11 @@ self.nameLabel.hide() self.nameEdit.hide() + project = ericApp().getObject("Project") + pwl, pel = project.getProjectDictionaries() + language = project.getProjectSpellLanguage() + self.messageEdit.setLanguageWithPWL( + language, pwl or None, pel or None) if message: self.messageEdit.setPlainText(message)
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnCommitDialog.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnCommitDialog.py Fri Sep 24 16:34:15 2021 +0200 @@ -12,6 +12,8 @@ from PyQt6.QtCore import pyqtSignal, Qt, pyqtSlot from PyQt6.QtWidgets import QWidget, QDialogButtonBox +from EricWidgets.EricApplication import ericApp + from .Ui_SvnCommitDialog import Ui_SvnCommitDialog @@ -37,6 +39,11 @@ self.__vcs = vcs + project = ericApp().getObject("Project") + pwl, pel = project.getProjectDictionaries() + language = project.getProjectSpellLanguage() + self.logEdit.setLanguageWithPWL(language, pwl or None, pel or None) + if pysvn.svn_version < (1, 5, 0) or pysvn.version < (1, 6, 0): self.changeListsGroup.hide() else:
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnCommitDialog.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnCommitDialog.py Fri Sep 24 16:34:15 2021 +0200 @@ -10,6 +10,8 @@ from PyQt6.QtCore import pyqtSignal, Qt, pyqtSlot from PyQt6.QtWidgets import QWidget, QDialogButtonBox +from EricWidgets.EricApplication import ericApp + from .Ui_SvnCommitDialog import Ui_SvnCommitDialog @@ -35,6 +37,11 @@ self.__vcs = vcs + project = ericApp().getObject("Project") + pwl, pel = project.getProjectDictionaries() + language = project.getProjectSpellLanguage() + self.logEdit.setLanguageWithPWL(language, pwl or None, pel or None) + if vcs.version < (1, 5, 0): self.changeListsGroup.hide() else:
--- a/eric7/VCS/StatusWidget.py Fri Sep 24 16:30:28 2021 +0200 +++ b/eric7/VCS/StatusWidget.py Fri Sep 24 16:34:15 2021 +0200 @@ -198,6 +198,8 @@ self.__project.projectOpened.connect(self.__projectOpened) self.__project.projectClosed.connect(self.__projectClosed) + self.__project.projectPropertiesChanged.connect( + self.__setProjectSpellCheckData) self.__project.vcsCommitted.connect(self.__committed) self.__project.vcsStatusMonitorInfo.connect(self.__setInfoText) self.__project.vcsStatusMonitorAllData.connect( @@ -291,6 +293,18 @@ Private slot to handle the opening of a project. """ self.__reloadButton.setEnabled(True) + self.__setProjectSpellCheckData() + + @pyqtSlot() + def __setProjectSpellCheckData(self): + """ + Private slot to set the spell check properties of the + quick commit area. + """ + pwl, pel = self.__project.getProjectDictionaries() + language = self.__project.getProjectSpellLanguage() + self.__quickCommitEdit.setLanguageWithPWL( + language, pwl or None, pel or None) @pyqtSlot() def __projectClosed(self): @@ -371,10 +385,11 @@ @type dict """ # step 1: remember all currently checked entries - wasUnpopulated = self.__statusList.count() == 0 checkedEntries = [itm.text() for itm in self.__getCommitableItems()] selectedEntries = [itm.text() for itm in self.__statusList.selectedItems()] + knownEntries = [self.__statusList.item(row).text() + for row in range(self.__statusList.count())] # step 2: clear the list and re-populate it with new data self.__statusList.clear() @@ -391,7 +406,7 @@ if status in "AMOR": itm.setFlags( itm.flags() | Qt.ItemFlag.ItemIsUserCheckable) - if wasUnpopulated or name in checkedEntries: + if name in checkedEntries or name not in knownEntries: itm.setCheckState(Qt.CheckState.Checked) else: itm.setCheckState(Qt.CheckState.Unchecked)