X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiSpellchecker.cpp;h=2f8d7cb3d9882ff04aa37c780ac3b0fa9c7cc630;hb=50de85396c785a454fe07b77d815c57f3e462282;hp=2e83dba9d05257de1e9b841be735b1588afa14c7;hpb=9a95d2a936748c057db94a3083c4b9e6587eea0b;p=lyx.git diff --git a/src/frontends/qt4/GuiSpellchecker.cpp b/src/frontends/qt4/GuiSpellchecker.cpp index 2e83dba9d0..2f8d7cb3d9 100644 --- a/src/frontends/qt4/GuiSpellchecker.cpp +++ b/src/frontends/qt4/GuiSpellchecker.cpp @@ -11,6 +11,8 @@ #include #include "GuiSpellchecker.h" + +#include "ControlSpellchecker.h" #include "qt_helpers.h" #include @@ -29,19 +31,14 @@ using std::string; namespace lyx { namespace frontend { -///////////////////////////////////////////////////////////////////// -// -// GuiSpellCheckerDialog -// -///////////////////////////////////////////////////////////////////// - - -GuiSpellcheckerDialog::GuiSpellcheckerDialog(GuiSpellchecker * form) - : form_(form) +GuiSpellcheckerDialog::GuiSpellcheckerDialog(LyXView & lv) + : GuiDialog(lv, "spellchecker") { setupUi(this); + setViewTitle(_("Spellchecker")); + setController(new ControlSpellchecker(*this)); - connect(closePB, SIGNAL(clicked()), form, SLOT(slotClose())); + connect(closePB, SIGNAL(clicked()), this, SLOT(slotClose())); connect(replaceCO, SIGNAL(highlighted(const QString &)), this, SLOT(replaceChanged(const QString &))); @@ -57,29 +54,44 @@ GuiSpellcheckerDialog::GuiSpellcheckerDialog(GuiSpellchecker * form) this, SLOT(replaceClicked() ) ); connect(suggestionsLW, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(suggestionChanged(QListWidgetItem*))); + + wordED->setReadOnly(true); + + bc().setPolicy(ButtonPolicy::NoRepeatedApplyReadOnlyPolicy); + bc().setCancel(closePB); +} + + +ControlSpellchecker & GuiSpellcheckerDialog::controller() +{ + return static_cast(GuiDialog::controller()); } void GuiSpellcheckerDialog::acceptClicked() { - form_->accept(); + accept(); } + void GuiSpellcheckerDialog::addClicked() { - form_->add(); + add(); } + void GuiSpellcheckerDialog::replaceClicked() { - form_->replace(); + replace(); } + void GuiSpellcheckerDialog::ignoreClicked() { - form_->ignore(); + ignore(); } + void GuiSpellcheckerDialog::suggestionChanged(QListWidgetItem * item) { if (replaceCO->count() != 0) @@ -90,6 +102,7 @@ void GuiSpellcheckerDialog::suggestionChanged(QListWidgetItem * item) replaceCO->setCurrentIndex(0); } + void GuiSpellcheckerDialog::replaceChanged(const QString & str) { if (suggestionsLW->currentItem()->text() == str) @@ -106,101 +119,72 @@ void GuiSpellcheckerDialog::replaceChanged(const QString & str) void GuiSpellcheckerDialog::closeEvent(QCloseEvent * e) { - form_->slotWMHide(); + slotClose(); e->accept(); } void GuiSpellcheckerDialog::reject() { - form_->slotWMHide(); + slotClose(); QDialog::reject(); } - -///////////////////////////////////////////////////////////////////// -// -// GuiSpellChecker -// -///////////////////////////////////////////////////////////////////// - - -GuiSpellchecker::GuiSpellchecker(GuiDialog & parent) - : GuiView(parent, _("Spellchecker")) -{} - - -void GuiSpellchecker::build_dialog() -{ - dialog_.reset(new GuiSpellcheckerDialog(this)); - - bc().setCancel(dialog_->closePB); - dialog_->wordED->setReadOnly(true); -} - - -void GuiSpellchecker::update_contents() +void GuiSpellcheckerDialog::updateContents() { if (isVisibleView() || controller().exitEarly()) controller().check(); } -void GuiSpellchecker::accept() +void GuiSpellcheckerDialog::accept() { controller().ignoreAll(); } -void GuiSpellchecker::add() +void GuiSpellcheckerDialog::add() { controller().insert(); } -void GuiSpellchecker::ignore() +void GuiSpellcheckerDialog::ignore() { controller().check(); } -void GuiSpellchecker::replace() +void GuiSpellcheckerDialog::replace() { - controller().replace(qstring_to_ucs4(dialog_->replaceCO->currentText())); + controller().replace(qstring_to_ucs4(replaceCO->currentText())); } -void GuiSpellchecker::partialUpdate(int s) +void GuiSpellcheckerDialog::partialUpdate(int state) { - ControlSpellchecker::State const state = - static_cast(s); - switch (state) { + case ControlSpellchecker::SPELL_PROGRESSED: + spellcheckPR->setValue(controller().getProgress()); + break; - case ControlSpellchecker::SPELL_PROGRESSED: - dialog_->spellcheckPR->setValue(controller().getProgress()); - break; + case ControlSpellchecker::SPELL_FOUND_WORD: { + wordED->setText(toqstr(controller().getWord())); + suggestionsLW->clear(); - case ControlSpellchecker::SPELL_FOUND_WORD: { - dialog_->wordED->setText(toqstr(controller().getWord())); - dialog_->suggestionsLW->clear(); + docstring w; + while (!(w = controller().getSuggestion()).empty()) + suggestionsLW->addItem(toqstr(w)); - docstring w; - while (!(w = controller().getSuggestion()).empty()) { - dialog_->suggestionsLW->addItem(toqstr(w)); - } + if (suggestionsLW->count() == 0) + suggestionChanged(new QListWidgetItem(wordED->text())); + else + suggestionChanged(suggestionsLW->item(0)); - if (dialog_->suggestionsLW->count() == 0) { - dialog_->suggestionChanged(new QListWidgetItem(dialog_->wordED->text())); - } else { - dialog_->suggestionChanged(dialog_->suggestionsLW->item(0)); + suggestionsLW->setCurrentRow(0); + break; } - - dialog_->suggestionsLW->setCurrentRow(0); - } - break; - } }