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);