diff --git a/src/plugins/simulator/xplane/simulatorxplane.cpp b/src/plugins/simulator/xplane/simulatorxplane.cpp index 638c817d1..4ae557dd6 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.cpp +++ b/src/plugins/simulator/xplane/simulatorxplane.cpp @@ -595,7 +595,11 @@ namespace BlackSimPlugin { if (CDirectoryUtils::isSameOrSubDirectoryOf(package, simDir)) { - m_trafficProxy->loadPlanesPackage(package); + const QString message = m_trafficProxy->loadPlanesPackage(package); + if (!message.isEmpty()) + { + CLogMessage(this).validationError(u"CSL package '%1' xpmp error: %2") << package << message; + } } else { diff --git a/src/plugins/simulator/xplane/xswiftbustrafficproxy.cpp b/src/plugins/simulator/xplane/xswiftbustrafficproxy.cpp index c475df6c5..73a5f1757 100644 --- a/src/plugins/simulator/xplane/xswiftbustrafficproxy.cpp +++ b/src/plugins/simulator/xplane/xswiftbustrafficproxy.cpp @@ -64,9 +64,9 @@ namespace BlackSimPlugin m_dbusInterface->callDBus(QLatin1String("cleanup")); } - bool CXSwiftBusTrafficProxy::loadPlanesPackage(const QString &path) + QString CXSwiftBusTrafficProxy::loadPlanesPackage(const QString &path) { - return m_dbusInterface->callDBusRet(QLatin1String("loadPlanesPackage"), path); + return m_dbusInterface->callDBusRet(QLatin1String("loadPlanesPackage"), path); } void CXSwiftBusTrafficProxy::setDefaultIcao(const QString &defaultIcao) diff --git a/src/plugins/simulator/xplane/xswiftbustrafficproxy.h b/src/plugins/simulator/xplane/xswiftbustrafficproxy.h index 5a954a446..acd97d221 100644 --- a/src/plugins/simulator/xplane/xswiftbustrafficproxy.h +++ b/src/plugins/simulator/xplane/xswiftbustrafficproxy.h @@ -163,7 +163,7 @@ namespace BlackSimPlugin void cleanup(); //! \copydoc XSwiftBus::CTraffic::loadPlanesPackage - bool loadPlanesPackage(const QString &path); + QString loadPlanesPackage(const QString &path); //! \copydoc XSwiftBus::CTraffic::setDefaultIcao void setDefaultIcao(const QString &defaultIcao); diff --git a/src/xswiftbus/traffic.cpp b/src/xswiftbus/traffic.cpp index d39bf7cf3..edd602e38 100644 --- a/src/xswiftbus/traffic.cpp +++ b/src/xswiftbus/traffic.cpp @@ -226,7 +226,7 @@ namespace XSwiftBus return def; } - bool CTraffic::loadPlanesPackage(const std::string &path) + std::string CTraffic::loadPlanesPackage(const std::string &path) { initXPlanePath(); auto dir = g_xplanePath + "Resources" + g_sep + "plugins" + g_sep + "xswiftbus" + g_sep + "LegacyData" + g_sep; @@ -234,8 +234,8 @@ namespace XSwiftBus std::string related = dir + "related.txt"; std::string doc8643 = dir + "Doc8643.txt"; auto err = XPMPLoadCSLPackage(path.c_str(), related.c_str(), doc8643.c_str()); - if (*err) { return false; } - return true; + if (*err) { return err; } + return {}; } void CTraffic::setDefaultIcao(const std::string &defaultIcao) diff --git a/src/xswiftbus/traffic.h b/src/xswiftbus/traffic.h index 4bdccb6a5..6f2da7f31 100644 --- a/src/xswiftbus/traffic.h +++ b/src/xswiftbus/traffic.h @@ -70,8 +70,8 @@ namespace XSwiftBus //! Reverse the actions of initialize(). void cleanup(); - //! Load a collection of planes from the given directory and return true if successful - bool loadPlanesPackage(const std::string &path); + //! Load a collection of planes from the given directory and return error message if unsuccessful + std::string loadPlanesPackage(const std::string &path); //! Set the ICAO code to use for aircraft without a model match void setDefaultIcao(const std::string &defaultIcao);