[Pkg] The Trunk: Monticello-nice.402.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Sep 21 20:07:46 UTC 2010

Nicolas Cellier uploaded a new version of Monticello to project The Trunk:

==================== Summary ====================

Name: Monticello-nice.402
Author: nice
Time: 21 September 2010, 10:07:31.697 pm
UUID: c2733a1b-b7e0-4344-b89b-74d62de4a9b9
Ancestors: Monticello-cmm.401

Officialize my inbox proposal:

Feature 1: let Keep and Reject buttons select the next unresolved conflict in the list.

Feature 2: if there is no more conflict in the list, let Keep and Reject select the next non conflict in the list.

The first feature is powerfull for deciding fast without many keyboard/mouse motions.
It should be complemented by a shortcut key.

The second feature is questionnable because Reject cannot reject non conflict, so the label is misleading. On the other hand, having a button uniformly selecting next change is convenient.

=============== Diff against Monticello-cmm.401 ===============

Item was changed:
  ----- Method: MCMergeBrowser>>chooseLocal (in category 'as yet unclassified') -----
  	self conflictSelectionDo:
  		[selection chooseLocal.
+ 		self changed: #text; changed: #list].
+ 	self selectNextUnresolvedConflict!
- 		self changed: #text; changed: #list]!

Item was changed:
  ----- Method: MCMergeBrowser>>chooseRemote (in category 'as yet unclassified') -----
  	self conflictSelectionDo:
  		[selection chooseRemote.
+ 		self changed: #text; changed: #list].
+ 	self selectNextUnresolvedConflict!
- 		self changed: #text; changed: #list]!

Item was changed:
  ----- Method: MCMergeBrowser>>conflictSelectionDo: (in category 'as yet unclassified') -----
  conflictSelectionDo: aBlock
  	self selectionIsConflicted
+ 		ifTrue: aBlock!
- 		ifTrue: aBlock
- 		ifFalse: [self inform: 'You must have a conflict selected']!

Item was changed:
  ----- Method: MCMergeBrowser>>innerButtonRow (in category 'as yet unclassified') -----
  	^ self buttonRow:
+ 		#((Keep chooseRemote 'keep the selected change' )
+ 		  (Reject chooseLocal 'reject the selected change' ))!
- 		#((Keep chooseRemote 'keep the selected change' selectionIsConflicted)
- 		  (Reject chooseLocal 'reject the selected change' selectionIsConflicted))!

Item was added:
+ ----- Method: MCMergeBrowser>>selectNextUnresolvedConflict (in category 'as yet unclassified') -----
+ selectNextUnresolvedConflict
+ 	"Try and select the next unresolved conflict starting at current selection in the list, wrapping at beginning.
+ 	If there is no more unresolved conflict, then simply move to next non conflict item in the list.
+ 	This method makes assumption that conflicts are always sorted before non conflicts items."
+ 	(self findListMorph: #list)
+ 		ifNotNil:
+ 			[:aMorph |
+ 			| currentIndex nextUnresolvedIndex |
+ 			currentIndex := aMorph getCurrentSelectionIndex min: conflicts size.
+ 			nextUnresolvedIndex := (currentIndex + 1 to: currentIndex + conflicts size - 1)
+ 				detect:
+ 					[:i |
+ 					| nextItem |
+ 					((nextItem := conflicts atWrap: i) isKindOf: MCConflict)
+ 						and: [nextItem isResolved not]]
+ 				ifNone: [0].
+ 			nextUnresolvedIndex = 0
+ 				ifTrue: [items size > 1 ifTrue: [self selection: (aMorph getCurrentSelectionIndex max: conflicts size)  - conflicts size \\ items size + conflicts size + 1]]
+ 				ifFalse: [self selection: nextUnresolvedIndex - 1 \\ conflicts size + 1].].!

More information about the Packages mailing list