#UI_ENHANCEMENT by cg
class: VersionDiffBrowser
added: #filterMethod:
comment/format in:
#filterClassInA
#filterClassInB
#filterClassInM
#filterSelectorFromA
#filterSelectorFromB
#filterSelectorFromM
changed:
#filterClassesMatching
#filterMenu
#filterMethodInA
#filterMethodInB
#filterMethodInM
#filterSelectorsMatching
#rememberFilterAs
#updateLists
--- a/VersionDiffBrowser.st Mon Feb 06 02:32:56 2017 +0100
+++ b/VersionDiffBrowser.st Mon Feb 06 09:19:03 2017 +0100
@@ -562,6 +562,10 @@
itemValue: filterClassesMatching
)
(MenuItem
+ label: 'Filter Selectors Matching...'
+ itemValue: filterSelectorsMatching
+ )
+ (MenuItem
label: '-'
)
(MenuItem
@@ -593,7 +597,7 @@
)
"Created: / 05-02-2017 / 11:11:30 / cg"
- "Modified: / 06-02-2017 / 02:01:23 / cg"
+ "Modified: / 06-02-2017 / 09:09:25 / cg"
!
mainMenu
@@ -2248,8 +2252,22 @@
isIgnoredChange :=
[:change |
(isIgnored3 value:change)
- or:[ filteredMethods includes:change ]
- ].
+ or:[
+ filteredMethods contains:[:filter |
+ |filterSelector filterClassName|
+
+ filter isAssociation ifTrue:[
+ filterClassName := filter key.
+ filterSelector := filter value.
+ ] ifFalse:[
+ filterClassName := filter className.
+ filterSelector := filter changeSelector.
+ ].
+ ((change className = filterClassName)
+ and:[change changeSelector = filterSelector])
+ ]
+ ]
+ ].
].
classPatternFilters notEmptyOrNil ifTrue:[
@@ -2257,7 +2275,9 @@
isIgnoredChange :=
[:change |
(isIgnored4 value:change)
- or:[ classPatternFilters contains:[:pattern | pattern match:change nonMetaClassName]]
+ or:[
+ classPatternFilters contains:[:pattern | pattern match:change nonMetaClassName]
+ ]
].
].
@@ -2266,7 +2286,9 @@
isIgnoredChange :=
[:change |
(isIgnored5 value:change)
- or:[ selectorPatternFilters contains:[:pattern | pattern match:change changeSelector]]
+ or:[
+ selectorPatternFilters contains:[:pattern | pattern match:change changeSelector]
+ ]
].
].
@@ -2368,7 +2390,7 @@
].
self information:info
- "Modified: / 06-02-2017 / 02:32:40 / cg"
+ "Modified (format): / 06-02-2017 / 09:11:29 / cg"
!
updateVersionList
@@ -2690,7 +2712,7 @@
!VersionDiffBrowser methodsFor:'menu action - filters'!
filterClassInA
- "filter this class (don't show it)."
+ "filter all changes for the selected change's class (don't show it)."
filteredClasses isNil ifTrue:[
filteredClasses := Set new.
@@ -2700,10 +2722,11 @@
"Created: / 05-02-2017 / 10:17:22 / cg"
"Modified: / 05-02-2017 / 11:19:05 / cg"
+ "Modified (comment): / 06-02-2017 / 09:13:23 / cg"
!
filterClassInB
- "filter this class (don't show it)."
+ "filter all changes for the selected change's class (don't show it)."
filteredClasses isNil ifTrue:[
filteredClasses := Set new.
@@ -2713,10 +2736,11 @@
"Created: / 05-02-2017 / 10:16:45 / cg"
"Modified: / 05-02-2017 / 11:19:02 / cg"
+ "Modified (comment): / 06-02-2017 / 09:13:29 / cg"
!
filterClassInM
- "filter this class (don't show it)."
+ "filter all changes for the selected change's class (don't show it)."
filteredClasses isNil ifTrue:[
filteredClasses := Set new.
@@ -2725,12 +2749,16 @@
self filterChanged.
"Created: / 05-02-2017 / 10:38:06 / cg"
+ "Modified (comment): / 06-02-2017 / 09:13:33 / cg"
!
filterClassesMatching
- |pattern|
-
- pattern := Dialog request:'Pattern for Filter (will hide matching classes):'.
+ "ask for a GLOB pattern;
+ filter all changes with matching classnames ."
+
+ |pattern|
+
+ pattern := Dialog request:'Matchpattern for Classname Filter (will hide changes with matching classes):'.
pattern isEmptyOrNil ifTrue:[^ self].
classPatternFilters isNil ifTrue:[
@@ -2740,48 +2768,54 @@
self filterChanged
"Created: / 05-02-2017 / 11:11:42 / cg"
- "Modified (format): / 06-02-2017 / 02:29:12 / cg"
+ "Modified: / 06-02-2017 / 09:18:15 / cg"
+!
+
+filterMethod:aChange
+ "filter this change (don't show it)."
+
+ filteredMethods isNil ifTrue:[
+ filteredMethods := Set new.
+ ].
+ aChange isMethodChange ifTrue:[
+ filteredMethods add:(aChange className -> aChange changeSelector).
+ ] ifFalse:[
+ ].
+
+ self filterChanged.
+
+ "Created: / 06-02-2017 / 08:58:17 / cg"
!
filterMethodInA
"filter this entry (don't show it)."
- filteredMethods isNil ifTrue:[
- filteredMethods := Set new.
- ].
- filteredMethods add:(self selectedChangeInA).
- self filterChanged.
+ self filterMethod:(self selectedChangeInA)
"Created: / 05-02-2017 / 10:11:48 / cg"
+ "Modified: / 06-02-2017 / 08:58:38 / cg"
!
filterMethodInB
"filter this entry (don't show it)."
- filteredMethods isNil ifTrue:[
- filteredMethods := Set new.
- ].
- filteredMethods add:(self selectedChangeInB).
- self filterChanged.
+ self filterMethod:(self selectedChangeInB)
"Created: / 05-02-2017 / 10:15:57 / cg"
+ "Modified: / 06-02-2017 / 08:58:46 / cg"
!
filterMethodInM
"filter this entry (don't show it)."
- filteredMethods isNil ifTrue:[
- filteredMethods := Set new.
- ].
-self halt.
- filteredMethods add:(self selectedChangesInM first).
- self filterChanged.
+ self filterMethod:(self selectedChangesInM first)
"Created: / 05-02-2017 / 10:39:10 / cg"
+ "Modified: / 06-02-2017 / 08:58:59 / cg"
!
filterSelectorFromA
- "filter selectors of this entry (don't show it)."
+ "filter all changes for the selected change's selector(don't show it)."
filteredSelectors isNil ifTrue:[
filteredSelectors := Set new.
@@ -2790,10 +2824,11 @@
self filterChanged.
"Created: / 05-02-2017 / 10:36:08 / cg"
+ "Modified (comment): / 06-02-2017 / 09:13:48 / cg"
!
filterSelectorFromB
- "filter selectors of this entry (don't show it)."
+ "filter all changes for the selected change's selector(don't show it)."
filteredSelectors isNil ifTrue:[
filteredSelectors := Set new.
@@ -2802,10 +2837,11 @@
self filterChanged.
"Created: / 05-02-2017 / 10:36:14 / cg"
+ "Modified (comment): / 06-02-2017 / 09:13:52 / cg"
!
filterSelectorFromM
- "filter selectors of this entry (don't show it)."
+ "filter all changes for the selected change's selector(don't show it)."
filteredSelectors isNil ifTrue:[
filteredSelectors := Set new.
@@ -2814,12 +2850,16 @@
self filterChanged.
"Created: / 05-02-2017 / 10:39:28 / cg"
+ "Modified (comment): / 06-02-2017 / 09:13:55 / cg"
!
filterSelectorsMatching
+ "ask for a GLOB pattern;
+ filter all changes with matching selectors."
+
|pattern|
- pattern := Dialog request:'Pattern for Filter (will hide matching selectors):'.
+ pattern := Dialog request:'Matchpattern for Selector Filter (will hide changes with matching selectors):'.
pattern isEmptyOrNil ifTrue:[^ self].
selectorPatternFilters isNil ifTrue:[
@@ -2829,6 +2869,7 @@
self filterChanged
"Created: / 06-02-2017 / 02:29:07 / cg"
+ "Modified: / 06-02-2017 / 09:18:20 / cg"
!
forgetFilterNamed
@@ -2899,6 +2940,17 @@
list:(RememberedFilters keys asNewOrderedCollection sort).
filterName isEmptyOrNil ifTrue:[^ self].
+ filteredMethods notEmptyOrNil ifTrue:[
+ filteredMethods := filteredMethods
+ collect:[:filter |
+ filter isAssociation ifTrue:[
+ filter.
+ ] ifFalse:[
+ filter className ->filter changeSelector.
+ ].
+ ].
+ ].
+
filterParameters := FilterParameters new.
filterParameters filteredClassNameMatchPattern:classPatternFilters.
filterParameters filteredSelectorMatchPattern:selectorPatternFilters.
@@ -2911,7 +2963,7 @@
].
RememberedFilters at:filterName put:filterParameters.
- "Modified: / 06-02-2017 / 02:29:42 / cg"
+ "Modified: / 06-02-2017 / 09:06:45 / cg"
! !
!VersionDiffBrowser methodsFor:'private'!