#include "FuncRequest.h"
#include "Language.h"
#include "lyxfind.h"
+#include "WordLangTuple.h"
#include "support/debug.h"
#include "support/gettext.h"
#include "support/lstrings.h"
#include <QAbstractItemModel>
+#include <QCompleter>
#include <QHeaderView>
#include <QLineEdit>
#include <QPushButton>
languageCO->setModel(language_model);
languageCO->setModelColumn(2);
+ //bug #8138
+ if (entryCO->completer())
+ entryCO->completer()->setCompletionMode(QCompleter::PopupCompletion);
+
bc().setCancel(closePB);
bc().setApply(replacePB);
bc().addReadOnly(replaceED);
bc().setPolicy(ButtonPolicy::OkApplyCancelReadOnlyPolicy);
}
-
+void GuiThesaurus::checkStatus()
+{
+ if (!isBufferAvailable()) {
+ // deactivate the thesaurus if we have no buffer
+ enableView(false);
+ return;
+ }
+ updateView();
+}
+
void GuiThesaurus::change_adaptor()
{
changed();
if (pos > -1)
item = rex.cap(2).trimmed();
replaceED->setText(item);
- replacePB->setEnabled(true);
+ replacePB->setEnabled(!isBufferReadonly());
changed();
}
void GuiThesaurus::updateLists()
{
meaningsTV->clear();
+
+ if (entryCO->currentText().isEmpty())
+ return;
+
meaningsTV->setUpdatesEnabled(false);
QString const lang = languageCO->itemData(
languageCO->currentIndex()).toString();
- docstring const lang_code =
- from_ascii(lyx::languages.getLanguage(fromqstr(lang))->code());
+ Language * language = const_cast<Language*>(lyx::languages.getLanguage(fromqstr(lang)));
+ docstring const lang_code = from_ascii(language->code());
Thesaurus::Meanings meanings =
- getMeanings(qstring_to_ucs4(entryCO->currentText()), lang_code);
+ getMeanings(WordLangTuple(qstring_to_ucs4(entryCO->currentText()), language));
for (Thesaurus::Meanings::const_iterator cit = meanings.begin();
cit != meanings.end(); ++cit) {
}
meaningsTV->setEnabled(true);
lookupPB->setEnabled(true);
- replaceED->setEnabled(true);
- replacePB->setEnabled(true);
+ bool const readonly = isBufferReadonly();
+ replaceED->setEnabled(!readonly);
+ replacePB->setEnabled(!readonly);
}
if (meanings.empty()) {
}
-Thesaurus::Meanings const & GuiThesaurus::getMeanings(docstring const & str,
- docstring const & lang)
+Thesaurus::Meanings const & GuiThesaurus::getMeanings(WordLangTuple const & wl)
{
- if (str != laststr_)
- meanings_ = thesaurus.lookup(str, lang);
+ if (wl.word() != laststr_)
+ meanings_ = thesaurus.lookup(wl);
return meanings_;
}