--- a/TextView.st Sun Jan 17 02:26:31 2016 +0100
+++ b/TextView.st Sun Jan 17 11:49:35 2016 +0100
@@ -30,7 +30,8 @@
WordSelectCatchesBlanks LastSearchPatterns
NumRememberedSearchPatterns LastSearchIgnoredCase
LastSearchWasMatch DefaultParenthesisSpecification
- LastSearchWasMatchWithRegex LastSearchWasWrapAtEndOfText'
+ LastSearchWasMatchWithRegex LastSearchWasWrapAtEndOfText
+ LastSearchWasReplace LastSearchReplacedString'
poolDictionaries:''
category:'Views-Text'
!
@@ -2228,7 +2229,7 @@
bindings bldr doSearch modal searchVariableHolder selectedVariable searchFullWordHolder
replaceBooleanEnabledHolder replaceBooleanHolder replaceTextHolder
replaceAllBooleanHolder
- searchAtBeginOfLineOnlyHolder|
+ searchAtBeginOfLineOnlyHolder updateReturnKeyBehavior|
searchBarActionBlock notNil ifTrue:[
self resetVariablesBeforeNewSearch.
@@ -2248,9 +2249,9 @@
searchVariableHolder := (lastSearchWasVariableSearch ? false) asValue.
searchFullWordHolder := false asValue.
searchAtBeginOfLineOnlyHolder := false asValue.
- replaceBooleanHolder := false asValue.
+ replaceBooleanHolder := (LastSearchWasReplace ? false) asValue.
replaceAllBooleanHolder := false asValue.
- replaceTextHolder := '' asValue.
+ replaceTextHolder := (LastSearchReplacedString ? '') asValue.
replaceBooleanEnabledHolder := self isReadOnly not asValue.
patternHolder := '' asValue.
@@ -2296,6 +2297,9 @@
LastSearchWasMatch := lastSearchWasMatch := matchHolder value.
LastSearchWasMatchWithRegex := matchWithRegexHolder value.
LastSearchWasWrapAtEndOfText := wrapAtEndHolder value.
+ LastSearchWasReplace :=replaceBooleanHolder value.
+ LastSearchReplacedString := replaceTextHolder value.
+
pattern := patternHolder value.
pattern notEmptyOrNil ifTrue:[
searchAction :=
@@ -2410,6 +2414,21 @@
bindings at:#replaceBoolean put:replaceBooleanHolder.
bindings at:#replaceAllBoolean put:replaceAllBooleanHolder.
bindings at:#replaceTextHolder put:replaceTextHolder.
+
+ updateReturnKeyBehavior :=
+ [
+ "/ when replacing, do not close box on return
+ replaceBooleanHolder value ifTrue:[
+ (bldr componentAt:#cancelButton)
+ label:(resources string:'Close').
+ searchBox window keyboardProcessor returnAction:searchAction.
+ ] ifFalse:[
+ (bldr componentAt:#cancelButton)
+ label:(resources string:'Cancel').
+ searchBox window keyboardProcessor returnAction:nil.
+ ].
+ ].
+
replaceBooleanHolder onChangeEvaluate:
[
replaceBooleanHolder value ifTrue:[
@@ -2417,7 +2436,9 @@
] ifFalse:[
(bldr componentAt:#patternComboBox) requestFocus
].
+ updateReturnKeyBehavior value.
].
+
modal ifTrue:[
searchBox := SimpleDialog new.
] ifFalse:[
@@ -2436,6 +2457,7 @@
(bldr componentAt:#cancelButton) cursor:(Cursor thumbsDown).
modal ifTrue:[
+ updateReturnKeyBehavior value.
searchBox openDialog.
searchBox accepted ifTrue:[ doSearch value:fwd ].
] ifFalse:[