From: mfranz Date: Tue, 6 Dec 2005 19:51:31 +0000 (+0000) Subject: removal of yet more stuff, left over from development; further simplification; X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=c10f583c11132631b07c232d0c49172f2fc0ad80;p=flightgear.git removal of yet more stuff, left over from development; further simplification; requires to remove some constness, though (we are adding listeners!); If I continue like that, nothing will be left. :-) --- diff --git a/src/GUI/menubar.cxx b/src/GUI/menubar.cxx index 04dc67634..fa3d69d56 100644 --- a/src/GUI/menubar.cxx +++ b/src/GUI/menubar.cxx @@ -4,7 +4,6 @@ #include #include -#include #include #include @@ -292,7 +291,7 @@ FGMenuBar::make_menubar () * contents, whether they are representing a 'legal' menubar structure. */ void -FGMenuBar::make_menubar(const SGPropertyNode * props) +FGMenuBar::make_menubar(SGPropertyNode * props) { // Just in case. destroy_menubar(); @@ -374,10 +373,8 @@ FGMenuBar::add_enabled_listener(SGPropertyNode * node) } void -FGMenuBar::make_map(const SGPropertyNode * node) +FGMenuBar::make_map(SGPropertyNode * node) { - string base = node->getPath(); - int menu_index = 0; for (puObject *obj = ((puGroup *)_menuBar)->getFirstChild(); obj; obj = obj->getNextObject()) { @@ -387,19 +384,16 @@ FGMenuBar::make_map(const SGPropertyNode * node) if (!(obj->getType() & PUCLASS_ONESHOT)) continue; - std::ostringstream menu; - menu << base << "/menu[" << menu_index << "]"; - SGPropertyNode *prop = fgGetNode(menu.str().c_str()); - if (!prop) { - SG_LOG(SG_GENERAL, SG_WARN, "menu without node: " << menu.str()); + SGPropertyNode *menu = node->getNode("menu", menu_index, false); + if (!menu) { + SG_LOG(SG_GENERAL, SG_WARN, " without node: " + << node->getPath() << "/menu[" << menu_index << ']'); continue; } - // push "menu" entry - _entries[prop->getPath()] = obj; - add_enabled_listener(prop); + _entries[menu->getPath()] = obj; + add_enabled_listener(menu); - // push "item" entries puPopupMenu *popup = (puPopupMenu *)obj->getUserData(); if (!popup) continue; @@ -412,15 +406,14 @@ FGMenuBar::make_map(const SGPropertyNode * node) e.push_back(me); for (unsigned int i = 0; i < e.size(); i++) { - std::ostringstream item; - item << menu.str() << "/item[" << (e.size() - i - 1) << "]"; - prop = fgGetNode(item.str().c_str()); - if (!prop) { - SG_LOG(SG_GENERAL, SG_WARN, "item without node: " << item.str()); + SGPropertyNode *item = menu->getNode("item", e.size() - i - 1, false); + if (!item) { + SG_LOG(SG_GENERAL, SG_WARN, "menu without node: " + << menu->getPath() << "/item[" << i << ']'); continue; } - _entries[prop->getPath()] = e[i]; - add_enabled_listener(prop); + _entries[item->getPath()] = e[i]; + add_enabled_listener(item); } menu_index++; } diff --git a/src/GUI/menubar.hxx b/src/GUI/menubar.hxx index 9830ebbbb..a22a77f58 100644 --- a/src/GUI/menubar.hxx +++ b/src/GUI/menubar.hxx @@ -87,7 +87,7 @@ public: /** * create a menubar based on a PropertyList within the PropertyTree */ - void make_menubar (const SGPropertyNode * props); + void make_menubar (SGPropertyNode * props); /** @@ -110,7 +110,7 @@ private: void make_menubar (); // Create a property-path -> puObject map for menu node - void make_map(const SGPropertyNode * node); + void make_map(SGPropertyNode * node); // Add listener that enables/disables menu entries. void add_enabled_listener(SGPropertyNode * node);