mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-05-03 07:35:53 +08:00
Ref T199, bootstrap (aka setup) cache explicitly initialized
* initMultiSimulatorCache * initCaches detecting bootstrap and init via high level functions
This commit is contained in:
@@ -10,6 +10,7 @@
|
|||||||
#include "ui_copyconfigurationcomponent.h"
|
#include "ui_copyconfigurationcomponent.h"
|
||||||
#include "copyconfigurationcomponent.h"
|
#include "copyconfigurationcomponent.h"
|
||||||
#include "configurationwizard.h"
|
#include "configurationwizard.h"
|
||||||
|
#include "blackcore/data/globalsetup.h"
|
||||||
#include "blackgui/guiapplication.h"
|
#include "blackgui/guiapplication.h"
|
||||||
#include "blackconfig/buildconfig.h"
|
#include "blackconfig/buildconfig.h"
|
||||||
#include "blackmisc/directoryutils.h"
|
#include "blackmisc/directoryutils.h"
|
||||||
@@ -27,6 +28,8 @@ using namespace BlackMisc::Simulation;
|
|||||||
using namespace BlackMisc::Simulation::Data;
|
using namespace BlackMisc::Simulation::Data;
|
||||||
using namespace BlackConfig;
|
using namespace BlackConfig;
|
||||||
using namespace BlackGui;
|
using namespace BlackGui;
|
||||||
|
using namespace BlackCore;
|
||||||
|
using namespace BlackCore::Data;
|
||||||
|
|
||||||
namespace BlackGui
|
namespace BlackGui
|
||||||
{
|
{
|
||||||
@@ -91,7 +94,7 @@ namespace BlackGui
|
|||||||
if (!destination.exists()) { return 0; }
|
if (!destination.exists()) { return 0; }
|
||||||
|
|
||||||
// init model caches if applicable (.rev file entries)
|
// init model caches if applicable (.rev file entries)
|
||||||
this->initModelCaches(files);
|
this->initCaches(files);
|
||||||
|
|
||||||
int c = 0;
|
int c = 0;
|
||||||
QStringList copied;
|
QStringList copied;
|
||||||
@@ -341,35 +344,25 @@ namespace BlackGui
|
|||||||
return files;
|
return files;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCopyConfigurationComponent::initModelCaches(const QStringList &files)
|
void CCopyConfigurationComponent::initCaches(const QStringList &files)
|
||||||
{
|
{
|
||||||
if (files.isEmpty()) { return; }
|
if (files.isEmpty()) { return; }
|
||||||
if (!ui->rb_Cache->isChecked()) { return; }
|
if (!ui->rb_Cache->isChecked()) { return; }
|
||||||
for (const QString &file : files)
|
for (const QString &file : files)
|
||||||
{
|
{
|
||||||
CStatusMessage msg;
|
|
||||||
IMultiSimulatorModelCaches *cache = nullptr;
|
|
||||||
if (file.contains("modelset", Qt::CaseInsensitive))
|
if (file.contains("modelset", Qt::CaseInsensitive))
|
||||||
{
|
{
|
||||||
cache = &m_modelSetCaches;
|
this->initMultiSimulatorCache(&m_modelSetCaches, file);
|
||||||
}
|
}
|
||||||
else if (file.contains("modelcache", Qt::CaseInsensitive))
|
else if (file.contains("modelcache", Qt::CaseInsensitive))
|
||||||
{
|
{
|
||||||
cache = &m_modelCaches;
|
this->initMultiSimulatorCache(&m_modelCaches, file);
|
||||||
}
|
}
|
||||||
else
|
else if (file.contains(CDirectoryUtils::bootstrapFileName()))
|
||||||
{
|
{
|
||||||
continue;
|
CData<TGlobalSetup> setup { this }; //!< data cache setup
|
||||||
}
|
const CGlobalSetup s = CGlobalSetup::fromJsonFile(file, true);
|
||||||
|
setup.set(s);
|
||||||
const CSimulatorInfo info = cache->getSimulatorForFilename(file);
|
|
||||||
if (info.isNoSimulator()) continue;
|
|
||||||
if (cache->isSaved(info)) continue; // already a file and hence in .rev
|
|
||||||
const QFileInfo fi(file);
|
|
||||||
msg = cache->setCacheTimestamp(fi.lastModified(), info); // create cache file and timestamp in .rev
|
|
||||||
if (msg.isFailure())
|
|
||||||
{
|
|
||||||
CLogMessage(this).preformatted(msg);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -377,6 +370,19 @@ namespace BlackGui
|
|||||||
CGuiApplication::processEventsFor(2500);
|
CGuiApplication::processEventsFor(2500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CCopyConfigurationComponent::initMultiSimulatorCache(IMultiSimulatorModelCaches *cache, const QString &fileName)
|
||||||
|
{
|
||||||
|
const CSimulatorInfo info = cache->getSimulatorForFilename(fileName);
|
||||||
|
if (info.isNoSimulator()) return;
|
||||||
|
if (cache->isSaved(info)) return; // already a file and hence in .rev
|
||||||
|
const QFileInfo fi(fileName);
|
||||||
|
const CStatusMessage msg = cache->setCacheTimestamp(fi.lastModified(), info); // create cache file and timestamp in .rev
|
||||||
|
if (msg.isFailure())
|
||||||
|
{
|
||||||
|
CLogMessage(this).preformatted(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CCopyConfigurationComponent::initOtherSwiftVersions()
|
void CCopyConfigurationComponent::initOtherSwiftVersions()
|
||||||
{
|
{
|
||||||
ui->cb_OtherVersions->clear();
|
ui->cb_OtherVersions->clear();
|
||||||
|
|||||||
@@ -99,8 +99,11 @@ namespace BlackGui
|
|||||||
//! Get the selected files
|
//! Get the selected files
|
||||||
QStringList getSelectedFiles() const;
|
QStringList getSelectedFiles() const;
|
||||||
|
|
||||||
//! Init model caches if required (create .rev entries with high level functions)
|
//! Init caches if required (create .rev entries with high level functions)
|
||||||
void initModelCaches(const QStringList &files);
|
void initCaches(const QStringList &files);
|
||||||
|
|
||||||
|
//! Init a multi simulator cache (modelset/models)
|
||||||
|
void initMultiSimulatorCache(BlackMisc::Simulation::Data::IMultiSimulatorModelCaches *cache, const QString &fileName);
|
||||||
|
|
||||||
//! Init the other swift versions
|
//! Init the other swift versions
|
||||||
void initOtherSwiftVersions();
|
void initOtherSwiftVersions();
|
||||||
@@ -116,9 +119,13 @@ namespace BlackGui
|
|||||||
bool m_nameFilterDisables = false; //!< name filter disables or hides
|
bool m_nameFilterDisables = false; //!< name filter disables or hides
|
||||||
bool m_withBootstrapFile = false;
|
bool m_withBootstrapFile = false;
|
||||||
|
|
||||||
// caches will be initialized (default files on disk)
|
// 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
|
||||||
|
// those caches do not harm if they exists default initialized
|
||||||
|
//! \fixme this is a workaround, as it creates files on disk even if those are not copied. It was much nicer if the cache would init themself if the file appears
|
||||||
BlackMisc::CData<BlackMisc::Simulation::Data::TModelSetLastSelection> m_modelSetCurrentSimulator { this };
|
BlackMisc::CData<BlackMisc::Simulation::Data::TModelSetLastSelection> m_modelSetCurrentSimulator { this };
|
||||||
BlackMisc::CData<BlackMisc::Simulation::Data::TModelCacheLastSelection> m_modelsCurrentSimulator { this };
|
BlackMisc::CData<BlackMisc::Simulation::Data::TModelCacheLastSelection> m_modelsCurrentSimulator { this };
|
||||||
BlackMisc::CData<BlackCore::Data::TLauncherSetup> m_launcherSetup { this };
|
BlackMisc::CData<BlackCore::Data::TLauncherSetup> m_launcherSetup { this };
|
||||||
|
|||||||
Reference in New Issue
Block a user