Skip to content

Commit 0110146

Browse files
committed
fix: sortorder modelset
1 parent f034d31 commit 0110146

File tree

9 files changed

+71
-40
lines changed

9 files changed

+71
-40
lines changed

src/core/airspacemonitor.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -774,12 +774,14 @@ namespace swift::core
774774
const QString &combinedAircraftType, const QString &modelString)
775775
{
776776
// TODO TZ remove when testing is done
777+
// #SBBER750:DAL483:FSIPIR:0:BER:A320:::::L2J:PMDG 737-800 AIRBERLIN (D-ABKM)
777778
CLogMessage(this).info(u"CAirspaceMonitor::onCustomFSInnPacketReceived CHECK:"
778779
u"callsign %1 "
779780
u"airlineIcaoDesignator %2 "
780781
u"aircraftIcaoDesignator %3 "
781-
u"modelString %4 ")
782-
<< callsign << airlineIcaoDesignator << aircraftIcaoDesignator << modelString;
782+
u"combinedAircraftType %4 "
783+
u"modelString %5 ")
784+
<< callsign << airlineIcaoDesignator << aircraftIcaoDesignator << combinedAircraftType << modelString;
783785

784786
// it can happen this is called before any queries
785787
// ES sends FsInn packets for callsigns such as ACCGER1, which are hard to distinguish
@@ -854,13 +856,15 @@ namespace swift::core
854856
void CAirspaceMonitor::onIcaoCodesReceived(const CCallsign &callsign, const QString &aircraftIcaoDesignator,
855857
const QString &airlineIcaoDesignator, const QString &livery)
856858
{
857-
// TODO TZ remove when testing is done
859+
// TODO TZ remove logmessage when testing is done
860+
// #SBDAL483:BER636:PI:GEN:EQUIPMENT=B738:AIRLINE=DAL:LIVERY=swift_l1855a1787m13853
858861
CLogMessage(this).info(u"CAirspaceMonitor::onIcaoCodesReceived CHECK:"
859862
u"callsign %1 "
860863
u"aircraftIcaoDesignator %2 "
861864
u"airlineIcaoDesignator %3 "
862865
u"livery %4 ")
863866
<< callsign << aircraftIcaoDesignator << airlineIcaoDesignator << livery;
867+
// End TODO TZ
864868

865869
Q_ASSERT_X(CThreadUtils::isInThisThread(this), Q_FUNC_INFO, "not in main thread");
866870
if (!this->isConnectedAndNotShuttingDown()) { return; }

src/gui/components/dbownmodelscomponent.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,8 @@ namespace swift::gui::components
344344
Q_UNUSED(modelDirectories);
345345

346346
using namespace std::chrono_literals;
347-
const CStatusMessage msg = CLogMessage(this).info(u"Start loading models for %1") << simulator.toQString();
347+
const CStatusMessage msg = CLogMessage(this).info(u"Triiger loading models for %1 from SimConnect")
348+
<< simulator.toQString();
348349
this->showOverlayHTMLMessage(msg, 2s);
349350

350351
return;
@@ -530,11 +531,10 @@ namespace swift::gui::components
530531
IAircraftModelLoader::LoadMode mode,
531532
const QStringList &modelDirectories)
532533
{
533-
// At this point, we switch how the models should be loaded: SimConnect or classic file search
534-
if (simulator.isMSFS2024())
535-
this->loadInstalledModelsSimConnect(simulator, mode, modelDirectories);
536-
else
537-
this->loadInstalledModels(simulator, mode, modelDirectories);
534+
// TODO TZ add SimConnect loading
535+
if (simulator.isMSFS2024()) this->loadInstalledModelsSimConnect(simulator, mode, modelDirectories);
536+
537+
this->loadInstalledModels(simulator, mode, modelDirectories);
538538
}
539539

540540
void CDbOwnModelsComponent::requestSimulatorModelsWithCacheInBackground(const CSimulatorInfo &simulator)

src/gui/models/aircraftmodellistmodel.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@ namespace swift::gui::models
4646
{
4747
case NotSet:
4848
case OwnAircraftModelClient:
49-
// m_columns.addColumn(CColumn::standardString("model", { CAircraftModel::IndexModelString }));
50-
m_columns.addColumn(CColumn::standardString("model", { CAircraftModel::IndexShortModelString }));
51-
52-
m_columns.addColumn(CColumn::standardString("liverypart", CAircraftModel::IndexModelLivery));
49+
m_columns.addColumn(CColumn::standardString("model", { CAircraftModel::IndexModelString }));
5350
m_columns.addColumn(
5451
CColumn("DB", "DB metadata", CAircraftModel::IndexDatabaseIcon, new CPixmapFormatter()));
5552
m_columns.addColumn(
@@ -86,9 +83,7 @@ namespace swift::gui::models
8683

8784
case OwnAircraftModelMappingTool:
8885
case StashModel:
89-
m_columns.addColumn(CColumn::standardString("model", CAircraftModel::IndexShortModelString));
90-
91-
m_columns.addColumn(CColumn::standardString("liverypart", CAircraftModel::IndexModelLivery));
86+
m_columns.addColumn(CColumn::standardString("model", { CAircraftModel::IndexModelString }));
9287
m_columns.addColumn(
9388
CColumn("DB", "DB metadata", CAircraftModel::IndexDatabaseIcon, new CPixmapFormatter()));
9489
if (mode == StashModel)

src/misc/simulation/aircraftmodel.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,8 +284,6 @@ namespace swift::misc::simulation
284284
case IndexLivery: return m_livery.propertyByIndex(index.copyFrontRemoved());
285285
case IndexCallsign: return m_callsign.propertyByIndex(index.copyFrontRemoved());
286286
case IndexMembersDbStatus: return this->getMembersDbStatus();
287-
case IndexModelLivery: return QVariant(m_modelLivery);
288-
case IndexShortModelString: return QVariant(getShortModelString());
289287
default: return CValueObject::propertyByIndex(index);
290288
}
291289
}

src/misc/simulation/aircraftmodel.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,6 @@ namespace swift::misc
127127
IndexModelModeAsIcon,
128128
IndexHasQueriedModelString,
129129
IndexMembersDbStatus,
130-
IndexModelLivery, // MSFS2024
131-
IndexShortModelString,
132130
};
133131

134132
//! \copydoc swift::misc::CValueObject::registerMetadata

src/misc/simulation/aircraftmodelloader.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -131,28 +131,28 @@ namespace swift::misc::simulation
131131
return;
132132
}
133133

134+
// TODO TZ
134135
QStringList modelDirs = { "", "" };
135-
if (simulator.isMSFS2024())
136+
// if (simulator.isMSFS2024())
137+
//{
138+
// emit this->loadingFinished(m_loadingMessages, simulator, LoadingSkipped);
139+
// return;
140+
// }
141+
// else
142+
//{
143+
// really load from disk?
144+
modelDirs = this->getInitializedModelDirectories(modelDirectories, simulator);
145+
if (m_skipLoadingEmptyModelDir && modelDirs.isEmpty())
136146
{
147+
const CStatusMessage status = CStatusMessage(this, CStatusMessage::SeverityWarning,
148+
u"Empty or not existing '%1' directory '%2', skipping read")
149+
<< simulator.toQString() << modelDirectories.join(", ");
150+
m_loadingMessages.push_back(status);
151+
m_loadingMessages.freezeOrder();
137152
emit this->loadingFinished(m_loadingMessages, simulator, LoadingSkipped);
138153
return;
139154
}
140-
else
141-
{
142-
// really load from disk?
143-
modelDirs = this->getInitializedModelDirectories(modelDirectories, simulator);
144-
if (m_skipLoadingEmptyModelDir && modelDirs.isEmpty())
145-
{
146-
const CStatusMessage status =
147-
CStatusMessage(this, CStatusMessage::SeverityWarning,
148-
u"Empty or not existing '%1' directory '%2', skipping read")
149-
<< simulator.toQString() << modelDirectories.join(", ");
150-
m_loadingMessages.push_back(status);
151-
m_loadingMessages.freezeOrder();
152-
emit this->loadingFinished(m_loadingMessages, simulator, LoadingSkipped);
153-
return;
154-
}
155-
}
155+
//}
156156

157157
this->setObjectInfo(simulator);
158158
this->startLoadingFromDisk(mode, modelConsolidation, modelDirs);

src/plugins/simulator/msfs2024/simconnectdatadefinitionmsfs2024.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -444,9 +444,9 @@ namespace swift::simplugin::msfs2024common
444444
hr += SimConnect_EnumerateSimObjectsAndLiveries(hSimConnect, CSimConnectDefinitions::REQUEST_AIRPLANE,
445445
SIMCONNECT_SIMOBJECT_TYPE_AIRCRAFT);
446446
hr += SimConnect_EnumerateSimObjectsAndLiveries(hSimConnect, CSimConnectDefinitions::REQUEST_HELICOPTER,
447-
SIMCONNECT_SIMOBJECT_TYPE_AIRCRAFT);
447+
SIMCONNECT_SIMOBJECT_TYPE_HELICOPTER);
448448
// hr += SimConnect_EnumerateSimObjectsAndLiveries(hSimConnect, CSimConnectDefinitions::REQUEST_HOT_AIR,
449-
// SIMCONNECT_SIMOBJECT_TYPE_AIRCRAFT);
449+
// SIMCONNECT_SIMOBJECT_TYPE_HOT_AIR_BALLOON);
450450

451451
if (isFailure(hr))
452452
{

src/plugins/simulator/msfs2024/simulatormsfs2024common.cpp

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,11 +448,18 @@ namespace swift::simplugin::msfs2024common
448448
const CSpecializedSimulatorSettings settings = this->getSimulatorSettings();
449449
CSimulatorSettings m_generic = settings.getGenericSettings();
450450
QStringList excludePatterns = m_generic.getModelExcludeDirectoryPatterns();
451+
QStringList filterList = m_generic.getModelDirectories();
451452

452453
bool gui_application = true;
454+
bool useFilterList = true;
455+
bool matchFilter = false;
456+
453457
QString guiName = sGui->getApplicationName();
454458
if (guiName.contains("mapping")) gui_application = false;
455459

460+
const CAircraftMatcherSetup setup = m_matchingSettings.get();
461+
bool skipExcluded = setup.getMatchingMode().testFlag(CAircraftMatcherSetup::ExcludeNoExcluded);
462+
456463
CAircraftModelList newModels;
457464

458465
for (int i = 0; i < static_cast<int>(vSimObjectsAndLiveries.size()); ++i)
@@ -463,6 +470,9 @@ namespace swift::simplugin::msfs2024common
463470
CAircraftModel modelFromDb =
464471
sGui->getWebDataServices()->getModelForModelString(modelLivery.szSimObjectCombinedTitle.trimmed());
465472

473+
// model is marked as excluded in the database, so skip it
474+
if (modelFromDb.getModelMode() == CAircraftModel::Exclude && skipExcluded && gui_application) { continue; }
475+
466476
// If the model is in the database, there is a DbKey
467477
int modelkey = modelFromDb.getDbKey();
468478
if (modelkey) model = modelFromDb; // copy all data from db
@@ -487,6 +497,27 @@ namespace swift::simplugin::msfs2024common
487497
}
488498
if (excluded) continue; // skip adding this model
489499

500+
if (useFilterList)
501+
{
502+
matchFilter = false;
503+
for (const QString &rawFilter : filterList)
504+
{
505+
if (rawFilter.trimmed().contains("*"))
506+
{
507+
// wildcard found, disable filter list
508+
useFilterList = false;
509+
continue;
510+
}
511+
const QString filter = rawFilter.trimmed();
512+
if (model.getModelString().contains(filter, Qt::CaseInsensitive))
513+
{
514+
matchFilter = true;
515+
break;
516+
}
517+
}
518+
}
519+
if (useFilterList && !matchFilter) continue; // skip adding this model
520+
490521
newModels.replaceOrAddModelWithString(model, Qt::CaseInsensitive);
491522
}
492523

@@ -507,7 +538,7 @@ namespace swift::simplugin::msfs2024common
507538
bool givenDistributorsOnly = false;
508539
bool dbDataOnly = false;
509540
bool dbIcaoOnly = false;
510-
bool incremnental = true;
541+
bool incremnental = false;
511542
bool sortByDistributor = true;
512543
bool consolidateWithDb = false;
513544
bool ShowAllInstalledModells = true; // msfs20424 always show all installed models

src/plugins/simulator/msfs2024/simulatormsfs2024common.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
#include "misc/simulation/aircraftmodel.h"
3030
#include "misc/simulation/data/modelcaches.h" // TODO ???
3131
#include "misc/simulation/interpolation/interpolatorlinear.h"
32+
#include "misc/simulation/settings/modelmatchersettings.h"
3233
#include "misc/simulation/settings/simulatorsettings.h"
3334
#include "misc/simulation/simulatedaircraft.h"
3435
#include "misc/simulation/simulatorplugininfo.h"
@@ -742,6 +743,10 @@ namespace swift::simplugin::msfs2024common
742743
//! Simulator info
743744
swift::misc::simulation::CSimulatorInfo m_simulatorInfo;
744745

746+
swift::misc::CSetting<swift::misc::simulation::settings::TModelMatching> m_matchingSettings {
747+
this
748+
}; //!< settings
749+
745750
public:
746751
//! @{
747752
//! Offsets

0 commit comments

Comments
 (0)