diff --git a/src/blackmisc/simulation/data/modelcaches.cpp b/src/blackmisc/simulation/data/modelcaches.cpp index d17492a8c..e9d365c4c 100644 --- a/src/blackmisc/simulation/data/modelcaches.cpp +++ b/src/blackmisc/simulation/data/modelcaches.cpp @@ -7,9 +7,10 @@ * contained in the LICENSE file. */ +#include "blackmisc/simulation/data/modelcaches.h" +#include "blackmisc/cachesettingsutils.h" #include "blackmisc/logmessage.h" #include "blackmisc/verify.h" -#include "blackmisc/simulation/data/modelcaches.h" #include using namespace BlackMisc; @@ -53,6 +54,22 @@ namespace BlackMisc return this->getCachedModels(simulator).size(); } + bool IMultiSimulatorModelCaches::hasOtherVersionFile(const CApplicationInfo &info, const CSimulatorInfo &simulator) const + { + const QString fn = this->getFilename(simulator); + return CCacheSettingsUtils::hasOtherVersionCacheFile(info, fn); + } + + CSimulatorInfo IMultiSimulatorModelCaches::otherVersionSimulatorsWithFile(const CApplicationInfo &info) const + { + CSimulatorInfo sim = CSimulatorInfo(CSimulatorInfo::None); + if (this->hasOtherVersionFile(info, CSimulatorInfo::fsx())) { sim.addSimulator(CSimulatorInfo::fsx()); } + if (this->hasOtherVersionFile(info, CSimulatorInfo::p3d())) { sim.addSimulator(CSimulatorInfo::p3d()); } + if (this->hasOtherVersionFile(info, CSimulatorInfo::fs9())) { sim.addSimulator(CSimulatorInfo::fs9()); } + if (this->hasOtherVersionFile(info, CSimulatorInfo::xplane())) { sim.addSimulator(CSimulatorInfo::xplane()); } + return sim; + } + QStringList IMultiSimulatorModelCaches::getAllFilenames() const { return QStringList( diff --git a/src/blackmisc/simulation/data/modelcaches.h b/src/blackmisc/simulation/data/modelcaches.h index 6c0d5a316..5b3f1b7e1 100644 --- a/src/blackmisc/simulation/data/modelcaches.h +++ b/src/blackmisc/simulation/data/modelcaches.h @@ -12,12 +12,13 @@ #ifndef BLACKMISC_SIMULATION_DATA_MODELCACHES #define BLACKMISC_SIMULATION_DATA_MODELCACHES -#include "blackmisc/blackmiscexport.h" -#include "blackmisc/datacache.h" #include "blackmisc/simulation/aircraftmodelinterfaces.h" #include "blackmisc/simulation/aircraftmodellist.h" #include "blackmisc/simulation/simulatorinfo.h" +#include "blackmisc/applicationinfo.h" #include "blackmisc/statusmessage.h" +#include "blackmisc/datacache.h" +#include "blackmisc/blackmiscexport.h" #include #include @@ -170,6 +171,12 @@ namespace BlackMisc //! Get filename for simulator cache file virtual QString getFilename(const BlackMisc::Simulation::CSimulatorInfo &simulator) const = 0; + //! Has the other version the file? + bool hasOtherVersionFile(const BlackMisc::CApplicationInfo &info, const BlackMisc::Simulation::CSimulatorInfo &simulator) const; + + //! Simulators of given other versionwhich have a cache file + BlackMisc::Simulation::CSimulatorInfo otherVersionSimulatorsWithFile(const BlackMisc::CApplicationInfo &info) const; + //! All file names virtual QStringList getAllFilenames() const;