# HG changeset patch # User Claus Gittinger # Date 885990808 -3600 # Node ID 180d03d00db4ba0ab57ad2ff0cabb29d1c8d15f5 # Parent 0b279458330600bc808277affd61a87908b5d349 fixed selection after deleting a bunch of changes diff -r 0b2794583306 -r 180d03d00db4 CBrowser.st --- a/CBrowser.st Wed Jan 28 13:22:25 1998 +0100 +++ b/CBrowser.st Wed Jan 28 13:33:28 1998 +0100 @@ -1821,18 +1821,22 @@ ! silentDeleteChangesFor:aClassName from:start to:stop - "delete changes for a given class in a range" - - |thisClassName index| - + "delete changes for a given class in a range. + Return the number of deleted changes." + + |thisClassName index numDeleted| + + numDeleted := 0. index := stop. [index >= start] whileTrue:[ - thisClassName := self classNameOfChange:index. - thisClassName = aClassName ifTrue:[ - self silentDeleteChange:index - ]. - index := index - 1 - ] + thisClassName := self classNameOfChange:index. + thisClassName = aClassName ifTrue:[ + self silentDeleteChange:index. + numDeleted := numDeleted + 1. + ]. + index := index - 1 + ]. + ^ numDeleted ! @@ -2247,17 +2251,21 @@ "delete all changes with same class as currently selected change" self withSelectedChangeDo:[:changeNr | - | classNameToDelete | - - classNameToDelete := self classNameOfChange:changeNr. - classNameToDelete notNil ifTrue:[ - changeListView setSelection:nil. - self silentDeleteChangesFor:classNameToDelete - from:1 - to:(self numberOfChanges). - self setChangeList. - self autoSelectOrEnd:changeNr - ] + |classNameToDelete numDeletedBefore| + + classNameToDelete := self classNameOfChange:changeNr. + classNameToDelete notNil ifTrue:[ + changeListView setSelection:nil. + self silentDeleteChangesFor:classNameToDelete + from:changeNr + to:(self numberOfChanges). + numDeletedBefore := self + silentDeleteChangesFor:classNameToDelete + from:1 + to:changeNr. + self setChangeList. + self autoSelectOrEnd:(changeNr - numDeletedBefore) + ] ] "Created: 13.12.1995 / 16:07:14 / cg" @@ -2270,18 +2278,20 @@ Useful to get rid of obsolete changes before a fileout or checkin entry." self withSelectedChangeDo:[:changeNr | - | classNameToDelete | - - classNameToDelete := self classNameOfChange:changeNr. - classNameToDelete notNil ifTrue:[ - changeListView setSelection:nil. - self silentDeleteChangesFor:classNameToDelete - from:1 - to:changeNr. - self setChangeList. - self autoSelectOrEnd:changeNr - ] - ] + |classNameToDelete prevSelection numDeleted| + + classNameToDelete := self classNameOfChange:changeNr. + classNameToDelete notNil ifTrue:[ + prevSelection := changeNr. + changeListView setSelection:nil. + numDeleted := self + silentDeleteChangesFor:classNameToDelete + from:1 + to:changeNr. + self setChangeList. + self autoSelectOrEnd:(changeNr + 1 - numDeleted) + ] + ]. "Created: 13.12.1995 / 15:41:58 / cg" "Modified: 25.5.1996 / 12:26:34 / cg" @@ -2659,5 +2669,5 @@ !ChangesBrowser class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libtool/Attic/CBrowser.st,v 1.123 1998-01-28 12:22:25 cg Exp $' + ^ '$Header: /cvs/stx/stx/libtool/Attic/CBrowser.st,v 1.124 1998-01-28 12:33:28 cg Exp $' ! ! diff -r 0b2794583306 -r 180d03d00db4 ChangesBrowser.st --- a/ChangesBrowser.st Wed Jan 28 13:22:25 1998 +0100 +++ b/ChangesBrowser.st Wed Jan 28 13:33:28 1998 +0100 @@ -1821,18 +1821,22 @@ ! silentDeleteChangesFor:aClassName from:start to:stop - "delete changes for a given class in a range" - - |thisClassName index| - + "delete changes for a given class in a range. + Return the number of deleted changes." + + |thisClassName index numDeleted| + + numDeleted := 0. index := stop. [index >= start] whileTrue:[ - thisClassName := self classNameOfChange:index. - thisClassName = aClassName ifTrue:[ - self silentDeleteChange:index - ]. - index := index - 1 - ] + thisClassName := self classNameOfChange:index. + thisClassName = aClassName ifTrue:[ + self silentDeleteChange:index. + numDeleted := numDeleted + 1. + ]. + index := index - 1 + ]. + ^ numDeleted ! @@ -2247,17 +2251,21 @@ "delete all changes with same class as currently selected change" self withSelectedChangeDo:[:changeNr | - | classNameToDelete | - - classNameToDelete := self classNameOfChange:changeNr. - classNameToDelete notNil ifTrue:[ - changeListView setSelection:nil. - self silentDeleteChangesFor:classNameToDelete - from:1 - to:(self numberOfChanges). - self setChangeList. - self autoSelectOrEnd:changeNr - ] + |classNameToDelete numDeletedBefore| + + classNameToDelete := self classNameOfChange:changeNr. + classNameToDelete notNil ifTrue:[ + changeListView setSelection:nil. + self silentDeleteChangesFor:classNameToDelete + from:changeNr + to:(self numberOfChanges). + numDeletedBefore := self + silentDeleteChangesFor:classNameToDelete + from:1 + to:changeNr. + self setChangeList. + self autoSelectOrEnd:(changeNr - numDeletedBefore) + ] ] "Created: 13.12.1995 / 16:07:14 / cg" @@ -2270,18 +2278,20 @@ Useful to get rid of obsolete changes before a fileout or checkin entry." self withSelectedChangeDo:[:changeNr | - | classNameToDelete | - - classNameToDelete := self classNameOfChange:changeNr. - classNameToDelete notNil ifTrue:[ - changeListView setSelection:nil. - self silentDeleteChangesFor:classNameToDelete - from:1 - to:changeNr. - self setChangeList. - self autoSelectOrEnd:changeNr - ] - ] + |classNameToDelete prevSelection numDeleted| + + classNameToDelete := self classNameOfChange:changeNr. + classNameToDelete notNil ifTrue:[ + prevSelection := changeNr. + changeListView setSelection:nil. + numDeleted := self + silentDeleteChangesFor:classNameToDelete + from:1 + to:changeNr. + self setChangeList. + self autoSelectOrEnd:(changeNr + 1 - numDeleted) + ] + ]. "Created: 13.12.1995 / 15:41:58 / cg" "Modified: 25.5.1996 / 12:26:34 / cg" @@ -2659,5 +2669,5 @@ !ChangesBrowser class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.123 1998-01-28 12:22:25 cg Exp $' + ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.124 1998-01-28 12:33:28 cg Exp $' ! !