TextEditor: Use new setup pattern for the finders

The FindInFiles definition cannot go yet to the .cpp yet as there
are some exported functions.

Change-Id: I2d2f02ae80b560e3147f461fcbee0fa62b8085a3
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
hjk
2024-01-26 15:43:08 +01:00
parent 66b50438d8
commit 524167a936
7 changed files with 81 additions and 75 deletions

View File

@@ -23,12 +23,10 @@ using namespace Utils;
namespace TextEditor {
static FindInFiles *m_instance = nullptr;
static const char HistoryKey[] = "FindInFiles.Directories.History";
FindInFiles::FindInFiles()
{
m_instance = this;
connect(EditorManager::instance(), &EditorManager::findOnFileSystemRequest,
this, &FindInFiles::findOnFileSystem);
}
@@ -209,18 +207,30 @@ void FindInFiles::setBaseDirectory(const FilePath &directory)
m_directory->setBaseDirectory(directory);
}
static FindInFiles *s_instance;
FindInFiles &findInFiles()
{
return *s_instance;
}
void FindInFiles::findOnFileSystem(const QString &path)
{
QTC_ASSERT(m_instance, return);
const QFileInfo fi(path);
const QString folder = fi.isDir() ? fi.absoluteFilePath() : fi.absolutePath();
m_instance->setSearchDir(FilePath::fromString(folder));
Find::openFindDialog(m_instance);
findInFiles().setSearchDir(FilePath::fromString(folder));
Find::openFindDialog(&findInFiles());
}
FindInFiles *FindInFiles::instance()
{
return m_instance;
return s_instance;
}
void Internal::setupFindInFiles(QObject *guard)
{
s_instance = new FindInFiles;
s_instance->setParent(guard);
}
} // TextEditor