diff --git a/src/blackgui/components/airportsmallcompleter.cpp b/src/blackgui/components/airportsmallcompleter.cpp index 6cc08f303..18dd7d73d 100644 --- a/src/blackgui/components/airportsmallcompleter.cpp +++ b/src/blackgui/components/airportsmallcompleter.cpp @@ -34,7 +34,7 @@ namespace BlackGui connect(sGui->getWebDataServices(), &CWebDataServices::swiftDbAllDataRead, this, &CAirportSmallCompleter::onAirportsChanged); connect(ui->le_Icao, &QLineEdit::editingFinished, this, &CAirportSmallCompleter::onIcaoChanged); connect(ui->le_Icao, &QLineEdit::editingFinished, this, &CAirportSmallCompleter::editingFinished); - connect(ui->tb_Dialog, &QToolButton::clicked, this, &CAirportSmallCompleter::showAirportsDialog); + connect(ui->pb_Dialog, &QPushButton::clicked, this, &CAirportSmallCompleter::showAirportsDialog); this->onAirportsChanged(); } @@ -80,13 +80,13 @@ namespace BlackGui void CAirportSmallCompleter::setReadOnly(bool readOnly) { ui->le_Icao->setReadOnly(readOnly); - ui->tb_Dialog->setEnabled(!readOnly); + ui->pb_Dialog->setEnabled(!readOnly); } void CAirportSmallCompleter::clear() { ui->le_Icao->clear(); - this->m_current = CAirport(); + m_current = CAirport(); } void CAirportSmallCompleter::onIcaoChanged() diff --git a/src/blackgui/components/airportsmallcompleter.ui b/src/blackgui/components/airportsmallcompleter.ui index 10a7b98ac..8ccb87a53 100644 --- a/src/blackgui/components/airportsmallcompleter.ui +++ b/src/blackgui/components/airportsmallcompleter.ui @@ -30,9 +30,9 @@ - + - ... + @@ -44,7 +44,7 @@ le_Icao - tb_Dialog + pb_Dialog diff --git a/src/blackgui/components/dbaircrafticaoselectorcomponent.cpp b/src/blackgui/components/dbaircrafticaoselectorcomponent.cpp index f5be51eaf..0a0d3f734 100644 --- a/src/blackgui/components/dbaircrafticaoselectorcomponent.cpp +++ b/src/blackgui/components/dbaircrafticaoselectorcomponent.cpp @@ -67,7 +67,7 @@ namespace BlackGui setIcao = sGui->getWebDataServices()->smartAircraftIcaoSelector(icao); } - const QString icaoStr(this->m_display == DisplayIcaoAndId ? setIcao.getDesignatorDbKey() : setIcao.getCombinedIcaoStringWithKey()); + const QString icaoStr(m_display == DisplayIcaoAndId ? setIcao.getDesignatorDbKey() : setIcao.getCombinedIcaoStringWithKey()); ui->le_Aircraft->setText(icaoStr); ui->lbl_Description->setText(setIcao.getManufacturer()); if (setIcao != m_currentIcao) @@ -98,14 +98,22 @@ namespace BlackGui CAircraftIcaoCode CDbAircraftIcaoSelectorComponent::getAircraftIcao() const { - QString text(ui->le_Aircraft->text().trimmed().toUpper()); - int key = CDatastoreUtility::extractIntegerKey(text); + const QString text(ui->le_Aircraft->text().trimmed().toUpper()); + const int key = CDatastoreUtility::extractIntegerKey(text); if (key < 0) { - if (this->m_currentIcao.getDesignator() == text) { return this->m_currentIcao; } - return CAircraftIcaoCode(text); + const QString icaoOnly = CDatastoreUtility::stripKeyInParentheses(text); + if (m_currentIcao.getDesignator() == icaoOnly) { return m_currentIcao; } + return CAircraftIcaoCode(icaoOnly); } CAircraftIcaoCode icao(sGui->getWebDataServices()->getAircraftIcaoCodeForDbKey(key)); + if (icao.isNull()) + { + // did not find by key + const QString icaoOnly = CDatastoreUtility::stripKeyInParentheses(text); + if (m_currentIcao.getDesignator() == icaoOnly) { return m_currentIcao; } + return CAircraftIcaoCode(icaoOnly); + } return icao; } @@ -209,7 +217,7 @@ namespace BlackGui } else { - this->m_completerIcaoDescription.reset(nullptr); + m_completerIcaoDescription.reset(nullptr); } } } diff --git a/src/blackgui/components/dbaircrafticaoselectorcomponent.h b/src/blackgui/components/dbaircrafticaoselectorcomponent.h index a39cabc7c..f6f39bbbc 100644 --- a/src/blackgui/components/dbaircrafticaoselectorcomponent.h +++ b/src/blackgui/components/dbaircrafticaoselectorcomponent.h @@ -64,7 +64,7 @@ namespace BlackGui //! \return changed bool setAircraftIcao(int key); - //! Distributor + //! ICAO code BlackMisc::Aviation::CAircraftIcaoCode getAircraftIcao() const; //! Raw designator diff --git a/src/blackgui/components/logincomponent.cpp b/src/blackgui/components/logincomponent.cpp index 249479687..f026087a7 100644 --- a/src/blackgui/components/logincomponent.cpp +++ b/src/blackgui/components/logincomponent.cpp @@ -96,7 +96,7 @@ namespace BlackGui connect(ui->pb_Cancel, &QPushButton::clicked, this, &CLoginComponent::loginCancelled); connect(ui->pb_Ok, &QPushButton::clicked, this, &CLoginComponent::toggleNetworkConnection); connect(ui->pb_OtherServersGotoSettings, &QPushButton::pressed, this, &CLoginComponent::requestNetworkSettings); - connect(ui->tb_MappingWizard, &QToolButton::clicked, this, &CLoginComponent::mappingWizard); + connect(ui->pb_MappingWizard, &QToolButton::clicked, this, &CLoginComponent::mappingWizard); connect(&m_networkSetup, &CNetworkSetup::setupChanged, this, &CLoginComponent::reloadOtherServersSetup, Qt::QueuedConnection); ui->form_FsdDetails->showEnableInfo(true); @@ -132,7 +132,7 @@ namespace BlackGui connect(ui->le_AircraftCombinedType, &QLineEdit::editingFinished, this, &CLoginComponent::validateAircraftValues); connect(ui->selector_AircraftIcao, &CDbAircraftIcaoSelectorComponent::changedAircraftIcao, this, &CLoginComponent::changedAircraftIcao, Qt::QueuedConnection); connect(ui->selector_AirlineIcao, &CDbAirlineIcaoSelectorComponent::changedAirlineIcao, this, &CLoginComponent::changedAirlineIcao, Qt::QueuedConnection); - connect(ui->tb_SimulatorIcaoReverseLookup, &QToolButton::clicked, this, &CLoginComponent::reverseLookupAircraftModel); + connect(ui->pb_SimulatorLookup, &QToolButton::clicked, this, &CLoginComponent::lookupOwnAircraftModel); connect(ui->tw_Details, &QTabWidget::currentChanged, this, &CLoginComponent::onDetailsTabChanged); if (sGui && sGui->getIContextSimulator()) @@ -456,8 +456,8 @@ namespace BlackGui CGuiAircraftValues values; values.ownCallsign = CCallsign(ui->le_Callsign->text().trimmed().toUpper()); values.ownAircraftIcao = ui->selector_AircraftIcao->getAircraftIcao(); - values.ownAirlineIcao = ui->selector_AirlineIcao->getAirlineIcao(); - values.ownAircraftCombinedType = ui->le_AircraftCombinedType->text().trimmed().toUpper(); + values.ownAirlineIcao = ui->selector_AirlineIcao->getAirlineIcao(); + values.ownAircraftCombinedType = ui->le_AircraftCombinedType->text().trimmed().toUpper(); values.ownAircraftSimulatorModel = ui->le_SimulatorModel->text().trimmed().toUpper(); return values; } @@ -670,7 +670,7 @@ namespace BlackGui emit this->requestLoginPage(); } - void CLoginComponent::reverseLookupAircraftModel() + void CLoginComponent::lookupOwnAircraftModel() { if (!sGui->getIContextSimulator()->isSimulatorAvailable()) { return; } const CAircraftModel model(sGui->getIContextOwnAircraft()->getOwnAircraft().getModel()); @@ -682,17 +682,26 @@ namespace BlackGui if (!sGui || !sGui->getIContextNetwork() || sApp->isShuttingDown()) { return; } const bool isNetworkConnected = sGui && sGui->getIContextNetwork()->isConnected(); if (isNetworkConnected) { return; } - const QString modelStr(model.hasModelString() ? model.getModelString() : ""); - if (!model.hasModelString()) + + // update with latest DB data + CAircraftModel reverseModel(model); + if (sGui->hasWebDataServices()) { - CLogMessage(this).validationInfo(u"Invalid lookup for '%1' successful: %2") << modelStr << model.toQString(); + reverseModel = sGui->getWebDataServices()->getModelForModelString(model.getModelString()); + if (!reverseModel.isLoadedFromDb()) { reverseModel = model; } // reset if not found + } + + const QString modelStr(reverseModel.hasModelString() ? reverseModel.getModelString() : ""); + if (!reverseModel.hasModelString()) + { + CLogMessage(this).validationInfo(u"Invalid lookup for '%1' successful: %2") << modelStr << reverseModel.toQString(); CLogMessage(this).validationInfo(u"Hint: Are you using the emulated driver? Set a model if so!"); return; } this->setOwnModelAndIcaoValues(); // open dialog for model mapping - if (m_autoPopupWizard && !model.isLoadedFromDb()) + if (m_autoPopupWizard && !reverseModel.isLoadedFromDb()) { this->mappingWizard(); } diff --git a/src/blackgui/components/logincomponent.h b/src/blackgui/components/logincomponent.h index a5baa5ab6..ebe279343 100644 --- a/src/blackgui/components/logincomponent.h +++ b/src/blackgui/components/logincomponent.h @@ -183,8 +183,8 @@ namespace BlackGui //! Auto-logoff detection void autoLogoffDetection(); - //! Reverse lookup model - void reverseLookupAircraftModel(); + //! Lookup own model + void lookupOwnAircraftModel(); //! Simulator model has been changed void onSimulatorModelChanged(const BlackMisc::Simulation::CAircraftModel &model); diff --git a/src/blackgui/components/logincomponent.ui b/src/blackgui/components/logincomponent.ui index 98667bfd2..70d5271e2 100644 --- a/src/blackgui/components/logincomponent.ui +++ b/src/blackgui/components/logincomponent.ui @@ -473,9 +473,15 @@ - - - ... + + + + 35 + 16777215 + + + + refresh @@ -484,9 +490,15 @@ - - - ... + + + + 35 + 16777215 + + + + quick mapping wizard @@ -924,8 +936,8 @@ tw_Details form_Pilot le_SimulatorModel - tb_SimulatorIcaoReverseLookup - tb_MappingWizard + pb_SimulatorLookup + pb_MappingWizard le_Callsign selector_AircraftIcao le_AircraftCombinedType diff --git a/src/blackgui/editors/pilotform.cpp b/src/blackgui/editors/pilotform.cpp index 6108050b4..ec4ea9dec 100644 --- a/src/blackgui/editors/pilotform.cpp +++ b/src/blackgui/editors/pilotform.cpp @@ -39,7 +39,7 @@ namespace BlackGui ui->lblp_Password->setToolTips("ok", "wrong"); ui->lblp_RealName->setToolTips("ok", "wrong"); - connect(ui->tb_UnhidePassword, &QToolButton::clicked, this, &CPilotForm::unhidePassword); + connect(ui->pb_UnhidePassword, &QPushButton::clicked, this, &CPilotForm::unhidePassword); connect(ui->le_Id, &QLineEdit::editingFinished, this, &CPilotForm::doValidation); connect(ui->comp_HomeAirport, &CAirportSmallCompleter::editingFinished, this, &CPilotForm::doValidation); connect(ui->le_Password, &QLineEdit::editingFinished, this, &CPilotForm::doValidation); diff --git a/src/blackgui/editors/pilotform.ui b/src/blackgui/editors/pilotform.ui index bfc37615c..9123dd5dd 100644 --- a/src/blackgui/editors/pilotform.ui +++ b/src/blackgui/editors/pilotform.ui @@ -105,20 +105,6 @@ - - - - unhide password - - - ... - - - - :/diagona/icons/diagona/icons/question-button.png:/diagona/icons/diagona/icons/question-button.png - - - @@ -126,6 +112,20 @@ + + + + unhide password + + + + + + + :/diagona/icons/diagona/icons/question-button.png:/diagona/icons/diagona/icons/question-button.png + + + @@ -144,7 +144,7 @@ le_Id le_Password - tb_UnhidePassword + pb_UnhidePassword le_RealName diff --git a/src/blackgui/share/qss/stdwidget.qss b/src/blackgui/share/qss/stdwidget.qss index 35eea47cb..28354e71b 100644 --- a/src/blackgui/share/qss/stdwidget.qss +++ b/src/blackgui/share/qss/stdwidget.qss @@ -105,6 +105,12 @@ BlackGui--Components--CSetupLoadingDialog #fr_Details { } */ +/** dialog for airports **/ +BlackGui--Components--CAirportDialog { + background: black; /* background is background color here */ + background-image: url(:/textures/icons/textures/texture-inner.jpg); +} + /* core settings */ /* needed for CCoreSettingsDialog */ /* BlackGui::Components::CSettingsComponent */ @@ -222,11 +228,10 @@ QPushButton { color: yellow; /* font color */ padding: 0px 0.25em 0px 0.25em; margin-right: 5px; - min-width:40px; - min-height:20px; + min-width: 25px; + min-height: 20px; } - QPushButton::disabled { background-color: rgba(77, 88, 99, 128); /* slated gray if a channel) */ border-style: none; diff --git a/src/blackmisc/db/datastoreutility.cpp b/src/blackmisc/db/datastoreutility.cpp index 63b8716f0..1d8341aac 100644 --- a/src/blackmisc/db/datastoreutility.cpp +++ b/src/blackmisc/db/datastoreutility.cpp @@ -61,6 +61,14 @@ namespace BlackMisc return ok ? key : -1; } + QString CDatastoreUtility::stripKeyInParentheses(const QString &valueWithKey) + { + const int i = valueWithKey.indexOf('('); + if (i < 0) { return valueWithKey.trimmed(); } + if (i < 1) { return QStringLiteral(""); } + return valueWithKey.left(i - 1).trimmed(); + } + QDateTime CDatastoreUtility::parseTimestamp(const QString ×tamp) { if (timestamp.isEmpty()) { return QDateTime(); } diff --git a/src/blackmisc/db/datastoreutility.h b/src/blackmisc/db/datastoreutility.h index 680c1c4e9..d5991c427 100644 --- a/src/blackmisc/db/datastoreutility.h +++ b/src/blackmisc/db/datastoreutility.h @@ -42,6 +42,9 @@ namespace BlackMisc //! Extract key from string like "MyAircraft (33)" static int extractIntegerKey(const QString &stringWithKey); + //! Strip the parentheses part, e.g. "foo (123)" => "foo" + static QString stripKeyInParentheses(const QString &valueWithKey); + //! Parse a timestamp object static QDateTime parseTimestamp(const QString ×tamp);