Formatting, style

This commit is contained in:
Klaus Basan
2018-05-18 20:35:08 +02:00
parent 7965f67455
commit fc35e8b654
14 changed files with 66 additions and 65 deletions

View File

@@ -11,6 +11,7 @@
#include "directoryutils.h"
#include "fileutils.h"
#include "stringutils.h"
#include "range.h"
#include "blackconfig/buildconfig.h"
#include <QCoreApplication>
@@ -119,7 +120,7 @@ namespace BlackMisc
static const QFileInfoList fileInfoList([]
{
const QDir swiftAppData(CDirectoryUtils::applicationDataDirectory()); // contains 1..n subdirs
if (!swiftAppData.isReadable()) return QFileInfoList();
if (!swiftAppData.isReadable()) { return QFileInfoList(); }
return swiftAppData.entryInfoList({}, QDir::Dirs | QDir::NoDotAndDotDot, QDir::Time);
}());
return fileInfoList;
@@ -143,29 +144,42 @@ namespace BlackMisc
return dirs;
}
QMap<QString, CApplicationInfo> CDirectoryUtils::applicationDataDirectoryMap(bool withoutCurrent)
const QMap<QString, CApplicationInfo> &CDirectoryUtils::applicationDataDirectoryMapWithoutCurrentVersion()
{
static const CApplicationInfo nullInfo;
QMap<QString, CApplicationInfo> dirs;
for (const QFileInfo &info : CDirectoryUtils::applicationDataDirectories())
static const QMap<QString, CApplicationInfo> dirs = [ = ]
{
if (withoutCurrent && info.filePath().contains(normalizedApplicationDirectory(), Qt::CaseInsensitive)) continue;
const QString appInfoFile = CFileUtils::appendFilePaths(info.filePath(), CApplicationInfo::fileName());
const QString appInfoJson = CFileUtils::readFileToString(appInfoFile);
if (appInfoJson.isEmpty())
QMap<QString, CApplicationInfo> directories;
for (const QFileInfo &info : CDirectoryUtils::applicationDataDirectories())
{
dirs.insert(info.filePath(), nullInfo);
if (caseInsensitiveStringCompare(info.filePath(), CDirectoryUtils::normalizedApplicationDataDirectory())) { continue; }
// the application info will be written by each swift application started
// so the application type will always contain that application
const QString appInfoFile = CFileUtils::appendFilePaths(info.filePath(), CApplicationInfo::fileName());
const QString appInfoJson = CFileUtils::readFileToString(appInfoFile);
CApplicationInfo appInfo;
if (appInfoJson.isEmpty())
{
const QString exeDir = CDirectoryUtils::decodeNormalizedDirectory(info.filePath());
appInfo.setExecutablePath(exeDir);
}
else
{
appInfo = CApplicationInfo::fromJson(appInfoJson);
}
appInfo.setApplicationDataDirectory(info.filePath());
directories.insert(info.filePath(), appInfo);
}
else
{
const CApplicationInfo appInfo = CApplicationInfo::fromJson(appInfoJson);
dirs.insert(info.filePath(), appInfo);
}
}
return directories;
}();
return dirs;
}
bool CDirectoryUtils::hasOtherSwiftDataDirectories()
{
return CDirectoryUtils::applicationDataDirectoryMapWithoutCurrentVersion().size() > 0;
}
const QString &CDirectoryUtils::normalizedApplicationDataDirectory()
{
static const QString p = CFileUtils::appendFilePaths(applicationDataDirectory(), normalizedApplicationDirectory());

View File

@@ -46,6 +46,7 @@ namespace BlackMisc
static QString executableFilePath(const QString &executable);
//! swift application data directory, contains 0..n swift installation directories
//! \remark use CDirectoryUtils::normalizedApplicationDataDirectory for one specific version
static const QString &applicationDataDirectory();
//! swift application data sub directories
@@ -58,13 +59,17 @@ namespace BlackMisc
static QStringList applicationDataDirectoryList(bool withoutCurrent = false, bool decodedDirName = false);
//! swift application data sub directories with info if available
static QMap<QString, CApplicationInfo> applicationDataDirectoryMap(bool withoutCurrent = false);
static const QMap<QString, CApplicationInfo> &applicationDataDirectoryMapWithoutCurrentVersion();
//! Other swift data directories
static bool hasOtherSwiftDataDirectories();
//! Is MacOS application bundle?
//! \remark: Means the currently running executable is a MacOS bundle, but not all our executables are bundles on MacOS
static bool isMacOSAppBundle();
//! swift application data directory for one specific installation (a version)
//! \remark use CDirectoryUtils::applicationDataDirectory for one all swift versions
static const QString &normalizedApplicationDataDirectory();
//! Where resource files (static DB files, ...) etc are located

View File

@@ -339,6 +339,6 @@ namespace BlackMisc
if (in.isEmpty()) { return ignoreEmpty ? e : ea; }
return QStringLiteral("\"") % in % QStringLiteral("\"");
}
}
} // ns
//! \endcond

View File

@@ -192,7 +192,8 @@ namespace BlackMisc
auto *meta = Private::getValueObjectMetaInfo(typeId);
if (meta)
{
CJsonScope scope("value");
CJsonScope scope("value"); // tracker
Q_UNUSED(scope);
m_v = QVariant(typeId, nullptr);
// this will call convertFromJson if there is no MemoizedJson