1
0
mirror of https://github.com/d47081/qBittorrent.git synced 2025-01-23 13:04:23 +00:00

Improve Path constructor performance

This commit is contained in:
Chocobo1 2022-02-12 00:53:34 +08:00
parent 78eaa49cd6
commit 56c3983885
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C

View File

@ -29,6 +29,8 @@
#include "path.h" #include "path.h"
#include <algorithm>
#include <QDataStream> #include <QDataStream>
#include <QDir> #include <QDir>
#include <QFileInfo> #include <QFileInfo>
@ -44,8 +46,20 @@ const Qt::CaseSensitivity CASE_SENSITIVITY = Qt::CaseSensitive;
const int PATHLIST_TYPEID = qRegisterMetaType<PathList>("PathList"); const int PATHLIST_TYPEID = qRegisterMetaType<PathList>("PathList");
namespace
{
QString cleanPath(const QString &path)
{
const bool hasSeparator = std::any_of(path.cbegin(), path.cend(), [](const QChar c)
{
return (c == u'/') || (c == u'\\');
});
return hasSeparator ? QDir::cleanPath(path) : path;
}
}
Path::Path(const QString &pathStr) Path::Path(const QString &pathStr)
: m_pathStr {QDir::cleanPath(pathStr)} : m_pathStr {cleanPath(pathStr)}
{ {
} }