--- a/VersionDiffBrowser.st Mon Feb 06 09:19:03 2017 +0100
+++ b/VersionDiffBrowser.st Mon Feb 06 09:52:37 2017 +0100
@@ -580,6 +580,17 @@
label: '-'
)
(MenuItem
+ label: 'Export Filter Settings'
+ itemValue: exportFilterParameters
+ )
+ (MenuItem
+ label: 'Import Filter Settings From...'
+ itemValue: importFilterParameters
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
label: 'Forget Filter Named...'
itemValue: forgetFilterNamed
)
@@ -597,7 +608,7 @@
)
"Created: / 05-02-2017 / 11:11:30 / cg"
- "Modified: / 06-02-2017 / 09:09:25 / cg"
+ "Modified: / 06-02-2017 / 09:27:22 / cg"
!
mainMenu
@@ -2256,6 +2267,7 @@
filteredMethods contains:[:filter |
|filterSelector filterClassName|
+ "/ migration - will be always an assoc
filter isAssociation ifTrue:[
filterClassName := filter key.
filterSelector := filter value.
@@ -2390,7 +2402,7 @@
].
self information:info
- "Modified (format): / 06-02-2017 / 09:11:29 / cg"
+ "Modified (format): / 06-02-2017 / 09:21:20 / cg"
!
updateVersionList
@@ -2711,6 +2723,49 @@
!VersionDiffBrowser methodsFor:'menu action - filters'!
+currentFilterParameters
+ "get the current settings"
+
+ |filterParameters|
+
+ "/ migration - will be removed
+ 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.
+ filterParameters filteredClassNames:filteredClasses.
+ filterParameters filteredMethodNames:filteredMethods.
+ filterParameters filteredSelectors:filteredSelectors.
+
+ ^ filterParameters.
+
+ "Created: / 06-02-2017 / 09:20:07 / cg"
+!
+
+exportFilterParameters
+ "generate XML with the current settings
+ (to be pasted into Jabber for interchange)"
+
+ |filterParameters|
+
+ filterParameters := self currentFilterParameters.
+ Workspace
+ openWith:(XMLStandardCoder encode:filterParameters)
+ title:'Current Filter'
+
+ "Created: / 06-02-2017 / 09:19:52 / cg"
+!
+
filterClassInA
"filter all changes for the selected change's class (don't show it)."
@@ -2890,21 +2945,30 @@
"Modified: / 06-02-2017 / 02:17:47 / cg"
!
+importFilterParameters
+ "ask for XML representation as exported previously.
+ (to be pasted from Jabber for interchange)"
+
+ |xml filterParameters|
+
+ xml := Dialog requestText:'Paste XML Exported Filter Here and Accept'.
+ xml isEmptyOrNil ifTrue:[^ self].
+
+ filterParameters := XMLStandardCoder decode:xml.
+ (filterParameters isKindOf:FilterParameters) ifTrue:[
+ self setFilterParameters:filterParameters
+ ].
+
+ "Created: / 06-02-2017 / 09:51:11 / cg"
+!
+
inspectFilterParameters
"inspect the current settings"
- |filterParameters|
-
- filterParameters := FilterParameters new.
- filterParameters filteredClassNameMatchPattern:classPatternFilters.
- filterParameters filteredSelectorMatchPattern:selectorPatternFilters.
- filterParameters filteredClassNames:filteredClasses.
- filterParameters filteredMethodNames:filteredMethods.
- filterParameters filteredSelectors:filteredSelectors.
-
- filterParameters inspect.
+ self currentFilterParameters inspect.
"Created: / 06-02-2017 / 02:00:55 / cg"
+ "Modified: / 06-02-2017 / 09:20:15 / cg"
!
loadFilterNamed
@@ -2918,16 +2982,10 @@
filterName isEmptyOrNil ifTrue:[^ self].
filterParameters := RememberedFilters at:filterName.
-
- selectorPatternFilters := filterParameters filteredSelectorMatchPattern.
- classPatternFilters := filterParameters filteredClassNameMatchPattern.
- filteredClasses := filterParameters filteredClassNames.
- filteredMethods := filterParameters filteredMethodNames.
- filteredSelectors := filterParameters filteredSelectors.
-
- self filterChanged.
+ self setFilterParameters:filterParameters.
"Created: / 06-02-2017 / 01:57:48 / cg"
+ "Modified: / 06-02-2017 / 09:51:47 / cg"
!
rememberFilterAs
@@ -2940,30 +2998,28 @@
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.
- filterParameters filteredClassNames:filteredClasses.
- filterParameters filteredMethodNames:filteredMethods.
- filterParameters filteredSelectors:filteredSelectors.
+ filterParameters := self currentFilterParameters.
RememberedFilters isNil ifTrue:[
RememberedFilters := Dictionary new.
].
RememberedFilters at:filterName put:filterParameters.
- "Modified: / 06-02-2017 / 09:06:45 / cg"
+ "Modified: / 06-02-2017 / 09:20:35 / cg"
+!
+
+setFilterParameters:filterParameters
+ "setup from a remembered filter"
+
+ selectorPatternFilters := filterParameters filteredSelectorMatchPattern.
+ classPatternFilters := filterParameters filteredClassNameMatchPattern.
+ filteredClasses := filterParameters filteredClassNames.
+ filteredMethods := filterParameters filteredMethodNames.
+ filteredSelectors := filterParameters filteredSelectors.
+
+ self filterChanged.
+
+ "Created: / 06-02-2017 / 09:51:37 / cg"
! !
!VersionDiffBrowser methodsFor:'private'!