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

@@ -111,6 +111,7 @@ namespace BlackCore
Q_ASSERT_X(!sApp, Q_FUNC_INFO, "already initialized"); Q_ASSERT_X(!sApp, Q_FUNC_INFO, "already initialized");
Q_ASSERT_X(QCoreApplication::instance(), Q_FUNC_INFO, "no application object"); Q_ASSERT_X(QCoreApplication::instance(), Q_FUNC_INFO, "no application object");
m_applicationInfo.setApplicationDataDirectory(CDirectoryUtils::normalizedApplicationDataDirectory());
QCoreApplication::setApplicationName(m_applicationName); QCoreApplication::setApplicationName(m_applicationName);
QCoreApplication::setApplicationVersion(CBuildConfig::getVersionString()); QCoreApplication::setApplicationVersion(CBuildConfig::getVersionString());
this->setObjectName(m_applicationName); this->setObjectName(m_applicationName);
@@ -138,7 +139,7 @@ namespace BlackCore
const QString tempPath(this->getTemporaryDirectory()); const QString tempPath(this->getTemporaryDirectory());
BlackMisc::setMockCacheRootDirectory(tempPath); BlackMisc::setMockCacheRootDirectory(tempPath);
} }
m_alreadyRunning = CApplication::getRunningApplications().containsApplication(CApplication::getSwiftApplication()); m_alreadyRunning = CApplication::getRunningApplications().containsApplication(CApplication::getApplicationInfo().getApplication());
this->initParser(); this->initParser();
this->initLogging(); this->initLogging();
this->tagApplicationDataDirectory(); this->tagApplicationDataDirectory();
@@ -229,12 +230,6 @@ namespace BlackCore
this->gracefulShutdown(); this->gracefulShutdown();
} }
const CApplicationInfo &CApplication::getApplicationInfo() const
{
static const CApplicationInfo a(CApplication::getSwiftApplication());
return a;
}
CApplicationInfoList CApplication::getRunningApplications() CApplicationInfoList CApplication::getRunningApplications()
{ {
CApplicationInfoList apps; CApplicationInfoList apps;
@@ -251,7 +246,7 @@ namespace BlackCore
bool CApplication::isAlreadyRunning() const bool CApplication::isAlreadyRunning() const
{ {
return getRunningApplications().containsBy([this](const CApplicationInfo & info) { return info.getApplication() == getSwiftApplication(); }); return getRunningApplications().containsBy([this](const CApplicationInfo & info) { return info.getApplication() == getApplicationInfo().getApplication(); });
} }
bool CApplication::isShuttingDown() const bool CApplication::isShuttingDown() const

View File

@@ -111,9 +111,6 @@ namespace BlackCore
//! Destructor //! Destructor
virtual ~CApplication(); virtual ~CApplication();
//! Application information
const BlackMisc::CApplicationInfo &getApplicationInfo() const;
//! Information about all running apps (including this one only if exec() has already been called) //! Information about all running apps (including this one only if exec() has already been called)
static BlackMisc::CApplicationInfoList getRunningApplications(); static BlackMisc::CApplicationInfoList getRunningApplications();
@@ -130,6 +127,9 @@ namespace BlackCore
//! \threadsafe //! \threadsafe
bool isShuttingDown() const; bool isShuttingDown() const;
//! swift application running
const BlackMisc::CApplicationInfo &getApplicationInfo() const { return m_applicationInfo; }
//! Application name and version //! Application name and version
const QString &getApplicationName() const { return m_applicationName; } const QString &getApplicationName() const { return m_applicationName; }
@@ -142,9 +142,6 @@ namespace BlackCore
//! Force single application (only one instance) //! Force single application (only one instance)
void setSingleApplication(bool singleApplication); void setSingleApplication(bool singleApplication);
//! swift application running
BlackMisc::CApplicationInfo::Application getSwiftApplication() const { return m_applicationInfo.getApplication(); }
//! Executable names for the given applications //! Executable names for the given applications
QString getExecutableForApplication(BlackMisc::CApplicationInfo::Application application) const; QString getExecutableForApplication(BlackMisc::CApplicationInfo::Application application) const;

View File

@@ -24,6 +24,7 @@
#include <QFileSystemModel> #include <QFileSystemModel>
#include <QDir> #include <QDir>
#include <QDesktopServices> #include <QDesktopServices>
#include <QPointer>
using namespace BlackMisc; using namespace BlackMisc;
using namespace BlackMisc::Simulation; using namespace BlackMisc::Simulation;
@@ -246,7 +247,6 @@ namespace BlackGui
destinationModel->setNameFilters(this->getSourceFileFilter()); destinationModel->setNameFilters(this->getSourceFileFilter());
destinationModel->setNameFilterDisables(m_nameFilterDisables); destinationModel->setNameFilterDisables(m_nameFilterDisables);
// source // source
const QString sourceDir = this->getOtherVersionsSelectedDirectory(); const QString sourceDir = this->getOtherVersionsSelectedDirectory();
if (!sourceModel || m_initializedSourceDir != sourceDir) if (!sourceModel || m_initializedSourceDir != sourceDir)
@@ -399,8 +399,8 @@ namespace BlackGui
void CCopyConfigurationComponent::initMultiSimulatorCache(IMultiSimulatorModelCaches *cache, const QString &fileName) void CCopyConfigurationComponent::initMultiSimulatorCache(IMultiSimulatorModelCaches *cache, const QString &fileName)
{ {
const CSimulatorInfo info = cache->getSimulatorForFilename(fileName); const CSimulatorInfo info = cache->getSimulatorForFilename(fileName);
if (info.isNoSimulator()) return; if (info.isNoSimulator()) { return; }
if (cache->isSaved(info)) return; // already a file and hence in .rev if (cache->isSaved(info)) { return; } // already a file and hence in .rev
const QFileInfo fi(fileName); const QFileInfo fi(fileName);
const CStatusMessage msg = cache->setCacheTimestamp(fi.lastModified(), info); // create cache file and timestamp in .rev const CStatusMessage msg = cache->setCacheTimestamp(fi.lastModified(), info); // create cache file and timestamp in .rev
if (msg.isFailure()) if (msg.isFailure())
@@ -412,13 +412,14 @@ namespace BlackGui
void CCopyConfigurationComponent::initOtherSwiftVersions() void CCopyConfigurationComponent::initOtherSwiftVersions()
{ {
ui->cb_OtherVersions->clear(); ui->cb_OtherVersions->clear();
const QMap<QString, CApplicationInfo> otherVersions = CDirectoryUtils::applicationDataDirectoryMap(true); const QMap<QString, CApplicationInfo> otherVersions = CDirectoryUtils::applicationDataDirectoryMapWithoutCurrentVersion();
for (const QString &directory : otherVersions.keys()) for (const QString &directory : otherVersions.keys())
{ {
const CApplicationInfo info(otherVersions.value(directory)); const CApplicationInfo info(otherVersions.value(directory));
if (info.isNull()) if (info.isNull())
{ {
ui->cb_OtherVersions->addItem(CDirectoryUtils::decodeNormalizedDirectory(directory)); const QString infoString = CDirectoryUtils::decodeNormalizedDirectory(directory);
ui->cb_OtherVersions->addItem(infoString);
} }
else else
{ {

View File

@@ -119,8 +119,8 @@ namespace BlackGui
//! Set widths //! Set widths
void setWidths(); void setWidths();
QStringList m_otherVersionDirs;
QScopedPointer<Ui::CCopyConfigurationComponent> ui; QScopedPointer<Ui::CCopyConfigurationComponent> ui;
QStringList m_otherVersionDirs;
QString m_initializedSourceDir; QString m_initializedSourceDir;
QString m_initializedDestinationDir; QString m_initializedDestinationDir;
bool m_logCopiedFiles = true; bool m_logCopiedFiles = true;
@@ -128,8 +128,8 @@ namespace BlackGui
bool m_withBootstrapFile = false; bool m_withBootstrapFile = false;
// caches will be explicitly initialized in initCaches // caches will be explicitly initialized in initCaches
BlackMisc::Simulation::Data::CModelCaches m_modelCaches{ false, this }; BlackMisc::Simulation::Data::CModelCaches m_modelCaches { false, this };
BlackMisc::Simulation::Data::CModelSetCaches m_modelSetCaches{ false, this }; BlackMisc::Simulation::Data::CModelSetCaches m_modelSetCaches { false, this };
// caches will be initialized so they can be overriden // caches will be initialized so they can be overriden
// those caches do not harm if they exists default initialized // those caches do not harm if they exists default initialized

View File

@@ -18,7 +18,6 @@
class QObject; class QObject;
namespace BlackMisc { namespace Network { class CServer; } }
namespace BlackGui namespace BlackGui
{ {
namespace Models namespace Models

View File

@@ -68,18 +68,10 @@ namespace BlackGui
this->setSortIndicator(); this->setSortIndicator();
switch (mode) switch (mode)
{ {
case CAircraftModelListModel::StashModel: case CAircraftModelListModel::StashModel: m_menus = MenuDefaultNoClear; break;
m_menus = MenuDefaultNoClear; case CAircraftModelListModel::Database: m_menus = MenuDefaultDbViews; break;
break; case CAircraftModelListModel::VPilotRuleModel: m_menus = MenuDefaultNoClear | MenuStashing; break;
case CAircraftModelListModel::Database: case CAircraftModelListModel::OwnAircraftModelMappingTool: m_menus = MenuDefaultNoClear | MenuStashing | MenuLoadAndSave; break;
m_menus = MenuDefaultDbViews;
break;
case CAircraftModelListModel::VPilotRuleModel:
m_menus = MenuDefaultNoClear | MenuStashing;
break;
case CAircraftModelListModel::OwnAircraftModelMappingTool:
m_menus = MenuDefaultNoClear | MenuStashing | MenuLoadAndSave;
break;
case CAircraftModelListModel::OwnAircraftModelClient: case CAircraftModelListModel::OwnAircraftModelClient:
default: default:
m_menus = MenuDefaultNoClear | MenuBackend; m_menus = MenuDefaultNoClear | MenuBackend;

View File

@@ -7,8 +7,7 @@
* contained in the LICENSE file. * contained in the LICENSE file.
*/ */
#include "blackgui/models/serverlistmodel.h" #include "serverview.h"
#include "blackgui/views/serverview.h"
using namespace BlackMisc; using namespace BlackMisc;
using namespace BlackGui::Models; using namespace BlackGui::Models;

View File

@@ -13,13 +13,11 @@
#define BLACKGUI_VIEWS_SERVERVIEW_H #define BLACKGUI_VIEWS_SERVERVIEW_H
#include "blackgui/blackguiexport.h" #include "blackgui/blackguiexport.h"
#include "blackgui/models/serverlistmodel.h"
#include "blackgui/views/viewbase.h" #include "blackgui/views/viewbase.h"
#include "blackmisc/network/serverlist.h" #include "blackgui/models/serverlistmodel.h"
class QWidget; class QWidget;
namespace BlackMisc { namespace Network { class CServer; } }
namespace BlackGui namespace BlackGui
{ {
namespace Views namespace Views

View File

@@ -104,7 +104,7 @@ namespace BlackGui
saveJson->setContext(Qt::WidgetShortcut); saveJson->setContext(Qt::WidgetShortcut);
QShortcut *deleteRow = new QShortcut(CShortcut::keyDelete(), this); QShortcut *deleteRow = new QShortcut(CShortcut::keyDelete(), this);
connect(deleteRow, &QShortcut::activated, this, &CViewBaseNonTemplate::ps_removeSelectedRows); connect(deleteRow, &QShortcut::activated, this, &CViewBaseNonTemplate::removeSelectedRowsChecked);
deleteRow->setObjectName("Remove selected rows for " + this->objectName()); deleteRow->setObjectName("Remove selected rows for " + this->objectName());
deleteRow->setContext(Qt::WidgetShortcut); deleteRow->setContext(Qt::WidgetShortcut);
@@ -258,7 +258,7 @@ namespace BlackGui
a->setChecked(this->displayAutomatically()); a->setChecked(this->displayAutomatically());
break; break;
} }
case MenuRemoveSelectedRows: { ma.addAction(CIcons::delete16(), "Remove selected rows", CMenuAction::pathViewAddRemove(), { this, &CViewBaseNonTemplate::ps_removeSelectedRows }, CShortcut::keyDelete()); break; } case MenuRemoveSelectedRows: { ma.addAction(CIcons::delete16(), "Remove selected rows", CMenuAction::pathViewAddRemove(), { this, &CViewBaseNonTemplate::removeSelectedRowsChecked }, CShortcut::keyDelete()); break; }
case MenuClear: { ma.addAction(CIcons::delete16(), "Clear", CMenuAction::pathViewAddRemove(), { this, &CViewBaseNonTemplate::clear }); break; } case MenuClear: { ma.addAction(CIcons::delete16(), "Clear", CMenuAction::pathViewAddRemove(), { this, &CViewBaseNonTemplate::clear }); break; }
case MenuFilter: case MenuFilter:
{ {
@@ -827,7 +827,7 @@ namespace BlackGui
} }
} }
void CViewBaseNonTemplate::ps_removeSelectedRows() void CViewBaseNonTemplate::removeSelectedRowsChecked()
{ {
if (!m_enableDeleteSelectedRows) { return; } if (!m_enableDeleteSelectedRows) { return; }
this->removeSelectedRows(); this->removeSelectedRows();

View File

@@ -540,8 +540,8 @@ namespace BlackGui
void setSingleSelection(); void setSingleSelection();
//! @} //! @}
//! Remove selected rows //! Remove selected rows if enabled
void ps_removeSelectedRows(); void removeSelectedRowsChecked();
//! Toggle auto display flag //! Toggle auto display flag
void toggleAutoDisplay(); void toggleAutoDisplay();

View File

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

View File

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

View File

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

View File

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