Application info: Checking if directory exists (swift version exists) plus fixes in property functions

This commit is contained in:
Klaus Basan
2018-08-17 02:25:43 +02:00
parent dc534fc88c
commit 6807eb8d35
3 changed files with 24 additions and 4 deletions

View File

@@ -31,6 +31,8 @@ namespace BlackGui
m_columns.addColumn(CColumn::standardString("version", CApplicationInfo::IndexVersionString)); m_columns.addColumn(CColumn::standardString("version", CApplicationInfo::IndexVersionString));
m_columns.addColumn(CColumn::standardString("OS", CApplicationInfo::IndexPlatformInfo)); m_columns.addColumn(CColumn::standardString("OS", CApplicationInfo::IndexPlatformInfo));
m_columns.addColumn(CColumn::standardString("exe.path", CApplicationInfo::IndexExecutablePath)); m_columns.addColumn(CColumn::standardString("exe.path", CApplicationInfo::IndexExecutablePath));
m_columns.addColumn(CColumn("e.?", "existing?", CApplicationInfo::IndexExecutablePathExisting,
new CBoolIconFormatter("directory existing", "directory not existing")));
m_columns.addColumn(CColumn::standardString("data.path", CApplicationInfo::IndexApplicationDataPath)); m_columns.addColumn(CColumn::standardString("data.path", CApplicationInfo::IndexApplicationDataPath));
// default sort order // default sort order

View File

@@ -13,6 +13,8 @@
#include "blackmisc/iconlist.h" #include "blackmisc/iconlist.h"
#include "blackmisc/comparefunctions.h" #include "blackmisc/comparefunctions.h"
#include "blackconfig/buildconfig.h" #include "blackconfig/buildconfig.h"
#include <QDir>
#include <QStringBuilder> #include <QStringBuilder>
using namespace BlackConfig; using namespace BlackConfig;
@@ -59,6 +61,13 @@ namespace BlackMisc
return unknown; return unknown;
} }
bool CApplicationInfo::isExecutablePathExisting() const
{
if (this->getExecutablePath().isEmpty()) { return false; }
const QDir d(this->getExecutablePath());
return d.exists();
}
bool CApplicationInfo::isSampleOrUnitTest() const bool CApplicationInfo::isSampleOrUnitTest() const
{ {
const Application a = this->getApplication(); const Application a = this->getApplication();
@@ -112,6 +121,7 @@ namespace BlackMisc
case IndexApplicationDataPath: return CVariant::fromValue(this->getApplicationDataDirectory()); case IndexApplicationDataPath: return CVariant::fromValue(this->getApplicationDataDirectory());
case IndexCompileInfo: return CVariant::fromValue(this->getCompileInfo()); case IndexCompileInfo: return CVariant::fromValue(this->getCompileInfo());
case IndexExecutablePath: return CVariant::fromValue(this->getExecutablePath()); case IndexExecutablePath: return CVariant::fromValue(this->getExecutablePath());
case IndexExecutablePathExisting: return CVariant::fromValue(this->isExecutablePathExisting());
case IndexPlatformInfo: return CVariant::fromValue(this->getPlatform()); case IndexPlatformInfo: return CVariant::fromValue(this->getPlatform());
case IndexProcessInfo: return m_process.propertyByIndex(index.copyFrontRemoved()); case IndexProcessInfo: return m_process.propertyByIndex(index.copyFrontRemoved());
case IndexVersionString: return CVariant::fromValue(this->getVersionString()); case IndexVersionString: return CVariant::fromValue(this->getVersionString());
@@ -132,10 +142,11 @@ namespace BlackMisc
case IndexApplicationDataPath: this->setApplicationDataDirectory(variant.toQString()); break; case IndexApplicationDataPath: this->setApplicationDataDirectory(variant.toQString()); break;
case IndexCompileInfo: this->setCompileInfo(variant.toQString()); break; case IndexCompileInfo: this->setCompileInfo(variant.toQString()); break;
case IndexExecutablePath: this->setExecutablePath(variant.toQString()); break; case IndexExecutablePath: this->setExecutablePath(variant.toQString()); break;
case IndexExecutablePathExisting: break;
case IndexPlatformInfo: this->setPlatformInfo(variant.toQString()); break; case IndexPlatformInfo: this->setPlatformInfo(variant.toQString()); break;
case IndexProcessInfo: m_process.setPropertyByIndex(index.copyFrontRemoved(), variant); break; case IndexProcessInfo: m_process.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
case IndexVersionString: this->setVersionString(variant.toQString()); break; case IndexVersionString: this->setVersionString(variant.toQString()); break;
case IndexWordSize: return this->setWordSize(variant.toInt()); break; case IndexWordSize: this->setWordSize(variant.toInt()); break;
default: CValueObject::setPropertyByIndex(index, variant); break; default: CValueObject::setPropertyByIndex(index, variant); break;
} }
} }
@@ -146,9 +157,10 @@ namespace BlackMisc
const ColumnIndex i = index.frontCasted<ColumnIndex>(); const ColumnIndex i = index.frontCasted<ColumnIndex>();
switch (i) switch (i)
{ {
case IndexApplicationDataPath: this->getApplicationDataDirectory().compare(compareValue.getApplicationDataDirectory()); case IndexApplicationDataPath: return this->getApplicationDataDirectory().compare(compareValue.getApplicationDataDirectory());
case IndexCompileInfo: this->getCompileInfo().compare(compareValue.getCompileInfo()); case IndexCompileInfo: return this->getCompileInfo().compare(compareValue.getCompileInfo());
case IndexExecutablePath: this->getExecutablePath().compare(compareValue.getExecutablePath()); case IndexExecutablePath: return this->getExecutablePath().compare(compareValue.getExecutablePath());
case IndexExecutablePathExisting: return Compare::compare(this->isExecutablePathExisting(), compareValue.isExecutablePathExisting());
case IndexPlatformInfo: return this->getPlatform().compare(compareValue.getPlatform()); case IndexPlatformInfo: return this->getPlatform().compare(compareValue.getPlatform());
case IndexProcessInfo: return this->getProcessInfo().processName().compare(compareValue.getProcessInfo().processName()); case IndexProcessInfo: return this->getProcessInfo().processName().compare(compareValue.getProcessInfo().processName());
case IndexVersionString: return this->getVersionString().compare(compareValue.getVersionString()); case IndexVersionString: return this->getVersionString().compare(compareValue.getVersionString());

View File

@@ -47,6 +47,7 @@ namespace BlackMisc
IndexApplicationDataPath, IndexApplicationDataPath,
IndexCompileInfo, IndexCompileInfo,
IndexExecutablePath, IndexExecutablePath,
IndexExecutablePathExisting,
IndexPlatformInfo, IndexPlatformInfo,
IndexProcessInfo, IndexProcessInfo,
IndexVersionString, IndexVersionString,
@@ -74,6 +75,11 @@ namespace BlackMisc
//! Get executable path. //! Get executable path.
const QString &getExecutablePath() const { return m_exePath; } const QString &getExecutablePath() const { return m_exePath; }
//! Is the executable path existing?
//! \remark this indicates if the swift version is still existing
//! \remark file check, relatively slow
bool isExecutablePathExisting() const;
//! Set application data dir //! Set application data dir
//! \remark rootdir of settings, cache and logs //! \remark rootdir of settings, cache and logs
void setApplicationDataDirectory(const QString &appDataDir) { m_applicationDataDir = appDataDir; } void setApplicationDataDirectory(const QString &appDataDir) { m_applicationDataDir = appDataDir; }