mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 14:55:36 +08:00
refs #755, allow to refresh GUI parts during consolidation
This commit is contained in:
committed by
Roland Winklmeier
parent
73d41d334b
commit
c848d7ca61
@@ -76,6 +76,11 @@ namespace BlackCore
|
||||
}
|
||||
|
||||
int CDatabaseUtils::consolidateModelsWithDbData(CAircraftModelList &models, bool force)
|
||||
{
|
||||
return CDatabaseUtils::consolidateModelsWithDbDataAllowsGuiRefresh(models, force, false);
|
||||
}
|
||||
|
||||
int CDatabaseUtils::consolidateModelsWithDbDataAllowsGuiRefresh(CAircraftModelList &models, bool force, bool processEvents)
|
||||
{
|
||||
QTime timer;
|
||||
timer.start();
|
||||
@@ -83,10 +88,17 @@ namespace BlackCore
|
||||
if (models.isEmpty()) { return c; }
|
||||
for (CAircraftModel &model : models)
|
||||
{
|
||||
if (!force && model.hasValidDbKey()) { continue; }
|
||||
if (!force && model.isLoadedFromDb()) { continue; }
|
||||
bool modified = false;
|
||||
model = CDatabaseUtils::consolidateModelWithDbData(model, force, &modified);
|
||||
if (modified || model.hasValidDbKey()) { c++; }
|
||||
if (modified || model.hasValidDbKey())
|
||||
{
|
||||
c++;
|
||||
if (processEvents && c % 125 == 0)
|
||||
{
|
||||
sApp->processEventsFor(25);
|
||||
}
|
||||
}
|
||||
}
|
||||
CLogMessage().debug() << "Consolidated " << models.size() << " in " << timer.elapsed() << "ms";
|
||||
return c;
|
||||
|
||||
@@ -35,6 +35,9 @@ namespace BlackCore
|
||||
//! Consolidate models with DB data
|
||||
static int consolidateModelsWithDbData(BlackMisc::Simulation::CAircraftModelList &models, bool force);
|
||||
|
||||
//! Consolidate models with DB data
|
||||
static int consolidateModelsWithDbDataAllowsGuiRefresh(BlackMisc::Simulation::CAircraftModelList &models, bool force, bool processEvents);
|
||||
|
||||
//! Consolidate models with DB data (simpler/faster version of CAircraftModel::consolidateModelWithDbData)
|
||||
static int consolidateModelsWithDbModelAndDistributor(BlackMisc::Simulation::CAircraftModelList &models, bool force);
|
||||
|
||||
|
||||
@@ -171,7 +171,7 @@ namespace BlackGui
|
||||
const int modelSize = models.size();
|
||||
const bool filtered = unfilteredSize > modelSize;
|
||||
|
||||
int c = CDatabaseUtils::consolidateModelsWithDbData(models, true);
|
||||
int c = CDatabaseUtils::consolidateModelsWithDbDataAllowsGuiRefresh(models, true, true);
|
||||
if (c > 0 && this->modelsTargetSetable() && this->modelsTargetUpdatable())
|
||||
{
|
||||
if (filtered)
|
||||
@@ -204,7 +204,7 @@ namespace BlackGui
|
||||
CLogMessage().warning("No updatable target");
|
||||
return;
|
||||
}
|
||||
int c = CDatabaseUtils::consolidateModelsWithDbData(models, true);
|
||||
int c = CDatabaseUtils::consolidateModelsWithDbDataAllowsGuiRefresh(models, true, true);
|
||||
if (c > 0 && this->modelsTargetUpdatable())
|
||||
{
|
||||
this->modelsTargetUpdatable()->updateModels(models);
|
||||
|
||||
Reference in New Issue
Block a user