[LyX/master] Disable "search in selection only" with instant search
Juergen Spitzmueller
spitz at lyx.org
Tue Feb 7 12:48:50 UTC 2023
commit 713264ae2b82f23e80ed6369b19ae6c9b030b6e4
Author: Juergen Spitzmueller <spitz at lyx.org>
Date: Tue Feb 7 14:48:09 2023 +0100
Disable "search in selection only" with instant search
These two do not go well together. Making it work requires some major
overhaul of selection while searching (see #12655)
---
src/frontends/qt/GuiSearch.cpp | 30 ++++++++++++++++++++++++++----
src/frontends/qt/GuiSearch.h | 1 +
2 files changed, 27 insertions(+), 4 deletions(-)
diff --git a/src/frontends/qt/GuiSearch.cpp b/src/frontends/qt/GuiSearch.cpp
index 8ac62c6..b824bfe 100644
--- a/src/frontends/qt/GuiSearch.cpp
+++ b/src/frontends/qt/GuiSearch.cpp
@@ -79,6 +79,7 @@ GuiSearchWidget::GuiSearchWidget(QWidget * parent, GuiView & view)
connect(replacePB, SIGNAL(clicked()), this, SLOT(replaceClicked()));
connect(replacePrevPB, SIGNAL(clicked()), this, SLOT(replacePrevClicked()));
connect(replaceallPB, SIGNAL(clicked()), this, SLOT(replaceallClicked()));
+ connect(instantSearchCB, SIGNAL(clicked()), this, SLOT(immediateClicked()));
connect(findCO, SIGNAL(editTextChanged(QString)),
this, SLOT(findChanged()));
if(qApp->clipboard()->supportsFindBuffer()) {
@@ -196,6 +197,7 @@ void GuiSearchWidget::minimizeClicked(bool const toggle)
act_casesense_->setChecked(caseCB->isChecked());
act_immediate_->setChecked(instantSearchCB->isChecked());
act_selection_->setChecked(selectionCB->isChecked());
+ act_selection_->setEnabled(!instantSearchCB->isChecked());
act_wholewords_->setChecked(wordsCB->isChecked());
act_wrap_->setChecked(wrapCB->isChecked());
blockSignals(false);
@@ -368,11 +370,29 @@ void GuiSearchWidget::searchSelActTriggered()
void GuiSearchWidget::immediateActTriggered()
{
- instantSearchCB->setChecked(act_immediate_->isChecked());
+ bool const immediate = act_immediate_->isChecked();
+ instantSearchCB->setChecked(immediate);
+ // FIXME: make these two work together eventually.
+ selectionCB->setEnabled(!immediate);
+ act_selection_->setEnabled(!immediate);
+ if (immediate) {
+ selectionCB->setChecked(false);
+ act_selection_->setChecked(false);
+ }
handleIndicators();
}
+void GuiSearchWidget::immediateClicked()
+{
+ // FIXME: make these two work together eventually.
+ bool const immediate = instantSearchCB->isChecked();
+ selectionCB->setEnabled(!immediate);
+ if (immediate)
+ selectionCB->setChecked(false);
+}
+
+
void GuiSearchWidget::wrapActTriggered()
{
wrapCB->setChecked(act_wrap_->isChecked());
@@ -525,11 +545,13 @@ void GuiSearchWidget::restoreSession(QString const & session_key)
act_casesense_->setChecked(settings.value(session_key + "/casesensitive", false).toBool());
wordsCB->setChecked(settings.value(session_key + "/words", false).toBool());
act_wholewords_->setChecked(settings.value(session_key + "/words", false).toBool());
- instantSearchCB->setChecked(settings.value(session_key + "/instant", false).toBool());
- act_immediate_->setChecked(settings.value(session_key + "/instant", false).toBool());
+ bool const immediate = settings.value(session_key + "/instant", false).toBool();
+ instantSearchCB->setChecked(immediate);
+ act_immediate_->setChecked(immediate);
wrapCB->setChecked(settings.value(session_key + "/wrap", true).toBool());
act_wrap_->setChecked(settings.value(session_key + "/wrap", true).toBool());
- selectionCB->setChecked(settings.value(session_key + "/selection", false).toBool());
+ selectionCB->setChecked(settings.value(session_key + "/selection", false).toBool() && !immediate);
+ selectionCB->setEnabled(!immediate);
act_selection_->setChecked(settings.value(session_key + "/selection", false).toBool());
minimized_ = settings.value(session_key + "/minimized", false).toBool();
// initialize hidings
diff --git a/src/frontends/qt/GuiSearch.h b/src/frontends/qt/GuiSearch.h
index 2fbc8c7..89234fe 100644
--- a/src/frontends/qt/GuiSearch.h
+++ b/src/frontends/qt/GuiSearch.h
@@ -57,6 +57,7 @@ private Q_SLOTS:
void wholeWordsActTriggered();
void searchSelActTriggered();
void immediateActTriggered();
+ void immediateClicked();
void wrapActTriggered();
Q_SIGNALS:
void needTitleBarUpdate() const;
More information about the lyx-cvs
mailing list