From 99dea1bf512449d82c7a5f5b2eeb49bf2b5e131a Mon Sep 17 00:00:00 2001 From: nandhishtr Date: Sat, 6 Dec 2025 21:52:15 +0100 Subject: [PATCH 1/2] ProjectManagerPlg: fix Search: global - if selected, use text #141 --- src/plugins/ProjectManager/ProjectManagerPlg.cpp | 2 ++ src/widgets/qmdieditor.cpp | 6 ++++++ src/widgets/qmdieditor.h | 2 ++ 3 files changed, 10 insertions(+) diff --git a/src/plugins/ProjectManager/ProjectManagerPlg.cpp b/src/plugins/ProjectManager/ProjectManagerPlg.cpp index e412c2dd..a930d04f 100644 --- a/src/plugins/ProjectManager/ProjectManagerPlg.cpp +++ b/src/plugins/ProjectManager/ProjectManagerPlg.cpp @@ -620,6 +620,8 @@ void ProjectManagerPlugin::on_client_merged(qmdiHost *host) { searchPanel->show(); searchPanel->setFocus(); searchPanelUI->setFocusOnSearch(); + auto currentEditor = dynamic_cast(getManager()->currentClient()); + searchPanelUI->setSearchPattern(currentEditor->getSelectedText()); }); manager->addAction(projectSearch); kitsModel = new KitDefinitionModel(); diff --git a/src/widgets/qmdieditor.cpp b/src/widgets/qmdieditor.cpp index 195af8bc..1cdd20d9 100644 --- a/src/widgets/qmdieditor.cpp +++ b/src/widgets/qmdieditor.cpp @@ -898,6 +898,12 @@ void qmdiEditor::goTo(int x, int y) { } } +QString qmdiEditor::getSelectedText() const +{ + auto cursor = textEditor->textCursor(); + return cursor.selectedText(); +} + void qmdiEditor::focusInEvent(QFocusEvent *event) { QWidget::focusInEvent(event); diff --git a/src/widgets/qmdieditor.h b/src/widgets/qmdieditor.h index 13ade1aa..a7c87b96 100644 --- a/src/widgets/qmdieditor.h +++ b/src/widgets/qmdieditor.h @@ -88,6 +88,8 @@ class qmdiEditor : public QWidget, public qmdiClient { isJSONDocument(); } + QString getSelectedText() const; + public slots: void on_fileChanged(const QString &filename); void displayBannerMessage(QString message, int time); From dcb798d6a031e213fa69b33572f191465d0bd980 Mon Sep 17 00:00:00 2001 From: nandhishtr Date: Tue, 9 Dec 2025 17:06:08 +0100 Subject: [PATCH 2/2] added type check and select all text in search for section #141 --- src/plugins/ProjectManager/ProjectManagerPlg.cpp | 7 +++++-- src/plugins/ProjectManager/ProjectSearch.cpp | 5 ++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/plugins/ProjectManager/ProjectManagerPlg.cpp b/src/plugins/ProjectManager/ProjectManagerPlg.cpp index a930d04f..8b0ba4d4 100644 --- a/src/plugins/ProjectManager/ProjectManagerPlg.cpp +++ b/src/plugins/ProjectManager/ProjectManagerPlg.cpp @@ -616,12 +616,15 @@ void ProjectManagerPlugin::on_client_merged(qmdiHost *host) { auto projectSearch = new QAction(tr("Search in project")); projectSearch->setShortcut(QKeySequence(Qt::ControlModifier | Qt::ShiftModifier | Qt::Key_F)); connect(projectSearch, &QAction::triggered, this, [searchPanel, this]() { + auto currentEditor = dynamic_cast(getManager()->currentClient()); + if (currentEditor) { + auto text = currentEditor->getSelectedText(); + searchPanelUI->setSearchPattern(text); + } searchPanel->raise(); searchPanel->show(); searchPanel->setFocus(); searchPanelUI->setFocusOnSearch(); - auto currentEditor = dynamic_cast(getManager()->currentClient()); - searchPanelUI->setSearchPattern(currentEditor->getSelectedText()); }); manager->addAction(projectSearch); kitsModel = new KitDefinitionModel(); diff --git a/src/plugins/ProjectManager/ProjectSearch.cpp b/src/plugins/ProjectManager/ProjectSearch.cpp index 1da22ca0..bbe570d9 100644 --- a/src/plugins/ProjectManager/ProjectSearch.cpp +++ b/src/plugins/ProjectManager/ProjectSearch.cpp @@ -224,7 +224,10 @@ void ProjectSearch::setSearchPath(const QString &s) { ui->pathEdit->setText(s); const QString ProjectSearch::getSearchPattern() { return ui->searchFor->text(); } -void ProjectSearch::setSearchPattern(const QString &s) { ui->searchFor->setText(s); } +void ProjectSearch::setSearchPattern(const QString &s) { + ui->searchFor->setText(s); + ui->searchFor->selectAll(); +} const QString ProjectSearch::getSearchInclude() { return ui->includeFiles->text(); }