]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt2/QThesaurusDialog.C
Some string(widget->text()) fixes. Weirdness
[lyx.git] / src / frontends / qt2 / QThesaurusDialog.C
index 516cdc263d299eb16e0f3440bf5b870bb310a632..a4c195f2482d2b74aeb00d02f0976413eeba8074 100644 (file)
@@ -1,25 +1,31 @@
 /**
  * \file QThesaurusDialog.C
- * Copyright 2001 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- * \author John Levon <moz@compsoc.man.ac.uk>
+ * \author John Levon
+ *
+ * Full author contact details are available in file CREDITS
  */
 
 #include <config.h>
-#include <vector>
 
-#include "LString.h" 
-#include "ControlThesaurus.h" 
+#ifdef __GNUG__
+#pragma implementation
+#endif
+
+#include "LString.h"
+
+#include "ControlThesaurus.h"
 #include "QThesaurusDialog.h"
-#include "Dialogs.h"
 #include "QThesaurus.h"
 
-#include <qwidget.h>
 #include <qpushbutton.h>
-#include <qlistbox.h>
-#include <qlineedit.h> 
+#include <qlistview.h>
+#include <qlineedit.h>
+
+#include <vector>
+
 
 QThesaurusDialog::QThesaurusDialog(QThesaurus * form)
        : QThesaurusDialogBase(0, 0, false, 0),
@@ -29,13 +35,13 @@ QThesaurusDialog::QThesaurusDialog(QThesaurus * form)
                form, SLOT(slotClose()));
 }
 
+
 void QThesaurusDialog::change_adaptor()
 {
        form_->changed();
 }
 
+
 void QThesaurusDialog::closeEvent(QCloseEvent * e)
 {
        form_->slotWMHide();
@@ -48,58 +54,56 @@ void QThesaurusDialog::entryChanged()
        updateLists();
 }
 
+
 void QThesaurusDialog::replaceClicked()
 {
        form_->replace();
 }
 
-void QThesaurusDialog::selectionChanged(const QString & str)
+
+void QThesaurusDialog::selectionChanged(QListViewItem * item)
 {
        if (form_->readOnly())
                return;
-       string const entry(str.latin1());
+
+       string const entry(item->text(0).latin1());
        replaceED->setText(entry.c_str());
        replacePB->setEnabled(true);
        form_->changed();
 }
 
-void QThesaurusDialog::selectionClicked(const QString & str)
+
+void QThesaurusDialog::selectionClicked(QListViewItem * item)
 {
-       selectionChanged(str);
-       entryED->setText(str);
+       entryED->setText(item->text(0));
+       selectionChanged(item);
        updateLists();
 }
 
+
 void QThesaurusDialog::updateLists()
 {
-       ControlThesaurus & control(form_->controller());
-       string const entry(entryED->text().latin1());
+       meaningsLV->clear();
 
        std::vector<string> matches;
 
-       matches = control.getNouns(entry);
-       for (std::vector<string>::const_iterator cit = matches.begin();
-               cit != matches.end(); ++cit)
-               nounsLB->insertItem(cit->c_str());
-       matches = control.getVerbs(entry);
-       for (std::vector<string>::const_iterator cit = matches.begin();
-               cit != matches.end(); ++cit)
-               verbsLB->insertItem(cit->c_str());
-       matches = control.getAdjectives(entry);
-       for (std::vector<string>::const_iterator cit = matches.begin();
-               cit != matches.end(); ++cit)
-               adjectivesLB->insertItem(cit->c_str());
-       matches = control.getAdverbs(entry);
-       for (std::vector<string>::const_iterator cit = matches.begin();
-               cit != matches.end(); ++cit)
-               adverbsLB->insertItem(cit->c_str());
-       matches = control.getOthers(entry);
-       for (std::vector<string>::const_iterator cit = matches.begin();
-               cit != matches.end(); ++cit)
-               otherLB->insertItem(cit->c_str());
+       meaningsLV->setUpdatesEnabled(false);
+
+       Thesaurus::Meanings meanings = form_->controller().getMeanings(entryED->text().latin1());
+
+       for (Thesaurus::Meanings::const_iterator cit = meanings.begin();
+               cit != meanings.end(); ++cit) {
+               QListViewItem * i = new QListViewItem(meaningsLV);
+               i->setText(0, cit->first.c_str());
+               i->setOpen(true);
+               for (std::vector<string>::const_iterator cit2 = cit->second.begin();
+                       cit2 != cit->second.end(); ++cit2) {
+                               QListViewItem * i2 = new QListViewItem(i);
+                               i2->setText(0, cit2->c_str());
+                               i2->setOpen(true);
+                       }
+       }
+
+       meaningsLV->setUpdatesEnabled(true);
+       meaningsLV->update();
 }