--- a/ChangesBrowser.st Fri Oct 28 04:30:49 1994 +0100
+++ b/ChangesBrowser.st Fri Oct 28 04:31:16 1994 +0100
@@ -25,7 +25,7 @@
COPYRIGHT (c) 1990 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.16 1994-10-10 03:15:12 claus Exp $
+$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.17 1994-10-28 03:29:26 claus Exp $
'!
!ChangesBrowser class methodsFor:'documentation'!
@@ -46,7 +46,7 @@
version
"
-$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.16 1994-10-10 03:15:12 claus Exp $
+$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.17 1994-10-28 03:29:26 claus Exp $
"
!
@@ -71,7 +71,7 @@
openOn:aFileName
"create c changes browser on a change file"
- ^ ((self new label:'Changes Browser:', aFileName) changeFileName:aFileName) open
+ ^ ((self new label:'Changes Browser: ', aFileName) changeFileName:aFileName) open
! !
!ChangesBrowser class methodsFor:'behavior'!
@@ -295,7 +295,7 @@
autoSelect:changeNr
self class autoSelectNext ifTrue:[
- (changeNr <= changeChunks size) ifTrue:[
+ (changeNr <= changePositions size) ifTrue:[
self clearCodeView.
changeListView selection:changeNr.
self changeSelection:changeNr.
@@ -306,12 +306,15 @@
!
autoSelectOrEnd:changeNr
- changeNr < changeChunks size ifTrue:[
+ |last|
+
+ last := changePositions size.
+ changeNr < last ifTrue:[
self autoSelect:changeNr
] ifFalse:[
self clearCodeView.
- changeListView selection:changeChunks size.
- self changeSelection:changeChunks size.
+ changeListView selection:last .
+ self changeSelection:last .
]
!
@@ -319,13 +322,19 @@
"read the changes file, create a list of header-lines (changeChunks)
and a list of chunk-positions (changePositions)"
- |aStream index chunkText headerLine done sawExcla chunkPos excla
- myProcess myPriority p sel cls text first category|
+ |aStream index chunkText headerLine done sawExcla chunkPos excla
+ myProcess myPriority p sel cls text first category tabSpec entry|
aStream := FileStream readonlyFileNamed:changeFileName.
aStream isNil ifTrue:[^ nil].
self withCursor:(Cursor read) do:[
+ tabSpec := TabulatorSpecification new.
+ tabSpec unit:#inch.
+ tabSpec positions:#(0 3.5 4.5 ).
+ " cls>>sel type info "
+ tabSpec align: #(#left #left #left).
+
"
this is a time consuming operation (especially, if reading an
NFS-mounted directory; therefore lower my priority ...
@@ -342,6 +351,8 @@
excla := aStream class chunkSeparator.
[aStream atEnd] whileFalse:[
+ |entry line|
+
"
get a chunk (separated by excla)
"
@@ -368,14 +379,18 @@
changeChunks add:chunkText.
changePositions add:chunkPos.
+ headerLine := entry := nil.
sawExcla ifFalse:[
(chunkText startsWith:'''---- snap') ifFalse:[
- headerLine := chunkText , ' (doIt)'
+ headerLine := chunkText , ' (doIt)'.
+ entry := MultiColListEntry new.
+ entry tabulatorSpecification:tabSpec.
+ entry colAt:1 put:(chunkText contractTo:40).
+ entry colAt:2 put:'(doIt)'.
] ifTrue:[
headerLine := chunkText
].
- changeHeaderLines add:headerLine.
] ifTrue:[
"
method definitions actually consist of
@@ -427,14 +442,30 @@
sel := p selector.
]
].
+ entry := MultiColListEntry new.
+ entry tabulatorSpecification:tabSpec.
+ sel isNil ifTrue:[
+ entry colAt:1 put:(chunkText contractTo:40).
+ entry colAt:2 put:'(change)'.
+ ] ifFalse:[
+ entry colAt:1 put:(cls , ' ' , (sel contractTo:40)).
+ entry colAt:2 put:'(change category: ''' , category , ''')'.
+ ].
sel isNil ifTrue:[
- changeHeaderLines add:chunkText , ' (change)'.
+ headerLine := chunkText , ' (change)'.
] ifFalse:[
- changeHeaderLines add:cls , ' ' , sel , ' ' , '(change category: ''' , category , ''')'.
+ headerLine := cls , ' ' , sel , ' ' , '(change category: ''' , category , ''')'.
]
]
]
]
+ ].
+ entry notNil ifTrue:[
+ changeHeaderLines add:entry
+ ] ifFalse:[
+ headerLine notNil ifTrue:[
+ changeHeaderLines add:headerLine
+ ]
]
]
].
@@ -498,7 +529,8 @@
"extract type-information from changes and stuff into top selection
view"
- changeListView contents:changeHeaderLines "changeChunks".
+"/ changeListView list:changeHeaderLines "changeChunks".
+changeListView setList:changeHeaderLines expandTabs:false.
self disableMenuEntries
!
@@ -528,7 +560,7 @@
self withCursor:(Cursor write) do:[
excla := inStream class chunkSeparator.
- 1 to:(changeChunks size) do:[:index |
+ 1 to:(changePositions size) do:[:index |
inStream position:(changePositions at:index).
sawExcla := inStream peekFor:excla.
chunk := inStream nextChunk.
@@ -873,7 +905,7 @@
fileBox action:[:fileName |
|thisClassName|
self withCursor:(Cursor write) do:[
- startNr to:(changeChunks size) do:[:changeNr |
+ startNr to:(changePositions size) do:[:changeNr |
thisClassName := self classNameOfChange:changeNr.
thisClassName = aClassName ifTrue:[
changeListView selection:changeNr.
@@ -933,7 +965,7 @@
fileBox abortText:'cancel'.
fileBox action:[:fileName |
self withCursor:(Cursor write) do:[
- changeNr to:(changeChunks size) do:[:changeNr |
+ changeNr to:(changePositions size) do:[:changeNr |
changeListView selection:changeNr.
(self appendChange:changeNr toFile:fileName) ifFalse:[
^ self
@@ -1065,7 +1097,41 @@
changeListView selection:nil.
self silentDeleteChangesFor:classNameToDelete
from:changeNr
- to:(changeChunks size).
+ to:(changePositions size).
+ self setChangeList. "/changeListView setContents:changeChunks.
+ self autoSelectOrEnd:changeNr
+ ]
+ ]
+ ]
+!
+
+doDeleteRest
+ "delete all changes from current to the end"
+
+ |changeNr|
+
+ changeNr := changeListView selection.
+ changeNr notNil ifTrue:[
+ self deleteChangesFrom:changeNr to:(changePositions size).
+ self clearCodeView.
+ self autoSelectOrEnd:changeNr-1
+ ]
+!
+
+doDeleteClassAll
+ "delete all changes with same class as currently selected change"
+
+ |changeNr classNameToDelete|
+
+ changeNr := changeListView selection.
+ changeNr notNil ifTrue:[
+ self withCursor:(Cursor execute) do:[
+ classNameToDelete := self classNameOfChange:changeNr.
+ classNameToDelete notNil ifTrue:[
+ changeListView selection:nil.
+ self silentDeleteChangesFor:classNameToDelete
+ from:1
+ to:(changePositions size).
self setChangeList. "/changeListView setContents:changeChunks.
self autoSelectOrEnd:changeNr
]
@@ -1087,19 +1153,6 @@
]
!
-doDeleteRest
- "delete all changes from current to the end"
-
- |changeNr|
-
- changeNr := changeListView selection.
- changeNr notNil ifTrue:[
- self deleteChangesFrom:changeNr to:(changeChunks size).
- self clearCodeView.
- self autoSelectOrEnd:changeNr-1
- ]
-!
-
doCompress
"compress the change-set; this replaces multiple method-changes by the last
(i.e. the most recent) change"
@@ -1226,8 +1279,8 @@
index := index - 1
].
self setChangeList.
- changeListView firstLineShown > changeChunks size ifTrue:[
- changeListView makeLineVisible:changeChunks size
+ changeListView firstLineShown > changePositions size ifTrue:[
+ changeListView makeLineVisible:changePositions size
].
self clearCodeView
]
@@ -1243,27 +1296,6 @@
]
!
-doDeleteClassAll
- "delete all changes with same class as currently selected change"
-
- |changeNr classNameToDelete|
-
- changeNr := changeListView selection.
- changeNr notNil ifTrue:[
- self withCursor:(Cursor execute) do:[
- classNameToDelete := self classNameOfChange:changeNr.
- classNameToDelete notNil ifTrue:[
- changeListView selection:nil.
- self silentDeleteChangesFor:classNameToDelete
- from:1
- to:(changeChunks size).
- self setChangeList. "/changeListView setContents:changeChunks.
- self autoSelectOrEnd:changeNr
- ]
- ]
- ]
-!
-
doCompare
"compare change with current system version
- give a note in transcript"