--- a/ChangesBrowser.st Thu Jun 18 18:44:21 1998 +0200
+++ b/ChangesBrowser.st Thu Jun 18 22:32:54 1998 +0200
@@ -16,7 +16,7 @@
changeIsFollowupMethodChange anyChanges changeNrShown
changeNrProcessed skipSignal compareChanges compareCheckBox
changeFileSize changeFileTimestamp checkBlock changeTimeStamps
- tabSpec autoUpdate editingClassSource'
+ tabSpec autoUpdate editingClassSource lastSearchType'
classVariableNames:'CompressSnapshotInfo'
poolDictionaries:''
category:'Interface-Browsers'
@@ -234,28 +234,28 @@
<resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
(key == #Delete or:[key == #BackSpace]) ifTrue:[
- self doDelete.
- ^ self
+ self doDelete.
+ ^ self
].
(key == #Accept) ifTrue:[
- self doApply.
- ^ self
+ self doApply.
+ ^ self
].
(key == #Find) ifTrue:[
- self findClass.
- ^ self
+ self findClass.
+ ^ self
].
(key == #FindPrev) ifTrue:[
- self findPreviousForClass.
- ^ self
+ self findPrevious.
+ ^ self
].
(key == #FindNext) ifTrue:[
- self findNextForClass.
- ^ self
+ self findNext.
+ ^ self
].
changeListView keyPress:key x:x y:y
- "Modified: 8.4.1997 / 11:01:38 / cg"
+ "Modified: / 18.6.1998 / 22:15:36 / cg"
! !
!ChangesBrowser methodsFor:'help '!
@@ -297,6 +297,31 @@
|items m|
+ self sensor ctrlDown ifTrue:[
+ lastSearchType == #selector ifTrue:[
+ items := #(
+ ('search class' findClass #Find )
+ ('next for this class' findNextForClass )
+ ('previous for this class' findPreviousForClass )
+ ('-' )
+ ('search selector' findSelector )
+ ('next with this selector' findNextForSelector #FindNext )
+ ('previous with this selector' findPreviousForSelector #FindPrev )
+ ).
+ ] ifFalse:[
+ items := #(
+ ('search class' findClass #Find )
+ ('next for this class' findNextForClass #FindNext )
+ ('previous for this class' findPreviousForClass #FindPrev )
+ ('-' )
+ ('search selector' findSelector )
+ ('next with this selector' findNextForSelector )
+ ('previous with this selector' findPreviousForSelector )
+ ).
+ ].
+ ^ PopUpMenu itemList:items resources:resources.
+ ].
+
items := #(
('apply' doApply Accept)
('apply to end' doApplyRest )
@@ -375,7 +400,7 @@
^ m
"Modified: / 6.9.1995 / 17:14:22 / claus"
- "Modified: / 21.5.1998 / 16:04:05 / cg"
+ "Modified: / 18.6.1998 / 22:28:34 / cg"
!
compare:aBoolean
@@ -2490,37 +2515,124 @@
findClass
|nm current savedCursor search|
+ lastSearchType := #class.
+
changeNrShown notNil ifTrue:[
- current := self classNameOfChange:changeNrShown.
+ current := self classNameOfChange:changeNrShown.
].
nm := Dialog
- request:'class to search for:'
- initialAnswer:current
- onCancel:nil.
+ request:'class to search for:'
+ initialAnswer:current
+ onCancel:nil.
nm isNil ifTrue:[
- ^ self
+ ^ self
].
changeNrShown isNil ifTrue:[
- search := 1.
+ search := 1.
] ifFalse:[
- search := changeNrShown + 1
+ search := changeNrShown + 1
].
self withCursor:Cursor questionMark do:[
- |lastNr cls nr thisClass |
-
- lastNr := self numberOfChanges.
- nr := search.
- [nr <= lastNr] whileTrue:[
- thisClass := self classNameOfChange:nr.
- thisClass = nm ifTrue:[
- changeListView setSelection:nr.
- self changeSelection:nr.
- ^ self
- ].
- nr := nr + 1.
- ].
+ |lastNr nr thisClass |
+
+ lastNr := self numberOfChanges.
+ nr := search.
+ [nr <= lastNr] whileTrue:[
+ thisClass := self classNameOfChange:nr.
+ (thisClass = nm
+ or:[nm includesMatchCharacters and:[nm match:thisClass]]) ifTrue:[
+ changeListView setSelection:nr.
+ self changeSelection:nr.
+ ^ self
+ ].
+ nr := nr + 1.
+ ].
+ ].
+ self beep.
+
+ savedCursor := cursor.
+ self cursor:(Cursor cross).
+ Delay waitForMilliseconds:300.
+ self cursor:savedCursor
+
+ "Created: / 8.4.1997 / 11:00:16 / cg"
+ "Modified: / 18.4.1997 / 12:47:52 / stefan"
+ "Modified: / 18.6.1998 / 22:27:33 / cg"
+!
+
+findNext
+ lastSearchType == #selector ifTrue:[
+ ^ self findNextForSelector
+ ].
+ ^ self findNextForClass
+
+ "Created: / 18.6.1998 / 22:15:00 / cg"
+ "Modified: / 18.6.1998 / 22:15:25 / cg"
+!
+
+findNextForClass
+ |savedCursor|
+
+ lastSearchType := #class.
+ changeNrShown isNil ifTrue:[^ self].
+
+ self withCursor:Cursor questionMark do:[
+ |lastNr cls nr thisClass |
+
+ cls := self classNameOfChange:changeNrShown.
+ cls isNil ifTrue:[^ self].
+
+ lastNr := self numberOfChanges.
+ nr := changeNrShown + 1.
+ [nr <= lastNr] whileTrue:[
+ thisClass := self classNameOfChange:nr.
+ (thisClass = cls
+ or:[cls includesMatchCharacters and:[cls match:thisClass]]) ifTrue:[
+ changeListView setSelection:nr .
+ self changeSelection:nr.
+ ^ self
+ ].
+ nr := nr + 1.
+ ].
+ ].
+ self beep.
+
+ savedCursor := cursor.
+ self cursor:(Cursor cross).
+ Delay waitForMilliseconds:300.
+ self cursor:savedCursor
+
+ "Created: / 21.1.1997 / 22:28:07 / cg"
+ "Modified: / 18.4.1997 / 12:48:18 / stefan"
+ "Modified: / 18.6.1998 / 22:29:40 / cg"
+!
+
+findNextForSelector
+ |savedCursor|
+
+ lastSearchType := #selector.
+ changeNrShown isNil ifTrue:[^ self].
+
+ self withCursor:Cursor questionMark do:[
+ |lastNr sel nr thisSelector |
+
+ sel := self selectorOfMethodChange:changeNrShown.
+ sel isNil ifTrue:[^ self].
+
+ lastNr := self numberOfChanges.
+ nr := changeNrShown + 1.
+ [nr <= lastNr] whileTrue:[
+ thisSelector := self classNameOfChange:nr.
+ (thisSelector = sel
+ or:[sel includesMatchCharacters and:[sel match:thisSelector]]) ifTrue:[
+ changeListView setSelection:nr .
+ self changeSelection:nr.
+ ^ self
+ ].
+ nr := nr + 1.
+ ].
].
self beep.
@@ -2529,33 +2641,48 @@
Delay waitForMilliseconds:300.
self cursor:savedCursor
- "Created: 8.4.1997 / 11:00:16 / cg"
- "Modified: 18.4.1997 / 12:47:52 / stefan"
- "Modified: 5.8.1997 / 23:13:39 / cg"
+ "Modified: / 18.4.1997 / 12:48:18 / stefan"
+ "Created: / 18.6.1998 / 22:17:37 / cg"
+ "Modified: / 18.6.1998 / 22:29:33 / cg"
!
-findNextForClass
+findPrevious
+ lastSearchType == #selector ifTrue:[
+ ^ self findPreviousForSelector
+ ].
+ ^ self findPreviousForClass
+
+ "Created: / 18.6.1998 / 22:15:15 / cg"
+!
+
+findPreviousForClass
|savedCursor|
+ lastSearchType := #class.
changeNrShown isNil ifTrue:[^ self].
self withCursor:Cursor questionMark do:[
- |lastNr cls nr thisClass |
-
- cls := self classNameOfChange:changeNrShown.
- cls isNil ifTrue:[^ self].
-
- lastNr := self numberOfChanges.
- nr := changeNrShown + 1.
- [nr <= lastNr] whileTrue:[
- thisClass := self classNameOfChange:nr.
- thisClass = cls ifTrue:[
- changeListView setSelection:nr .
- self changeSelection:nr.
- ^ self
- ].
- nr := nr + 1.
- ].
+ |cls nr thisClass |
+
+ Object userInterruptSignal handle:[:ex |
+ self beep.
+ ^ self
+ ] do:[
+ cls := self classNameOfChange:changeNrShown.
+ cls isNil ifTrue:[^ self].
+
+ nr := changeNrShown - 1.
+ [nr >= 1] whileTrue:[
+ thisClass := self classNameOfChange:nr.
+ (thisClass = cls
+ or:[cls includesMatchCharacters and:[cls match:thisClass]]) ifTrue:[
+ changeListView setSelection:nr .
+ self changeSelection:nr.
+ ^ self
+ ].
+ nr := nr - 1.
+ ].
+ ]
].
self beep.
@@ -2564,36 +2691,38 @@
Delay waitForMilliseconds:300.
self cursor:savedCursor
- "Created: 21.1.1997 / 22:28:07 / cg"
- "Modified: 18.4.1997 / 12:48:18 / stefan"
+ "Modified: / 18.4.1997 / 12:48:41 / stefan"
+ "Modified: / 18.6.1998 / 22:29:44 / cg"
!
-findPreviousForClass
+findPreviousForSelector
|savedCursor|
+ lastSearchType := #selector.
changeNrShown isNil ifTrue:[^ self].
self withCursor:Cursor questionMark do:[
- |cls nr thisClass |
-
- Object userInterruptSignal handle:[:ex |
- self beep.
- ^ self
- ] do:[
- cls := self classNameOfChange:changeNrShown.
- cls isNil ifTrue:[^ self].
-
- nr := changeNrShown - 1.
- [nr >= 1] whileTrue:[
- thisClass := self classNameOfChange:nr.
- thisClass = cls ifTrue:[
- changeListView setSelection:nr .
- self changeSelection:nr.
- ^ self
- ].
- nr := nr - 1.
- ].
- ]
+ |sel nr thisSelector |
+
+ Object userInterruptSignal handle:[:ex |
+ self beep.
+ ^ self
+ ] do:[
+ sel := self selectorOfMethodChange:changeNrShown.
+ sel isNil ifTrue:[^ self].
+
+ nr := changeNrShown - 1.
+ [nr >= 1] whileTrue:[
+ thisSelector := self selectorOfMethodChange:nr.
+ (thisSelector = sel
+ or:[sel includesMatchCharacters and:[sel match:thisSelector]]) ifTrue:[
+ changeListView setSelection:nr .
+ self changeSelection:nr.
+ ^ self
+ ].
+ nr := nr - 1.
+ ].
+ ]
].
self beep.
@@ -2602,8 +2731,59 @@
Delay waitForMilliseconds:300.
self cursor:savedCursor
- "Modified: 2.4.1997 / 18:17:02 / cg"
- "Modified: 18.4.1997 / 12:48:41 / stefan"
+ "Modified: / 18.4.1997 / 12:48:41 / stefan"
+ "Created: / 18.6.1998 / 22:18:19 / cg"
+ "Modified: / 18.6.1998 / 22:29:29 / cg"
+!
+
+findSelector
+ |sel current savedCursor search|
+
+ lastSearchType := #selector.
+
+ changeNrShown notNil ifTrue:[
+ current := self selectorOfMethodChange:changeNrShown.
+ ].
+ sel := Dialog
+ request:'selector to search for:'
+ initialAnswer:current
+ onCancel:nil.
+ sel isNil ifTrue:[
+ ^ self
+ ].
+
+ changeNrShown isNil ifTrue:[
+ search := 1.
+ ] ifFalse:[
+ search := changeNrShown + 1
+ ].
+
+ self withCursor:Cursor questionMark do:[
+ |lastNr cls nr thisSelector |
+
+ lastNr := self numberOfChanges.
+ nr := search.
+ [nr <= lastNr] whileTrue:[
+ thisSelector := self selectorOfMethodChange:nr.
+ (thisSelector = sel
+ or:[sel includesMatchCharacters and:[sel match:thisSelector]]) ifTrue:[
+ changeListView setSelection:nr.
+ self changeSelection:nr.
+ ^ self
+ ].
+ nr := nr + 1.
+ ].
+ ].
+ self beep.
+
+ savedCursor := cursor.
+ self cursor:(Cursor cross).
+ Delay waitForMilliseconds:300.
+ self cursor:savedCursor
+
+ "Modified: / 18.4.1997 / 12:47:52 / stefan"
+ "Created: / 18.6.1998 / 22:17:04 / cg"
+ "Modified: / 18.6.1998 / 22:27:44 / cg"
!
noChangesAllowed
@@ -2649,5 +2829,5 @@
!ChangesBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.137 1998-05-21 14:05:40 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.138 1998-06-18 20:32:54 cg Exp $'
! !