added findPrev (Alt-B) and findNext (Alt-F)
authorClaus Gittinger <cg@exept.de>
Tue, 21 Jan 1997 22:29:34 +0100
changeset 975 41a41f54874d
parent 974 8c16159d71a7
child 976 95a817dc94a2
added findPrev (Alt-B) and findNext (Alt-F)
CBrowser.st
ChangesBrowser.st
--- a/CBrowser.st	Tue Jan 21 18:51:49 1997 +0100
+++ b/CBrowser.st	Tue Jan 21 22:29:34 1997 +0100
@@ -186,22 +186,24 @@
     "this method is reached via delegation: are we prepared to handle
      a keyPress in some other view ?"
 
-    <resource: #keyboard (#Delete #BackSpace #Accept)>
+    <resource: #keyboard (#Delete #BackSpace #Accept #FindPrev #FindNext)>
 
     view == changeListView ifTrue:[
         (key == #Delete 
         or:[key == #BackSpace
-        or:[key == #Accept]]) ifTrue:[^ true].
+        or:[key == #Accept
+        or:[key == #FindPrev
+        or:[key == #FindNext]]]]) ifTrue:[^ true].
     ].
     ^ false
 
-    "Modified: 2.3.1996 / 13:51:25 / cg"
+    "Modified: 21.1.1997 / 22:16:02 / cg"
 !
 
 keyPress:key x:x y:y view:view
     "this method is reached via delegation from the changeListView"
 
-    <resource: #keyboard (#Delete #BackSpace #Accept)>
+    <resource: #keyboard (#Delete #BackSpace #Accept #FindPrev #FindNext)>
 
     (key == #Delete or:[key == #BackSpace]) ifTrue:[
         self doDelete.
@@ -211,9 +213,17 @@
         self doApply.
         ^ self
     ].
+    (key == #FindPrev) ifTrue:[
+        self findPreviousForClass.
+        ^ self
+    ].
+    (key == #FindNext) ifTrue:[
+        self findNextForClass.
+        ^ self
+    ].
     changeListView keyPress:key x:x y:y
 
-    "Modified: 2.3.1996 / 13:51:19 / cg"
+    "Modified: 21.1.1997 / 22:17:06 / cg"
 ! !
 
 !ChangesBrowser methodsFor:'help '!
@@ -1797,29 +1807,35 @@
     "user wants all changes to be applied"
 
     self withExecuteCursorDo:[
+        |lastNr "{ Class: SmallInteger }" |
+
         self clearCodeView.
         skipSignal isNil ifTrue:[skipSignal := Signal new].
-        1 to:(self numberOfChanges) do:[:changeNr |
+        lastNr := self numberOfChanges.
+        1 to:lastNr do:[:changeNr |
             changeListView setSelection:changeNr.
             self applyChange:changeNr
         ].
         self autoSelectLast
     ]
 
-    "Modified: 25.5.1996 / 12:26:20 / cg"
+    "Modified: 21.1.1997 / 22:26:30 / cg"
 !
 
 doApplyClassRest
     "user wants all changes for this class from changeNr to be applied"
 
     self withSelectedChangeDo:[:changeNr |
-        |thisClassName classNameToApply lastChange|
+        |thisClassName classNameToApply lastChange
+         lastNr "{ Class: SmallInteger }" |
 
         classNameToApply := self classNameOfChange:changeNr.
         classNameToApply notNil ifTrue:[
             self clearCodeView.
             skipSignal isNil ifTrue:[skipSignal := Signal new].
-            changeNr to:(self numberOfChanges) do:[:changeNr |
+
+            lastNr := self numberOfChanges.
+            changeNr to:lastNr do:[:changeNr |
                 thisClassName := self classNameOfChange:changeNr.
                 thisClassName = classNameToApply ifTrue:[
                     changeListView setSelection:changeNr.
@@ -1831,23 +1847,27 @@
         ]
     ]
 
-    "Modified: 25.5.1996 / 12:26:25 / cg"
+    "Modified: 21.1.1997 / 22:26:04 / cg"
 !
 
 doApplyRest
     "user wants all changes from changeNr to be applied"
 
     self withSelectedChangeDo:[:changeNr |
+        |lastNr "{ Class: SmallInteger }" |
+
         self clearCodeView.
         skipSignal isNil ifTrue:[skipSignal := Signal new].
-        changeNr to:(self numberOfChanges) do:[:changeNr |
+
+        lastNr := self numberOfChanges.
+        changeNr to:lastNr do:[:changeNr |
             changeListView setSelection:changeNr.
             self applyChange:changeNr
         ].
         self autoSelect:self numberOfChanges.
     ]
 
-    "Modified: 25.5.1996 / 12:26:28 / cg"
+    "Modified: 21.1.1997 / 22:25:29 / cg"
 !
 
 doBrowse
@@ -2312,6 +2332,71 @@
     "Modified: 5.9.1996 / 17:19:46 / cg"
 !
 
+findNextForClass
+    |savedCursor|
+
+    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.
+        ].
+    ].
+    self beep.
+
+    savedCursor := cursor.
+    self cursor:(Cursor cross).
+    Processor activeProcess millisecondDelay:300.
+    self cursor:savedCursor
+
+    "Created: 21.1.1997 / 22:28:07 / cg"
+!
+
+findPreviousForClass
+    |savedCursor|
+
+    changeNrShown isNil ifTrue:[^ self].
+
+    self withCursor:Cursor questionMark do:[
+        |cls nr thisClass |
+
+        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.
+        ].
+    ].
+    self beep.
+
+    savedCursor := cursor.
+    self cursor:(Cursor cross).
+    Processor activeProcess millisecondDelay:300.
+    self cursor:savedCursor
+
+    "Modified: 21.1.1997 / 22:28:29 / cg"
+!
+
 noChangesAllowed
     "show a warning that changes cannot be changed"
 
@@ -2355,5 +2440,5 @@
 !ChangesBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Attic/CBrowser.st,v 1.98 1997-01-14 18:40:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Attic/CBrowser.st,v 1.99 1997-01-21 21:29:34 cg Exp $'
 ! !
--- a/ChangesBrowser.st	Tue Jan 21 18:51:49 1997 +0100
+++ b/ChangesBrowser.st	Tue Jan 21 22:29:34 1997 +0100
@@ -186,22 +186,24 @@
     "this method is reached via delegation: are we prepared to handle
      a keyPress in some other view ?"
 
-    <resource: #keyboard (#Delete #BackSpace #Accept)>
+    <resource: #keyboard (#Delete #BackSpace #Accept #FindPrev #FindNext)>
 
     view == changeListView ifTrue:[
         (key == #Delete 
         or:[key == #BackSpace
-        or:[key == #Accept]]) ifTrue:[^ true].
+        or:[key == #Accept
+        or:[key == #FindPrev
+        or:[key == #FindNext]]]]) ifTrue:[^ true].
     ].
     ^ false
 
-    "Modified: 2.3.1996 / 13:51:25 / cg"
+    "Modified: 21.1.1997 / 22:16:02 / cg"
 !
 
 keyPress:key x:x y:y view:view
     "this method is reached via delegation from the changeListView"
 
-    <resource: #keyboard (#Delete #BackSpace #Accept)>
+    <resource: #keyboard (#Delete #BackSpace #Accept #FindPrev #FindNext)>
 
     (key == #Delete or:[key == #BackSpace]) ifTrue:[
         self doDelete.
@@ -211,9 +213,17 @@
         self doApply.
         ^ self
     ].
+    (key == #FindPrev) ifTrue:[
+        self findPreviousForClass.
+        ^ self
+    ].
+    (key == #FindNext) ifTrue:[
+        self findNextForClass.
+        ^ self
+    ].
     changeListView keyPress:key x:x y:y
 
-    "Modified: 2.3.1996 / 13:51:19 / cg"
+    "Modified: 21.1.1997 / 22:17:06 / cg"
 ! !
 
 !ChangesBrowser methodsFor:'help '!
@@ -1797,29 +1807,35 @@
     "user wants all changes to be applied"
 
     self withExecuteCursorDo:[
+        |lastNr "{ Class: SmallInteger }" |
+
         self clearCodeView.
         skipSignal isNil ifTrue:[skipSignal := Signal new].
-        1 to:(self numberOfChanges) do:[:changeNr |
+        lastNr := self numberOfChanges.
+        1 to:lastNr do:[:changeNr |
             changeListView setSelection:changeNr.
             self applyChange:changeNr
         ].
         self autoSelectLast
     ]
 
-    "Modified: 25.5.1996 / 12:26:20 / cg"
+    "Modified: 21.1.1997 / 22:26:30 / cg"
 !
 
 doApplyClassRest
     "user wants all changes for this class from changeNr to be applied"
 
     self withSelectedChangeDo:[:changeNr |
-        |thisClassName classNameToApply lastChange|
+        |thisClassName classNameToApply lastChange
+         lastNr "{ Class: SmallInteger }" |
 
         classNameToApply := self classNameOfChange:changeNr.
         classNameToApply notNil ifTrue:[
             self clearCodeView.
             skipSignal isNil ifTrue:[skipSignal := Signal new].
-            changeNr to:(self numberOfChanges) do:[:changeNr |
+
+            lastNr := self numberOfChanges.
+            changeNr to:lastNr do:[:changeNr |
                 thisClassName := self classNameOfChange:changeNr.
                 thisClassName = classNameToApply ifTrue:[
                     changeListView setSelection:changeNr.
@@ -1831,23 +1847,27 @@
         ]
     ]
 
-    "Modified: 25.5.1996 / 12:26:25 / cg"
+    "Modified: 21.1.1997 / 22:26:04 / cg"
 !
 
 doApplyRest
     "user wants all changes from changeNr to be applied"
 
     self withSelectedChangeDo:[:changeNr |
+        |lastNr "{ Class: SmallInteger }" |
+
         self clearCodeView.
         skipSignal isNil ifTrue:[skipSignal := Signal new].
-        changeNr to:(self numberOfChanges) do:[:changeNr |
+
+        lastNr := self numberOfChanges.
+        changeNr to:lastNr do:[:changeNr |
             changeListView setSelection:changeNr.
             self applyChange:changeNr
         ].
         self autoSelect:self numberOfChanges.
     ]
 
-    "Modified: 25.5.1996 / 12:26:28 / cg"
+    "Modified: 21.1.1997 / 22:25:29 / cg"
 !
 
 doBrowse
@@ -2312,6 +2332,71 @@
     "Modified: 5.9.1996 / 17:19:46 / cg"
 !
 
+findNextForClass
+    |savedCursor|
+
+    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.
+        ].
+    ].
+    self beep.
+
+    savedCursor := cursor.
+    self cursor:(Cursor cross).
+    Processor activeProcess millisecondDelay:300.
+    self cursor:savedCursor
+
+    "Created: 21.1.1997 / 22:28:07 / cg"
+!
+
+findPreviousForClass
+    |savedCursor|
+
+    changeNrShown isNil ifTrue:[^ self].
+
+    self withCursor:Cursor questionMark do:[
+        |cls nr thisClass |
+
+        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.
+        ].
+    ].
+    self beep.
+
+    savedCursor := cursor.
+    self cursor:(Cursor cross).
+    Processor activeProcess millisecondDelay:300.
+    self cursor:savedCursor
+
+    "Modified: 21.1.1997 / 22:28:29 / cg"
+!
+
 noChangesAllowed
     "show a warning that changes cannot be changed"
 
@@ -2355,5 +2440,5 @@
 !ChangesBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.98 1997-01-14 18:40:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.99 1997-01-21 21:29:34 cg Exp $'
 ! !