--- a/ChangesBrowser.st Thu Feb 28 22:46:18 2013 +0000
+++ b/ChangesBrowser.st Tue Mar 05 18:10:46 2013 +0000
@@ -104,6 +104,7 @@
"
! !
+
!ChangesBrowser class methodsFor:'instance creation'!
new
@@ -137,6 +138,7 @@
"Modified: / 18-07-2010 / 10:32:18 / cg"
! !
+
!ChangesBrowser class methodsFor:'behavior'!
autoSelectNext
@@ -146,6 +148,7 @@
^ true
! !
+
!ChangesBrowser class methodsFor:'defaults'!
defaultIcon
@@ -169,6 +172,7 @@
"Created: / 27.9.1999 / 12:28:27 / cg"
! !
+
!ChangesBrowser class methodsFor:'menu specs'!
flyByHelpSpec
@@ -407,6 +411,12 @@
)
(MenuItem
enabled: hasSelection
+ label: 'Delete all for Namespace'
+ itemValue: doDeleteAllForNamespace
+ translateLabel: true
+ )
+ (MenuItem
+ enabled: hasSelection
label: 'Delete all for Classes'
itemValue: doDeleteClassAll
translateLabel: true
@@ -751,6 +761,7 @@
)
! !
+
!ChangesBrowser class methodsFor:'private-changeFile access'!
readXMLChangesFrom:aStream inBackground:inBackground
@@ -789,6 +800,7 @@
^ set.
! !
+
!ChangesBrowser class methodsFor:'utilities'!
isXMLFile:aFilename
@@ -822,6 +834,7 @@
)
! !
+
!ChangesBrowser methodsFor:'aspects'!
applyInOriginalNameSpace
@@ -965,6 +978,7 @@
^ updateChangeSet
! !
+
!ChangesBrowser methodsFor:'compiler interface'!
wantChangeLog
@@ -974,6 +988,7 @@
^ false
! !
+
!ChangesBrowser methodsFor:'compiler interface-error handling'!
correctableError:aString position:relPos to:relEndPos from:aCompiler
@@ -1075,6 +1090,7 @@
^ self
! !
+
!ChangesBrowser methodsFor:'event handling'!
handlesKeyPress:key inView:view
@@ -1134,6 +1150,7 @@
"Modified: / 18.6.1998 / 22:15:36 / cg"
! !
+
!ChangesBrowser methodsFor:'help'!
showActivity:someMessage
@@ -1150,6 +1167,7 @@
"Modified: 23.4.1996 / 21:39:36 / cg"
! !
+
!ChangesBrowser methodsFor:'initialization & release'!
autoCompareChanged
@@ -1613,6 +1631,7 @@
"Modified: / 03-01-2012 / 15:23:13 / cg"
! !
+
!ChangesBrowser methodsFor:'menu actions'!
doApply
@@ -2041,6 +2060,48 @@
self autoSelectOrEnd:firstDeleted
!
+doDeleteAllForNamespace
+ "delete all changes for classes with same namespace as currently selected change"
+
+ |namespacesToDelete lastChangeNr overAllNumDeletedBefore|
+
+ lastChangeNr := -1.
+ namespacesToDelete := Set new.
+ self withSelectedChangesDo:[:changeNr |
+ |namespaceToDelete|
+
+ namespaceToDelete := self namespaceOfChange:changeNr.
+ namespaceToDelete notNil ifTrue:[
+ namespacesToDelete add:namespaceToDelete
+ ].
+ lastChangeNr := lastChangeNr max:changeNr.
+ ].
+ namespacesToDelete isEmpty ifTrue:[^ self].
+
+ overAllNumDeletedBefore := 0.
+ changeListView setSelection:nil.
+
+ self withExecuteCursorDo:[
+ namespacesToDelete do:[:namespaceToDelete |
+ |numDeletedBefore|
+
+ self
+ silentDeleteChangesForNamespace:namespaceToDelete
+ from:lastChangeNr
+ to:(self numberOfChanges).
+ numDeletedBefore := self
+ silentDeleteChangesForNamespace:namespaceToDelete
+ from:1
+ to:(lastChangeNr-1).
+ lastChangeNr := lastChangeNr - numDeletedBefore.
+ overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
+ ].
+ ].
+
+ self setChangeList.
+ self autoSelectOrEnd:lastChangeNr
+!
+
doDeleteAndSelectPrevious
"delete currently selected change(s)"
@@ -2997,6 +3058,7 @@
ToolApplicationModel openAboutSTX
! !
+
!ChangesBrowser methodsFor:'private'!
autoSelect:changeNr
@@ -3479,6 +3541,7 @@
self withSelectedChangesInOrder:nil do:aBlock
! !
+
!ChangesBrowser methodsFor:'private-change access'!
changeIsFollowupMethodChange:changeNr
@@ -3877,6 +3940,19 @@
"Modified: / 08-03-2012 / 11:42:32 / cg"
!
+namespaceOfChange:changeNr
+ "return the namespace of a change or nil"
+
+ |className namespace|
+
+ className := self classNameOfChange:changeNr.
+ className isNil ifTrue:[ ^ nil ].
+
+ (className includesString:'::') ifFalse:[ ^ nil ].
+ namespace := className readStream upToAll:'::'.
+ ^ namespace
+!
+
numberOfChanges
^ changePositions size
@@ -4030,6 +4106,7 @@
^ aStream
! !
+
!ChangesBrowser methodsFor:'private-changeFile access'!
changeFileName:aFileName
@@ -4293,6 +4370,7 @@
"Modified: / 27-07-2012 / 09:46:00 / cg"
! !
+
!ChangesBrowser methodsFor:'private-user interaction ops'!
appendChange:changeNr toFile:aFileNameOrFileNameString
@@ -5278,6 +5356,25 @@
!
+silentDeleteChangesForNamespace:aNamespace from:start to:stop
+ "delete changes for a given namespace in a range.
+ Return the number of deleted changes."
+
+ |thisNamespace index numDeleted|
+
+ numDeleted := 0.
+ index := stop.
+ [index >= start] whileTrue:[
+ thisNamespace := self namespaceOfChange:index.
+ thisNamespace = aNamespace ifTrue:[
+ self silentDeleteChange:index.
+ numDeleted := numDeleted + 1.
+ ].
+ index := index - 1
+ ].
+ ^ numDeleted
+!
+
silentDeleteInternalChange:changeNr
"delete a change do not update changeListView"
@@ -5470,6 +5567,7 @@
"Modified: / 05-03-2012 / 14:33:16 / cg"
! !
+
!ChangesBrowser methodsFor:'termination'!
askIfChangesAreToBeWrittenBack
@@ -5516,6 +5614,7 @@
"Modified: / 3.8.1998 / 19:54:00 / cg"
! !
+
!ChangesBrowser methodsFor:'user interaction'!
askForSearch:msg initialAnswer:initial thenSearchUsing:searchBlock2 onCancel:cancelBlock
@@ -5787,6 +5886,7 @@
"Created: / 03-01-2012 / 15:26:36 / cg"
! !
+
!ChangesBrowser::ChangeFileReader methodsFor:'accessing'!
autoCompare:something
@@ -5859,6 +5959,7 @@
"Modified: / 06-10-2006 / 11:18:49 / cg"
! !
+
!ChangesBrowser::ChangeFileReader methodsFor:'private'!
contractClass:className selector:selector to:maxLen
@@ -5928,6 +6029,7 @@
^ browser nameSpaceForApply
! !
+
!ChangesBrowser::ChangeFileReader methodsFor:'reading'!
addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo
@@ -6456,14 +6558,15 @@
"Modified: / 10-07-2010 / 10:58:08 / cg"
! !
+
!ChangesBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.433 2012-10-22 22:32:07 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.434 2013-03-04 12:32:40 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.433 2012-10-22 22:32:07 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.434 2013-03-04 12:32:40 cg Exp $'
!
version_HG