forked from qt-creator/qt-creator
Utils: Add FilePath::{suffix,fileName}View functions
Can save a few cycles in some cases. Change-Id: I0da3ad9ae2127e20f8e90d68f924e87661028071 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -248,10 +248,15 @@ QString FilePath::nativePath() const
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FilePath::fileName() const
|
QStringView FilePath::fileNameView() const
|
||||||
{
|
{
|
||||||
const QStringView fp = pathView();
|
const QStringView fp = pathView();
|
||||||
return fp.mid(fp.lastIndexOf('/') + 1).toString();
|
return fp.mid(fp.lastIndexOf('/') + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FilePath::fileName() const
|
||||||
|
{
|
||||||
|
return fileNameView().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FilePath::fileNameWithPathComponents(int pathComponents) const
|
QString FilePath::fileNameWithPathComponents(int pathComponents) const
|
||||||
@@ -313,17 +318,22 @@ QString FilePath::completeBaseName() const
|
|||||||
/// (but not including) the last '.'. In case of ".ui.qml" it will
|
/// (but not including) the last '.'. In case of ".ui.qml" it will
|
||||||
/// be treated as one suffix.
|
/// be treated as one suffix.
|
||||||
|
|
||||||
QString FilePath::suffix() const
|
QStringView FilePath::suffixView() const
|
||||||
{
|
{
|
||||||
const QString &name = fileName();
|
const QStringView name = fileNameView();
|
||||||
if (name.endsWith(".ui.qml"))
|
if (name.endsWith(u".ui.qml"))
|
||||||
return "ui.qml";
|
return u"ui.qml";
|
||||||
const int index = name.lastIndexOf('.');
|
const int index = name.lastIndexOf('.');
|
||||||
if (index >= 0)
|
if (index >= 0)
|
||||||
return name.mid(index + 1);
|
return name.mid(index + 1);
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString FilePath::suffix() const
|
||||||
|
{
|
||||||
|
return suffixView().toString();
|
||||||
|
}
|
||||||
|
|
||||||
/// \returns the complete suffix (extension) of the file.
|
/// \returns the complete suffix (extension) of the file.
|
||||||
///
|
///
|
||||||
/// The complete suffix consists of all characters in the file after
|
/// The complete suffix consists of all characters in the file after
|
||||||
@@ -572,7 +582,7 @@ static FilePaths appendExeExtensions(const Environment &env, const FilePath &exe
|
|||||||
if (executable.osType() == OsTypeWindows) {
|
if (executable.osType() == OsTypeWindows) {
|
||||||
// Check all the executable extensions on windows:
|
// Check all the executable extensions on windows:
|
||||||
// PATHEXT is only used if the executable has no extension
|
// PATHEXT is only used if the executable has no extension
|
||||||
if (executable.suffix().isEmpty()) {
|
if (executable.suffixView().isEmpty()) {
|
||||||
const QStringList extensions = env.expandedValueForKey("PATHEXT").split(';');
|
const QStringList extensions = env.expandedValueForKey("PATHEXT").split(';');
|
||||||
|
|
||||||
for (const QString &ext : extensions)
|
for (const QString &ext : extensions)
|
||||||
|
@@ -81,11 +81,13 @@ public:
|
|||||||
void setParts(const QStringView scheme, const QStringView host, const QStringView path);
|
void setParts(const QStringView scheme, const QStringView host, const QStringView path);
|
||||||
|
|
||||||
QString fileName() const;
|
QString fileName() const;
|
||||||
|
QStringView fileNameView() const;
|
||||||
QString fileNameWithPathComponents(int pathComponents) const;
|
QString fileNameWithPathComponents(int pathComponents) const;
|
||||||
|
|
||||||
QString baseName() const;
|
QString baseName() const;
|
||||||
QString completeBaseName() const;
|
QString completeBaseName() const;
|
||||||
QString suffix() const;
|
QString suffix() const;
|
||||||
|
QStringView suffixView() const;
|
||||||
QString completeSuffix() const;
|
QString completeSuffix() const;
|
||||||
|
|
||||||
[[nodiscard]] FilePath pathAppended(const QString &str) const;
|
[[nodiscard]] FilePath pathAppended(const QString &str) const;
|
||||||
|
Reference in New Issue
Block a user