Browse Source

Improve `Path` constructor performance

adaptive-webui-19844
Chocobo1 3 years ago
parent
commit
56c3983885
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
  1. 16
      src/base/path.cpp

16
src/base/path.cpp

@ -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)}
{ {
} }

Loading…
Cancel
Save