#FEATURE by cg
authorClaus Gittinger <cg@exept.de>
Sun, 23 Jun 2019 13:43:05 +0200
changeset 18834 2656052d93f6
parent 18833 d65455d2b501
child 18835 ec0e9853a0b7
#FEATURE by cg class: AbstractFileBrowser added: #aspectFor:ifAbsentPut: #hasFileOrCypressPackageSelection changed: #changeSetBrowserItemVisible #currentFileNameHolderChangedForCommon #forEachSelectedFileIgnoringDirectories:do: #openChangeSetBrowser class: AbstractFileBrowser class changed: #toolsMenuSpec
AbstractFileBrowser.st
--- a/AbstractFileBrowser.st	Sun Jun 23 13:42:48 2019 +0200
+++ b/AbstractFileBrowser.st	Sun Jun 23 13:43:05 2019 +0200
@@ -2450,7 +2450,7 @@
             labelImage: (ResourceRetriever ToolbarIconLibrary changesBrowser16x16Icon 'Changes Browser')
           )
          (MenuItem
-            enabled: hasFileSelection
+            enabled: hasFileOrCypressPackageSelection
             label: 'ChangeSet Browser'
             itemValue: openChangeSetBrowser
             isVisible: changeSetBrowserItemVisible
@@ -2760,6 +2760,8 @@
         nil
         nil
       )
+
+    "Modified: / 23-06-2019 / 13:04:17 / Claus Gittinger"
 !
 
 viewDetailsMenuSpec
@@ -4163,6 +4165,12 @@
     "Created: / 01-10-2010 / 16:26:27 / cg"
 !
 
+hasFileOrCypressPackageSelection
+    ^ self aspectFor:#hasFileOrCypressPackageSelection ifAbsentPut:[ false asValue ].
+
+    "Created: / 23-06-2019 / 13:05:51 / Claus Gittinger"
+!
+
 hasFileSelection
     ^ self aspectFor:#hasFileSelection ifAbsent:[ false asValue ].
 !
@@ -4373,6 +4381,14 @@
     ^ holder
 !
 
+aspectFor:something ifAbsentPut:aBlock
+    "returns the model for an aspect; these are stored in a common dictionary"
+
+    ^ self aspectFor:something ifAbsent:[|v| v := aBlock value. self aspectFor:something put:v. v]
+
+    "Created: / 23-06-2019 / 13:05:37 / Claus Gittinger"
+!
+
 aspectFor:something put:aValueHolder
     "stores the model for an aspect; these are stored in a common dictionary"
 
@@ -4608,7 +4624,10 @@
 !
 
 changeSetBrowserItemVisible
-    ^ Screen current ctrlDown.
+    ^ self hasFileOrCypressPackageSelection value
+    or:[Screen current ctrlDown].
+
+    "Modified: / 23-06-2019 / 13:13:53 / Claus Gittinger"
 !
 
 cvsMenusAreShown
@@ -4929,6 +4948,7 @@
     selectionNotEmpty := selection notEmptyOrNil.
     self hasSelection value:selectionNotEmpty.
     self hasFileSelection value:(selectionNotEmpty and:[self firstSelectedFile notNil]).
+    self hasFileOrCypressPackageSelection value:(selection contains:[:sel | sel isDirectory and:[sel hasSuffix:'package']]).
     self canOpenChangeBrowser value:(selectionNotEmpty).
 
     newDirectories := self directoriesForFiles:selection.
@@ -4978,7 +4998,7 @@
 
     "Modified: / 29-12-2010 / 11:01:52 / cg"
     "Modified: / 17-12-2013 / 08:23:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 17-09-2018 / 16:25:36 / Claus Gittinger"
+    "Modified: / 23-06-2019 / 13:07:24 / Claus Gittinger"
 !
 
 filterModelChanged
@@ -8092,7 +8112,9 @@
 forEachSelectedFileIgnoringDirectories:ignoreDirs do:aBlock 
     |numItems path files|
 
-    files := self currentSelectedFiles.
+    files := ignoreDirs 
+                ifTrue:[self currentSelectedFiles]
+                ifFalse:[self currentSelectedObjects].
     
     (numItems := files size) > 2 ifTrue:[
         (self 
@@ -8114,6 +8136,7 @@
     ].
 
     "Modified: / 19-01-2017 / 16:57:03 / stefan"
+    "Modified: / 23-06-2019 / 13:19:05 / Claus Gittinger"
 !
 
 generateDetachedSignaturesForSelectedFiles
@@ -8394,9 +8417,10 @@
     self
         openTool:(UserPreferences current changeSetBrowserClass) 
         with:#openOnFile: 
-        ignoreDirectories:true
+        ignoreDirectories:false
 
     "Modified (comment): / 27-07-2012 / 20:42:55 / cg"
+    "Modified: / 23-06-2019 / 13:17:07 / Claus Gittinger"
 !
 
 openChangesBrowser