Revision: 54884
http://brlcad.svn.sourceforge.net/brlcad/?rev=54884&view=rev
Author: bob1961
Date: 2013-03-26 17:36:58 +0000 (Tue, 26 Mar 2013)
Log Message:
-----------
ArcherCore::getTreeMembers is no longer recursive.
Modified Paths:
--------------
brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl
Modified: brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl
===================================================================
--- brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl 2013-03-26 16:26:27 UTC
(rev 54883)
+++ brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl 2013-03-26 17:36:58 UTC
(rev 54884)
@@ -461,6 +461,9 @@
variable mPerspective 0
variable mPerspectivePref 0
+ variable mMaxCombMembersShown 200
+ variable mMaxCombMembersShownPref ""
+
variable mZClipBack 100.0
variable mZClipBackPref 100.0
variable mZClipFront 100.0
@@ -853,7 +856,7 @@
# db/display commands
method getNodeChildren {_node}
method getTreeFromGData {_gdata}
- method getTreeMembers {_tlist {_mlist {}}}
+ method getTreeMembers {_comb}
method getTreeOp {_parent _child}
method renderComp {_node}
method render {_node _state _trans _updateTree {_wflag 1}
{_node_id ""}}
@@ -2379,8 +2382,7 @@
return
}
- set tree [getTreeFromGData $pgdata]
- set mlist [getTreeMembers $tree]
+ set mlist [getTreeMembers $ptext]
# Reconcile clists (i.e. the tree's view)
# with mlist (i.e. the database's view).
@@ -2469,8 +2471,7 @@
}
} else {
- set ctree [getTreeFromGData $cgdata]
- set cmlist [getTreeMembers $ctree]
+ set cmlist [getTreeMembers $ctext]
if {$cmlist != ""} {
removeTreeNodeTag $cnode $TREE_OPENED_TAG
$itk_component(newtree) item $cnode -open
false
@@ -2500,8 +2501,7 @@
set ptype [lindex $pgdata 0]
if {$ptype == "comb"} {
- set tree [getTreeFromGData $pgdata]
- set mlist [getTreeMembers $tree]
+ set mlist [getTreeMembers $ptext]
if {$mlist != ""} {
removeTreeNodeTag $_pnode $TREE_OPENED_TAG
$itk_component(newtree) item $_pnode -open false
@@ -3091,9 +3091,8 @@
if {[llength $add_list] > 0} {
eval group $mCompSelectGroup $add_list
- set tree [$itk_component(ged) get $mCompSelectGroup tree]
- if {[llength $tree] > 0} {
- set tlist [getTreeMembers $tree]
+ set tlist [getTreeMembers $mCompSelectGroup]
+ if {[llength $tlist] > 0} {
putString "$mCompSelectGroup now contains:"
putString "\t$tlist"
}
@@ -3114,9 +3113,10 @@
return ""
}
- set tree [$itk_component(ged) get $mCompSelectGroup tree]
- if {[llength $tree] > 0} {
- set mCompSelectGroupList [getTreeMembers $tree]
+ #set tree [$itk_component(ged) get $mCompSelectGroup tree]
+ set tlist [getTreeMembers $mCompSelectGroup]
+ if {[llength $tlist] > 0} {
+ set mCompSelectGroupList $tlist
}
}
@@ -3146,9 +3146,8 @@
if {[llength $rem_list] > 0} {
eval rm $mCompSelectGroup $rem_list
- set tree [$itk_component(ged) get $mCompSelectGroup tree]
- if {[llength $tree] > 0} {
- set tlist [getTreeMembers $tree]
+ set tlist [getTreeMembers $mCompSelectGroup]
+ if {[llength $tlist] > 0} {
putString "$mCompSelectGroup now contains:"
putString "\t$tlist"
} else {
@@ -3555,11 +3554,12 @@
return {}
}
- if {[catch {gedCmd get $node tree} tlist]} {
+
+ if {[catch {getTreeMembers $node} tlist]} {
return {}
}
- return [getTreeMembers $tlist]
+ return $tlist
}
::itcl::body ArcherCore::getTreeFromGData {_gdata} {
@@ -3572,22 +3572,25 @@
return {}
}
-::itcl::body ArcherCore::getTreeMembers {_tlist {_mlist {}}} {
- set len [llength $_tlist]
- set op [lindex $_tlist 0]
- if {$op == "l"} {
- set name [lindex $_tlist 1]
- lappend _mlist $name
- return $_mlist
+
+::itcl::body ArcherCore::getTreeMembers {_comb} {
+ if {![$itk_component(ged) exists $_comb]} {
+ return ""
}
- if {$len == 3} {
- set _mlist [getTreeMembers [lindex $_tlist 1] $_mlist]
- set _mlist [getTreeMembers [lindex $_tlist 2] $_mlist]
- return $_mlist
+ set i 0
+
+ set tlist {}
+ foreach item [regsub -all {/R} [lrange [split [$itk_component(ged) tree -d
1 $_comb] "\n"] 1 end-1] ""] {
+ lappend tlist [lindex $item 1]
+ incr i
+
+ if {$i >= $mMaxCombMembersShown} {
+ break
+ }
}
- return $_mlist
+ return $tlist
}
@@ -4092,8 +4095,7 @@
set mlist ""
switch -- $ctype {
"comb" {
- set tree [getTreeFromGData $cgdata]
- set mlist [getTreeMembers $tree]
+ set mlist [getTreeMembers $_ctext]
}
"dsp" -
"ebm" -
@@ -4630,8 +4632,8 @@
switch -- $ctype {
"comb" {
- set tree [getTreeFromGData $cgdata]
- foreach gctext [getTreeMembers $tree] {
+ #set tree [getTreeFromGData $cgdata]
+ foreach gctext [getTreeMembers $ctext] {
if {[catch {$itk_component(ged) get $gctext} gcgdata]} {
set op [getTreeOp $ctext $gctext]
set img [getTreeImage $gctext "invalid" $op]
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Own the Future-Intel® Level Up Game Demo Contest 2013
Rise to greatness in Intel's independent game demo contest.
Compete for recognition, cash, and the chance to get your game
on Steam. $5K grand prize plus 10 genre and skill prizes.
Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits