]> git.mxchange.org Git - flightgear.git/commitdiff
- make next_view()/pref_view() trigger listeners, otherwise the "view_cycle"
authormfranz <mfranz>
Mon, 11 Jun 2007 19:02:01 +0000 (19:02 +0000)
committermfranz <mfranz>
Mon, 11 Jun 2007 19:02:01 +0000 (19:02 +0000)
  fgcommand doesn't activate Dynamic View, Fly-By View, etc.
- consistent indentation (broke that with my last commit :-)

src/Main/viewmgr.cxx
src/Main/viewmgr.hxx

index c4ab2c0c24f4f401d815aadccf858a896f8808df..c67c71914e49402ddab4655d3440882f5d21bac2 100644 (file)
@@ -40,6 +40,7 @@
 FGViewMgr::FGViewMgr( void ) :
   axis_long(0),
   axis_lat(0),
+  view_number(fgGetNode("/sim/current-view/view-number", true)),
   config_list(fgGetNode("/sim", true)->getChildren("view")),
   current(0)
 {
@@ -561,20 +562,20 @@ FGViewMgr::setView (int newview)
   // negative numbers -> set view with node index -newview
   if (newview < 0) {
     for (int i = 0; i < (int)config_list.size(); i++) {
-        int index = -config_list[i]->getIndex();
-        if (index == newview)
-            newview = i;
+      int index = -config_list[i]->getIndex();
+      if (index == newview)
+        newview = i;
     }
     if (newview < 0)
-        return;
+      return;
   }
 
   // if newview number too low wrap to last view...
   if (newview < 0)
-    newview = (int)views.size() -1;
+    newview = (int)views.size() - 1;
 
   // if newview number to high wrap to zero...
-  if (newview > ((int)views.size() -1))
+  if (newview >= (int)views.size())
     newview = 0;
 
   // set new view
index 8a42629b0a79b9240b8025c7e7875b37f5d863be..321f6a2e157ac88943eb3d5d40b62b8231b65508 100644 (file)
@@ -86,10 +86,12 @@ public:
     }
     inline FGViewer *next_view() {
        setView((current+1 < (int)views.size()) ? (current + 1) : 0);
+       view_number->fireValueChanged();
        return views[current];
     }
     inline FGViewer *prev_view() {
        setView((0 < current) ? (current - 1) : (views.size() - 1));
+       view_number->fireValueChanged();
        return views[current];
     }
 
@@ -146,6 +148,7 @@ private:
     int getView () const;
     void setView (int newview);
 
+    SGPropertyNode_ptr view_number;
     vector<SGPropertyNode_ptr> config_list;
     typedef vector<FGViewer *> viewer_list;
     viewer_list views;