sort entries alphabetically (consistent with property browser)
This commit is contained in:
parent
eadb480b31
commit
f8d792e82d
1 changed files with 19 additions and 2 deletions
|
@ -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 ) {
|
||||
|
|
Loading…
Add table
Reference in a new issue