Revision: 54915
http://brlcad.svn.sourceforge.net/brlcad/?rev=54915&view=rev
Author: bob1961
Date: 2013-03-27 15:17:28 +0000 (Wed, 27 Mar 2013)
Log Message:
-----------
Added a preference for the max number of members displayed in Archer's tree for
a combination. This prevents the GUI from locking when some user wants a few
hundred thousand members in a single group (ttk::treeview doesn't handle this
well). Also warn the user when all members are not visible.
Modified Paths:
--------------
brlcad/trunk/src/tclscripts/archer/Archer.tcl
brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl
Modified: brlcad/trunk/src/tclscripts/archer/Archer.tcl
===================================================================
--- brlcad/trunk/src/tclscripts/archer/Archer.tcl 2013-03-27 15:06:37 UTC
(rev 54914)
+++ brlcad/trunk/src/tclscripts/archer/Archer.tcl 2013-03-27 15:17:28 UTC
(rev 54915)
@@ -1649,6 +1649,7 @@
set mTarget $_target
set mDbType "BRL-CAD"
set mCopyObj ""
+ set mCombWarningList ""
if {![catch {$mTarget ls}]} {
set mDbShared 1
@@ -2947,6 +2948,19 @@
-validatecommand {::cadwidgets::Ged::validateDigit %P}
} {}
+ itk_component add maxcombmembL {
+ ::ttk::label $itk_component(generalF).maxcombmembL \
+ -anchor e \
+ -text "Max Comb Members Shown"
+ } {}
+ itk_component add maxcombmembE {
+ ::ttk::entry $itk_component(generalF).maxcombmembE \
+ -width 12 \
+ -textvariable [::itcl::scope mMaxCombMembersShownPref] \
+ -validate key \
+ -validatecommand {::cadwidgets::Ged::validateDigit %P}
+ } {}
+
itk_component add affectedTreeNodesModeCB {
::ttk::checkbutton $itk_component(generalF).affectedTreeNodesModeCB \
-text "Highlight Affected Tree/List Nodes" \
@@ -3023,9 +3037,11 @@
grid $itk_component(rayColorVoidF) -column 1 -row $i -sticky ew
# Disable tree attributes indefinitely
-# incr i
-# grid $itk_component(treeAttrsL) -column 0 -row $i -sticky e
-# grid $itk_component(treeAttrsE) -column 1 -row $i -sticky ew
+ if {0} {
+ incr i
+ grid $itk_component(treeAttrsL) -column 0 -row $i -sticky e
+ grid $itk_component(treeAttrsE) -column 1 -row $i -sticky ew
+ }
incr i
grid $itk_component(selGroupL) -column 0 -row $i -sticky e
@@ -3037,6 +3053,9 @@
grid $itk_component(rtbotmintieL) -column 0 -row $i -sticky e
grid $itk_component(rtbotmintieE) -column 1 -row $i -sticky ew
incr i
+ grid $itk_component(maxcombmembL) -column 0 -row $i -sticky e
+ grid $itk_component(maxcombmembE) -column 1 -row $i -sticky ew
+ incr i
set i [buildOtherGeneralPreferences $i]
grid $itk_component(affectedTreeNodesModeCB) \
-columnspan 2 \
@@ -8368,6 +8387,8 @@
gedCmd configure -rayColorVoid $mRayColorVoid
$itk_component(ged) fontsize $mDisplayFontSize
+
+ rebuildTree
}
@@ -8443,6 +8464,12 @@
set cflag 1
}
+ if {$mMaxCombMembersShownPref != $mMaxCombMembersShown} {
+ set mMaxCombMembersShown $mMaxCombMembersShownPref
+ set mCombWarningList ""
+ set cflag 1
+ }
+
if {$mEnableListViewAllAffected != $mEnableListViewAllAffectedPref} {
set mEnableListViewAllAffected $mEnableListViewAllAffectedPref
set tflag 1
@@ -8959,6 +8986,7 @@
set mDbUnits [gedCmd units -s]
set mRtBotMintiePref $mRtBotMintie
set mCompSelectGroupPref $mCompSelectGroup
+ set mMaxCombMembersShownPref $mMaxCombMembersShown
# Convert mCompSelectMode to a string for the preferences panel
set mCompSelectModePref [lindex $COMP_SELECT_MODE_NAMES $mCompSelectMode]
@@ -9130,6 +9158,7 @@
puts $_pfile "set mRtBotMintie $mRtBotMintie"
puts $_pfile "set mCompSelectGroup $mCompSelectGroup"
puts $_pfile "set mCompSelectMode $mCompSelectMode"
+ puts $_pfile "set mMaxCombMembersShown $mMaxCombMembersShown"
puts $_pfile "set mGridAnchor \"$mGridAnchor\""
puts $_pfile "set mGridColor \"$mGridColor\""
Modified: brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl
===================================================================
--- brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl 2013-03-27 15:06:37 UTC
(rev 54914)
+++ brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl 2013-03-27 15:17:28 UTC
(rev 54915)
@@ -463,6 +463,7 @@
variable mMaxCombMembersShown 200
variable mMaxCombMembersShownPref ""
+ variable mCombWarningList ""
variable mZClipBack 100.0
variable mZClipBackPref 100.0
@@ -856,7 +857,7 @@
# db/display commands
method getNodeChildren {_node}
method getTreeFromGData {_gdata}
- method getTreeMembers {_comb}
+ method getTreeMembers {_comb {_wflag 0}}
method getTreeOp {_parent _child}
method renderComp {_node}
method render {_node _state _trans _updateTree {_wflag 1}
{_node_id ""}}
@@ -3573,7 +3574,7 @@
}
-::itcl::body ArcherCore::getTreeMembers {_comb} {
+::itcl::body ArcherCore::getTreeMembers {_comb {_wflag 0}} {
if {![$itk_component(ged) exists $_comb]} {
return ""
}
@@ -3586,6 +3587,15 @@
incr i
if {$i >= $mMaxCombMembersShown} {
+ if {$_wflag} {
+ set j [lsearch $mCombWarningList $_comb]
+
+ if {$j == -1} {
+ tk_messageBox -message "Warning: not all members of $_comb
will be visible in the tree. See the \"Max Comb Members Shown\" preference."
+ lappend mCombWarningList $_comb
+ }
+ }
+
break
}
}
@@ -4633,7 +4643,7 @@
switch -- $ctype {
"comb" {
#set tree [getTreeFromGData $cgdata]
- foreach gctext [getTreeMembers $ctext] {
+ foreach gctext [getTreeMembers $ctext 1] {
if {[catch {$itk_component(ged) get $gctext} gcgdata]} {
set op [getTreeOp $ctext $gctext]
set img [getTreeImage $gctext "invalid" $op]
@@ -5157,6 +5167,7 @@
set mTarget $target
set mDbType "BRL-CAD"
set mCopyObj ""
+ set mCombWarningList ""
if {![catch {$mTarget ls}]} {
set mDbShared 1
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