diff --git a/src/blackcore/db/databasewriter.cpp b/src/blackcore/db/databasewriter.cpp index 7767b688b..2a7571972 100644 --- a/src/blackcore/db/databasewriter.cpp +++ b/src/blackcore/db/databasewriter.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include using namespace BlackMisc; @@ -45,12 +46,12 @@ namespace BlackCore // void } - CStatusMessageList CDatabaseWriter::asyncPublishModel(const CAircraftModel &model) + CStatusMessageList CDatabaseWriter::asyncPublishModel(const CAircraftModel &model, const QString &extraInfo) { - return this->asyncPublishModels(CAircraftModelList({ model })); + return this->asyncPublishModels(CAircraftModelList({ model }), extraInfo); } - CStatusMessageList CDatabaseWriter::asyncPublishModels(const CAircraftModelList &models) + CStatusMessageList CDatabaseWriter::asyncPublishModels(const CAircraftModelList &models, const QString &extraInfo) { CStatusMessageList msgs; if (m_shutdown || !sApp) @@ -80,6 +81,7 @@ namespace BlackCore const bool compress = models.size() > 3; QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType, this); multiPart->append(CDatabaseUtils::getJsonTextMultipart(models.toDatabaseJson(), compress)); + if (sApp->getGlobalSetup().dbDebugFlag()) { multiPart->append(CDatabaseUtils::getMultipartWithDebugFlag()); @@ -89,6 +91,8 @@ namespace BlackCore if (compress) { url.setQuery(CDatabaseUtils::getCompressedQuery()); } QNetworkRequest request(url); CNetworkUtils::ignoreSslVerification(request); + const QByteArray eInfo = extraInfo.toLatin1(); + request.setRawHeader(QByteArray("swift-extrainfo"), eInfo); const int logId = m_writeLog.addPendingUrl(url); m_pendingModelPublishReply = sApp->postToNetwork(request, logId, multiPart, { this, &CDatabaseWriter::postedModelsResponse}); m_modelReplyPendingSince = QDateTime::currentMSecsSinceEpoch(); diff --git a/src/blackcore/db/databasewriter.h b/src/blackcore/db/databasewriter.h index 681dbd9b7..280fb55a6 100644 --- a/src/blackcore/db/databasewriter.h +++ b/src/blackcore/db/databasewriter.h @@ -38,10 +38,10 @@ namespace BlackCore CDatabaseWriter(const BlackMisc::Network::CUrl &baseUrl, QObject *parent); //! Write model to DB - BlackMisc::CStatusMessageList asyncPublishModel(const BlackMisc::Simulation::CAircraftModel &model); + BlackMisc::CStatusMessageList asyncPublishModel(const BlackMisc::Simulation::CAircraftModel &model, const QString &extraInfo); //! Write models to DB - BlackMisc::CStatusMessageList asyncPublishModels(const BlackMisc::Simulation::CAircraftModelList &models); + BlackMisc::CStatusMessageList asyncPublishModels(const BlackMisc::Simulation::CAircraftModelList &models, const QString &extraInfo); //! Write auto publis data BlackMisc::CStatusMessageList asyncAutoPublish(const BlackMisc::Simulation::CAutoPublishData &data); diff --git a/src/blackcore/webdataservices.cpp b/src/blackcore/webdataservices.cpp index 150084fd7..478f7aab6 100644 --- a/src/blackcore/webdataservices.cpp +++ b/src/blackcore/webdataservices.cpp @@ -165,7 +165,7 @@ namespace BlackCore CStatusMessageList CWebDataServices::asyncPublishModels(const CAircraftModelList &modelsToBePublished) const { - if (m_databaseWriter) { return m_databaseWriter->asyncPublishModels(modelsToBePublished);} + if (m_databaseWriter) { return m_databaseWriter->asyncPublishModels(modelsToBePublished, "");} return CStatusMessageList(); } diff --git a/src/blackgui/components/dbquickmappingwizard.cpp b/src/blackgui/components/dbquickmappingwizard.cpp index 9b1a4aeb7..2a79d98d1 100644 --- a/src/blackgui/components/dbquickmappingwizard.cpp +++ b/src/blackgui/components/dbquickmappingwizard.cpp @@ -19,11 +19,13 @@ #include "blackcore/context/contextsimulator.h" #include "blackcore/db/databasewriter.h" #include "blackcore/webdataservices.h" +#include "blackconfig/buildconfig.h" #include using namespace BlackCore; using namespace BlackCore::Db; +using namespace BlackConfig; using namespace BlackMisc; using namespace BlackMisc::Aviation; using namespace BlackMisc::Simulation; @@ -376,8 +378,16 @@ namespace BlackGui void CDbQuickMappingWizard::writeModelToDb() { + if (!sGui || sGui->isShuttingDown() || !sGui->getWebDataServices() || !sGui->getWebDataServices()->getDatabaseWriter()) { return; } this->consolidateModelWithUIData(); - const CStatusMessageList msgs = sGui->getWebDataServices()->getDatabaseWriter()->asyncPublishModel(m_model); + + // make sure the model is correctly excluded for XP etc. + static const QString qmw(u"[swift QMW " % CBuildConfig::getVersionString() % u"]"); + if (m_model.getSimulator().isXPlane()) { m_model.setModelMode(CAircraftModel::Exclude); } + m_model.setVersion(CBuildConfig::getVersionString()); + const QString extraInfo = QString(m_model.getDescription() % u" " % qmw).simplified().trimmed(); + + const CStatusMessageList msgs = sGui->getWebDataServices()->getDatabaseWriter()->asyncPublishModel(m_model, extraInfo); ui->comp_Log->appendStatusMessagesToList(msgs); }