diff -r f0126e42bbef -r 8b400fde34ef DebugView.st --- a/DebugView.st Tue Sep 17 11:25:54 2013 +0100 +++ b/DebugView.st Thu Sep 19 10:20:29 2013 +0100 @@ -427,7 +427,7 @@ ^ self enter:thisContext sender - withMessage:'debugger entered' + withMessage:'Debugger Entered' mayProceed:true. ! @@ -1865,10 +1865,10 @@ windowGroup notNil ifTrue:[ windowGroup setProcess:nil. ]. - NumberOfDebuggers := NumberOfDebuggers - 1. + NumberOfDebuggers := (NumberOfDebuggers ? 1) - 1. self destroy ]. - NumberOfDebuggers := NumberOfDebuggers - 1. + NumberOfDebuggers := (NumberOfDebuggers ? 1) - 1. ]. "/ here after my own control loop is finished. @@ -3062,26 +3062,68 @@ ! initializeCodeViewIn:panel - |v| + |scrollableCodeView| (UserPreferences current useCodeView2In: #Debugger) ifTrue:[ - v := codeView := Tools::CodeView2 in: panel. + scrollableCodeView := codeView := Tools::CodeView2 new. codeView model: ValueHolder new. codeView methodHolder: ValueHolder new. codeView classHolder: ValueHolder new. ] ifFalse:[ - v := HVScrollableView + scrollableCodeView := HVScrollableView for:CodeView miniScrollerH:true miniScrollerV:false in:panel. - "/ v autoHideScrollBars:true. - codeView := v scrolledView. + codeView := scrollableCodeView scrolledView. codeView enableMotionEvents. "/ for active help ]. - ^ v + UserPreferences current showAcceptCancelBarInBrowser ifTrue:[ + ViewWithAcceptAndCancelBar notNil ifTrue:[ + |v| + + v := ViewWithAcceptAndCancelBar new. + v slaveView:scrollableCodeView. + v reallyModifiedHolder:(codeView isCodeView2 + ifTrue:[ codeView reallyModifiedChannel ] + ifFalse:[ + BlockValue + with:[:m | + |same| + + same := (codeView contentsAsString string = currentMethod source string). + codeView modifiedChannel setValue:false. "/ so it triggers again + same not. + ] + argument:codeView modifiedChannel + ]). + v cancelAction: + [ + "/ codeView setClipboardText:(codeView contents). "/ for undo + codeView device rememberInCopyBufferHistory:(codeView contents). "/ for undo + codeView contents:(currentMethod source). + codeView modifiedChannel setValue:false; changed. "/ trigger + codeView requestFocus. + ]. + v compareAction: + [ + v := DiffCodeView + openOn:codeView contentsAsString + label:(resources string:'Changed definition (to be accepted ?)') + and:currentMethod source + label:(resources string:'Method''s Original Code'). + v label:(resources string:'Changed Code in Debugger'). + v waitUntilVisible. + "/ codeView requestFocus + ]. + scrollableCodeView := v. + ] + ]. + + panel add:scrollableCodeView. + ^ scrollableCodeView "Modified: / 27-07-2011 / 13:15:44 / Jan Vrany " ! @@ -4623,40 +4665,39 @@ receiversClass := classToDefineIn. ] ifFalse:[ selector := actualContext selector. - - implClass := actualContext receiver class whichClassIncludesSelector:selector. - implClass notNil ifTrue:[ - "/ must be a subclassResponsibility - - idx := contextArray identityIndexOf:actualContext. - idx > 1 ifTrue:[ - callee := contextArray at:idx-1. - - callee selector == #subclassResponsibility ifTrue:[ - restart := false. - ] - ]. - ]. - - "generate nice argument names" - bagOfClassNames := (actualContext args collect:[:eachArg | eachArg class name]) asBag. - bagOfUsedClassNames := Bag new. - argNames := actualContext args - collect: - [:eachArg | - |nm| - - nm := eachArg class nameWithoutPrefix. - (bagOfClassNames occurrencesOf:nm) == 1 ifTrue:[ - nm article , nm - ] ifFalse:[ - bagOfUsedClassNames add:nm. - nm asLowercaseFirst , (bagOfUsedClassNames occurrencesOf:nm) printString - ]. + receiversClass := actualContext receiver class. + ]. + + implClass := actualContext receiver class whichClassIncludesSelector:selector. + implClass notNil ifTrue:[ + "/ must be a subclassResponsibility + + idx := contextArray identityIndexOf:actualContext. + idx > 1 ifTrue:[ + callee := contextArray at:idx-1. + + callee selector == #subclassResponsibility ifTrue:[ + restart := false. + ] + ]. + ]. + + "generate nice argument names" + bagOfClassNames := (actualContext args collect:[:eachArg | eachArg class name]) asBag. + bagOfUsedClassNames := Bag new. + argNames := actualContext args + collect: + [:eachArg | + |nm| + + nm := eachArg class nameWithoutPrefix. + (bagOfClassNames occurrencesOf:nm) == 1 ifTrue:[ + nm article , nm + ] ifFalse:[ + bagOfUsedClassNames add:nm. + nm asLowercaseFirst , (bagOfUsedClassNames occurrencesOf:nm) printString ]. - - receiversClass := actualContext receiver class. - ]. + ]. proto := Method methodDefinitionTemplateForSelector:selector andArgumentNames:argNames. @@ -5431,17 +5472,22 @@ AND it has an applicaiton, return it. Otherwise, return nil" - |p wg app| + |p wgs app| p := inspectedProcess ? Processor activeProcess. (p notNil and:[p isGUIProcess]) ifTrue:[ - wg := WindowGroup scheduledWindowGroups detect:[:wg | wg process == p] ifNone:nil. - [wg notNil] whileTrue:[ - (app := wg application) notNil ifTrue:[^ app]. - wg isModal ifTrue:[ - wg := wg previousGroup - ] ifFalse:[ - wg := nil. + wgs := WindowGroup scheduledWindowGroups select:[:wg | wg process == p]. + wgs do:[:wg | + |wgi| + + wgi := wg. + [wgi notNil] whileTrue:[ + (app := wgi application) notNil ifTrue:[^ app]. + wgi isModal ifTrue:[ + wgi := wgi previousGroup + ] ifFalse:[ + wgi := nil. + ] ] ] ]. @@ -7744,7 +7790,7 @@ ^ true. ]. - "/ thats a big hack, but I am tired of navigating to find the missing menu message... + "/ that's a big hack, but I am tired of navigating to find the missing menu message... "/ you will thank me!! mthd selector == #error:mayProceed: ifTrue:[ (callee receiver isKindOf:MenuPanel) ifTrue:[ @@ -8984,11 +9030,11 @@ !DebugView class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.633 2013-09-03 17:58:08 cg Exp $' + ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.637 2013-09-15 12:43:20 cg Exp $' ! version_CVS - ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.633 2013-09-03 17:58:08 cg Exp $' + ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.637 2013-09-15 12:43:20 cg Exp $' ! version_HG @@ -8997,7 +9043,7 @@ ! version_SVN - ^ '$Id: DebugView.st,v 1.633 2013-09-03 17:58:08 cg Exp $' + ^ '$Id: DebugView.st,v 1.637 2013-09-15 12:43:20 cg Exp $' ! !