SilverSearcher: Modernize plugin item setup

Change-Id: I787c28853b1e2993db008f47fe1cc71244471338
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2023-12-13 18:13:59 +01:00
parent 0af4518724
commit 32193684ef
3 changed files with 48 additions and 88 deletions

View File

@@ -2,6 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "findinfilessilversearcher.h" #include "findinfilessilversearcher.h"
#include "silversearcherparser.h" #include "silversearcherparser.h"
#include "silversearchertr.h" #include "silversearchertr.h"
@@ -16,12 +17,10 @@
#include <QLabel> #include <QLabel>
#include <QLineEdit> #include <QLineEdit>
using namespace Core;
using namespace SilverSearcher;
using namespace TextEditor; using namespace TextEditor;
using namespace Utils; using namespace Utils;
namespace { namespace SilverSearcher {
const char s_searchOptionsString[] = "SearchOptionsString"; const char s_searchOptionsString[] = "SearchOptionsString";
@@ -99,14 +98,10 @@ static void runSilverSeacher(QPromise<SearchResultItems> &promise,
TextEditor::searchInProcessOutput(promise, parameters, setupProcess, outputParser); TextEditor::searchInProcessOutput(promise, parameters, setupProcess, outputParser);
} }
} // namespace class FindInFilesSilverSearcher final : public SearchEngine
{
namespace SilverSearcher { public:
FindInFilesSilverSearcher()
FindInFilesSilverSearcher::FindInFilesSilverSearcher(QObject *parent)
: SearchEngine(parent)
, m_path("ag")
, m_toolName("SilverSearcher")
{ {
m_widget = new QWidget; m_widget = new QWidget;
auto layout = new QHBoxLayout(m_widget); auto layout = new QHBoxLayout(m_widget);
@@ -128,36 +123,36 @@ FindInFilesSilverSearcher::FindInFilesSilverSearcher(QObject *parent)
} }
} }
QString FindInFilesSilverSearcher::title() const QString title() const final { return "Silver Searcher"; }
QString toolTip() const final { return {}; }
QWidget *widget() const final { return m_widget; }
void readSettings(QtcSettings *settings) final
{ {
return "Silver Searcher"; m_searchOptionsLineEdit->setText(settings->value(s_searchOptionsString).toString());
} }
QString FindInFilesSilverSearcher::toolTip() const void writeSettings(QtcSettings *settings) const final
{
return {};
}
QWidget *FindInFilesSilverSearcher::widget() const
{
return m_widget;
}
void FindInFilesSilverSearcher::writeSettings(QtcSettings *settings) const
{ {
settings->setValue(s_searchOptionsString, m_searchOptionsLineEdit->text()); settings->setValue(s_searchOptionsString, m_searchOptionsLineEdit->text());
} }
SearchExecutor FindInFilesSilverSearcher::searchExecutor() const SearchExecutor searchExecutor() const final
{ {
return [searchOptions = m_searchOptionsLineEdit->text()](const FileFindParameters &parameters) { return [searchOptions = m_searchOptionsLineEdit->text()](const FileFindParameters &parameters) {
return Utils::asyncRun(runSilverSeacher, parameters, searchOptions); return Utils::asyncRun(runSilverSeacher, parameters, searchOptions);
}; };
} }
void FindInFilesSilverSearcher::readSettings(QtcSettings *settings) private:
FilePath m_directorySetting;
QPointer<QWidget> m_widget;
QPointer<QLineEdit> m_searchOptionsLineEdit;
};
void setupFindInFilesSilverSearcher()
{ {
m_searchOptionsLineEdit->setText(settings->value(s_searchOptionsString).toString()); static FindInFilesSilverSearcher theFindInFilesSilverSearcher;
} }
} // namespace SilverSearcher } // namespace SilverSearcher

View File

@@ -3,43 +3,8 @@
#pragma once #pragma once
#include <texteditor/basefilefind.h>
#include <utils/filepath.h>
#include <QPointer>
QT_BEGIN_NAMESPACE
class QLineEdit;
QT_END_NAMESPACE
namespace Core { class IFindSupport; }
namespace SilverSearcher { namespace SilverSearcher {
class FindInFilesSilverSearcher : public TextEditor::SearchEngine void setupFindInFilesSilverSearcher();
{
Q_OBJECT
public:
explicit FindInFilesSilverSearcher(QObject *parent);
// TextEditor::FileFindExtension
QString title() const override;
QString toolTip() const override;
QWidget *widget() const override;
void readSettings(Utils::QtcSettings *settings) override;
void writeSettings(Utils::QtcSettings *settings) const override;
TextEditor::SearchExecutor searchExecutor() const override;
private:
QPointer<Core::IFindSupport> m_currentFindSupport;
Utils::FilePath m_directorySetting;
QPointer<QWidget> m_widget;
QPointer<QLineEdit> m_searchOptionsLineEdit;
QString m_path;
QString m_toolName;
};
} // namespace SilverSearcher } // namespace SilverSearcher

View File

@@ -15,7 +15,7 @@ class SilverSearcherPlugin final : public ExtensionSystem::IPlugin
void initialize() final void initialize() final
{ {
new FindInFilesSilverSearcher(this); setupFindInFilesSilverSearcher();
#ifdef WITH_TESTS #ifdef WITH_TESTS
addTest<OutputParserTest>(); addTest<OutputParserTest>();