]> git.mxchange.org Git - flightgear.git/blobdiff - src/GUI/AirportList.cxx
Expose vertical speed for MP planes
[flightgear.git] / src / GUI / AirportList.cxx
index 133b2b9ea65f147f20c88880f795e64d5f495df6..bcbe06e09c90dea778a4430228f2d208d93f4313 100644 (file)
@@ -2,17 +2,14 @@
 #  include "config.h"
 #endif
 
-#include <locale>
 #include <Main/globals.hxx>
 #include <Airports/simple.hxx>
 
 #include "AirportList.hxx"
 
-
 AirportList::AirportList(int x, int y, int width, int height) :
     puaList(x, y, width, height),
     GUI_ID(FGCLASS_AIRPORTLIST),
-    _airports(globals->get_airports()),
     _content(0)
 {
     create_list();
@@ -28,28 +25,9 @@ AirportList::~AirportList()
 void
 AirportList::create_list()
 {
-    const std::ctype<char> &ct = std::use_facet<std::ctype<char> >(std::locale());
-    int num_apt = _airports->size();
-    char **content = new char *[num_apt + 1];
-
-    int n = 0;
-    for (int i = 0; i < num_apt; i++) {
-        const FGAirport *apt = _airports->getAirport(i);
-        std::string entry(' ' + apt->getName() + "   (" + apt->getId() + ')');
-
-        if (!_filter.empty()) {
-            std::string upper(entry.data());
-            ct.toupper((char *)upper.data(), (char *)upper.data() + upper.size());
-
-            if (upper.find(_filter) == std::string::npos)
-                continue;
-        }
-
-        content[n] = new char[entry.size() + 1];
-        strcpy(content[n], entry.c_str());
-        n++;
-    }
-    content[n] = 0;
+   char **content = FGAirport::searchNamesAndIdents(_filter);
+   int n = (content[0] != NULL) ? 1 : 0;
+    
     // work around plib 2006/04/18 bug: lists with no entries cause crash on arrow-up
     newList(n > 0 ? content : 0);