fixes
authorClaus Gittinger <cg@exept.de>
Sun, 14 Apr 2013 08:49:03 +0200
changeset 12657 3debb799f72d
parent 12656 4197dcfb021c
child 12658 17c34c47d4c0
fixes
Tools__ChangeList.st
--- a/Tools__ChangeList.st	Thu Apr 11 11:33:26 2013 +0200
+++ b/Tools__ChangeList.st	Sun Apr 14 08:49:03 2013 +0200
@@ -28,8 +28,9 @@
 "{ NameSpace: Tools }"
 
 BrowserListWithFilter subclass:#ChangeList
-	instanceVariableNames:'listHolder showRemovedHolder showSameHolder allowRemoveHolder
-		allowAcceptHolder applyAction'
+	instanceVariableNames:'listHolder showRemovedHolder showSameHolder
+		showConflictsOnlyHolder allowRemoveHolder allowAcceptHolder
+		applyAction'
 	classVariableNames:'LastSelectionConditionString'
 	poolDictionaries:''
 	category:'Interface-Browsers-ChangeSet'
@@ -327,6 +328,7 @@
         #selectionHolder
         #showRemovedHolder
         #showSameHolder
+        #showConflictsOnlyHolder
       ).
 
     "Modified: / 24-01-2012 / 19:54:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -470,6 +472,35 @@
     ^ listHolder
 !
 
+showConflictsOnlyHolder
+    "return/create the 'showConflictsOnlyHolder' value holder (automatically generated)"
+
+    showConflictsOnlyHolder isNil ifTrue:[
+        showConflictsOnlyHolder := ValueHolder with: true.
+        showConflictsOnlyHolder addDependent: self.
+    ].
+    ^ showConflictsOnlyHolder
+!
+
+showConflictsOnlyHolder:something
+    "set the 'showConflictsOnlyHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    showConflictsOnlyHolder notNil ifTrue:[
+        oldValue := showConflictsOnlyHolder value.
+        showConflictsOnlyHolder removeDependent:self.
+    ].
+    showConflictsOnlyHolder := something.
+    showConflictsOnlyHolder notNil ifTrue:[
+        showConflictsOnlyHolder addDependent:self.
+    ].
+    newValue := showConflictsOnlyHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:showConflictsOnlyHolder.
+    ].
+!
+
 showRemovedHolder
     "return/create the 'showRemovedHolder' value holder (automatically generated)"
 
@@ -532,11 +563,15 @@
 
 !ChangeList methodsFor:'change & update'!
 
+selectionChanged
+   super selectionChanged
+!
+
 update: aspect with: param from: sender
 
     sender == selectionHolder ifTrue:[
         self selectionChanged.
-        ^self
+        ^ self
     ].
     sender == showSameHolder ifTrue:[
         self updateList
@@ -544,6 +579,9 @@
     sender == showRemovedHolder ifTrue:[
         self updateList
     ].
+    sender == showConflictsOnlyHolder ifTrue:[
+        self updateList
+    ].
 
     ^super update: aspect with: param from: sender
 
@@ -609,6 +647,7 @@
 
     ^Iterator on:
         [:whatToDo|
+
         selectionHolder value do:
             [:changeListItem| | change |
             change := changeListItem change.
@@ -857,20 +896,31 @@
 !
 
 updateList
-    |inGenerator changeset newList |
+    |inGenerator changeset newList|
+
+    self withWaitCursorDo:[
+        inGenerator := self inGeneratorHolder value.
+        changeset := inGenerator ifNil:[ #() ] ifNotNil:[ inGenerator ].
+        self showConflictsOnlyHolder value ifTrue:[
+            newList := changeset select: [:chg | 
+                           chg isConflict
+                       ].
+        ] ifFalse:[
+            | showRemoved showSame |
 
-    inGenerator := self inGeneratorHolder value.
-    changeset := inGenerator ifNil:[ #() ] ifNotNil:[ inGenerator ].
-    newList := changeset 
-                select:
-                    [:chg | 
-                    (self showRemovedHolder value or:[ chg removed not ])
-                        and:[self showSameHolder value or:[chg delta ~~ #=]]
-                    ].
-    newList := self filterList: newList.
-    newList := newList collect:[:chg | self listEntryFor:chg ].
-    self listHolder value ~= newList ifTrue:[
-        self listHolder value: newList.
+            showRemoved := self showRemovedHolder value.
+            showSame := self showSameHolder value.
+
+            newList := changeset select: [:chg | 
+                           (showRemoved or:[ chg removed not ])
+                               and:[showSame or:[chg delta ~~ #=]]
+                       ].
+        ].
+        newList := self filterList: newList.
+        newList := newList collect:[:chg | self listEntryFor:chg ].
+        self listHolder value ~= newList ifTrue:[
+            self listHolder value: newList.
+        ]
     ]
 
     "Modified: / 29-11-2011 / 15:38:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -976,13 +1026,26 @@
     children isNil ifTrue:[
         change isCompositeChange ifTrue:[
             children := OrderedCollection new: change changes size.
-            change changes do:[:chg|
-                ((self application showRemovedHolder value or:[ chg removed not ])
-                    and:[self application showSameHolder value or:[chg delta ~~ #=]]) 
-                        ifTrue:[
-                            children add: ((self application listEntryFor: chg) parent: self)
-                        ]
-            ].
+            self application showConflictsOnlyHolder value ifTrue:[
+                change changes do:[:chg|
+                    (chg isConflict) ifTrue:[
+                        children add: ((self application listEntryFor: chg) parent: self)
+                    ]
+                ].
+            ] ifFalse:[
+                |showRemoved showSame|
+
+                showRemoved := self application showRemovedHolder value.
+                showSame := self application showSameHolder value.
+
+                change changes do:[:chg|
+                    ((showRemoved or:[ chg removed not ])
+                        and:[showSame or:[chg delta ~~ #=]]) 
+                            ifTrue:[
+                                children add: ((self application listEntryFor: chg) parent: self)
+                            ]
+                ].
+            ]
         ] ifFalse:[
             children :=  #()
         ]
@@ -1122,11 +1185,11 @@
 !ChangeList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.22 2013-04-04 00:42:59 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.23 2013-04-14 06:49:03 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.22 2013-04-04 00:42:59 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.23 2013-04-14 06:49:03 cg Exp $'
 !
 
 version_SVN