forked from qt-creator/qt-creator
SilverSearcher: Modernize plugin item setup
Change-Id: I787c28853b1e2993db008f47fe1cc71244471338 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -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,65 +98,61 @@ 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 {
|
|
||||||
|
|
||||||
FindInFilesSilverSearcher::FindInFilesSilverSearcher(QObject *parent)
|
|
||||||
: SearchEngine(parent)
|
|
||||||
, m_path("ag")
|
|
||||||
, m_toolName("SilverSearcher")
|
|
||||||
{
|
{
|
||||||
m_widget = new QWidget;
|
public:
|
||||||
auto layout = new QHBoxLayout(m_widget);
|
FindInFilesSilverSearcher()
|
||||||
layout->setContentsMargins(0, 0, 0, 0);
|
{
|
||||||
m_searchOptionsLineEdit = new QLineEdit;
|
m_widget = new QWidget;
|
||||||
m_searchOptionsLineEdit->setPlaceholderText(Tr::tr("Search Options (optional)"));
|
auto layout = new QHBoxLayout(m_widget);
|
||||||
layout->addWidget(m_searchOptionsLineEdit);
|
layout->setContentsMargins(0, 0, 0, 0);
|
||||||
|
m_searchOptionsLineEdit = new QLineEdit;
|
||||||
|
m_searchOptionsLineEdit->setPlaceholderText(Tr::tr("Search Options (optional)"));
|
||||||
|
layout->addWidget(m_searchOptionsLineEdit);
|
||||||
|
|
||||||
FindInFiles *findInFiles = FindInFiles::instance();
|
FindInFiles *findInFiles = FindInFiles::instance();
|
||||||
QTC_ASSERT(findInFiles, return);
|
QTC_ASSERT(findInFiles, return);
|
||||||
findInFiles->addSearchEngine(this);
|
findInFiles->addSearchEngine(this);
|
||||||
|
|
||||||
// TODO: Make disabled by default and run isSilverSearcherAvailable asynchronously
|
// TODO: Make disabled by default and run isSilverSearcherAvailable asynchronously
|
||||||
setEnabled(isSilverSearcherAvailable());
|
setEnabled(isSilverSearcherAvailable());
|
||||||
if (!isEnabled()) {
|
if (!isEnabled()) {
|
||||||
QLabel *label = new QLabel(Tr::tr("Silver Searcher is not available on the system."));
|
QLabel *label = new QLabel(Tr::tr("Silver Searcher is not available on the system."));
|
||||||
label->setStyleSheet("QLabel { color : red; }");
|
label->setStyleSheet("QLabel { color : red; }");
|
||||||
layout->addWidget(label);
|
layout->addWidget(label);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
QString FindInFilesSilverSearcher::title() const
|
QString title() const final { return "Silver Searcher"; }
|
||||||
{
|
QString toolTip() const final { return {}; }
|
||||||
return "Silver Searcher";
|
QWidget *widget() const final { return m_widget; }
|
||||||
}
|
|
||||||
|
|
||||||
QString FindInFilesSilverSearcher::toolTip() const
|
void readSettings(QtcSettings *settings) final
|
||||||
{
|
{
|
||||||
return {};
|
m_searchOptionsLineEdit->setText(settings->value(s_searchOptionsString).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget *FindInFilesSilverSearcher::widget() const
|
void writeSettings(QtcSettings *settings) const final
|
||||||
{
|
{
|
||||||
return m_widget;
|
settings->setValue(s_searchOptionsString, m_searchOptionsLineEdit->text());
|
||||||
}
|
}
|
||||||
|
|
||||||
void FindInFilesSilverSearcher::writeSettings(QtcSettings *settings) const
|
SearchExecutor searchExecutor() const final
|
||||||
{
|
{
|
||||||
settings->setValue(s_searchOptionsString, m_searchOptionsLineEdit->text());
|
return [searchOptions = m_searchOptionsLineEdit->text()](const FileFindParameters ¶meters) {
|
||||||
}
|
return Utils::asyncRun(runSilverSeacher, parameters, searchOptions);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
SearchExecutor FindInFilesSilverSearcher::searchExecutor() const
|
private:
|
||||||
{
|
FilePath m_directorySetting;
|
||||||
return [searchOptions = m_searchOptionsLineEdit->text()](const FileFindParameters ¶meters) {
|
QPointer<QWidget> m_widget;
|
||||||
return Utils::asyncRun(runSilverSeacher, parameters, searchOptions);
|
QPointer<QLineEdit> m_searchOptionsLineEdit;
|
||||||
};
|
};
|
||||||
}
|
|
||||||
|
|
||||||
void FindInFilesSilverSearcher::readSettings(QtcSettings *settings)
|
void setupFindInFilesSilverSearcher()
|
||||||
{
|
{
|
||||||
m_searchOptionsLineEdit->setText(settings->value(s_searchOptionsString).toString());
|
static FindInFilesSilverSearcher theFindInFilesSilverSearcher;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace SilverSearcher
|
} // namespace SilverSearcher
|
||||||
|
@@ -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
|
||||||
|
@@ -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>();
|
||||||
|
Reference in New Issue
Block a user