diff --git a/src/blackgui/components/dbaircrafticaoselectorcomponent.cpp b/src/blackgui/components/dbaircrafticaoselectorcomponent.cpp index 4bb8c1d5f..557fed827 100644 --- a/src/blackgui/components/dbaircrafticaoselectorcomponent.cpp +++ b/src/blackgui/components/dbaircrafticaoselectorcomponent.cpp @@ -177,11 +177,15 @@ namespace BlackGui const QStringList &CDbAircraftIcaoSelectorComponent::completerStrings() { - // done for performance reasons - // init only once, future instance can share thte list - // only to be called when data are read! - static const QStringList cs(sGui->getWebDataServices()->getAircraftIcaoCodes().toCompleterStrings(true, true, true)); - return cs; + const int c = sGui->getWebDataServices()->getAircraftIcaoCodesCount(); + if (c != m_completerStrings.size()) + { + CAircraftIcaoCodeList icaos(sGui->getWebDataServices()->getAircraftIcaoCodes()); + icaos.removeInvalidCombinedCodes(); + icaos.sortByDesignatorManufacturerAndRank(); + m_completerStrings = icaos.toCompleterStrings(true, true, true); + } + return m_completerStrings; } void CDbAircraftIcaoSelectorComponent::ps_codesRead(CEntityFlags::Entity entity, CEntityFlags::ReadState readState, int count) @@ -191,7 +195,7 @@ namespace BlackGui { if (count > 0) { - QCompleter *c = new QCompleter(completerStrings(), this); + QCompleter *c = new QCompleter(this->completerStrings(), this); c->setCaseSensitivity(Qt::CaseInsensitive); c->setCompletionMode(QCompleter::PopupCompletion); c->setMaxVisibleItems(10); diff --git a/src/blackgui/components/dbaircrafticaoselectorcomponent.h b/src/blackgui/components/dbaircrafticaoselectorcomponent.h index 3afbe21e9..94cb61ff4 100644 --- a/src/blackgui/components/dbaircrafticaoselectorcomponent.h +++ b/src/blackgui/components/dbaircrafticaoselectorcomponent.h @@ -118,10 +118,11 @@ namespace BlackGui QScopedPointer m_completerIcaoDescription; BlackMisc::Aviation::CAircraftIcaoCode m_currentIcao; Display m_display = DisplayIcaoAndId; + QStringList m_completerStrings; //!< the completer strings //! Get the completer strings //! \remark shared for performance reasons - static const QStringList &completerStrings(); + const QStringList &completerStrings(); }; } // ns } // ns