Added combo box for spell tools

This commit is contained in:
Veronica K. B. Olsen
2019-11-06 20:47:35 +01:00
parent f5af3fb293
commit 334903daa9
3 changed files with 41 additions and 11 deletions
+3 -2
View File
@@ -148,7 +148,8 @@ class Config:
self.osUnknown = True self.osUnknown = True
# Packages # Packages
self.hasEnchant = False self.hasEnchant = False
self.hasSymSpell = False
return return
@@ -196,7 +197,7 @@ class Config:
self._checkOptionalPackages() self._checkOptionalPackages()
if self.spellTool is None: if self.spellTool is None:
self.spellTool = "simple" self.spellTool = "internal"
if self.spellLanguage is None: if self.spellLanguage is None:
self.spellLanguage = "en" self.spellLanguage = "en"
+34 -9
View File
@@ -16,8 +16,10 @@ import nw
from os import path from os import path
from PyQt5.QtCore import Qt, QSize from PyQt5.QtCore import Qt, QSize
from PyQt5.QtGui import QIcon, QPixmap, QColor, QBrush, QStandardItemModel, QFont
from PyQt5.QtSvg import QSvgWidget from PyQt5.QtSvg import QSvgWidget
from PyQt5.QtGui import (
QIcon, QPixmap, QColor, QBrush, QStandardItemModel, QFont
)
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
QDialog, QHBoxLayout, QVBoxLayout, QFormLayout, QLineEdit, QPlainTextEdit, QDialog, QHBoxLayout, QVBoxLayout, QFormLayout, QLineEdit, QPlainTextEdit,
QLabel, QWidget, QTabWidget, QDialogButtonBox, QSpinBox, QGroupBox, QLabel, QWidget, QTabWidget, QDialogButtonBox, QSpinBox, QGroupBox,
@@ -25,6 +27,7 @@ from PyQt5.QtWidgets import (
QFileDialog QFileDialog
) )
from nw.tools import NWSpellCheck
from nw.constants import nwAlert, nwQuotes from nw.constants import nwAlert, nwQuotes
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -155,6 +158,17 @@ class GuiConfigEditGeneral(QWidget):
self.spellLangForm = QGridLayout(self) self.spellLangForm = QGridLayout(self)
self.spellLang.setLayout(self.spellLangForm) self.spellLang.setLayout(self.spellLangForm)
self.spellToolList = QComboBox(self)
self.spellToolList.addItem("Internal (difflib)", NWSpellCheck.SP_INTERNAL)
self.spellToolList.addItem("Spell Enchant (pyenchant)", NWSpellCheck.SP_ENCHANT)
self.spellToolList.addItem("SymSpell (symspellpy)", NWSpellCheck.SP_SYMSPELL)
theModel = self.spellToolList.model()
idEnchant = self.spellToolList.findData(NWSpellCheck.SP_ENCHANT)
idSymSpell = self.spellToolList.findData(NWSpellCheck.SP_SYMSPELL)
theModel.item(idEnchant).setEnabled(self.mainConf.hasEnchant)
theModel.item(idSymSpell).setEnabled(self.mainConf.hasSymSpell)
self.spellLangList = QComboBox(self) self.spellLangList = QComboBox(self)
for spTag, spName in self.theParent.docEditor.theDict.listDictionaries(): for spTag, spName in self.theParent.docEditor.theDict.listDictionaries():
self.spellLangList.addItem(spName, spTag) self.spellLangList.addItem(spName, spTag)
@@ -162,8 +176,10 @@ class GuiConfigEditGeneral(QWidget):
if spellIdx != -1: if spellIdx != -1:
self.spellLangList.setCurrentIndex(spellIdx) self.spellLangList.setCurrentIndex(spellIdx)
self.spellLangForm.addWidget(QLabel("Language"), 0, 0) self.spellLangForm.addWidget(QLabel("Provider"), 0, 0)
self.spellLangForm.addWidget(self.spellLangList, 0, 1) self.spellLangForm.addWidget(self.spellToolList, 0, 1)
self.spellLangForm.addWidget(QLabel("Language"), 1, 0)
self.spellLangForm.addWidget(self.spellLangList, 1, 1)
self.spellLangForm.setColumnStretch(2, 1) self.spellLangForm.setColumnStretch(2, 1)
# AutoSave # AutoSave
@@ -241,6 +257,7 @@ class GuiConfigEditGeneral(QWidget):
guiTheme = self.guiLookTheme.currentData() guiTheme = self.guiLookTheme.currentData()
guiSyntax = self.guiLookSyntax.currentData() guiSyntax = self.guiLookSyntax.currentData()
spellTool = self.spellToolList.currentData()
spellLanguage = self.spellLangList.currentData() spellLanguage = self.spellLangList.currentData()
autoSaveDoc = self.autoSaveDoc.value() autoSaveDoc = self.autoSaveDoc.value()
autoSaveProj = self.autoSaveProj.value() autoSaveProj = self.autoSaveProj.value()
@@ -253,6 +270,7 @@ class GuiConfigEditGeneral(QWidget):
self.mainConf.guiTheme = guiTheme self.mainConf.guiTheme = guiTheme
self.mainConf.guiSyntax = guiSyntax self.mainConf.guiSyntax = guiSyntax
self.mainConf.spellTool = spellTool
self.mainConf.spellLanguage = spellLanguage self.mainConf.spellLanguage = spellLanguage
self.mainConf.autoSaveDoc = autoSaveDoc self.mainConf.autoSaveDoc = autoSaveDoc
self.mainConf.autoSaveProj = autoSaveProj self.mainConf.autoSaveProj = autoSaveProj
@@ -286,6 +304,13 @@ class GuiConfigEditGeneral(QWidget):
return False return False
def _disableComboItem(self, theList, theValue):
theIdx = theList.findData(theValue)
theModel = theList.model()
anItem = theModel.item(1)
anItem.setFlags(anItem.flags() ^ Qt.ItemIsEnabled)
return theModel
# END Class GuiConfigEditGeneral # END Class GuiConfigEditGeneral
class GuiConfigEditEditor(QWidget): class GuiConfigEditEditor(QWidget):
@@ -536,12 +561,12 @@ class GuiConfigEditEditor(QWidget):
self.mainConf.textMargin = textMargin self.mainConf.textMargin = textMargin
self.mainConf.tabWidth = tabWidth self.mainConf.tabWidth = tabWidth
autoSelect = self.autoSelect.isChecked() autoSelect = self.autoSelect.isChecked()
doReplace = self.autoReplaceMain.isChecked() doReplace = self.autoReplaceMain.isChecked()
doReplaceSQuote = self.autoReplaceSQ.isChecked() doReplaceSQuote = self.autoReplaceSQ.isChecked()
doReplaceDQuote = self.autoReplaceDQ.isChecked() doReplaceDQuote = self.autoReplaceDQ.isChecked()
doReplaceDash = self.autoReplaceDash.isChecked() doReplaceDash = self.autoReplaceDash.isChecked()
doReplaceDots = self.autoReplaceDash.isChecked() doReplaceDots = self.autoReplaceDash.isChecked()
self.mainConf.autoSelect = autoSelect self.mainConf.autoSelect = autoSelect
self.mainConf.doReplace = doReplace self.mainConf.doReplace = doReplace
+4
View File
@@ -17,6 +17,10 @@ logger = logging.getLogger(__name__)
class NWSpellCheck(): class NWSpellCheck():
SP_INTERNAL = "internal"
SP_ENCHANT = "enchant"
SP_SYMSPELL = "symspell"
theDict = None theDict = None
def __init__(self): def __init__(self):