On 21/03/2011 00:55, Abdelrazak Younes wrote:
On 20/03/2011 23:56, Abdelrazak Younes wrote:
On 20/03/2011 21:38, Pavel Sanda wrote:
Abdelrazak Younes wrote:
Yes, this is normal and due to the minimum height of the two
widgets. But I
cannot figure out how you get the two widget on top of each other.
On my
Windows system with Qr4.7 the 2 dock widgets are arranged in tabs
automatically...
So the fix would be to force this behaviour on all platforms I guess.
maybe its a matter of having qt 4.6 here.
I doubt it. Tabbed dock widget is quite an old Qt feature IIRC.
Anyway, as I said this dialog really need some love... I can give it
some now, do you want it?
Here is an updated patch that removes even more code (like the
completely bogus and uneeded progress bar) and add as a bonus the
ability to restart the spellcheck from the beginning.
Updated patch that disable the widget when there is no open document.
Abdel.
Index: frontends/qt4/GuiSpellchecker.cpp
===================================================================
--- frontends/qt4/GuiSpellchecker.cpp (revision 37976)
+++ frontends/qt4/GuiSpellchecker.cpp (working copy)
@@ -41,8 +41,9 @@
#include "support/lstrings.h"
#include "support/textutils.h"
-#include <QListWidgetItem>
#include <QKeyEvent>
+#include <QListWidgetItem>
+#include <QMessageBox>
#include "SpellChecker.h"
@@ -55,27 +56,32 @@
namespace frontend {
-struct GuiSpellchecker::Private
+struct SpellcheckerWidget::Private
{
- Private() : progress_(0), count_(0), stuck_(false) {}
+ Private(SpellcheckerWidget * parent)
+ : p(parent) {}
+ /// update from controller
+ void updateSuggestions(docstring_list & words);
+ /// move to next position after current word
+ void forward();
+ /// check text until next misspelled/unknown word
+ void check();
+ ///
Ui::SpellcheckerUi ui;
+ ///
+ SpellcheckerWidget * p;
+ ///
+ GuiView * gv_;
/// current word being checked and lang code
WordLangTuple word_;
- /// values for progress
- int total_;
- int progress_;
- /// word count
- int count_;
- /// flag for last move forward success
- bool stuck_;
};
-GuiSpellchecker::GuiSpellchecker(GuiView & lv)
- : DockView(lv, "spellchecker", qt_("Spellchecker"),
- Qt::RightDockWidgetArea), d(new GuiSpellchecker::Private)
+SpellcheckerWidget::SpellcheckerWidget(GuiView * gv, QWidget * parent)
+ : QWidget(parent), d(new Private(this))
{
d->ui.setupUi(this);
+ d->gv_ = gv;
connect(d->ui.suggestionsLW,
SIGNAL(itemDoubleClicked(QListWidgetItem*)),
this, SLOT(on_replacePB_clicked()));
@@ -93,20 +99,14 @@
}
-GuiSpellchecker::~GuiSpellchecker()
+SpellcheckerWidget::~SpellcheckerWidget()
{
delete d;
}
-void GuiSpellchecker::on_closePB_clicked()
+bool SpellcheckerWidget::eventFilter(QObject *obj, QEvent *event)
{
- close();
-}
-
-
-bool GuiSpellchecker::eventFilter(QObject *obj, QEvent *event)
-{
if (obj == d->ui.suggestionsLW && event->type() == QEvent::KeyPress) {
QKeyEvent *e = static_cast<QKeyEvent *> (event);
if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return) {
@@ -126,7 +126,7 @@
}
-void GuiSpellchecker::on_suggestionsLW_itemClicked(QListWidgetItem * item)
+void SpellcheckerWidget::on_suggestionsLW_itemClicked(QListWidgetItem * item)
{
if (d->ui.replaceCO->count() != 0)
d->ui.replaceCO->setItemText(0, item->text());
@@ -137,7 +137,7 @@
}
-void GuiSpellchecker::on_replaceCO_highlighted(const QString & str)
+void SpellcheckerWidget::on_replaceCO_highlighted(const QString & str)
{
QListWidget * lw = d->ui.suggestionsLW;
if (lw->currentItem() && lw->currentItem()->text() == str)
@@ -152,24 +152,26 @@
}
-void GuiSpellchecker::updateView()
+void SpellcheckerWidget::updateView()
{
- if (hasFocus() && d->count_ == 0)
- check();
+ BufferView * bv = d->gv_->documentBufferView();
+ setEnabled(bv != 0);
+ if (bv && hasFocus())
+ d->check();
}
-void GuiSpellchecker::forward()
+void SpellcheckerWidget::Private::forward()
{
- DocIterator from = bufferview()->cursor();
+ BufferView * bv = gv_->documentBufferView();
+ DocIterator from = bv->cursor();
dispatch(FuncRequest(LFUN_ESCAPE));
dispatch(FuncRequest(LFUN_CHAR_FORWARD));
- d->stuck_ = from == bufferview()->cursor();
}
-void GuiSpellchecker::on_languageCO_activated(int index)
+void SpellcheckerWidget::on_languageCO_activated(int index)
{
string const lang =
fromqstr(d->ui.languageCO->itemData(index).toString());
@@ -177,37 +179,37 @@
// nothing changed
return;
dispatch(FuncRequest(LFUN_LANGUAGE, lang));
- check();
+ d->check();
}
-void GuiSpellchecker::on_ignoreAllPB_clicked()
+void SpellcheckerWidget::on_ignoreAllPB_clicked()
{
/// replace all occurrences of word
if (d->word_.lang() && !d->word_.word().empty())
theSpellChecker()->accept(d->word_);
- forward();
- check();
+ d->forward();
+ d->check();
}
-void GuiSpellchecker::on_addPB_clicked()
+void SpellcheckerWidget::on_addPB_clicked()
{
/// insert word in personal dictionary
theSpellChecker()->insert(d->word_);
- forward();
- check();
+ d->forward();
+ d->check();
}
-void GuiSpellchecker::on_ignorePB_clicked()
+void SpellcheckerWidget::on_ignorePB_clicked()
{
- forward();
- check();
+ d->forward();
+ d->check();
}
-void GuiSpellchecker::on_findNextPB_clicked()
+void SpellcheckerWidget::on_findNextPB_clicked()
{
docstring const data = find2string(
qstring_to_ucs4(d->ui.wordED->text()),
@@ -216,7 +218,7 @@
}
-void GuiSpellchecker::on_replacePB_clicked()
+void SpellcheckerWidget::on_replacePB_clicked()
{
docstring const replacement =
qstring_to_ucs4(d->ui.replaceCO->currentText());
docstring const data = replace2string(
@@ -225,149 +227,122 @@
LYXERR(Debug::GUI, "Replace (" << replacement << ")");
dispatch(FuncRequest(LFUN_WORD_REPLACE, data));
- forward();
- check();
+ d->forward();
+ d->check();
}
-void GuiSpellchecker::on_replaceAllPB_clicked()
+void SpellcheckerWidget::on_replaceAllPB_clicked()
{
docstring const data = replace2string(
qstring_to_ucs4(d->ui.replaceCO->currentText()),
qstring_to_ucs4(d->ui.wordED->text()),
true, true, true, true);
dispatch(FuncRequest(LFUN_WORD_REPLACE, data));
- forward();
- check(); // continue spellchecking
+ d->forward();
+ d->check(); // continue spellchecking
}
-void GuiSpellchecker::updateSuggestions(docstring_list & words)
+void SpellcheckerWidget::Private::updateSuggestions(docstring_list & words)
{
- QString const suggestion = toqstr(d->word_.word());
- d->ui.wordED->setText(suggestion);
- QListWidget * lw = d->ui.suggestionsLW;
+ QString const suggestion = toqstr(word_.word());
+ ui.wordED->setText(suggestion);
+ QListWidget * lw = ui.suggestionsLW;
lw->clear();
if (words.empty()) {
- on_suggestionsLW_itemClicked(new QListWidgetItem(suggestion));
+ p->on_suggestionsLW_itemClicked(new
QListWidgetItem(suggestion));
return;
}
for (size_t i = 0; i != words.size(); ++i)
lw->addItem(toqstr(words[i]));
- on_suggestionsLW_itemClicked(lw->item(0));
+ p->on_suggestionsLW_itemClicked(lw->item(0));
lw->setCurrentRow(0);
}
-bool GuiSpellchecker::initialiseParams(string const &)
+void SpellcheckerWidget::Private::check()
{
- LYXERR(Debug::GUI, "Spellchecker::initialiseParams");
-
- if (!theSpellChecker())
- return false;
-
- DocIterator const begin = doc_iterator_begin(&buffer());
- Cursor const & cur = bufferview()->cursor();
- d->progress_ = countWords(begin, cur, false);
- d->total_ = d->progress_ + countWords(cur, doc_iterator_end(&buffer()),
false);
- d->count_ = 0;
- return true;
-}
-
-
-void GuiSpellchecker::check()
-{
- LYXERR(Debug::GUI, "Check the spelling of the words starting at " <<
d->progress_);
-
- // last move forward failed
- if (d->stuck_) {
- d->stuck_ = false;
- showSummary();
+ BufferView * bv = gv_->documentBufferView();
+ if (!bv)
return;
- }
-
- DocIterator from = bufferview()->cursor();
+
+ DocIterator from = bv->cursor();
DocIterator to;
WordLangTuple word_lang;
docstring_list suggestions;
int progress;
try {
- progress = buffer().spellCheck(from, to, word_lang,
suggestions);
+ progress = bv->buffer().spellCheck(from, to, word_lang,
suggestions);
} catch (ExceptionMessage const & message) {
if (message.type_ == WarningException) {
Alert::warning(message.title_, message.details_);
- close();
return;
}
throw message;
}
- d->count_ += progress;
- d->progress_ += progress;
- LYXERR(Debug::GUI, "Found word \"" << word_lang.word() << "\"" <<
- " at position " << d->progress_);
// end of document
- if (from == doc_iterator_end(&buffer())) {
- showSummary();
+ if (from == doc_iterator_end(&bv->buffer())) {
+ QMessageBox::StandardButton const answer =
QMessageBox::question(p,
+ qt_("Spell Checker"),
+ qt_("We reached the end of the document, would you like
to "
+ "continue from the beginning?"),
+ QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
+ if (answer == QMessageBox::Yes) {
+ dispatch(FuncRequest(LFUN_BUFFER_BEGIN));
+ check();
+ }
return;
}
- // current misspelled word has to be counted too.
- ++d->count_;
- ++d->progress_;
+ word_ = word_lang;
- if (!isVisible())
- show();
-
- d->word_ = word_lang;
-
- int const progress_bar = d->total_
- ? int(100.0 * float(d->progress_)/d->total_) : 100;
- LYXERR(Debug::GUI, "Updating spell progress." <<
- " Now we have " << progress_bar << " percent.");
- // set progress bar
- d->ui.spellcheckPR->setValue(progress_bar);
// set suggestions
updateSuggestions(suggestions);
// set language
- int const pos =
d->ui.languageCO->findData(toqstr(word_lang.lang()->lang()));
+ int const pos =
ui.languageCO->findData(toqstr(word_lang.lang()->lang()));
if (pos != -1)
- d->ui.languageCO->setCurrentIndex(pos);
+ ui.languageCO->setCurrentIndex(pos);
// FIXME LFUN
// If we used a LFUN, dispatch would do all of this for us
int const size = to.pos() - from.pos();
- BufferView * bv = const_cast<BufferView *>(bufferview());
bv->putSelectionAt(from, size, false);
- bv->processUpdateFlags(Update::Force | Update::FitCursor);
-
+ bv->processUpdateFlags(Update::Force | Update::FitCursor);
}
-void GuiSpellchecker::showSummary()
+GuiSpellchecker::GuiSpellchecker(GuiView & parent,
+ Qt::DockWidgetArea area, Qt::WindowFlags flags)
+ : DockView(parent, "spellchecker", qt_("Spellchecker"),
+ area, flags)
{
- if (d->count_ == 0) {
- close();
- return;
- }
+ widget_ = new SpellcheckerWidget(&parent);
+ setWidget(widget_);
+ setFocusProxy(widget_);
+}
- docstring message;
- if (d->count_ != 1)
- message = bformat(_("%1$d words checked."), d->count_);
- else
- message = _("One word checked.");
- close();
- Alert::information(_("Spelling check completed"), message);
+GuiSpellchecker::~GuiSpellchecker()
+{
+ setFocusProxy(0);
+ delete widget_;
}
+void GuiSpellchecker::updateView()
+{
+ widget_->updateView();
+}
+
+
Dialog * createGuiSpellchecker(GuiView & lv)
{
- GuiSpellchecker * gui = new GuiSpellchecker(lv);
+ GuiSpellchecker * gui = new GuiSpellchecker(lv,
Qt::RightDockWidgetArea);
#ifdef Q_WS_MACX
gui->setFloating(true);
#endif
Index: frontends/qt4/GuiSpellchecker.h
===================================================================
--- frontends/qt4/GuiSpellchecker.h (revision 37976)
+++ frontends/qt4/GuiSpellchecker.h (working copy)
@@ -25,16 +25,19 @@
namespace frontend {
-class GuiSpellchecker : public DockView
+class SpellcheckerWidget : public QWidget
{
Q_OBJECT
public:
- GuiSpellchecker(GuiView & parent);
- ~GuiSpellchecker();
+ SpellcheckerWidget(GuiView * gv, QWidget * parent = 0);
+ ~SpellcheckerWidget();
+ ///
+ void updateView();
+ ///
+ bool initialiseParams(std::string const & data);
private Q_SLOTS:
- void on_closePB_clicked();
void on_findNextPB_clicked();
void on_replaceAllPB_clicked();
void on_suggestionsLW_itemClicked(QListWidgetItem *);
@@ -46,29 +49,34 @@
void on_replacePB_clicked();
private:
- /// update from controller
- void updateSuggestions(docstring_list & words);
+ ///
+ bool eventFilter(QObject *obj, QEvent *event);
+ struct Private;
+ Private * const d;
+};
+
+class GuiSpellchecker : public DockView
+{
+ Q_OBJECT
+
+public:
+ GuiSpellchecker(
+ GuiView & parent, ///< the main window where to dock.
+ Qt::DockWidgetArea area = Qt::RightDockWidgetArea, ///<
Position of the dock (and also drawer)
+ Qt::WindowFlags flags = 0);
+ ~GuiSpellchecker();
+
+private:
///{
void updateView();
- bool initialiseParams(std::string const & data);
+ bool initialiseParams(std::string const &) { return true; }
void clearParams() {}
void dispatchParams() {}
- bool isBufferDependent() const { return true; }
- bool needBufferOpen() const { return true; }
+ bool isBufferDependent() const { return false; }
///}
-
- /// move to next position after current word
- void forward();
- /// check text until next misspelled/unknown word
- void check();
- /// show count of checked words at normal exit
- void showSummary();
-
- bool eventFilter(QObject *obj, QEvent *event);
-
- struct Private;
- Private * const d;
+ /// The encapsulated widget.
+ SpellcheckerWidget * widget_;
};
} // namespace frontend
Index: frontends/qt4/ui/SpellcheckerUi.ui
===================================================================
--- frontends/qt4/ui/SpellcheckerUi.ui (revision 37976)
+++ frontends/qt4/ui/SpellcheckerUi.ui (working copy)
@@ -1,258 +1,234 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
<class>SpellcheckerUi</class>
- <widget class="QDockWidget" name="SpellcheckerUi" >
- <property name="geometry" >
+ <widget class="QWidget" name="SpellcheckerUi">
+ <property name="geometry">
<rect>
<x>0</x>
<y>0</y>
- <width>264</width>
- <height>388</height>
+ <width>237</width>
+ <height>342</height>
</rect>
</property>
- <property name="windowTitle" >
- <string/>
+ <property name="windowTitle">
+ <string>Spell Checker</string>
</property>
- <widget class="QWidget" name="dockWidgetContents" >
- <layout class="QGridLayout" name="gridLayout" >
- <item row="0" column="0" colspan="2" >
- <layout class="QHBoxLayout" name="horizontalLayout" >
- <item>
- <widget class="QLabel" name="languageLA" >
- <property name="text" >
- <string>&Language:</string>
- </property>
- <property name="buddy" >
- <cstring>languageCO</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="languageCO" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="toolTip" >
- <string>The checked language. Switching this alters the language of
the checked word.</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="1" column="0" colspan="2" >
- <widget class="Line" name="line" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- <item row="2" column="0" >
- <widget class="QLabel" name="TextLabel3" >
- <property name="text" >
- <string>Unknown word:</string>
- </property>
- <property name="buddy" >
- <cstring>wordED</cstring>
- </property>
- </widget>
- </item>
- <item row="3" column="0" >
- <widget class="QLineEdit" name="wordED" >
- <property name="toolTip" >
- <string>Current word</string>
- </property>
- </widget>
- </item>
- <item row="3" column="1" >
- <widget class="QPushButton" name="findNextPB" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>100</horstretch>
- <verstretch>32</verstretch>
- </sizepolicy>
- </property>
- <property name="toolTip" >
- <string>Replace word with current choice</string>
- </property>
- <property name="text" >
- <string>&Find Next</string>
- </property>
- </widget>
- </item>
- <item row="4" column="0" >
- <widget class="QLabel" name="TextLabel1" >
- <property name="text" >
- <string>Re&placement:</string>
- </property>
- <property name="buddy" >
- <cstring>replaceCO</cstring>
- </property>
- </widget>
- </item>
- <item row="5" column="0" >
- <widget class="QComboBox" name="replaceCO" >
- <property name="focusPolicy" >
- <enum>Qt::StrongFocus</enum>
- </property>
- <property name="toolTip" >
- <string>Replace with selected word</string>
- </property>
- <property name="editable" >
- <bool>true</bool>
- </property>
- <property name="insertPolicy" >
- <enum>QComboBox::InsertAtTop</enum>
- </property>
- <property name="autoCompletion" >
- <bool>true</bool>
- </property>
- <property name="duplicatesEnabled" >
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="5" column="1" >
- <widget class="QPushButton" name="replacePB" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>100</horstretch>
- <verstretch>32</verstretch>
- </sizepolicy>
- </property>
- <property name="toolTip" >
- <string>Replace word with current choice</string>
- </property>
- <property name="text" >
- <string>&Replace</string>
- </property>
- </widget>
- </item>
- <item row="6" column="0" >
- <widget class="QLabel" name="TextLabel2" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Maximum" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>S&uggestions:</string>
- </property>
- <property name="buddy" >
- <cstring>suggestionsLW</cstring>
- </property>
- </widget>
- </item>
- <item row="6" column="1" >
- <widget class="QPushButton" name="replaceAllPB" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>100</horstretch>
- <verstretch>32</verstretch>
- </sizepolicy>
- </property>
- <property name="toolTip" >
- <string>Replace word with current choice</string>
- </property>
- <property name="text" >
- <string>Replace &All</string>
- </property>
- </widget>
- </item>
- <item rowspan="4" row="7" column="0" >
- <widget class="QListWidget" name="suggestionsLW" />
- </item>
- <item row="7" column="1" >
- <widget class="QPushButton" name="ignorePB" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Maximum" hsizetype="Preferred" >
- <horstretch>100</horstretch>
- <verstretch>32</verstretch>
- </sizepolicy>
- </property>
- <property name="toolTip" >
- <string>Ignore this word</string>
- </property>
- <property name="text" >
- <string>&Ignore</string>
- </property>
- </widget>
- </item>
- <item row="8" column="1" >
- <widget class="QPushButton" name="ignoreAllPB" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Maximum" hsizetype="Preferred" >
- <horstretch>100</horstretch>
- <verstretch>32</verstretch>
- </sizepolicy>
- </property>
- <property name="toolTip" >
- <string>Ignore this word throughout this session</string>
- </property>
- <property name="text" >
- <string>I&gnore All</string>
- </property>
- </widget>
- </item>
- <item row="9" column="1" >
- <widget class="QPushButton" name="addPB" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Maximum" hsizetype="Preferred" >
- <horstretch>100</horstretch>
- <verstretch>32</verstretch>
- </sizepolicy>
- </property>
- <property name="toolTip" >
- <string>Add the word to your personal dictionary</string>
- </property>
- <property name="text" >
- <string>A&dd</string>
- </property>
- </widget>
- </item>
- <item row="10" column="1" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeType" >
- <enum>QSizePolicy::Expanding</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>74</width>
- <height>98</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="11" column="0" >
- <widget class="QProgressBar" name="spellcheckPR" >
- <property name="value" >
- <number>24</number>
- </property>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- <item row="11" column="1" >
- <widget class="QPushButton" name="closePB" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
- <horstretch>100</horstretch>
- <verstretch>32</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>&Close</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0" colspan="2">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="languageLA">
+ <property name="text">
+ <string>&Language:</string>
+ </property>
+ <property name="buddy">
+ <cstring>languageCO</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="languageCO">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>The checked language. Switching this alters the language of
the checked word.</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="Line" name="line">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="TextLabel3">
+ <property name="text">
+ <string>Unknown word:</string>
+ </property>
+ <property name="buddy">
+ <cstring>wordED</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLineEdit" name="wordED">
+ <property name="toolTip">
+ <string>Current word</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QPushButton" name="findNextPB">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>100</horstretch>
+ <verstretch>32</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Replace word with current choice</string>
+ </property>
+ <property name="text">
+ <string>&Find Next</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="TextLabel1">
+ <property name="text">
+ <string>Re&placement:</string>
+ </property>
+ <property name="buddy">
+ <cstring>replaceCO</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QComboBox" name="replaceCO">
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>Replace with selected word</string>
+ </property>
+ <property name="editable">
+ <bool>true</bool>
+ </property>
+ <property name="insertPolicy">
+ <enum>QComboBox::InsertAtTop</enum>
+ </property>
+ <property name="autoCompletion">
+ <bool>true</bool>
+ </property>
+ <property name="duplicatesEnabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <widget class="QPushButton" name="replacePB">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>100</horstretch>
+ <verstretch>32</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Replace word with current choice</string>
+ </property>
+ <property name="text">
+ <string>&Replace</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
+ <widget class="QLabel" name="TextLabel2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>S&uggestions:</string>
+ </property>
+ <property name="buddy">
+ <cstring>suggestionsLW</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="1">
+ <widget class="QPushButton" name="replaceAllPB">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>100</horstretch>
+ <verstretch>32</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Replace word with current choice</string>
+ </property>
+ <property name="text">
+ <string>Replace &All</string>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="0" rowspan="4">
+ <widget class="QListWidget" name="suggestionsLW"/>
+ </item>
+ <item row="7" column="1">
+ <widget class="QPushButton" name="ignorePB">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
+ <horstretch>100</horstretch>
+ <verstretch>32</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Ignore this word</string>
+ </property>
+ <property name="text">
+ <string>&Ignore</string>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="1">
+ <widget class="QPushButton" name="ignoreAllPB">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
+ <horstretch>100</horstretch>
+ <verstretch>32</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Ignore this word throughout this session</string>
+ </property>
+ <property name="text">
+ <string>I&gnore All</string>
+ </property>
+ </widget>
+ </item>
+ <item row="9" column="1">
+ <widget class="QPushButton" name="addPB">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
+ <horstretch>100</horstretch>
+ <verstretch>32</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Add the word to your personal dictionary</string>
+ </property>
+ <property name="text">
+ <string>A&dd</string>
+ </property>
+ </widget>
+ </item>
+ <item row="10" column="1">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>74</width>
+ <height>98</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
</widget>
<resources/>
<connections/>