mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-21 12:55:31 +08:00
Login UI/lookup improvements
* made tool -> push buttons as easier to spot * reverse lookup of model before login -> always latest DB data * use "text only" ICAO code if loading from DB yields no result
This commit is contained in:
committed by
Mat Sutcliffe
parent
985674f1cf
commit
13c67e4838
@@ -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()
|
||||
|
||||
@@ -30,9 +30,9 @@
|
||||
<widget class="QLineEdit" name="le_Icao"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="tb_Dialog">
|
||||
<widget class="QPushButton" name="pb_Dialog">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../blackmisc/blackmisc.qrc">
|
||||
@@ -44,7 +44,7 @@
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>le_Icao</tabstop>
|
||||
<tabstop>tb_Dialog</tabstop>
|
||||
<tabstop>pb_Dialog</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="../../blackmisc/blackmisc.qrc"/>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace BlackGui
|
||||
//! \return changed
|
||||
bool setAircraftIcao(int key);
|
||||
|
||||
//! Distributor
|
||||
//! ICAO code
|
||||
BlackMisc::Aviation::CAircraftIcaoCode getAircraftIcao() const;
|
||||
|
||||
//! Raw designator
|
||||
|
||||
@@ -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() : "<unknown>");
|
||||
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() : "<unknown>");
|
||||
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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -473,9 +473,15 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="tb_SimulatorIcaoReverseLookup">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
<widget class="QPushButton" name="pb_SimulatorLookup">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>35</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>refresh</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../blackmisc/blackmisc.qrc">
|
||||
@@ -484,9 +490,15 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="tb_MappingWizard">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
<widget class="QPushButton" name="pb_MappingWizard">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>35</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>quick mapping wizard</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../blackmisc/blackmisc.qrc">
|
||||
@@ -924,8 +936,8 @@
|
||||
<tabstop>tw_Details</tabstop>
|
||||
<tabstop>form_Pilot</tabstop>
|
||||
<tabstop>le_SimulatorModel</tabstop>
|
||||
<tabstop>tb_SimulatorIcaoReverseLookup</tabstop>
|
||||
<tabstop>tb_MappingWizard</tabstop>
|
||||
<tabstop>pb_SimulatorLookup</tabstop>
|
||||
<tabstop>pb_MappingWizard</tabstop>
|
||||
<tabstop>le_Callsign</tabstop>
|
||||
<tabstop>selector_AircraftIcao</tabstop>
|
||||
<tabstop>le_AircraftCombinedType</tabstop>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -105,20 +105,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<widget class="QToolButton" name="tb_UnhidePassword">
|
||||
<property name="toolTip">
|
||||
<string>unhide password</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../blackmisc/blackmisc.qrc">
|
||||
<normaloff>:/diagona/icons/diagona/icons/question-button.png</normaloff>:/diagona/icons/diagona/icons/question-button.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="5" colspan="2">
|
||||
<widget class="BlackGui::Components::CAirportSmallCompleter" name="comp_HomeAirport">
|
||||
<property name="focusPolicy">
|
||||
@@ -126,6 +112,20 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<widget class="QPushButton" name="pb_UnhidePassword">
|
||||
<property name="toolTip">
|
||||
<string>unhide password</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../blackmisc/blackmisc.qrc">
|
||||
<normaloff>:/diagona/icons/diagona/icons/question-button.png</normaloff>:/diagona/icons/diagona/icons/question-button.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
@@ -144,7 +144,7 @@
|
||||
<tabstops>
|
||||
<tabstop>le_Id</tabstop>
|
||||
<tabstop>le_Password</tabstop>
|
||||
<tabstop>tb_UnhidePassword</tabstop>
|
||||
<tabstop>pb_UnhidePassword</tabstop>
|
||||
<tabstop>le_RealName</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user