SpellCheck::SpellCheck() : m_hunspell(0), m_codec(0), m_wordchars("") { // There is a considerable lag involved in loading the Spellcheck dictionaries QApplication::setOverrideCursor(Qt::WaitCursor); loadDictionaryNames(); // Create the user dictionary word list directiory if necessary. const QString user_directory = userDictionaryDirectory(); QDir userDir(user_directory); if (!userDir.exists()) { userDir.mkpath(user_directory); } // Create the configured file if necessary. QFile userFile(currentUserDictionaryFile()); if (!userFile.exists()) { if (userFile.open(QIODevice::WriteOnly)) { userFile.close(); } } // Load the dictionary the user has selected if one was saved. SettingsStore settings; setDictionary(settings.dictionary()); QApplication::restoreOverrideCursor(); }
PreferencesWidget::ResultAction SpellCheckWidget::saveSettings() { if (!m_isDirty) { return PreferencesWidget::ResultAction_None; } // Save the current dictionary's word list if (ui.userDictList->selectionModel()->hasSelection()) { int row = ui.userDictList->selectionModel()->selectedIndexes().first().row(); QStandardItem *item = m_Model.item(row, 1); QString name = item->text(); saveUserDictionaryWordList(name); } // Save dictionary information SettingsStore settings; settings.setEnabledUserDictionaries(EnabledDictionaries()); settings.setDefaultUserDictionary(ui.defaultUserDictionary->text()); settings.setDictionary(ui.dictionaries->itemData(ui.dictionaries->currentIndex()).toString()); settings.setSpellCheck(ui.HighlightMisspelled->checkState() == Qt::Checked); SpellCheck *sc = SpellCheck::instance(); sc->setDictionary(settings.dictionary(), true); return PreferencesWidget::ResultAction_RefreshSpelling; }