mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
Transform simple search dialog to dock widget (#2625)
Also solves #8054
This commit is contained in:
parent
48528d0ff0
commit
2baa3a46a6
@ -72,8 +72,8 @@ Format 5
|
|||||||
\bind "C-S-M" "math-display"
|
\bind "C-S-M" "math-display"
|
||||||
\bind "C-M-n" "command-sequence math-display; math-number-toggle;"
|
\bind "C-M-n" "command-sequence math-display; math-number-toggle;"
|
||||||
|
|
||||||
\bind "C-f" "dialog-show findreplace"
|
\bind "C-f" "dialog-toggle findreplace"
|
||||||
\bind "C-S-f" "dialog-show findreplaceadv"
|
\bind "C-S-f" "dialog-toggle findreplaceadv"
|
||||||
\bind "C-i" "inset-toggle" # 'i' for Inset
|
\bind "C-i" "inset-toggle" # 'i' for Inset
|
||||||
\bind "C-M-i" "inset-settings"
|
\bind "C-M-i" "inset-settings"
|
||||||
|
|
||||||
|
@ -142,8 +142,8 @@ Format 5
|
|||||||
# -: "Command-E" # Use the selection for a find
|
# -: "Command-E" # Use the selection for a find
|
||||||
\bind "C-e" "font-emph"
|
\bind "C-e" "font-emph"
|
||||||
# +: "Command-F" # Open a Find window
|
# +: "Command-F" # Open a Find window
|
||||||
\bind "C-f" "dialog-show findreplace"
|
\bind "C-f" "dialog-toggle findreplace"
|
||||||
\bind "C-S-f" "dialog-show findreplaceadv"
|
\bind "C-S-f" "dialog-toggle findreplaceadv"
|
||||||
# -: "Option-Command-F" # Move to the search field control
|
# -: "Option-Command-F" # Move to the search field control
|
||||||
# +: "Command-G" # Find the next occurrence of the selection
|
# +: "Command-G" # Find the next occurrence of the selection
|
||||||
\bind "C-g" "word-find-forward"
|
\bind "C-g" "word-find-forward"
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include "lyxfind.h"
|
#include "lyxfind.h"
|
||||||
#include "qt_helpers.h"
|
#include "qt_helpers.h"
|
||||||
#include "FuncRequest.h"
|
#include "FuncRequest.h"
|
||||||
|
#include "LyX.h"
|
||||||
#include "BufferView.h"
|
#include "BufferView.h"
|
||||||
#include "Buffer.h"
|
#include "Buffer.h"
|
||||||
#include "Cursor.h"
|
#include "Cursor.h"
|
||||||
@ -25,11 +26,14 @@
|
|||||||
#include "GuiKeySymbol.h"
|
#include "GuiKeySymbol.h"
|
||||||
#include "GuiView.h"
|
#include "GuiView.h"
|
||||||
|
|
||||||
|
#include "support/debug.h"
|
||||||
#include "support/gettext.h"
|
#include "support/gettext.h"
|
||||||
#include "frontends/alert.h"
|
#include "frontends/alert.h"
|
||||||
|
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
|
#include <QSettings>
|
||||||
#include <QShowEvent>
|
#include <QShowEvent>
|
||||||
|
#include "QSizePolicy"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -48,8 +52,8 @@ static void uniqueInsert(QComboBox * box, QString const & text)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
GuiSearch::GuiSearch(GuiView & lv)
|
GuiSearchWidget::GuiSearchWidget(QWidget * parent)
|
||||||
: GuiDialog(lv, "findreplace", qt_("Find and Replace"))
|
: QWidget(parent)
|
||||||
{
|
{
|
||||||
setupUi(this);
|
setupUi(this);
|
||||||
|
|
||||||
@ -57,34 +61,39 @@ GuiSearch::GuiSearch(GuiView & lv)
|
|||||||
setFixedHeight(sizeHint().height());
|
setFixedHeight(sizeHint().height());
|
||||||
|
|
||||||
// align items in grid on top
|
// align items in grid on top
|
||||||
mainGridLayout->setAlignment(Qt::AlignTop);
|
gridLayout->setAlignment(Qt::AlignTop);
|
||||||
|
|
||||||
connect(buttonBox, SIGNAL(clicked(QAbstractButton *)),
|
|
||||||
this, SLOT(slotButtonBox(QAbstractButton *)));
|
|
||||||
connect(findPB, SIGNAL(clicked()), this, SLOT(findClicked()));
|
connect(findPB, SIGNAL(clicked()), this, SLOT(findClicked()));
|
||||||
|
connect(findPrevPB, SIGNAL(clicked()), this, SLOT(findPrevClicked()));
|
||||||
|
connect(minimizePB, SIGNAL(clicked()), this, SLOT(minimizeClicked()));
|
||||||
connect(replacePB, SIGNAL(clicked()), this, SLOT(replaceClicked()));
|
connect(replacePB, SIGNAL(clicked()), this, SLOT(replaceClicked()));
|
||||||
|
connect(replacePrevPB, SIGNAL(clicked()), this, SLOT(replacePrevClicked()));
|
||||||
connect(replaceallPB, SIGNAL(clicked()), this, SLOT(replaceallClicked()));
|
connect(replaceallPB, SIGNAL(clicked()), this, SLOT(replaceallClicked()));
|
||||||
connect(findCO, SIGNAL(editTextChanged(QString)),
|
connect(findCO, SIGNAL(editTextChanged(QString)),
|
||||||
this, SLOT(findChanged()));
|
this, SLOT(findChanged()));
|
||||||
|
|
||||||
setFocusProxy(findCO);
|
setFocusProxy(findCO);
|
||||||
|
|
||||||
bc().setPolicy(ButtonPolicy::NoRepeatedApplyReadOnlyPolicy);
|
|
||||||
bc().setCancel(buttonBox->button(QDialogButtonBox::Close));
|
|
||||||
|
|
||||||
findCO->setCompleter(0);
|
findCO->setCompleter(0);
|
||||||
replaceCO->setCompleter(0);
|
replaceCO->setCompleter(0);
|
||||||
|
|
||||||
replacePB->setEnabled(false);
|
replacePB->setEnabled(false);
|
||||||
|
replacePrevPB->setEnabled(false);
|
||||||
replaceallPB->setEnabled(false);
|
replaceallPB->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiSearch::keyPressEvent(QKeyEvent * ev)
|
void GuiSearchWidget::keyPressEvent(QKeyEvent * ev)
|
||||||
{
|
{
|
||||||
KeySymbol sym;
|
KeySymbol sym;
|
||||||
setKeySymbol(&sym, ev);
|
setKeySymbol(&sym, ev);
|
||||||
|
|
||||||
|
// catch Return and Shift-Return
|
||||||
|
if (ev->key() == Qt::Key_Return) {
|
||||||
|
findClicked(ev->modifiers() == Qt::ShiftModifier);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// we catch the key sequences for forward and backwards search
|
// we catch the key sequences for forward and backwards search
|
||||||
if (sym.isOK()) {
|
if (sym.isOK()) {
|
||||||
KeyModifier mod = lyx::q_key_state(ev->modifiers());
|
KeyModifier mod = lyx::q_key_state(ev->modifiers());
|
||||||
@ -98,53 +107,96 @@ void GuiSearch::keyPressEvent(QKeyEvent * ev)
|
|||||||
findClicked(true);
|
findClicked(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (fr == FuncRequest(LFUN_DIALOG_TOGGLE, "findreplace")) {
|
||||||
|
dispatch(fr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
QDialog::keyPressEvent(ev);
|
QWidget::keyPressEvent(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiSearch::showEvent(QShowEvent * e)
|
void GuiSearchWidget::minimizeClicked(bool const toggle)
|
||||||
|
{
|
||||||
|
if (toggle)
|
||||||
|
minimized_ = !minimized_;
|
||||||
|
|
||||||
|
replaceLA->setHidden(minimized_);
|
||||||
|
replaceCO->setHidden(minimized_);
|
||||||
|
replacePB->setHidden(minimized_);
|
||||||
|
replacePrevPB->setHidden(minimized_);
|
||||||
|
replaceallPB->setHidden(minimized_);
|
||||||
|
wordsCB->setHidden(minimized_);
|
||||||
|
caseCB->setHidden(minimized_);
|
||||||
|
if (minimized_) {
|
||||||
|
minimizePB->setText(qt_("Ex&pand"));
|
||||||
|
minimizePB->setToolTip("Show replace and option widgets");
|
||||||
|
} else {
|
||||||
|
minimizePB->setText(qt_("&Minimize"));
|
||||||
|
minimizePB->setToolTip("Hide replace and option widgets");
|
||||||
|
}
|
||||||
|
|
||||||
|
Q_EMIT needSizeUpdate();
|
||||||
|
Q_EMIT needTitleBarUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GuiSearchWidget::showEvent(QShowEvent * e)
|
||||||
{
|
{
|
||||||
findChanged();
|
findChanged();
|
||||||
findPB->setFocus();
|
findPB->setFocus();
|
||||||
findCO->lineEdit()->selectAll();
|
findCO->lineEdit()->selectAll();
|
||||||
GuiDialog::showEvent(e);
|
QWidget::showEvent(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiSearch::findChanged()
|
void GuiSearchWidget::findChanged()
|
||||||
{
|
{
|
||||||
findPB->setEnabled(!findCO->currentText().isEmpty());
|
findPB->setEnabled(!findCO->currentText().isEmpty());
|
||||||
bool const replace = !findCO->currentText().isEmpty() && !isBufferReadonly();
|
findPrevPB->setEnabled(!findCO->currentText().isEmpty());
|
||||||
|
bool const replace = !findCO->currentText().isEmpty()
|
||||||
|
&& bv_ && !bv_->buffer().isReadonly();
|
||||||
replacePB->setEnabled(replace);
|
replacePB->setEnabled(replace);
|
||||||
|
replacePrevPB->setEnabled(replace);
|
||||||
replaceallPB->setEnabled(replace);
|
replaceallPB->setEnabled(replace);
|
||||||
replaceLA->setEnabled(replace);
|
replaceLA->setEnabled(replace);
|
||||||
replaceCO->setEnabled(replace);
|
replaceCO->setEnabled(replace);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiSearch::findClicked(bool const backwards)
|
void GuiSearchWidget::findClicked(bool const backwards)
|
||||||
{
|
{
|
||||||
docstring const needle = qstring_to_ucs4(findCO->currentText());
|
docstring const needle = qstring_to_ucs4(findCO->currentText());
|
||||||
find(needle, caseCB->isChecked(), wordsCB->isChecked(),
|
find(needle, caseCB->isChecked(), wordsCB->isChecked(), !backwards);
|
||||||
(!backwards && !backwardsCB->isChecked()));
|
|
||||||
uniqueInsert(findCO, findCO->currentText());
|
uniqueInsert(findCO, findCO->currentText());
|
||||||
findCO->lineEdit()->selectAll();
|
findCO->lineEdit()->selectAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiSearch::replaceClicked()
|
void GuiSearchWidget::findPrevClicked()
|
||||||
|
{
|
||||||
|
findClicked(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GuiSearchWidget::replaceClicked(bool const backwards)
|
||||||
{
|
{
|
||||||
docstring const needle = qstring_to_ucs4(findCO->currentText());
|
docstring const needle = qstring_to_ucs4(findCO->currentText());
|
||||||
docstring const repl = qstring_to_ucs4(replaceCO->currentText());
|
docstring const repl = qstring_to_ucs4(replaceCO->currentText());
|
||||||
replace(needle, repl, caseCB->isChecked(), wordsCB->isChecked(),
|
replace(needle, repl, caseCB->isChecked(), wordsCB->isChecked(),
|
||||||
!backwardsCB->isChecked(), false);
|
!backwards, false);
|
||||||
uniqueInsert(findCO, findCO->currentText());
|
uniqueInsert(findCO, findCO->currentText());
|
||||||
uniqueInsert(replaceCO, replaceCO->currentText());
|
uniqueInsert(replaceCO, replaceCO->currentText());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiSearch::replaceallClicked()
|
void GuiSearchWidget::replacePrevClicked()
|
||||||
|
{
|
||||||
|
replaceClicked(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GuiSearchWidget::replaceallClicked()
|
||||||
{
|
{
|
||||||
replace(qstring_to_ucs4(findCO->currentText()),
|
replace(qstring_to_ucs4(findCO->currentText()),
|
||||||
qstring_to_ucs4(replaceCO->currentText()),
|
qstring_to_ucs4(replaceCO->currentText()),
|
||||||
@ -154,7 +206,7 @@ void GuiSearch::replaceallClicked()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiSearch::find(docstring const & search, bool casesensitive,
|
void GuiSearchWidget::find(docstring const & search, bool casesensitive,
|
||||||
bool matchword, bool forward)
|
bool matchword, bool forward)
|
||||||
{
|
{
|
||||||
docstring const sdata =
|
docstring const sdata =
|
||||||
@ -163,7 +215,7 @@ void GuiSearch::find(docstring const & search, bool casesensitive,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiSearch::replace(docstring const & search, docstring const & replace,
|
void GuiSearchWidget::replace(docstring const & search, docstring const & replace,
|
||||||
bool casesensitive, bool matchword,
|
bool casesensitive, bool matchword,
|
||||||
bool forward, bool all)
|
bool forward, bool all)
|
||||||
{
|
{
|
||||||
@ -173,6 +225,91 @@ void GuiSearch::replace(docstring const & search, docstring const & replace,
|
|||||||
dispatch(FuncRequest(LFUN_WORD_REPLACE, sdata));
|
dispatch(FuncRequest(LFUN_WORD_REPLACE, sdata));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GuiSearchWidget::saveSession(QSettings & settings, QString const & session_key) const
|
||||||
|
{
|
||||||
|
settings.setValue(session_key + "/casesensitive", caseCB->isChecked());
|
||||||
|
settings.setValue(session_key + "/words", wordsCB->isChecked());
|
||||||
|
settings.setValue(session_key + "/minimized", minimized_);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GuiSearchWidget::restoreSession(QString const & session_key)
|
||||||
|
{
|
||||||
|
QSettings settings;
|
||||||
|
caseCB->setChecked(settings.value(session_key + "/casesensitive", false).toBool());
|
||||||
|
wordsCB->setChecked(settings.value(session_key + "/words", false).toBool());
|
||||||
|
minimized_ = settings.value(session_key + "/minimized", false).toBool();
|
||||||
|
// initialize hidings
|
||||||
|
minimizeClicked(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
GuiSearch::GuiSearch(GuiView & parent, Qt::DockWidgetArea area, Qt::WindowFlags flags)
|
||||||
|
: DockView(parent, "findreplace", qt_("Search and Replace"), area, flags),
|
||||||
|
widget_(new GuiSearchWidget(this))
|
||||||
|
{
|
||||||
|
setWidget(widget_);
|
||||||
|
widget_->setBufferView(bufferview());
|
||||||
|
setFocusProxy(widget_->findCO);
|
||||||
|
|
||||||
|
connect(widget_, SIGNAL(needTitleBarUpdate()), this, SLOT(updateTitle()));
|
||||||
|
connect(widget_, SIGNAL(needSizeUpdate()), this, SLOT(updateSize()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuiSearch::onBufferViewChanged()
|
||||||
|
{
|
||||||
|
widget_->setEnabled((bool)bufferview());
|
||||||
|
widget_->setBufferView(bufferview());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GuiSearch::updateView()
|
||||||
|
{
|
||||||
|
updateTitle();
|
||||||
|
updateSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GuiSearch::saveSession(QSettings & settings) const
|
||||||
|
{
|
||||||
|
Dialog::saveSession(settings);
|
||||||
|
widget_->saveSession(settings, sessionKey());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GuiSearch::restoreSession()
|
||||||
|
{
|
||||||
|
DockView::restoreSession();
|
||||||
|
widget_->restoreSession(sessionKey());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GuiSearch::updateTitle()
|
||||||
|
{
|
||||||
|
if (widget_->isMinimized()) {
|
||||||
|
// remove title bar
|
||||||
|
setTitleBarWidget(new QWidget());
|
||||||
|
titleBarWidget()->hide();
|
||||||
|
} else
|
||||||
|
// restore title bar
|
||||||
|
setTitleBarWidget(nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GuiSearch::updateSize()
|
||||||
|
{
|
||||||
|
widget_->setFixedHeight(widget_->sizeHint().height());
|
||||||
|
if (widget_->isMinimized())
|
||||||
|
// FIXME still a bit too tall
|
||||||
|
setFixedHeight(widget_->sizeHint().height());
|
||||||
|
else {
|
||||||
|
// undo setFixedHeight
|
||||||
|
setMaximumHeight(QWIDGETSIZE_MAX);
|
||||||
|
setMinimumHeight(0);
|
||||||
|
}
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace frontend
|
||||||
} // namespace lyx
|
} // namespace lyx
|
||||||
|
@ -14,43 +14,98 @@
|
|||||||
#define GUISEARCH_H
|
#define GUISEARCH_H
|
||||||
|
|
||||||
#include "GuiDialog.h"
|
#include "GuiDialog.h"
|
||||||
|
#include "DockView.h"
|
||||||
|
|
||||||
|
#include <QDockWidget>
|
||||||
|
|
||||||
#include "ui_SearchUi.h"
|
#include "ui_SearchUi.h"
|
||||||
|
|
||||||
namespace lyx {
|
namespace lyx {
|
||||||
namespace frontend {
|
namespace frontend {
|
||||||
|
|
||||||
class GuiSearch : public GuiDialog, public Ui::SearchUi
|
class GuiSearch;
|
||||||
|
|
||||||
|
class GuiSearchWidget : public QWidget, public Ui::SearchUi
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GuiSearch(GuiView & lv);
|
GuiSearchWidget(QWidget * parent);
|
||||||
|
///
|
||||||
|
void saveSession(QSettings & settings, QString const & session_key) const;
|
||||||
|
///
|
||||||
|
void restoreSession(QString const & session_key);
|
||||||
|
///
|
||||||
|
void setBufferView(BufferView const * bv) { bv_ = bv; }
|
||||||
|
///
|
||||||
|
bool isMinimized() { return minimized_; }
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void findChanged();
|
void findChanged();
|
||||||
void findClicked(bool const backwards = false);
|
void findClicked(bool const backwards = false);
|
||||||
void replaceClicked();
|
void findPrevClicked();
|
||||||
|
void replaceClicked(bool const backwards = false);
|
||||||
|
void replacePrevClicked();
|
||||||
void replaceallClicked();
|
void replaceallClicked();
|
||||||
|
void minimizeClicked(bool const toggle = true);
|
||||||
|
Q_SIGNALS:
|
||||||
|
void needTitleBarUpdate() const;
|
||||||
|
void needSizeUpdate() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
///
|
///
|
||||||
void keyPressEvent(QKeyEvent * e) override;
|
void keyPressEvent(QKeyEvent * e) override;
|
||||||
///
|
///
|
||||||
void showEvent(QShowEvent * e) override;
|
void showEvent(QShowEvent * e) override;
|
||||||
///
|
|
||||||
bool initialiseParams(std::string const &) override { return true; }
|
|
||||||
void clearParams() override {}
|
|
||||||
void dispatchParams() override {}
|
|
||||||
bool isBufferDependent() const override { return true; }
|
|
||||||
|
|
||||||
/// Searches occurrence of string
|
/// Searches occurrence of string
|
||||||
void find(docstring const & search,
|
void find(docstring const & search,
|
||||||
bool casesensitive, bool matchword, bool forward);
|
bool casesensitive, bool matchword, bool forward);
|
||||||
|
|
||||||
/// Replaces occurrence of string
|
/// Replaces occurrence of string
|
||||||
void replace(docstring const & search, docstring const & replace,
|
void replace(docstring const & search, docstring const & replace,
|
||||||
bool casesensitive, bool matchword,
|
bool casesensitive, bool matchword,
|
||||||
bool forward, bool all);
|
bool forward, bool all);
|
||||||
|
///
|
||||||
|
BufferView const * bv_;
|
||||||
|
///
|
||||||
|
bool minimized_ = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class GuiSearch : public DockView
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
GuiSearch(
|
||||||
|
GuiView & parent, ///< the main window where to dock.
|
||||||
|
Qt::DockWidgetArea area = Qt::BottomDockWidgetArea, ///< Position of the dock (and also drawer)
|
||||||
|
Qt::WindowFlags flags = {});
|
||||||
|
|
||||||
|
/// Controller inherited method.
|
||||||
|
///@{
|
||||||
|
bool initialiseParams(std::string const &) override { return true; }
|
||||||
|
void clearParams() override {}
|
||||||
|
void dispatchParams() override {}
|
||||||
|
bool isBufferDependent() const override { return true; }
|
||||||
|
void updateView() override;
|
||||||
|
void saveSession(QSettings & settings) const override;
|
||||||
|
void restoreSession() override;
|
||||||
|
bool wantInitialFocus() const override { return true; }
|
||||||
|
///@}
|
||||||
|
|
||||||
|
public Q_SLOTS:
|
||||||
|
///
|
||||||
|
void onBufferViewChanged() override;
|
||||||
|
|
||||||
|
private Q_SLOTS:
|
||||||
|
/// update title display
|
||||||
|
void updateTitle();
|
||||||
|
/// update dock size
|
||||||
|
void updateSize();
|
||||||
|
|
||||||
|
private:
|
||||||
|
/// The encapsulated widget.
|
||||||
|
GuiSearchWidget * widget_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace frontend
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>SearchUi</class>
|
<class>SearchUi</class>
|
||||||
<widget class="QDialog" name="SearchUi">
|
<widget class="QWidget" name="SearchUi">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>416</width>
|
<width>678</width>
|
||||||
<height>240</height>
|
<height>135</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -19,170 +19,228 @@
|
|||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeGripEnabled">
|
<property name="sizeGripEnabled" stdset="0">
|
||||||
<bool>true</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_3">
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<item row="1" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="caseCB">
|
||||||
|
<property name="text">
|
||||||
|
<string>&Case sensitive[[search]]</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="wordsCB">
|
||||||
|
<property name="text">
|
||||||
|
<string>Match &whole words only</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::MinimumExpanding</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>89</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<layout class="QGridLayout" name="mainGridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="0" rowspan="2">
|
<item row="0" column="2">
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<widget class="QPushButton" name="findPrevPB">
|
||||||
<item row="0" column="0">
|
<property name="enabled">
|
||||||
<widget class="QLabel" name="findLA">
|
<bool>false</bool>
|
||||||
<property name="text">
|
</property>
|
||||||
<string>&Find:</string>
|
<property name="toolTip">
|
||||||
</property>
|
<string>Find previous occurrence (Shift+Enter)</string>
|
||||||
<property name="buddy">
|
</property>
|
||||||
<cstring>findCO</cstring>
|
<property name="text">
|
||||||
</property>
|
<string>Find[[Previous]]</string>
|
||||||
</widget>
|
</property>
|
||||||
</item>
|
<property name="icon">
|
||||||
<item row="0" column="1">
|
<iconset theme="go-previous">
|
||||||
<widget class="QComboBox" name="findCO">
|
<normaloff>.</normaloff>.</iconset>
|
||||||
<property name="sizePolicy">
|
</property>
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
</widget>
|
||||||
<horstretch>0</horstretch>
|
</item>
|
||||||
<verstretch>0</verstretch>
|
<item row="1" column="4">
|
||||||
</sizepolicy>
|
<widget class="QPushButton" name="replaceallPB">
|
||||||
</property>
|
<property name="enabled">
|
||||||
<property name="focusPolicy">
|
<bool>false</bool>
|
||||||
<enum>Qt::StrongFocus</enum>
|
</property>
|
||||||
</property>
|
<property name="toolTip">
|
||||||
<property name="editable">
|
<string>Replace all occurrences</string>
|
||||||
<bool>true</bool>
|
</property>
|
||||||
</property>
|
<property name="text">
|
||||||
<property name="maxCount">
|
<string>Replace &All</string>
|
||||||
<number>666</number>
|
</property>
|
||||||
</property>
|
</widget>
|
||||||
<property name="insertPolicy">
|
|
||||||
<enum>QComboBox::InsertAtTop</enum>
|
|
||||||
</property>
|
|
||||||
<property name="duplicatesEnabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="replaceLA">
|
|
||||||
<property name="text">
|
|
||||||
<string>Re&place with:</string>
|
|
||||||
</property>
|
|
||||||
<property name="buddy">
|
|
||||||
<cstring>replaceCO</cstring>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QComboBox" name="replaceCO">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="editable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="maxCount">
|
|
||||||
<number>666</number>
|
|
||||||
</property>
|
|
||||||
<property name="insertPolicy">
|
|
||||||
<enum>QComboBox::InsertAtTop</enum>
|
|
||||||
</property>
|
|
||||||
<property name="duplicatesEnabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
|
<widget class="QComboBox" name="findCO">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::StrongFocus</enum>
|
||||||
|
</property>
|
||||||
|
<property name="editable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="maxCount">
|
||||||
|
<number>666</number>
|
||||||
|
</property>
|
||||||
|
<property name="insertPolicy">
|
||||||
|
<enum>QComboBox::InsertAtTop</enum>
|
||||||
|
</property>
|
||||||
|
<property name="duplicatesEnabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="4">
|
||||||
|
<widget class="QPushButton" name="minimizePB">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Hide replace and option widgets</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>&Minimize</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="replaceLA">
|
||||||
|
<property name="text">
|
||||||
|
<string>Rep&lace with:</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>replaceCO</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="findLA">
|
||||||
|
<property name="text">
|
||||||
|
<string>&Search:</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>findCO</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QComboBox" name="replaceCO">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="editable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="maxCount">
|
||||||
|
<number>666</number>
|
||||||
|
</property>
|
||||||
|
<property name="insertPolicy">
|
||||||
|
<enum>QComboBox::InsertAtTop</enum>
|
||||||
|
</property>
|
||||||
|
<property name="duplicatesEnabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="3">
|
||||||
|
<widget class="QPushButton" name="replacePB">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Replace and find next occurrence</string>
|
||||||
|
</property>
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::RightToLeft</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>&Replace[[Next]]</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="go-next">
|
||||||
|
<normaloff>.</normaloff>.</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="QPushButton" name="replacePrevPB">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Replace and find previous occurrence</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Re&place[[Previous]]</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="go-previous">
|
||||||
|
<normaloff>.</normaloff>.</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="3">
|
||||||
<widget class="QPushButton" name="findPB">
|
<widget class="QPushButton" name="findPB">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Find next occurrence (Enter)</string>
|
||||||
|
</property>
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::RightToLeft</enum>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Find &Next</string>
|
<string>Find[[Next]]</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="go-next">
|
||||||
|
<normaloff>.</normaloff>.</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="default">
|
<property name="default">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QPushButton" name="replacePB">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>&Replace</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="caseCB">
|
|
||||||
<property name="text">
|
|
||||||
<string>Case &sensitive[[search]]</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="wordsCB">
|
|
||||||
<property name="text">
|
|
||||||
<string>Match &whole words only</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="backwardsCB">
|
|
||||||
<property name="text">
|
|
||||||
<string>Search &backwards</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="replaceallPB">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Replace &All</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="verticalSpacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType">
|
|
||||||
<enum>QSizePolicy::Expanding</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>89</width>
|
|
||||||
<height>13</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
|
||||||
<property name="standardButtons">
|
|
||||||
<set>QDialogButtonBox::Close</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<includes>
|
<includes>
|
||||||
|
Loading…
Reference in New Issue
Block a user