--- a/ChangesBrowser.st Sat May 07 18:03:30 2016 +0200
+++ b/ChangesBrowser.st Sat May 07 21:36:48 2016 +0200
@@ -211,34 +211,29 @@
(
(MenuItem
label: 'File'
- translateLabel: true
submenu:
(Menu
(
(MenuItem
label: 'Compress'
itemValue: doCompress
- translateLabel: true
isVisible: notEditingClassSource
)
(MenuItem
enabled: hasSingleSelection
label: 'Compress for Class'
itemValue: doCompressClass
- translateLabel: true
isVisible: notEditingClassSource
)
(MenuItem
enabled: hasSingleSelection
label: 'Compress for Class && Selector'
itemValue: doCompressSelector
- translateLabel: true
isVisible: notEditingClassSource
)
(MenuItem
label: 'Compare and Compress'
itemValue: doCompareAndCompress
- translateLabel: true
isVisible: notEditingClassSource
)
(MenuItem
@@ -249,14 +244,12 @@
enabled: hasSingleSelection
label: 'Fileout && Delete all Changes for Class'
itemValue: doFileoutAndDeleteClassAll
- translateLabel: true
isVisible: notEditingClassSource
)
(MenuItem
enabled: hasSelection
label: 'CheckIn && Delete all Changes for Class'
itemValue: doCheckinAndDeleteClassAll
- translateLabel: true
isVisible: notEditingClassSource
)
(MenuItem
@@ -267,25 +260,21 @@
enabled: hasSelection
label: 'Save In...'
itemValue: doSave
- translateLabel: true
)
(MenuItem
enabled: hasSingleSelection
label: 'Save to End In...'
itemValue: doSaveRest
- translateLabel: true
)
(MenuItem
enabled: hasSingleSelection
label: 'Save for Class to End In...'
itemValue: doSaveClassRest
- translateLabel: true
)
(MenuItem
enabled: hasSingleSelection
label: 'Save all for Class In...'
itemValue: doSaveClassAll
- translateLabel: true
)
(MenuItem
label: '-'
@@ -293,13 +282,11 @@
(MenuItem
label: 'Writeback ClassFile'
itemValue: doWriteBack
- translateLabel: true
isVisible: editingClassSource
)
(MenuItem
label: 'Writeback ChangeFile'
itemValue: doWriteBack
- translateLabel: true
isVisible: notEditingClassSource
)
(MenuItem
@@ -308,7 +295,6 @@
(MenuItem
label: 'Update'
itemValue: doUpdate
- translateLabel: true
)
(MenuItem
label: '-'
@@ -316,7 +302,6 @@
(MenuItem
label: 'Exit'
itemValue: menuExit
- translateLabel: true
)
)
nil
@@ -325,7 +310,6 @@
)
(MenuItem
label: 'CHANGE'
- translateLabel: true
submenu:
(Menu
(
@@ -333,43 +317,36 @@
enabled: hasSelection
label: 'Apply'
itemValue: doApply
- translateLabel: true
)
(MenuItem
enabled: hasSingleSelection
label: 'Apply to End'
itemValue: doApplyRest
- translateLabel: true
)
(MenuItem
enabled: hasSingleSelection
label: 'Apply from Begin'
itemValue: doApplyFromBeginning
- translateLabel: true
)
(MenuItem
enabled: hasSingleSelection
label: 'Apply for Class to End'
itemValue: doApplyClassRest
- translateLabel: true
)
(MenuItem
enabled: hasSingleSelection
label: 'Apply for Class from Begin'
itemValue: doApplyClassFromBeginning
- translateLabel: true
)
(MenuItem
enabled: hasNoSelection
label: 'Apply All'
itemValue: doApplyAll
- translateLabel: true
)
(MenuItem
enabled: hasSingleSelection
label: 'Apply to Conflict or End'
itemValue: doApplyToConflictOrEnd
- translateLabel: true
)
(MenuItem
label: '-'
@@ -378,64 +355,54 @@
enabled: hasSelection
label: 'Delete'
itemValue: doDelete
- translateLabel: true
)
(MenuItem
enabled: hasSingleSelection
label: 'Delete to End'
itemValue: doDeleteRest
- translateLabel: true
)
(MenuItem
enabled: hasSingleSelection
label: 'Delete from Begin'
itemValue: doDeleteFromBeginning
- translateLabel: true
)
(MenuItem
enabled: hasSingleSelection
label: 'Delete for Class to End'
itemValue: doDeleteClassRest
- translateLabel: true
)
(MenuItem
enabled: hasSingleSelection
label: 'Delete for Class from Begin'
itemValue: doDeleteClassFromBeginning
- translateLabel: true
)
(MenuItem
enabled: hasSelection
label: 'Delete all for Class'
itemValue: doDeleteClassAll
- translateLabel: true
isVisible: hasNoMultiSelection
)
(MenuItem
enabled: hasSelection
label: 'Delete all for Class && its Private Classes'
itemValue: doDeleteClassAndPrivateClassesAll
- translateLabel: true
isVisible: hasNoMultiSelection
)
(MenuItem
enabled: hasSelection
label: 'Delete all for Namespace'
itemValue: doDeleteAllForNamespace
- translateLabel: true
)
(MenuItem
enabled: hasSelection
label: 'Delete all for Classes'
itemValue: doDeleteClassAll
- translateLabel: true
isVisible: hasMultiSelection
)
(MenuItem
enabled: hasSelection
label: 'Delete all for Classes && their Private Classes'
itemValue: doDeleteClassAndPrivateClassesAll
- translateLabel: true
isVisible: hasMultiSelection
)
(MenuItem
@@ -443,16 +410,26 @@
)
(MenuItem
enabled: hasSelection
+ label: 'Delete older Versions of Selected Method'
+ itemValue: doDeleteClassSelectorOlder
+ isVisible: hasNoMultiSelectionHolder
+ )
+ (MenuItem
+ enabled: hasSelection
+ label: 'Delete older Versions of all Selected Methods'
+ itemValue: doDeleteClassSelectorOlder
+ isVisible: hasMultiSelectionHolder
+ )
+ (MenuItem
+ enabled: hasSelection
label: 'Delete all Versions of Selected Method'
itemValue: doDeleteClassSelectorAll
- translateLabel: true
isVisible: hasNoMultiSelectionHolder
)
(MenuItem
enabled: hasSelection
label: 'Delete all Versions of all Selected Methods'
itemValue: doDeleteClassSelectorAll
- translateLabel: true
isVisible: hasMultiSelectionHolder
)
(MenuItem
@@ -462,7 +439,6 @@
enabled: hasSingleSelection
label: 'Compare with Current'
itemValue: doCompare
- translateLabel: true
)
(MenuItem
label: '-'
@@ -471,7 +447,6 @@
enabled: hasSelection
label: 'Make Change a Patch'
itemValue: doMakePatch
- translateLabel: true
)
)
nil
@@ -480,38 +455,32 @@
)
(MenuItem
label: 'Search'
- translateLabel: true
submenu:
(Menu
(
(MenuItem
label: 'Class...'
itemValue: findClass
- translateLabel: true
)
(MenuItem
enabled: hasSelection
label: 'First for Class'
itemValue: findFirstForClass
- translateLabel: true
)
(MenuItem
enabled: hasSelection
label: 'Previous for Class'
itemValue: findPreviousForClass
- translateLabel: true
)
(MenuItem
enabled: hasSelection
label: 'Next for Class'
itemValue: findNextForClass
- translateLabel: true
)
(MenuItem
enabled: hasSelection
label: 'Last for Class'
itemValue: findLastForClass
- translateLabel: true
)
(MenuItem
label: '-'
@@ -519,19 +488,16 @@
(MenuItem
label: 'Selector...'
itemValue: findSelector
- translateLabel: true
)
(MenuItem
enabled: hasSelection
label: 'Previous for Selector'
itemValue: findPreviousForSelector
- translateLabel: true
)
(MenuItem
enabled: hasSelection
label: 'Next for Selector'
itemValue: findNextForSelector
- translateLabel: true
)
(MenuItem
label: '-'
@@ -539,19 +505,16 @@
(MenuItem
label: 'String...'
itemValue: findString
- translateLabel: true
)
(MenuItem
enabled: hasSelection
label: 'Previous with String'
itemValue: findPreviousForString
- translateLabel: true
)
(MenuItem
enabled: hasSelection
label: 'Next with String'
itemValue: findNextForString
- translateLabel: true
)
(MenuItem
label: '-'
@@ -560,13 +523,11 @@
enabled: hasSelection
label: 'Previous Difference'
itemValue: findPreviousDifference
- translateLabel: true
)
(MenuItem
enabled: hasSelection
label: 'Next Difference'
itemValue: findNextDifference
- translateLabel: true
)
(MenuItem
label: '-'
@@ -575,18 +536,15 @@
enabled: hasSelection
label: 'Previous Snapshot'
itemValue: findPreviousSnapshot
- translateLabel: true
)
(MenuItem
enabled: hasSelection
label: 'Next Snapshot'
itemValue: findNextSnapshot
- translateLabel: true
)
(MenuItem
label: 'Last Snapshot'
itemValue: findLastSnapshot
- translateLabel: true
)
)
nil
@@ -595,7 +553,6 @@
)
(MenuItem
label: 'Browse'
- translateLabel: true
submenu:
(Menu
(
@@ -603,7 +560,6 @@
enabled: hasSingleSelection
label: 'Class'
itemValue: doBrowse
- translateLabel: true
)
(MenuItem
label: '-'
@@ -611,12 +567,10 @@
(MenuItem
label: 'Senders...'
itemValue: doBrowseSenders
- translateLabel: true
)
(MenuItem
label: 'Implementors...'
itemValue: doBrowseImplementors
- translateLabel: true
)
)
nil
@@ -625,28 +579,23 @@
)
(MenuItem
label: 'Settings'
- translateLabel: true
submenu:
(Menu
(
(MenuItem
label: 'Auto Compare'
- translateLabel: true
indication: autoCompare
)
(MenuItem
label: 'Autoload As Required'
- translateLabel: true
indication: autoloadAsRequired
)
(MenuItem
label: 'Show Diffs'
- translateLabel: true
indication: showingDiffs
)
(MenuItem
label: 'Auto Update'
- translateLabel: true
indication: autoUpdate
)
(MenuItem
@@ -654,14 +603,13 @@
)
(MenuItem
label: 'Add to ChangeSet when Applying'
- translateLabel: true
indication: updateChangeSet
)
(MenuItem
- label: 'Ignore public/private categories (Dolphin code)'
+ label: 'Ignore Public/Private in Categories (Dolphin code)'
itemValue: ignorePublicPrivateCategories:
- translateLabel: true
indication: ignorePublicPrivateCategories
+ isVisible: false
)
(MenuItem
label: '-'
@@ -669,12 +617,10 @@
(MenuItem
label: 'Apply into Package...'
itemValue: setEnforcedPackage
- translateLabel: true
)
(MenuItem
label: 'Apply into NameSpace...'
itemValue: setEnforcedNameSpace
- translateLabel: true
)
(MenuItem
label: '-'
@@ -682,7 +628,6 @@
(MenuItem
label: 'Settings...'
itemValue: openSettingsDialog
- translateLabel: true
)
)
nil
@@ -691,7 +636,6 @@
)
(MenuItem
label: 'MENU_Help'
- translateLabel: true
startGroup: conditionalRight
submenu:
(Menu
@@ -699,7 +643,6 @@
(MenuItem
label: 'ChangesBrowser Documentation'
itemValue: openHTMLDocument:
- translateLabel: true
argument: 'tools/cbrowser/TOP.html'
)
(MenuItem
@@ -708,7 +651,6 @@
(MenuItem
label: 'About ChangesBrowser...'
itemValue: openAboutThisApplication
- translateLabel: true
)
)
nil
@@ -719,8 +661,6 @@
nil
nil
)
-
- "Modified: / 25-12-2011 / 11:21:56 / cg"
!
toolbarMenuSpec
@@ -2351,6 +2291,54 @@
"Modified: / 28.1.1998 / 20:42:14 / cg"
!
+doDeleteClassSelectorOlder
+ "delete older changes with same class and selector as currently selected change(s)"
+
+ |classNameSelectorPairsToDelete upToPerClassAndSelector lastChangeNr overAllNumDeletedBefore|
+
+ lastChangeNr := -1.
+ classNameSelectorPairsToDelete := Set new.
+ upToPerClassAndSelector := Dictionary new.
+
+ "/ collect what is to be deleted
+ self withSelectedChangesDo:[:changeNr |
+ |className selector|
+
+ className := self classNameOfChange:changeNr.
+ selector := self selectorOfMethodChange:changeNr.
+ selector notNil ifTrue:[
+ (className notNil and:[selector notNil]) ifTrue:[
+ classNameSelectorPairsToDelete add:(className -> selector).
+ upToPerClassAndSelector at:(className -> selector) put:changeNr.
+ ]
+ ].
+ lastChangeNr := lastChangeNr max:changeNr.
+ ].
+
+ overAllNumDeletedBefore := 0.
+ changeListView setSelection:nil.
+
+ self withExecuteCursorDo:[
+ classNameSelectorPairsToDelete do:[:pair |
+ |numDeletedBefore className selector lastToDelete|
+
+ className := pair key.
+ selector := pair value.
+ lastToDelete := (upToPerClassAndSelector at:pair) - 1.
+
+ numDeletedBefore := self
+ silentDeleteChangesFor:className selector:selector
+ from:1
+ to:lastToDelete.
+ lastChangeNr := lastChangeNr - numDeletedBefore.
+ overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
+ ].
+ ].
+
+ self setChangeList.
+ self autoSelectOrEnd:lastChangeNr
+!
+
doDeleteFromBeginning
"delete all changes from 1 to the current"