]> git.lyx.org Git - features.git/commitdiff
#7430 add check for first document language for the spell checker and initialize...
authorStephan Witt <switt@lyx.org>
Wed, 6 Apr 2011 18:26:50 +0000 (18:26 +0000)
committerStephan Witt <switt@lyx.org>
Wed, 6 Apr 2011 18:26:50 +0000 (18:26 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38294 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/GuiSpellchecker.cpp

index a7147ce56215cc83ff0cebcf0356cf658568e127..232af3712dea1b70f0e37ef8559eb2aa34abe04f 100644 (file)
@@ -70,6 +70,8 @@ struct SpellcheckerWidget::Private
        ///
        bool continueFromBeginning();
        ///
+       void setLanguage(Language const * lang);
+       ///
        Ui::SpellcheckerUi ui;
        ///
        SpellcheckerWidget * p;
@@ -159,8 +161,16 @@ void SpellcheckerWidget::updateView()
 {
        BufferView * bv = d->gv_->documentBufferView();
        setEnabled(bv != 0);
-       if (bv && hasFocus())
+       if (bv && hasFocus()) {
+
+               BufferView * bv = d->gv_->documentBufferView();
+               std::set<Language const *> languages = 
+               bv->buffer().masterBuffer()->getLanguages();
+               if (!languages.empty())
+                       d->setLanguage(*languages.begin());
+               
                d->check();
+       }
 }
 
 
@@ -194,8 +204,8 @@ void SpellcheckerWidget::Private::forward()
                dispatch(FuncRequest(LFUN_CHAR_FORWARD));
        }
 }
-       
-       
+
+
 void SpellcheckerWidget::on_languageCO_activated(int index)
 {
        string const lang =
@@ -288,6 +298,14 @@ void SpellcheckerWidget::Private::updateSuggestions(docstring_list & words)
 }
 
 
+void SpellcheckerWidget::Private::setLanguage(Language const * lang)
+{
+       int const pos = ui.languageCO->findData(toqstr(lang->lang()));
+       if (pos != -1)
+               ui.languageCO->setCurrentIndex(pos);
+}
+
+
 void SpellcheckerWidget::Private::check()
 {
        BufferView * bv = gv_->documentBufferView();
@@ -322,9 +340,7 @@ void SpellcheckerWidget::Private::check()
        // set suggestions
        updateSuggestions(suggestions);
        // set language
-       int const pos = ui.languageCO->findData(toqstr(word_lang.lang()->lang()));
-       if (pos != -1)
-               ui.languageCO->setCurrentIndex(pos);
+       setLanguage(word_lang.lang());
 
        // FIXME LFUN
        // If we used a LFUN, dispatch would do all of this for us