[prev in list] [next in list] [prev in thread] [next in thread] 

List:       flightgear-cvs
Subject:    [Flightgear-cvslogs] CVS: data/Nasal view.nas,1.45,1.46
From:       Melchior Franz <mfranz () baron ! flightgear ! org>
Date:       2009-01-31 10:24:11
Message-ID: 200901311024.n0VAOB8l008403 () baron ! flightgear ! org
[Download RAW message or body]

Update of /var/cvs/FlightGear-0.9/data/Nasal
In directory baron.flightgear.org:/tmp/cvs-serv8390

Modified Files:
	view.nas 
Log Message:
model_view: remove stale/invalid entries


Index: view.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/view.nas,v
retrieving revision 1.45
retrieving revision 1.46
diff -C 2 -r1.45 -r1.46
*** view.nas	30 Jan 2009 15:22:17 -0000	1.45
--- view.nas	31 Jan 2009 10:24:08 -0000	1.46
***************
*** 326,330 ****
  	init: func(node) {
  		me.viewN = node;
- 		me.models = {};
  		me.list = [];
  		me.current = 0;
--- 326,329 ----
***************
*** 334,373 ****
  	start: func {
  		me.lnr = [];
! 		append(me.lnr, setlistener("/ai/models/model-added", func(n) {
! 			n = props.globals.getNode(n.getValue(), 1);
! 			var name = n.getName();
! 			if (name == "multiplayer"
! 					# or name == "aircraft"
! 					# or name == "carrier"
! 					# or name == "tanker"
! 					) {
! 				me.models[n.getPath()] = { node: n, id: "" };
! 				me.list = sort(keys(me.models), string.icmp);
! 				me.scan_ident(n);
! 			}
! 		}));
! 
! 		append(me.lnr, setlistener("/ai/models/model-removed", func(n) {
! 			n = props.globals.getNode(n.getValue(), 1);
! 			delete(me.models, n.getPath());
! 			me.list = sort(keys(me.models), string.icmp);
! 		}));
! 
! 		me.models = { "": { node: props.globals, id: '[' ~ getprop("/sim/multiplay/callsign") ~ ']' } };
! 		var ai = props.globals.getNode("/ai/models", 1);
! 		foreach (var n; ai.getChildren("multiplayer")
! 				#~ ai.getChildren("aircraft")
! 				#~ ai.getChildren("carrier")
! 				#~ ai.getChildren("tanker"
! 				)
! 			setprop("/ai/models/model-added", n.getPath());
! 
  		me.active = 1;
  		me.reset();
  		fgcommand("dialog-show", props.Node.new({ "dialog-name": "model-view" }));
  	},
  	scan_ident: func(n) {
  		if ((var cs = n.getNode("callsign")) == nil or !(cs = cs.getValue()))
! 			return settimer(func me.scan_ident(n), 2);
  		var path = n.getPath();
  		if (contains(me.models, path)) {
--- 333,365 ----
  	start: func {
  		me.lnr = [];
! 		append(me.lnr, setlistener("/ai/models/model-added", func me.update_list()));
! 		append(me.lnr, setlistener("/ai/models/model-removed", func me.update_list()));
! 		me.update_list();
  		me.active = 1;
  		me.reset();
  		fgcommand("dialog-show", props.Node.new({ "dialog-name": "model-view" }));
  	},
+ 	stop: func {
+ 		fgcommand("dialog-close", props.Node.new({ "dialog-name": "model-view" }));
+ 		me.active = 0;
+ 		foreach (var l; me.lnr)
+ 			removelistener(l);
+ 	},
+ 	reset: func {
+ 		me.next(me.current = 0);
+ 	},
+ 	update_list: func {
+ 		me.models = { "/": { node: props.globals, id: "[" ~ getprop("/sim/multiplay/callsign")~ "]" } };
+ 		foreach (var n; props.globals.getNode("/ai/models", 1).getChildren("multiplayer")) {
+ 			if (!n.getNode("valid", 1).getValue())
+ 				continue;
+ 			me.models[n.getPath()] = { node: n, id: "" };
+ 			me.scan_ident(n);
+ 		}
+ 		me.list = sort(keys(me.models), string.icmp);
+ 	},
  	scan_ident: func(n) {
  		if ((var cs = n.getNode("callsign")) == nil or !(cs = cs.getValue()))
! 			return settimer(func me.scan_ident(n, data), 1);
  		var path = n.getPath();
  		if (contains(me.models, path)) {
***************
*** 376,391 ****
  		}
  	},
- 	stop: func {
- 		fgcommand("dialog-close", props.Node.new({ "dialog-name": "model-view" }));
- 		me.active = 0;
- 		foreach (var listener; me.lnr)
- 			removelistener(listener);
- 	},
- 	reset: func {
- 		me.next(me.current = 0);
- 	},
  	next: func(v) {
  		me.legendN.setValue("");
! 		if (!me.active or !size(me.models))
  			return;
  		if (v)
--- 368,374 ----
  		}
  	},
  	next: func(v) {
  		me.legendN.setValue("");
! 		if (!me.active or size(me.models) < 1)
  			return;
  		if (v)
***************
*** 410,413 ****
--- 393,404 ----
  		me.legendN.setValue(me.models[path].id);
  	},
+ 	select: func(id) {
+ 		debug.dump(["select", id]);
+ 		forindex (var i; me.list)
+ 			if (me.models[me.list[i]].id == id)
+ 				me.current = i;
+ 		me.next(0);
+ 		me.next(i);
+ 	},
  	ident: func(n) {
  		var type = n.getName();


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Flightgear-cvslogs mailing list
Flightgear-cvslogs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-cvslogs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic