1
0
Fork 0

sort entries alphabetically (consistent with property browser)

This commit is contained in:
mfranz 2007-10-27 21:28:56 +00:00
parent eadb480b31
commit f8d792e82d

View file

@ -31,6 +31,7 @@
#include <simgear/compiler.h>
#include <algorithm> // sort()
#include <stdlib.h> // atoi() atof()
#include STL_STRING
@ -83,6 +84,15 @@ bool FGHttpd::close() {
}
class CompareNodes {
public:
bool operator() (const SGPropertyNode_ptr a, const SGPropertyNode_ptr b) const {
int r = strcmp(a->getName(), b->getName());
return r ? r < 0 : a->getIndex() < b->getIndex();
}
};
// Handle http GET requests
void HttpdChannel::foundTerminator (void) {
@ -193,8 +203,15 @@ void HttpdChannel::foundTerminator (void) {
response += "\"</H3>";
response += getTerminator();
for (int i = 0; i < node->nChildren(); i++) {
SGPropertyNode *child = node->getChild(i);
vector<SGPropertyNode_ptr> children;
for (int i = 0; i < node->nChildren(); i++)
children.push_back(node->getChild(i));
std::sort(children.begin(), children.end(), CompareNodes());
vector<SGPropertyNode_ptr>::iterator it, end = children.end();
for (it = children.begin(); it != end; ++it) {
SGPropertyNode *child = *it;
string name = child->getDisplayName(true);
string line = "";
if ( child->nChildren() > 0 ) {