--- a/VersionDiffBrowser.st Thu Jan 18 15:00:41 2018 +0100
+++ b/VersionDiffBrowser.st Thu Jan 18 17:02:55 2018 +0100
@@ -30,7 +30,7 @@
filteredClasses filteredMethods filteredSelectors
classPatternFilters selectorPatternFilters
selectedVersionIndexHolder'
- classVariableNames:'RememberedFilters'
+ classVariableNames:'RememberedFilters LastSearchString'
poolDictionaries:''
category:'Interface-Browsers'
!
@@ -768,7 +768,7 @@
#enabled: #hasChangeSelectedInA
)
#(#MenuItem
- #label: 'Filter Selector '
+ #label: 'Filter Selector'
#translateLabel: true
#value: #filterSelectorFromA
#enabled: #hasChangeSelectedInA
@@ -777,6 +777,15 @@
#label: '-'
)
#(#MenuItem
+ #label: 'Find Next Change with String...'
+ #translateLabel: true
+ #value: #findNextChangeWithStringInA
+ #enabled: #hasChangeSelectedInA
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
#label: 'Inspect'
#translateLabel: true
#value: #inspectSelectedChangeInA
@@ -854,6 +863,15 @@
#label: '-'
)
#(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Find Next Change with String...'
+ #translateLabel: true
+ #value: #findNextChangeWithStringInB
+ #enabled: #hasChangeSelectedInB
+ )
+ #(#MenuItem
#label: 'Inspect'
#translateLabel: true
#value: #inspectSelectedChangeInB
@@ -931,6 +949,15 @@
#label: '-'
)
#(#MenuItem
+ #label: 'Find Next Change with String...'
+ #translateLabel: true
+ #value: #findNextChangeWithStringInM
+ #enabled: #hasChangeSelectedInM
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
#label: 'Inspect both'
#translateLabel: true
#value: #inspectSelectedChangeInM
@@ -2581,7 +2608,8 @@
].
revisions size < numOverallRevisions ifTrue:[
- revisions add:'...'
+ revisions add:'...'.
+ revisionEntries add:'...'.
].
symbolicToVersionMapping := symbolicNames.
self symbolicVersionList contents:tagList.
@@ -2981,11 +3009,7 @@
filterSelectorFromA
"filter all changes for the selected change's selector(don't show it)."
- filteredSelectors isNil ifTrue:[
- filteredSelectors := Set new.
- ].
- filteredSelectors add:(self selectedChangeInA changeSelector).
- self filterChanged.
+ self filterSelectorFromSet:self selectedChangeInA
"Created: / 05-02-2017 / 10:36:08 / cg"
"Modified (comment): / 06-02-2017 / 09:13:48 / cg"
@@ -2994,23 +3018,45 @@
filterSelectorFromB
"filter all changes for the selected change's selector(don't show it)."
- filteredSelectors isNil ifTrue:[
- filteredSelectors := Set new.
- ].
- filteredSelectors add:(self selectedChangeInB changeSelector).
- self filterChanged.
+ self filterSelectorFromSet:self selectedChangeInB
"Created: / 05-02-2017 / 10:36:14 / cg"
"Modified (comment): / 06-02-2017 / 09:13:52 / cg"
!
-filterSelectorFromM
- "filter all changes for the selected change's selector(don't show it)."
+filterSelectorFromChange:aChange
+ "common to set a filter;
+ gets the change as argument,
+ takes its selector and adds it to the filters"
filteredSelectors isNil ifTrue:[
filteredSelectors := Set new.
].
- filteredSelectors add:(self selectedChangesInM first changeSelector).
+ filteredSelectors add:(aChange changeSelector).
+ self filterChanged.
+
+ "Created: / 05-02-2017 / 10:39:28 / cg"
+ "Modified (comment): / 06-02-2017 / 09:13:55 / cg"
+!
+
+filterSelectorFromM
+ "filter all changes for the selected change's selector(don't show it)."
+
+ self filterSelectorFromSet:(self selectedChangesInM first)
+
+ "Created: / 05-02-2017 / 10:39:28 / cg"
+ "Modified (comment): / 06-02-2017 / 09:13:55 / cg"
+!
+
+filterSelectorFromSet:setOfChanges
+ "common to set a filter;
+ get the sub-set (A,B,M as argument),
+ takes its first selection and adds it to the filters"
+
+ filteredSelectors isNil ifTrue:[
+ filteredSelectors := Set new.
+ ].
+ filteredSelectors add:(setOfChanges first changeSelector).
self filterChanged.
"Created: / 05-02-2017 / 10:39:28 / cg"
@@ -3131,6 +3177,78 @@
"Created: / 06-02-2017 / 09:51:37 / cg"
! !
+!VersionDiffBrowser methodsFor:'menu action - searching'!
+
+findNextChangeWithStringIn:listOfchanges selectionHolder:whichMethodSelectionHolder
+ "common code to select the next change which contains some string"
+
+ |string startIdx|
+
+ string := Dialog request:'Search for:' initialAnswer:LastSearchString.
+ string isEmptyOrNil ifTrue:[^ false].
+
+ LastSearchString := string.
+
+ startIdx := whichMethodSelectionHolder value.
+ listOfchanges from:startIdx+1 keysAndValuesDo:[:index :eachChange |
+ (eachChange source includesString:string caseSensitive:false) ifTrue:[
+ whichMethodSelectionHolder value:index.
+ ^ true.
+ ]
+ ].
+ ^ false
+!
+
+findNextChangeWithStringInA
+ "select the next change which contains some string"
+
+ (self findNextChangeWithStringIn:methodsOnlyInAFiltered selectionHolder:methodsOnlyInASelection) ifTrue:[
+ self methodsOnlyInASelectionChanged
+ ] ifFalse:[
+ self beepInEditor
+ ].
+!
+
+findNextChangeWithStringInB
+ "select the next change which contains some string"
+
+ (self findNextChangeWithStringIn:methodsOnlyInBFiltered selectionHolder:methodsOnlyInBSelection) ifTrue:[
+ self methodsOnlyInASelectionChanged
+ ]
+!
+
+findNextChangeWithStringInM
+ "select the next change which contains some string"
+
+ (self findNextChangeWithStringInPairs:methodsChangedFiltered selectionHolder:methodsChangedSelection) ifTrue:[
+ self methodsChangedSelectionChanged
+ ]
+!
+
+findNextChangeWithStringInPairs:listOfchangePairs selectionHolder:whichMethodSelectionHolder
+ "select the next change which contains some string"
+
+ |string startIdx|
+
+ string := Dialog request:'Search for:' initialAnswer:LastSearchString.
+ string isEmptyOrNil ifTrue:[^ false].
+
+ LastSearchString := string.
+
+ startIdx := whichMethodSelectionHolder value.
+ listOfchangePairs from:startIdx+1 keysAndValuesDo:[:index :eachChangePair |
+ (eachChangePair first source includesString:string caseSensitive:false) ifTrue:[
+ whichMethodSelectionHolder value:index.
+ ^ true.
+ ].
+ (eachChangePair second source includesString:string caseSensitive:false) ifTrue:[
+ whichMethodSelectionHolder value:index.
+ ^ true.
+ ]
+ ].
+ ^ false.
+! !
+
!VersionDiffBrowser methodsFor:'private'!
addAcceptToTextViewMenus