From c4fbd0d91344e0a8c5f7fd209b960946bec83f1f Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Mon, 15 Feb 2021 16:04:17 +0100 Subject: [PATCH] Initialize F&R dialog with selected text (#8448) --- src/frontends/qt/GuiSearch.cpp | 8 ++++++++ src/frontends/qt/GuiSearch.h | 5 ++++- src/frontends/qt/GuiView.cpp | 3 +++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/frontends/qt/GuiSearch.cpp b/src/frontends/qt/GuiSearch.cpp index 519c1c2b48..416b574f34 100644 --- a/src/frontends/qt/GuiSearch.cpp +++ b/src/frontends/qt/GuiSearch.cpp @@ -91,6 +91,14 @@ GuiSearchWidget::GuiSearchWidget(QWidget * parent) } +bool GuiSearchWidget::initialiseParams(std::string const & str) +{ + if (!str.empty()) + findCO->lineEdit()->setText(toqstr(str)); + return true; +} + + void GuiSearchWidget::keyPressEvent(QKeyEvent * ev) { KeySymbol sym; diff --git a/src/frontends/qt/GuiSearch.h b/src/frontends/qt/GuiSearch.h index ad8f9c309d..e90e3dc0c3 100644 --- a/src/frontends/qt/GuiSearch.h +++ b/src/frontends/qt/GuiSearch.h @@ -38,6 +38,8 @@ public: /// void setBufferView(BufferView const * bv) { bv_ = bv; } /// + bool initialiseParams(std::string const &); + /// bool isMinimized() { return minimized_; } private Q_SLOTS: @@ -85,7 +87,8 @@ public: /// Controller inherited method. ///@{ - bool initialiseParams(std::string const &) override { return true; } + bool initialiseParams(std::string const & sdata) override + { return widget_->initialiseParams(sdata); } void clearParams() override {} void dispatchParams() override {} bool isBufferDependent() const override { return true; } diff --git a/src/frontends/qt/GuiView.cpp b/src/frontends/qt/GuiView.cpp index 52dc6f95d5..7a6a9dbe51 100644 --- a/src/frontends/qt/GuiView.cpp +++ b/src/frontends/qt/GuiView.cpp @@ -4426,6 +4426,9 @@ void GuiView::dispatch(FuncRequest const & cmd, DispatchResult & dr) sdata = bv->cursor().getEncoding()->name(); if (!sdata.empty()) showDialog("symbols", sdata); + } else if (name == "findreplace") { + sdata = to_utf8(bv->cursor().selectionAsString(false)); + showDialog(name, sdata); // bug 5274 } else if (name == "prefs" && isFullScreen()) { lfunUiToggle("fullscreen"); -- 2.39.2