forked from qt-creator/qt-creator
File system search: Support ~/ for the directory that is searched
Start using Utils::FileName for that. Task-number: QTCREATORBUG-7753 Change-Id: I07276fcf1c609c68fcb63ac11a8833c78afd4fdd Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
@@ -88,13 +88,13 @@ Utils::FileIterator *FindInFiles::files(const QStringList &nameFilters,
|
|||||||
|
|
||||||
QVariant FindInFiles::additionalParameters() const
|
QVariant FindInFiles::additionalParameters() const
|
||||||
{
|
{
|
||||||
return qVariantFromValue(path());
|
return qVariantFromValue(path().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FindInFiles::label() const
|
QString FindInFiles::label() const
|
||||||
{
|
{
|
||||||
const QChar slash = QLatin1Char('/');
|
const QChar slash = QLatin1Char('/');
|
||||||
const QStringList &nonEmptyComponents = QDir::cleanPath(QFileInfo(path()).absoluteFilePath())
|
const QStringList &nonEmptyComponents = path().toFileInfo().absoluteFilePath()
|
||||||
.split(slash, QString::SkipEmptyParts);
|
.split(slash, QString::SkipEmptyParts);
|
||||||
return tr("Directory '%1':").arg(nonEmptyComponents.isEmpty() ? QString(slash) : nonEmptyComponents.last());
|
return tr("Directory '%1':").arg(nonEmptyComponents.isEmpty() ? QString(slash) : nonEmptyComponents.last());
|
||||||
}
|
}
|
||||||
@@ -103,7 +103,7 @@ QString FindInFiles::toolTip() const
|
|||||||
{
|
{
|
||||||
//: %3 is filled by BaseFileFind::runNewSearch
|
//: %3 is filled by BaseFileFind::runNewSearch
|
||||||
return tr("Path: %1\nFilter: %2\n%3")
|
return tr("Path: %1\nFilter: %2\n%3")
|
||||||
.arg(QDir::toNativeSeparators(QFileInfo(path()).absoluteFilePath()))
|
.arg(path().toUserOutput())
|
||||||
.arg(fileNameFilters().join(QLatin1String(",")));
|
.arg(fileNameFilters().join(QLatin1String(",")));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,7 +125,7 @@ QWidget *FindInFiles::createConfigWidget()
|
|||||||
m_directory->setInsertPolicy(QComboBox::InsertAtTop);
|
m_directory->setInsertPolicy(QComboBox::InsertAtTop);
|
||||||
m_directory->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
m_directory->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
||||||
m_directory->setModel(&m_directoryStrings);
|
m_directory->setModel(&m_directoryStrings);
|
||||||
syncComboWithSettings(m_directory, m_directorySetting);
|
syncComboWithSettings(m_directory, m_directorySetting.toUserOutput());
|
||||||
dirLabel->setBuddy(m_directory);
|
dirLabel->setBuddy(m_directory);
|
||||||
gridLayout->addWidget(m_directory, 0, 1);
|
gridLayout->addWidget(m_directory, 0, 1);
|
||||||
QPushButton *browseButton = new QPushButton(tr("&Browse..."));
|
QPushButton *browseButton = new QPushButton(tr("&Browse..."));
|
||||||
@@ -149,7 +149,7 @@ void FindInFiles::openFileBrowser()
|
|||||||
{
|
{
|
||||||
if (!m_directory)
|
if (!m_directory)
|
||||||
return;
|
return;
|
||||||
QString oldDir = path();
|
QString oldDir = path().toString();
|
||||||
if (!QDir(oldDir).exists())
|
if (!QDir(oldDir).exists())
|
||||||
oldDir.clear();
|
oldDir.clear();
|
||||||
QString dir = QFileDialog::getExistingDirectory(m_configWidget,
|
QString dir = QFileDialog::getExistingDirectory(m_configWidget,
|
||||||
@@ -158,9 +158,9 @@ void FindInFiles::openFileBrowser()
|
|||||||
m_directory->setEditText(QDir::toNativeSeparators(dir));
|
m_directory->setEditText(QDir::toNativeSeparators(dir));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FindInFiles::path() const
|
Utils::FileName FindInFiles::path() const
|
||||||
{
|
{
|
||||||
return QDir::fromNativeSeparators(Utils::FileUtils::normalizePathName(
|
return Utils::FileName::fromUserInput(Utils::FileUtils::normalizePathName(
|
||||||
m_directory->currentText()));
|
m_directory->currentText()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,7 +170,7 @@ void FindInFiles::writeSettings(QSettings *settings)
|
|||||||
writeCommonSettings(settings);
|
writeCommonSettings(settings);
|
||||||
settings->setValue(QLatin1String("directories"), m_directoryStrings.stringList());
|
settings->setValue(QLatin1String("directories"), m_directoryStrings.stringList());
|
||||||
if (m_directory)
|
if (m_directory)
|
||||||
settings->setValue(QLatin1String("currentDirectory"), m_directory->currentText());
|
settings->setValue(QLatin1String("currentDirectory"), path().toString());
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,14 +179,15 @@ void FindInFiles::readSettings(QSettings *settings)
|
|||||||
settings->beginGroup(QLatin1String("FindInFiles"));
|
settings->beginGroup(QLatin1String("FindInFiles"));
|
||||||
readCommonSettings(settings, QLatin1String("*.cpp,*.h"));
|
readCommonSettings(settings, QLatin1String("*.cpp,*.h"));
|
||||||
m_directoryStrings.setStringList(settings->value(QLatin1String("directories")).toStringList());
|
m_directoryStrings.setStringList(settings->value(QLatin1String("directories")).toStringList());
|
||||||
m_directorySetting = settings->value(QLatin1String("currentDirectory")).toString();
|
m_directorySetting = Utils::FileName::fromString(
|
||||||
|
settings->value(QLatin1String("currentDirectory")).toString());
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
syncComboWithSettings(m_directory, m_directorySetting);
|
syncComboWithSettings(m_directory, m_directorySetting.toUserOutput());
|
||||||
}
|
}
|
||||||
|
|
||||||
void FindInFiles::setDirectory(const QString &directory)
|
void FindInFiles::setDirectory(const Utils::FileName &directory)
|
||||||
{
|
{
|
||||||
syncComboWithSettings(m_directory, QDir::toNativeSeparators(directory));
|
syncComboWithSettings(m_directory, directory.toUserOutput());
|
||||||
}
|
}
|
||||||
|
|
||||||
void FindInFiles::findOnFileSystem(const QString &path)
|
void FindInFiles::findOnFileSystem(const QString &path)
|
||||||
@@ -194,6 +195,6 @@ void FindInFiles::findOnFileSystem(const QString &path)
|
|||||||
QTC_ASSERT(m_instance, return);
|
QTC_ASSERT(m_instance, return);
|
||||||
const QFileInfo fi(path);
|
const QFileInfo fi(path);
|
||||||
const QString folder = fi.isDir() ? fi.absoluteFilePath() : fi.absolutePath();
|
const QString folder = fi.isDir() ? fi.absoluteFilePath() : fi.absolutePath();
|
||||||
m_instance->setDirectory(folder);
|
m_instance->setDirectory(Utils::FileName::fromString(folder));
|
||||||
FindPlugin::instance()->openFindDialog(m_instance);
|
FindPlugin::instance()->openFindDialog(m_instance);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,8 @@
|
|||||||
|
|
||||||
#include "basefilefind.h"
|
#include "basefilefind.h"
|
||||||
|
|
||||||
|
#include <utils/fileutils.h>
|
||||||
|
|
||||||
#include <QPointer>
|
#include <QPointer>
|
||||||
#include <QStringListModel>
|
#include <QStringListModel>
|
||||||
|
|
||||||
@@ -55,7 +57,7 @@ public:
|
|||||||
void writeSettings(QSettings *settings);
|
void writeSettings(QSettings *settings);
|
||||||
void readSettings(QSettings *settings);
|
void readSettings(QSettings *settings);
|
||||||
|
|
||||||
void setDirectory(const QString &directory);
|
void setDirectory(const Utils::FileName &directory);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileIterator *files(const QStringList &nameFilters,
|
Utils::FileIterator *files(const QStringList &nameFilters,
|
||||||
@@ -71,10 +73,10 @@ private slots:
|
|||||||
void openFileBrowser();
|
void openFileBrowser();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString path() const;
|
Utils::FileName path() const;
|
||||||
|
|
||||||
QStringListModel m_directoryStrings;
|
QStringListModel m_directoryStrings;
|
||||||
QString m_directorySetting;
|
Utils::FileName m_directorySetting;
|
||||||
QPointer<QWidget> m_configWidget;
|
QPointer<QWidget> m_configWidget;
|
||||||
QPointer<QComboBox> m_directory;
|
QPointer<QComboBox> m_directory;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user