forked from qt-creator/qt-creator
TextEditor: Normalize path on Windows
Searching with wrong case causes the code-model to have duplicate files when opening a file from the results Change-Id: Id3e4d875230e14c2ab23345a7440372f71f76e8b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: David Schulz <david.schulz@digia.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
491ba6faab
commit
0dbaac7bcf
@@ -32,6 +32,7 @@
|
|||||||
#include <coreplugin/editormanager/editormanager.h>
|
#include <coreplugin/editormanager/editormanager.h>
|
||||||
#include <find/findplugin.h>
|
#include <find/findplugin.h>
|
||||||
#include <utils/filesearch.h>
|
#include <utils/filesearch.h>
|
||||||
|
#include <utils/fileutils.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
@@ -87,14 +88,13 @@ Utils::FileIterator *FindInFiles::files(const QStringList &nameFilters,
|
|||||||
|
|
||||||
QVariant FindInFiles::additionalParameters() const
|
QVariant FindInFiles::additionalParameters() const
|
||||||
{
|
{
|
||||||
return qVariantFromValue(QDir::fromNativeSeparators(m_directory->currentText()));
|
return qVariantFromValue(path());
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FindInFiles::label() const
|
QString FindInFiles::label() const
|
||||||
{
|
{
|
||||||
const QChar slash = QLatin1Char('/');
|
const QChar slash = QLatin1Char('/');
|
||||||
const QStringList &nonEmptyComponents = QDir::cleanPath(
|
const QStringList &nonEmptyComponents = QDir::cleanPath(QFileInfo(path()).absoluteFilePath())
|
||||||
QFileInfo(QDir::fromNativeSeparators(m_directory->currentText())).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(m_directory->currentText()).absoluteFilePath()))
|
.arg(QDir::toNativeSeparators(QFileInfo(path()).absoluteFilePath()))
|
||||||
.arg(fileNameFilters().join(QLatin1String(",")));
|
.arg(fileNameFilters().join(QLatin1String(",")));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ void FindInFiles::openFileBrowser()
|
|||||||
{
|
{
|
||||||
if (!m_directory)
|
if (!m_directory)
|
||||||
return;
|
return;
|
||||||
QString oldDir = m_directory->currentText();
|
QString oldDir = path();
|
||||||
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,6 +158,12 @@ void FindInFiles::openFileBrowser()
|
|||||||
m_directory->setEditText(QDir::toNativeSeparators(dir));
|
m_directory->setEditText(QDir::toNativeSeparators(dir));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString FindInFiles::path() const
|
||||||
|
{
|
||||||
|
return QDir::fromNativeSeparators(Utils::FileUtils::normalizePathName(
|
||||||
|
m_directory->currentText()));
|
||||||
|
}
|
||||||
|
|
||||||
void FindInFiles::writeSettings(QSettings *settings)
|
void FindInFiles::writeSettings(QSettings *settings)
|
||||||
{
|
{
|
||||||
settings->beginGroup(QLatin1String("FindInFiles"));
|
settings->beginGroup(QLatin1String("FindInFiles"));
|
||||||
|
|||||||
@@ -71,6 +71,8 @@ private slots:
|
|||||||
void openFileBrowser();
|
void openFileBrowser();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
QString path() const;
|
||||||
|
|
||||||
QStringListModel m_directoryStrings;
|
QStringListModel m_directoryStrings;
|
||||||
QString m_directorySetting;
|
QString m_directorySetting;
|
||||||
QPointer<QWidget> m_configWidget;
|
QPointer<QWidget> m_configWidget;
|
||||||
|
|||||||
Reference in New Issue
Block a user