--- ray/src/util/trad.wsh 1994/10/31 11:35:28 2.5 +++ ray/src/util/trad.wsh 1994/12/05 09:50:43 2.9 @@ -27,18 +27,18 @@ proc modified {} { # check for radvar modification proc chksave {} { # check if RIF is saved and accost user if not global readonly rifname oldradvar curmess - if $readonly { - set warnmess "You have modified variables, but the file\ -\"[file tail $rifname]\" was opened read-only. + if [modified] { + if $readonly { + set warnmess "You have modified variables, but the\ +file \"[file tail $rifname]\" was opened read-only. Do you wish to save this information somehow?" - set yesmess {Go to File Screen} - } else { - set warnmess "The file \"[file tail $rifname]\" has been\ -modified since it was last saved. +set yesmess {Go to File Screen} + } else { + set warnmess "The file \"[file tail $rifname]\" has\ +been modified since it was last saved. Do you wish to save it now?" - set yesmess {Save File} - } - if [modified] { + set yesmess {Save File} + } switch [tk_dialog .dlg {File Modified} $warnmess \ warning 0 $yesmess {Discard Changes} \ {Cancel Operation}] { @@ -46,14 +46,16 @@ Do you wish to save it now?" 2 { return 0 } } if $readonly { - .file invoke set curmess {Rename file or uncheck read-only to save.} + .file invoke return 0 - } else { - catch {unset oldradvar} - save_vars $rifname + } elseif {[save_vars $rifname]} { + gotfile 1 + return 1 } - } else { return 1 } + return 0 + } + return 1 } # Set global variable default values @@ -159,6 +161,7 @@ proc gotfile {{o 1}} { # set file possession state } } else { set mode disabled + .file invoke } foreach b {scene zone views options action results} { .$b configure -state $mode @@ -168,14 +171,13 @@ proc gotfile {{o 1}} { # set file possession state # Decide where to go and start if {[llength $argv] == 0} { - gotfile 0 set curmess "Choose a Radiance project file." - .file invoke + gotfile 0 } elseif {[llength $argv] == 1} { cd [file dirname $argv] set curfile [file tail $argv] if {! [file exists $curfile]} { - newnew $argv + newnew $curfile .scene invoke } elseif {[newload $curfile]} { if $alldone {