mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 11:55:35 +08:00
Ref T660, utility functions
This commit is contained in:
committed by
Mat Sutcliffe
parent
b71fb71fdc
commit
878a207f85
@@ -434,6 +434,23 @@ namespace BlackMisc
|
||||
return dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot | QDir::NoSymLinks);
|
||||
}
|
||||
|
||||
bool CDirectoryUtils::containsFileInDir(const QString &dir, const QString &filter, bool recursively)
|
||||
{
|
||||
QDir directory(dir);
|
||||
if (!directory.exists()) { return false; }
|
||||
|
||||
const QStringList nameFilter({ filter });
|
||||
if (!directory.entryInfoList(nameFilter, QDir::Files | QDir::NoDot | QDir::NoDotDot).isEmpty()) { return true; }
|
||||
|
||||
if (!recursively) { return false; }
|
||||
const QStringList subDirs = CDirectoryUtils::getSubDirectories(dir);
|
||||
for (const QString &subDir : subDirs)
|
||||
{
|
||||
if (CDirectoryUtils::containsFileInDir(subDir, filter, recursively)) { return true; }
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
QStringList CDirectoryUtils::verifyRuntimeDirectoriesAndFiles()
|
||||
{
|
||||
QStringList failed;
|
||||
|
||||
@@ -157,6 +157,9 @@ namespace BlackMisc
|
||||
//! All sub directories of given dir
|
||||
static QStringList getSubDirectories(const QString &rootDir);
|
||||
|
||||
//! Any file with filter like "*.txt"
|
||||
static bool containsFileInDir(const QString &dir, const QString &filter, bool recursively);
|
||||
|
||||
//! Check if the (most important) runtime directories are available
|
||||
static QStringList verifyRuntimeDirectoriesAndFiles();
|
||||
|
||||
|
||||
@@ -454,6 +454,16 @@ namespace BlackMisc
|
||||
return candidate;
|
||||
}
|
||||
|
||||
bool containsAny(const QString &testString, const QStringList &any, Qt::CaseSensitivity cs)
|
||||
{
|
||||
if (testString.isEmpty() || any.isEmpty()) { return false; }
|
||||
for (const QString &a : any)
|
||||
{
|
||||
if (testString.contains(a, cs)) { return true; }
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
} // ns
|
||||
|
||||
//! \endcond
|
||||
|
||||
@@ -295,6 +295,9 @@ namespace BlackMisc
|
||||
//! Default string if string is empty
|
||||
BLACKMISC_EXPORT const QString &defaultIfEmpty(const QString &candidate, const QString &defaultIfEmpty);
|
||||
|
||||
//! Contains any string of the list?
|
||||
BLACKMISC_EXPORT bool containsAny(const QString &testString, const QStringList &any, Qt::CaseSensitivity cs);
|
||||
|
||||
namespace Mixin
|
||||
{
|
||||
/*!
|
||||
|
||||
Reference in New Issue
Block a user