Merge jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 18 Oct 2016 22:55:22 +0100
branchjv
changeset 17134 c4cce8b7a95d
parent 17133 f9f20407fbf9 (current diff)
parent 16974 0159bd547729 (diff)
child 17135 81b78926f09a
Merge
AboutBox.st
AbstractDirectoryBrowser.st
AbstractFileBrowser.st
AbstractLauncherApplication.st
AbstractSettingsApplication.st
DebugView.st
Diff2.st
Diff3.st
DirectoryContentsBrowser.st
FileBrowser.st
FileBrowserV2SettingsDialog.st
FindFileApplication.st
NewLauncher.st
PerforceSourceCodeManagerUtilities.st
SettingsDialog.st
Tools__CheckinInfoDialog.st
Tools__CodeView2.st
Tools__MethodCategoryList.st
Tools__MethodList.st
Tools__NavigationState.st
Tools__NewClassWizardDialog.st
Tools__NewSystemBrowser.st
Tools__NewSystemBrowserCodeView.st
Tools__SearchDialog.st
WorkspaceApplication.st
extensions.st
resources/de.rs
--- a/AboutBox.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/AboutBox.st	Tue Oct 18 22:55:22 2016 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 1995 by Claus Gittinger
 	      All Rights Reserved
@@ -138,7 +136,7 @@
 !
 
 defaultIcon
-    "return a smalltalk/X icon.
+    "return a Smalltalk/X icon.
      Can be redefined in custom subclasses."
 
     <resource: #programImage>
--- a/AbstractDirectoryBrowser.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/AbstractDirectoryBrowser.st	Tue Oct 18 22:55:22 2016 +0100
@@ -184,6 +184,10 @@
 selectedFiles
 
     ^ self selectedItems collect:[:item| item fileName].
+!
+
+selectedItems
+    self subclassResponsibility
 ! !
 
 !AbstractDirectoryBrowser methodsFor:'startup & release'!
--- a/AbstractFileBrowser.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/AbstractFileBrowser.st	Tue Oct 18 22:55:22 2016 +0100
@@ -6501,7 +6501,7 @@
 !
 
 doExecuteScript
-    "execute a smalltalk script"
+    "execute a Smalltalk script"
 
     |textHolder dialog template dummyClass dummyInstance|
 
@@ -7522,7 +7522,7 @@
 
 generateDetachedSignaturesForSelectedFiles
     "generate detached signature (pkcs7) files from the contents of the selected files.
-     For smalltalk text files, better use #generateSignaturesForSelectedFiles."
+     For Smalltalk text files, better use #generateSignaturesForSelectedFiles."
 
     self withActivityIndicationDo:[
         self currentSelectedFiles do:[:fn |
--- a/AbstractLauncherApplication.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/AbstractLauncherApplication.st	Tue Oct 18 22:55:22 2016 +0100
@@ -36,12 +36,19 @@
 		itemsByPath getItemByPath myHierarchicalItemWithLabelAndIcon
 		filterHolder masterRoot infoTextHolder loadButton
 		loadAndBrowseButton selectedPackageHolder monticelloRoot
-		backgroundPackageFindProcess'
+		backgroundPackageFindProcess itemsMatchingFilter'
 	classVariableNames:'PreviousPackageDialogItems PreviousPackageDialogExtent'
 	poolDictionaries:''
 	privateIn:AbstractLauncherApplication
 !
 
+HierarchicalItemWithLabelAndIcon subclass:#MyHierarchicalItem
+	instanceVariableNames:'type info'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:AbstractLauncherApplication::PackageLoadDialog
+!
+
 !AbstractLauncherApplication class methodsFor:'documentation'!
 
 copyright
@@ -421,6 +428,7 @@
     ].
 
     settingsApp := SettingsDialog new.
+    settingsApp resources:(AbstractLauncherApplication resources).
     settingsApp requestor:requestor.
     settingsApp installSettingsEntries:(self allSettingsList).
     "/ settingsApp requestor:self.
@@ -1284,7 +1292,7 @@
 requestForWindowClose
     "close request from windowing system (window close);
      confirm and ask if closing of launcher only or
-     a smalltalk-exit is wanted"
+     a Smalltalk-exit is wanted"
 
     |answer|
 
@@ -1301,7 +1309,9 @@
         ^ true
     ].
 
-    self exit
+    self exit.
+    "/ not reached
+    ^ false
 
     "Modified: / 20.5.1999 / 17:24:47 / cg"
 !
@@ -2558,7 +2568,7 @@
 
 viewBrowse
     "let user pick a view and browse its Application class. 
-     Of course, only smalltalk views are allowed"
+     Of course, only Smalltalk views are allowed"
 
     |v app appClass browser|
 
@@ -2579,7 +2589,7 @@
 
 viewDestroy
     "let user pick a view and destroy it.
-     Even allow destroying non-smalltalk views
+     Even allow destroying non-Smalltalk views
      (also for views which I forgot due to some error)"
 
     |screen v id i c|
@@ -2626,7 +2636,7 @@
 
 viewInspect
     "let user pick a view and inspect it. 
-     Of course, only smalltalk views are allowed"
+     Of course, only Smalltalk views are allowed"
 
     |v|
 
@@ -2637,7 +2647,7 @@
 
 viewMigrate
     "let user pick a view and migrate it to some other display.
-     Only smalltalk views are allowed"
+     Only Smalltalk views are allowed"
 
     |v|
 
@@ -7242,35 +7252,20 @@
     packageIdByItem := IdentityDictionary new.
     pathByItem := IdentityDictionary new.  
 
-    Class withoutUpdatingChangesDo:[
-        myHierarchicalItemWithLabelAndIcon := 
-            HierarchicalItemWithLabelAndIcon 
-                subclass:#myHierarchicalItemWithLabelAndIcon
-                instanceVariableNames:'type info'
-                classVariableNames:''
-                poolDictionaries:''
-                category:nil
-                inEnvironment:nil.
-            myHierarchicalItemWithLabelAndIcon compile:'type ^ type'.
-            myHierarchicalItemWithLabelAndIcon compile:'type:aSymbol type := aSymbol'.
-            myHierarchicalItemWithLabelAndIcon compile:'info ^ info'.
-            myHierarchicalItemWithLabelAndIcon compile:'info:anObject info := anObject'.
-    ].
-
     list := HierarchicalList new.
 
-    masterRoot := myHierarchicalItemWithLabelAndIcon new.
+    masterRoot := MyHierarchicalItem new.
     masterRoot icon:(ToolbarIconLibrary stxHomeIcon).
     masterRoot label:(resources string:'local ').
     masterRoot type:#localRoot.
 
-    root := myHierarchicalItemWithLabelAndIcon new.
+    root := MyHierarchicalItem new.
     root icon:folderIcon.
     root label:((resources string:'[Compiled Packages]') asText allItalic withColor:Color grey).
     root type:#compiledPackagesRoot.
     masterRoot add:root.
 
-    monticelloRoot := myHierarchicalItemWithLabelAndIcon new.
+    monticelloRoot := MyHierarchicalItem new.
     monticelloLabel := ((resources string:'[Monticello Packages]') asText allItalic withColor:Color grey).
     monticelloRoot type:#monticelloRoot.
 
@@ -7417,54 +7412,63 @@
 !
 
 filterChangedAction
-    |matchingItems filterPattern isMatch firstMatchingItem|
+    |newMatchingItems filterPattern isMatch firstMatchingItem|
 
     filterPattern := filterHolder value.
     filterPattern isEmptyOrNil ifTrue:[
-        "/ nothing
+        itemsMatchingFilter notEmptyOrNil ifTrue:[ 
+            "/ nothing
+            root recursiveDo:[:item |
+                item label:(item label copy asText allNonBold withoutAnyColorEmphasis).
+            ].
+        ].
+        itemsMatchingFilter := #().
+        ^ self.
+    ].
+    
+    filterPattern := filterPattern asLowercase.
+    isMatch := filterPattern includesMatchCharacters.
+
+    newMatchingItems := OrderedCollection new.
+    masterRoot recursiveDo:[:item |
+        |itemLabel itemPackage|
+
+        itemLabel := item label.
+        itemPackage := packageIdByItem at:item ifAbsent:''.
+
+        ((isMatch and:[itemLabel matches:filterPattern caseSensitive:false])
+            or:[ (isMatch not and:[ itemLabel asLowercase includesString:filterPattern ])
+            or:[ (isMatch and:[itemPackage matches:filterPattern caseSensitive:false])
+            or:[ isMatch not and:[ itemPackage asLowercase includesString:filterPattern ]]]])
+        ifTrue:[ 
+            newMatchingItems add:item.
+        ]
+    ].
+    (newMatchingItems sameContentsAs:itemsMatchingFilter) ifTrue:[
+        ^ self
+    ].    
+    
+    newMatchingItems isEmpty ifTrue:[
+        "/ nothing found
         root recursiveDo:[:item |
             item label:(item label copy asText allNonBold withoutAnyColorEmphasis).
         ].
+        Screen current beep.
     ] ifFalse:[
-        filterPattern := filterPattern asLowercase.
-        isMatch := filterPattern includesMatchCharacters.
-
-        matchingItems := OrderedCollection new.
+        "/ collapse all and fully expand all matching items
         masterRoot recursiveDo:[:item |
-            |itemLabel itemPackage|
-
-            itemLabel := item label.
-            itemPackage := packageIdByItem at:item ifAbsent:''.
-
-            ((isMatch and:[itemLabel matches:filterPattern caseSensitive:false])
-                or:[ (isMatch not and:[ itemLabel asLowercase includesString:filterPattern ])
-                or:[ (isMatch and:[itemPackage matches:filterPattern caseSensitive:false])
-                or:[ isMatch not and:[ itemPackage asLowercase includesString:filterPattern ]]]])
-            ifTrue:[ 
-                matchingItems add:item.
-            ]
+            item collapse.
+            item label:(item label copy asText allNonBold withColor:Color grey).
         ].
-        matchingItems isEmpty ifTrue:[
-            "/ nothing found
-            root recursiveDo:[:item |
-                item label:(item label copy asText allNonBold withoutAnyColorEmphasis).
-            ].
-            Screen current beep.
-        ] ifFalse:[
-            "/ collapse all and fully expand all matching items
-            masterRoot recursiveDo:[:item |
-                item collapse.
-                item label:(item label copy asText allNonBold withColor:Color grey).
-            ].
-            firstMatchingItem := nil.
-            matchingItems do:[:item |
-                item label:(item label copy asText allBold withoutAnyColorEmphasis).
-                item makeVisible.
-                firstMatchingItem := firstMatchingItem ? item.
-            ].
-            hierarchicalListView makeLineVisible:firstMatchingItem listIndex.
+        firstMatchingItem := nil.
+        newMatchingItems do:[:item |
+            item label:(item label copy asText allBold withoutAnyColorEmphasis).
+            item makeVisible.
+            firstMatchingItem := firstMatchingItem ? item.
         ].
-    ].
+        hierarchicalListView makeLineVisible:firstMatchingItem listIndex.
+    ].
+    itemsMatchingFilter := newMatchingItems.
 !
 
 getItemByPath:path packageID:packageID under:aRoot
@@ -7478,7 +7482,7 @@
             ifFalse:[ itemsByPath at:( {aRoot label},path) ifAbsent:nil ].
     item isNil ifTrue:[
         parent := self getItemByPath:(path copyButLast) packageID:packageID under:aRoot.
-        item := myHierarchicalItemWithLabelAndIcon new
+        item := MyHierarchicalItem new
                 children:#();
                 icon:greyFolderIcon; 
                 label:path last.
@@ -7498,7 +7502,7 @@
             do:[:each |
                 |reposItem|
 
-                reposItem := myHierarchicalItemWithLabelAndIcon new.
+                reposItem := MyHierarchicalItem new.
                 reposItem icon:folderIcon.
                 reposItem label:each displayString , ((resources string:' [MC Repository]') asText allItalic withColor:Color grey).
                 reposItem type:#monticelloRepository.
@@ -7508,7 +7512,7 @@
                 each allPackageNames asSortedCollection do:[:eachPackage |
                     |packageItem|
 
-                    packageItem := myHierarchicalItemWithLabelAndIcon new.
+                    packageItem := MyHierarchicalItem new.
                     packageItem icon:packageIcon.
                     packageItem label:eachPackage.
                     packageItem type:#monticelloPackage.
@@ -7728,7 +7732,7 @@
                         path := subDir asFilename components.
                         (itemsByPath at:( {root label},path) ifAbsent:nil) isNil ifTrue:[
                             folderRoot isNil ifTrue:[
-                                folderRoot := myHierarchicalItemWithLabelAndIcon new.
+                                folderRoot := MyHierarchicalItem new.
                                 folderRoot icon:folderIcon.
                                 folderRoot label:((resources string:'[%1]' with:eachDirName) asText allItalic withColor:Color grey).
                                 folderRoot type:#compiledPackagesRoot.
@@ -8067,6 +8071,24 @@
     ].
 ! !
 
+!AbstractLauncherApplication::PackageLoadDialog::MyHierarchicalItem methodsFor:'accessing'!
+
+info
+    ^ info
+!
+
+info:something
+    info := something.
+!
+
+type
+    ^ type
+!
+
+type:something
+    type := something.
+! !
+
 !AbstractLauncherApplication class methodsFor:'documentation'!
 
 version
--- a/AbstractSettingsApplication.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/AbstractSettingsApplication.st	Tue Oct 18 22:55:22 2016 +0100
@@ -367,7 +367,7 @@
 		webBrowserLikeLayout sortAndIndentClassesByInheritance
 		showLocalHistory showGlobalHistory useInPlaceSearchInBrowserLists
 		sourceCodeManagementMenuLayout confirmRefactorings
-		smallLintRulesetDefault'
+		smallLintRulesetDefault showMarqueeInfo'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
@@ -514,10 +514,10 @@
 
     <resource: #canvas>
 
-    ^
+    ^ 
     #(FullSpec
        name: windowSpecForDialog
-       window:
+       window: 
       (WindowSpec
          label: 'NewApplication'
          name: 'NewApplication'
@@ -525,7 +525,7 @@
          min: (Point 10 10)
          bounds: (Rectangle 0 0 531 488)
        )
-       component:
+       component: 
       (SpecCollection
          collection: (
           (SubCanvasSpec
@@ -545,7 +545,7 @@
              horizontalSpace: 3
              verticalSpace: 3
              reverseOrderIfOKAtLeft: true
-             component:
+             component: 
             (SpecCollection
                collection: (
                 (ActionButtonSpec
@@ -566,11 +566,12 @@
                    extent: (Point 159 25)
                  )
                 )
-
+              
              )
+             keepSpaceForOSXResizeHandleH: true
            )
           )
-
+        
        )
      )
 ! !
@@ -1414,8 +1415,8 @@
 !
 
 basicSaveSettings
-    UserPreferences current 
-        autoloadedPackages:(packageChooser listOfSelectedItems value asArray collect:[:each | each asStirng string]).
+    UserPreferences current
+        autoloadedPackages:(packageChooser listOfSelectedItems value asArray collect:[:each | each asString string]).
 ! !
 
 !AbstractSettingsApplication::AutoloadedPackagesSettingsAppl methodsFor:'aspects'!
@@ -3995,10 +3996,10 @@
 
     <resource: #canvas>
 
-    ^
+    ^ 
     #(FullSpec
        name: windowSpec
-       window:
+       window: 
       (WindowSpec
          label: 'Display Screen Settings'
          name: 'Display Screen Settings'
@@ -4006,7 +4007,7 @@
          min: (Point 10 10)
          bounds: (Rectangle 0 0 604 500)
        )
-       component:
+       component: 
       (SpecCollection
          collection: (
           (LabelSpec
@@ -4019,14 +4020,15 @@
           (LabelSpec
              label: 'Common Sizes:'
              name: 'CommonSizesLabel'
-             layout: (LayoutFrame 5 0 39 0 227 0 69 0)
+             layout: (LayoutFrame 0 0 39 0 277 0 69 0)
              translateLabel: true
              adjust: right
            )
           (PopUpListSpec
              label: 'monitor size'
              name: 'MonitorSelectionPopUpList'
-             layout: (LayoutFrame 230 0 39 0 -5 1 69 0)
+             layout: (LayoutFrame 280 0 39 0 -5 1 69 0)
+             translateLabel: true
              tabable: true
              model: monitorSelection
              menu: monitorList
@@ -4035,13 +4037,13 @@
           (LabelSpec
              label: 'Screen Size:'
              name: 'ScreenSizeLabel'
-             layout: (LayoutFrame 5 0 72 0 227 0 102 0)
+             layout: (LayoutFrame 5 0 73 0 277 0 103 0)
              translateLabel: true
              adjust: right
            )
           (InputFieldSpec
              name: 'SizeXEntryField'
-             layout: (LayoutFrame 230 0 72 0 297 0 102 0)
+             layout: (LayoutFrame 280 0 72 0 347 0 102 0)
              model: sizeX
              type: number
              immediateAccept: true
@@ -4053,12 +4055,12 @@
           (LabelSpec
              label: ' x '
              name: 'xLabel'
-             layout: (LayoutFrame 298 0 72 0 319 0 102 0)
+             layout: (LayoutFrame 348 0 72 0 369 0 102 0)
              translateLabel: true
            )
           (InputFieldSpec
              name: 'SizeYEntryField'
-             layout: (LayoutFrame 320 0 72 0 387 0 102 0)
+             layout: (LayoutFrame 370 0 72 0 437 0 102 0)
              model: sizeY
              type: number
              immediateAccept: true
@@ -4070,20 +4072,20 @@
           (LabelSpec
              label: '(mm)'
              name: 'mmLabel'
-             layout: (LayoutFrame 399 0 72 0 445 0 102 0)
+             layout: (LayoutFrame 439 0 72 0 485 0 102 0)
              translateLabel: true
              adjust: left
            )
           (LabelSpec
              label: 'Limit Usable Area To:'
              name: 'Label1'
-             layout: (LayoutFrame 5 0 110 0 227 0 140 0)
+             layout: (LayoutFrame 5 0 110 0 277 0 140 0)
              translateLabel: true
              adjust: right
            )
           (InputFieldSpec
              name: 'EntryField1'
-             layout: (LayoutFrame 230 0 110 0 297 0 140 0)
+             layout: (LayoutFrame 280 0 110 0 347 0 140 0)
              model: usedWidth
              type: number
              immediateAccept: true
@@ -4095,12 +4097,12 @@
           (LabelSpec
              label: ' x '
              name: 'Label2'
-             layout: (LayoutFrame 298 0 110 0 319 0 140 0)
+             layout: (LayoutFrame 348 0 110 0 369 0 140 0)
              translateLabel: true
            )
           (InputFieldSpec
              name: 'EntryField2'
-             layout: (LayoutFrame 320 0 110 0 387 0 140 0)
+             layout: (LayoutFrame 370 0 110 0 437 0 140 0)
              model: usedHeight
              type: number
              immediateAccept: true
@@ -4112,14 +4114,15 @@
           (LabelSpec
              label: '(Pixel)'
              name: 'Label3'
-             layout: (LayoutFrame 399 0 110 0 445 0 140 0)
+             layout: (LayoutFrame 439 0 110 0 507 0 140 0)
              translateLabel: true
              adjust: left
            )
           (ActionButtonSpec
              label: 'Restore'
              name: 'Button1'
-             layout: (AlignmentOrigin 462 0 126 0 0 0.5)
+             layout: (AlignmentOrigin 512 0 124 0 0 0.5)
+             translateLabel: true
              model: restoreUsableExtent
            )
           (DividerSpec
@@ -4173,6 +4176,7 @@
              label: 'image display'
              name: 'DitherListPopUpList'
              layout: (LayoutFrame 230 0 294 0 -30 1 324 0)
+             translateLabel: true
              tabable: true
              model: ditherListSelection
              enableChannel: ditherSymsNotNil
@@ -4193,14 +4197,15 @@
           (LabelSpec
              label: 'ClipBoard Encoding:'
              name: 'ClipBoardEncodingLabel'
-             layout: (LayoutFrame 4 0 383 0 274 0 413 0)
+             layout: (LayoutFrame 0 0 383 0 277 0 413 0)
              translateLabel: true
              adjust: right
            )
           (PopUpListSpec
              label: 'image display'
              name: 'ClipEncodingListPopUpList'
-             layout: (LayoutFrame 275 0 383 0 -30 1 413 0)
+             layout: (LayoutFrame 278 0 383 0 -30 1 413 0)
+             translateLabel: true
              tabable: true
              model: clipEncodingListSelection
              menu: clipEncodingList
@@ -4209,13 +4214,13 @@
           (LabelSpec
              label: 'Max. CopyBuffer Size:'
              name: 'MaxCopyBufferSizeLabel'
-             layout: (LayoutFrame 4 0 418 0 274 0 448 0)
+             layout: (LayoutFrame 0 0 418 0 277 0 448 0)
              translateLabel: true
              adjust: right
            )
           (InputFieldSpec
              name: 'MaxCopyBufferEntryField'
-             layout: (LayoutFrame 275 0 418 0 370 0 448 0)
+             layout: (LayoutFrame 278 0 418 0 373 0 448 0)
              model: maxCopyBufferSize
              type: fileSize
              immediateAccept: true
@@ -4232,16 +4237,14 @@
              label: 'Enable VMWare Drawing Bug Workaround (Limit Number of Buffered Operations)'
              name: 'CheckBox1'
              layout: (LayoutFrame 5 0 464 0 0 1 486 0)
+             activeHelpKey: enableVMWareDrawingBugWorkaround
              model: enableVMWareDrawingBugWorkaround
-             activeHelpKey: enableVMWareDrawingBugWorkaround
              translateLabel: true
            )
           )
-
+        
        )
      )
-
-    "Modified: / 24-06-2014 / 19:40:09 / cg"
 ! !
 
 !AbstractSettingsApplication::DisplaySettingsAppl methodsFor:'actions'!
@@ -11497,18 +11500,18 @@
 
     <resource: #canvas>
 
-    ^
+    ^ 
     #(FullSpec
        name: windowSpec
-       window:
+       window: 
       (WindowSpec
          label: 'Printer Settings'
          name: 'Printer Settings'
          flags: 1
          min: (Point 10 10)
-         bounds: (Rectangle 0 0 614 458)
-       )
-       component:
+         bounds: (Rectangle 0 0 601 474)
+       )
+       component: 
       (SpecCollection
          collection: (
           (VerticalPanelViewSpec
@@ -11518,12 +11521,12 @@
              verticalLayout: top
              horizontalSpace: 3
              verticalSpace: 3
-             component:
+             component: 
             (SpecCollection
                collection: (
                 (ViewSpec
                    name: 'PrinterSelectBox'
-                   component:
+                   component: 
                   (SpecCollection
                      collection: (
                       (LabelSpec
@@ -11578,14 +11581,14 @@
                          acceptOnPointerLeave: false
                        )
                       )
-
-                   )
-                   extent: (Point 614 108)
+                    
+                   )
+                   extent: (Point 601 108)
                  )
                 (ViewSpec
                    name: 'FormatBox'
                    visibilityChannel: supportsPageFormatSetting
-                   component:
+                   component: 
                   (SpecCollection
                      collection: (
                       (DividerSpec
@@ -11603,6 +11606,7 @@
                          label: 'PopUp List'
                          name: 'PageFormatPopUpList'
                          layout: (LayoutFrame 183 0 11 0 333 0 41 0)
+                         translateLabel: true
                          tabable: true
                          model: pageFormat
                          enableChannel: enableFormat
@@ -11617,14 +11621,14 @@
                          translateLabel: true
                        )
                       )
-
-                   )
-                   extent: (Point 614 43)
+                    
+                   )
+                   extent: (Point 601 43)
                  )
                 (ViewSpec
                    name: 'MarginBox'
                    visibilityChannel: supportsMarginSetting
-                   component:
+                   component: 
                   (SpecCollection
                      collection: (
                       (DividerSpec
@@ -11633,17 +11637,17 @@
                        )
                       (VerticalPanelViewSpec
                          name: 'VerticalPanel2'
-                         layout: (LayoutFrame 0 0.0 4 0.0 0 1.0 4 1.0)
+                         layout: (LayoutFrame 0 0.0 9 0.0 0 1.0 -16 1.0)
                          horizontalLayout: fit
                          verticalLayout: top
                          horizontalSpace: 3
                          verticalSpace: 3
-                         component:
+                         component: 
                         (SpecCollection
                            collection: (
                             (ViewSpec
                                name: 'Box1'
-                               component:
+                               component: 
                               (SpecCollection
                                  collection: (
                                   (LabelSpec
@@ -11668,19 +11672,20 @@
                                      label: 'PopUp List'
                                      name: 'PopUpList2'
                                      layout: (LayoutFrame -155 1 0 0 -5 1 30 0)
+                                     translateLabel: true
                                      tabable: true
                                      model: selectedUnit
                                      menu: unitList
                                      useIndex: true
                                    )
                                   )
-
+                                
                                )
-                               extent: (Point 614 30)
+                               extent: (Point 601 32)
                              )
                             (ViewSpec
                                name: 'Box2'
-                               component:
+                               component: 
                               (SpecCollection
                                  collection: (
                                   (LabelSpec
@@ -11702,13 +11707,13 @@
                                      acceptOnPointerLeave: true
                                    )
                                   )
-
+                                
                                )
-                               extent: (Point 614 30)
+                               extent: (Point 601 32)
                              )
                             (ViewSpec
                                name: 'Box3'
-                               component:
+                               component: 
                               (SpecCollection
                                  collection: (
                                   (LabelSpec
@@ -11730,13 +11735,13 @@
                                      acceptOnPointerLeave: true
                                    )
                                   )
-
+                                
                                )
-                               extent: (Point 614 30)
+                               extent: (Point 601 32)
                              )
                             (ViewSpec
                                name: 'Box4'
-                               component:
+                               component: 
                               (SpecCollection
                                  collection: (
                                   (LabelSpec
@@ -11758,23 +11763,23 @@
                                      acceptOnPointerLeave: true
                                    )
                                   )
-
+                                
                                )
-                               extent: (Point 614 30)
-                             )
-                            )
-
-                         )
-                       )
-                      )
-
-                   )
-                   extent: (Point 614 143)
+                               extent: (Point 601 32)
+                             )
+                            )
+                          
+                         )
+                       )
+                      )
+                    
+                   )
+                   extent: (Point 601 164)
                  )
                 (ViewSpec
                    name: 'ColorBox'
                    visibilityChannel: supportsColorSetting
-                   component:
+                   component: 
                   (SpecCollection
                      collection: (
                       (DividerSpec
@@ -11790,16 +11795,16 @@
                          translateLabel: true
                        )
                       )
-
-                   )
-                   extent: (Point 614 34)
+                    
+                   )
+                   extent: (Point 601 34)
                  )
                 )
-
+              
              )
            )
           )
-
+        
        )
      )
 ! !
@@ -17367,11 +17372,28 @@
                          component: 
                         (SpecCollection
                            collection: (
-                            (CheckBoxSpec
-                               label: 'standard styles only'
-                               name: 'CheckBox1'
-                               model: showStandardStylesOnly
-                               translateLabel: true
+                            (ViewSpec
+                               name: 'Box4'
+                               component: 
+                              (SpecCollection
+                                 collection: (
+                                  (CheckBoxSpec
+                                     label: 'standard styles only'
+                                     name: 'CheckBox1'
+                                     layout: (LayoutFrame 0 0 0 0 -150 1 0 1)
+                                     model: showStandardStylesOnly
+                                     translateLabel: true
+                                   )
+                                  (CheckBoxSpec
+                                     label: 'Preview'
+                                     name: 'CheckBox2'
+                                     layout: (AlignmentOrigin 0 1 17 0 1 0.5)
+                                     model: previewVisibleHolder
+                                     translateLabel: true
+                                   )
+                                  )
+                                
+                               )
                                extent: (Point 562 35)
                              )
                             (SequenceViewSpec
@@ -17412,13 +17434,6 @@
                    resizeForLabel: true
                    adjust: left
                  )
-                (CheckBoxSpec
-                   label: 'Preview'
-                   name: 'CheckBox2'
-                   layout: (AlignmentOrigin 0 1 17 0 1 0.5)
-                   model: previewVisibleHolder
-                   translateLabel: true
-                 )
                 )
               
              )
@@ -17505,7 +17520,7 @@
 previewVisibleHolder
 
     previewVisibleHolder isNil ifTrue:[
-        previewVisibleHolder := ValueHolder new.
+        previewVisibleHolder := false asValue.
         previewVisibleHolder onChangeSend:#changeInfoLabel to:self.
     ].
     ^ previewVisibleHolder.
@@ -17559,17 +17574,17 @@
     self previewVisibleHolder value ifTrue:[
         self builder notNil ifTrue:[
             labelView := self componentAt:#PreviewLabel.
-            labelView label:'Sorry - no preview available'.
-
             imgView := (self componentAt:#Preview).
-            imgView image:nil.
 
             previewFile notEmptyOrNil ifTrue:[
                 previewImage := Image fromFile:'../../doc/online/pictures' asFilename / previewFile.
-                previewImage notNil ifTrue:[
-                    labelView label:'Preview'.
-                    imgView adjust:#fitBig; image:previewImage.
-                ]
+            ].    
+            previewImage notNil ifTrue:[
+                labelView label:'Preview'.
+                imgView adjust:#fitBig; image:previewImage.
+            ] ifFalse:[
+                labelView label:'Sorry - no preview available'.
+                imgView image:nil.
             ].
             labelView forceResizeHorizontally.
         ]
@@ -17627,10 +17642,6 @@
     self changeInfoLabel
 !
 
-commonPostBuildWith:aBuilder
-    super commonPostBuildWith:aBuilder.
-!
-
 initialize
 
     |someRsrcFile resourceDir|
@@ -18438,6 +18449,9 @@
 #showLocalHistory
 'Show a toolbar button to navigate the local (per browser) visited classes history'
 
+#showMarqueeInfo
+'Scroll multipline info texts in the low info area.\If off, multiline infos are suppressed and no automatic scrolling is done (better for VM/remote desktops)'
+
 #showMethodTemplate
 'Show a method code template when no method is selected'
 
@@ -18480,18 +18494,18 @@
 
     <resource: #canvas>
 
-    ^
+    ^ 
     #(FullSpec
        name: windowSpec
-       window:
+       window: 
       (WindowSpec
          label: 'System Browser Settings'
          name: 'System Browser Settings'
          flags: 1
          min: (Point 10 10)
-         bounds: (Rectangle 0 0 617 659)
-       )
-       component:
+         bounds: (Rectangle 0 0 569 590)
+       )
+       component: 
       (SpecCollection
          collection: (
           (VerticalPanelViewSpec
@@ -18501,7 +18515,7 @@
              verticalLayout: top
              horizontalSpace: 3
              verticalSpace: 3
-             component:
+             component: 
             (SpecCollection
                collection: (
                 (FramedBoxSpec
@@ -18509,7 +18523,7 @@
                    name: 'ToolsSettingsPanel'
                    labelPosition: topLeft
                    translateLabel: true
-                   component:
+                   component: 
                   (SpecCollection
                      collection: (
                       (VerticalPanelViewSpec
@@ -18519,7 +18533,7 @@
                          verticalLayout: top
                          horizontalSpace: 3
                          verticalSpace: 3
-                         component:
+                         component: 
                         (SpecCollection
                            collection: (
                             (CheckBoxSpec
@@ -18528,7 +18542,7 @@
                                activeHelpKey: useEmbeddedTestRunner
                                model: showEmbeddedTestRunnerInBrowser
                                translateLabel: true
-                               extent: (Point 583 30)
+                               extent: (Point 533 30)
                              )
                             (CheckBoxSpec
                                label: 'Web Browser Like Layout (Toolbars are Part of the Tab - experimental)'
@@ -18545,7 +18559,7 @@
                                activeHelpKey: showBookmarksBar
                                model: showBookmarkBar
                                translateLabel: true
-                               extent: (Point 583 30)
+                               extent: (Point 533 30)
                              )
                             (CheckBoxSpec
                                label: 'Sort and Indent Classes by Inheritance'
@@ -18553,7 +18567,7 @@
                                activeHelpKey: sortAndIndentClassesByInheritance
                                model: sortAndIndentClassesByInheritance
                                translateLabel: true
-                               extent: (Point 583 30)
+                               extent: (Point 533 30)
                              )
                             (CheckBoxSpec
                                label: 'Show Local Navigation History (Separate History per Browser Tab)'
@@ -18561,7 +18575,7 @@
                                activeHelpKey: showLocalHistory
                                model: showLocalHistory
                                translateLabel: true
-                               extent: (Point 583 30)
+                               extent: (Point 533 30)
                              )
                             (CheckBoxSpec
                                label: 'Show Global Navigation History (Global History for all Browsers)'
@@ -18569,7 +18583,7 @@
                                activeHelpKey: showGlobalHistory
                                model: showGlobalHistory
                                translateLabel: true
-                               extent: (Point 583 30)
+                               extent: (Point 533 30)
                              )
                             (CheckBoxSpec
                                label: 'Show Search Bar in Browser'
@@ -18577,7 +18591,7 @@
                                activeHelpKey: searchBarInBrowser
                                model: useSearchBarInBrowser
                                translateLabel: true
-                               extent: (Point 583 30)
+                               extent: (Point 533 30)
                              )
                             (CheckBoxSpec
                                label: 'Use in-place Search in Browser Lists (experimental)'
@@ -18585,7 +18599,7 @@
                                activeHelpKey: inPlaceSearch
                                model: useInPlaceSearchInBrowserLists
                                translateLabel: true
-                               extent: (Point 583 30)
+                               extent: (Point 533 30)
                              )
                             (CheckBoxSpec
                                label: 'Show Method Template'
@@ -18593,35 +18607,41 @@
                                activeHelpKey: showMethodTemplate
                                model: showMethodTemplate
                                translateLabel: true
-                               extent: (Point 583 30)
-                             )
-                            )
-
-                         )
-                       )
-                      )
-
-                   )
-                   extent: (Point 607 308)
-                   useDynamicPreferredHeight: true
-                   usePreferredHeight: true
+                               extent: (Point 533 30)
+                             )
+                            (CheckBoxSpec
+                               label: 'Marquee Info'
+                               name: 'CheckBox5'
+                               activeHelpKey: showMarqueeInfo
+                               model: showMarqueeInfo
+                               translateLabel: true
+                               extent: (Point 533 30)
+                             )
+                            )
+                          
+                         )
+                       )
+                      )
+                    
+                   )
+                   extent: (Point 569 333)
                  )
                 (FramedBoxSpec
                    label: 'Sourcecode Management Menu Layout'
                    name: 'MenuLayoutPanel'
                    labelPosition: topLeft
                    translateLabel: true
-                   component:
+                   component: 
                   (SpecCollection
                      collection: (
                       (VerticalPanelViewSpec
-                         name: 'MenyLayoutVPanel'
-                         layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+                         name: 'MenuLayoutVPanel'
+                         layout: (LayoutFrame 0 0 5 0 0 1 0 1)
                          horizontalLayout: fit
                          verticalLayout: top
                          horizontalSpace: 3
                          verticalSpace: 3
-                         component:
+                         component: 
                         (SpecCollection
                            collection: (
                             (RadioButtonSpec
@@ -18632,7 +18652,7 @@
                                model: sourceCodeManagementMenuLayout
                                isTriggerOnDown: true
                                select: 'old'
-                               extent: (Point 583 30)
+                               extent: (Point 533 30)
                              )
                             (RadioButtonSpec
                                label: 'Inline'
@@ -18642,7 +18662,7 @@
                                model: sourceCodeManagementMenuLayout
                                isTriggerOnDown: true
                                select: 'inline'
-                               extent: (Point 583 30)
+                               extent: (Point 533 30)
                              )
                             (RadioButtonSpec
                                label: 'Compact'
@@ -18652,25 +18672,23 @@
                                model: sourceCodeManagementMenuLayout
                                isTriggerOnDown: true
                                select: 'compact'
-                               extent: (Point 583 30)
-                             )
-                            )
-
-                         )
-                       )
-                      )
-
-                   )
-                   extent: (Point 617 143)
-                   useDynamicPreferredHeight: true
-                   usePreferredHeight: true
+                               extent: (Point 533 30)
+                             )
+                            )
+                          
+                         )
+                       )
+                      )
+                    
+                   )
+                   extent: (Point 569 135)
                  )
                 (FramedBoxSpec
                    label: 'Static Analysis (Lint)'
                    name: 'LintPanel'
                    labelPosition: topLeft
                    translateLabel: true
-                   component:
+                   component: 
                   (SpecCollection
                      collection: (
                       (VerticalPanelViewSpec
@@ -18680,24 +18698,24 @@
                          verticalLayout: top
                          horizontalSpace: 3
                          verticalSpace: 3
-                         component:
+                         component: 
                         (SpecCollection
                            collection: (
                             (ViewSpec
                                name: 'DefaultRulesetBox'
-                               component:
+                               component: 
                               (SpecCollection
                                  collection: (
                                   (LabelSpec
                                      label: 'Default Rules:'
                                      name: 'DefaultRulesetLabel'
-                                     layout: (LayoutFrame 0 0 0 0 120 0 0 1)
+                                     layout: (LayoutFrame 0 0 0 0 138 0 0 1)
                                      translateLabel: true
                                      adjust: left
                                    )
                                   (InputFieldSpec
                                      name: 'DefaultRuleset'
-                                     layout: (LayoutFrame 120 0 0 0 -70 1 0 1)
+                                     layout: (LayoutFrame 144 0 0 0 -100 1 0 1)
                                      model: smallLintRulesetDefault
                                      isReadOnly: true
                                      acceptOnReturn: true
@@ -18709,53 +18727,51 @@
                                   (ActionButtonSpec
                                      label: 'Select'
                                      name: 'DefaultRulesetSelectButton'
-                                     layout: (LayoutFrame -70 1 0 0 0 1 0 1)
+                                     layout: (LayoutFrame -100 1 0 0 0 1 0 1)
                                      translateLabel: true
                                      model: doSelectDefaultRuleset
                                    )
                                   )
-
+                                
                                )
-                               extent: (Point 583 25)
+                               extent: (Point 533 25)
                              )
                             (ViewSpec
                                name: 'Box1'
-                               component:
+                               component: 
                               (SpecCollection
                                  collection: (
                                   (LinkButtonSpec
                                      label: 'Configure Rule Sets...'
                                      name: 'Button1'
-                                     layout: (LayoutFrame -150 1 -20 1 0 1 0 1)
+                                     layout: (LayoutFrame -200 1 -20 1 0 1 0 1)
                                      foregroundColor: (Color 0.0 0.0 100.0)
                                      translateLabel: true
                                      adjust: right
                                      model: doConfigureRulesets
                                    )
                                   )
-
+                                
                                )
-                               extent: (Point 583 25)
-                             )
-                            )
-
+                               extent: (Point 533 25)
+                             )
+                            )
+                          
                          )
                          useDynamicPreferredHeight: true
                          usePreferredHeight: true
                        )
                       )
-
-                   )
-                   extent: (Point 617 100)
-                   useDynamicPreferredHeight: true
-                   usePreferredHeight: true
+                    
+                   )
+                   extent: (Point 569 92)
                  )
                 )
-
+              
              )
            )
           )
-
+        
        )
      )
 ! !
@@ -18807,6 +18823,7 @@
         sourceCodeManagementMenuLayout
         confirmRefactorings
         smallLintRulesetDefault
+        showMarqueeInfo
     )
 
     "Created: / 25-11-2011 / 15:09:28 / cg"
@@ -18879,6 +18896,14 @@
     "Created: / 07-07-2011 / 00:05:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+showMarqueeInfo
+    showMarqueeInfo isNil ifTrue:[
+        showMarqueeInfo := true asValue.
+        showMarqueeInfo onChangeSend:#updateModifiedChannel to:self
+    ].
+    ^ showMarqueeInfo.
+!
+
 showMethodTemplate
     "return/create the 'showMethodTemplate' value holder (automatically generated)"
 
@@ -19527,6 +19552,9 @@
 defaultIcon
     <resource: #programImage>
 
+    OperatingSystem isUNIXlike ifTrue:[
+        ^ ToolbarIconLibrary unixShellTerminal22x22Icon
+    ].     
     ^ ToolbarIconLibrary terminal16x16Icon
 ! !
 
--- a/DebugView.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/DebugView.st	Tue Oct 18 22:55:22 2016 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
@@ -2787,9 +2785,9 @@
     ].
     aComponent == terminateButton ifTrue:[
         Processor activeProcess isGUIProcess ifTrue:[
-            s := 'Terminate the process (closes view and shuts down application)'
+            s := 'Terminate the process.\Attention: closes view and shuts down application.'
         ] ifFalse:[
-            s := 'Terminate the process'
+            s := 'Terminate the process.\Attention: do not kill a system thread'
         ]
     ].
     aComponent == continueButton ifTrue:[
@@ -3033,45 +3031,45 @@
     |m|
 
     withConfirmation ifTrue:[
-	self checkIfCodeIsReallyModified ifTrue:[
-	    (self confirm:('Code modified - exit anyway ?'))
-	    ifFalse:[
-		^ self
-	    ]
-	]
+        self checkIfCodeIsReallyModified ifTrue:[
+            (self confirm:('Code was modified.\\Exit anyway ?'))
+            ifFalse:[
+                ^ self
+            ]
+        ]
     ].
 
     self autoUpdateOff.
 
     (m := contextView middleButtonMenu) notNil ifTrue:[m hide].
     inspecting ifFalse:[
-	"I am running on top of a process, abort or continue it"
-
-	windowGroup notNil ifTrue:[
-	    windowGroup setProcess:nil.
-	].
-	self uncacheMyself.
-
-	"/
-	"/ catch invalid return;
-	"/ this happens, when my process has somehow died (quickterminate)
-	"/ and I am a leftOver view, which gets terminated via the launchers
-	"/ #destroy-window function.
-	"/
-	Context cannotReturnSignal handle:[:ex |
-	    'DebugView [info]: OOPS - non regular debugView closing(1)' infoPrintCR.
-	    self uncacheMyself.
-	    Debugger newDebugger.
-	    ex return.
-	] do:[
-	    AbortOperationRequest isHandled ifTrue:[
-		self doAbort.
-	    ] ifFalse:[
-		self doContinue
-	    ]
-	].
-	"/ We don't reach this point normally
-	'DebugView [info]: OOPS - non regular debugView closing(2)' infoPrintCR.
+        "I am running on top of a process, abort or continue it"
+
+        windowGroup notNil ifTrue:[
+            windowGroup setProcess:nil.
+        ].
+        self uncacheMyself.
+
+        "/
+        "/ catch invalid return;
+        "/ this happens, when my process has somehow died (quickterminate)
+        "/ and I am a leftOver view, which gets terminated via the launchers
+        "/ #destroy-window function.
+        "/
+        Context cannotReturnSignal handle:[:ex |
+            'DebugView [info]: OOPS - non regular debugView closing(1)' infoPrintCR.
+            self uncacheMyself.
+            Debugger newDebugger.
+            ex return.
+        ] do:[
+            AbortOperationRequest isHandled ifTrue:[
+                self doAbort.
+            ] ifFalse:[
+                self doContinue
+            ]
+        ].
+        "/ We don't reach this point normally
+        'DebugView [info]: OOPS - non regular debugView closing(2)' infoPrintCR.
     ].
 
     Debugger newDebugger.
@@ -3242,19 +3240,21 @@
 initializeButtons1In:bpanel
     "creates the top button row, consisting of 'continue', 'abort', 'terminate'..."
 
-    |separator|
-
+    |separator buttonWidth|
+
+    buttonWidth := 170.
+    
     bpanel horizontalLayout:#left.
     bpanel verticalLayout:#centerMax.
     bpanel verticalSpace:ViewSpacing // 2.
 
     self initializeContinueButtonIn:bpanel.
-    continueButton width:150.
+    continueButton width:buttonWidth.
 
     "/ separator := View extent:(10 @ 5) in:bpanel.
     "/ separator borderWidth:0; level:0.
     self initializeAbortButtonIn:bpanel.
-    abortButton width:150.
+    abortButton width:buttonWidth.
 
     separator := View extent:(100 @ 5) in:bpanel.
     separator borderWidth:0; level:0.
@@ -3269,9 +3269,9 @@
     self initializeDefineButtonIn:bpanel.
 
     (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
-	separator := View extent:(10 @ 5) in:bpanel.
-	separator borderWidth:0; level:0.
-	self initializeReportButtonIn:bpanel.
+        separator := View extent:(10 @ 5) in:bpanel.
+        separator borderWidth:0; level:0.
+        self initializeReportButtonIn:bpanel.
     ].
     "Modified: / 17.11.2001 / 21:02:59 / cg"
 !
@@ -3279,17 +3279,19 @@
 initializeButtons2In:bpanel
     "creates the second button row, consisting of 'next', 'step', 'return'..."
 
-    |separator|
+    |separator buttonWidth|
+
+    buttonWidth := 130.
 
     bpanel horizontalLayout:#left.
     bpanel verticalLayout:#centerMax.
     bpanel verticalSpace:ViewSpacing // 2.
 
     self initializeNextButtonIn:bpanel.
-    nextButton width:100.
+    nextButton width:buttonWidth.
 
     self initializeStepButtonIn:bpanel.
-    stepButton width:100.
+    stepButton width:buttonWidth.
 
 "/ cg:
 "/ I disabled the stepIn / stepOut buttons - for now.
@@ -3325,17 +3327,17 @@
 "/                        in:bpanel.
 
     self initializeSendButtonIn:bpanel.
-    sendButton width:100.
+    sendButton width:buttonWidth.
 
     separator := View extent:(30 @ 5) in:bpanel.
     separator borderWidth:0; level:0.
 
     self initializeReturnButtonIn:bpanel.
-    returnButton width:100.
+    returnButton width:buttonWidth.
     self initializeRestartButtonIn:bpanel.
-    restartButton width:100.
+    restartButton width:buttonWidth.
     self initializeResendButtonIn:bpanel.
-    resendButton width:100.
+    resendButton width:buttonWidth.
 
     "Modified: / 18-06-2010 / 08:32:05 / cg"
 !
@@ -4877,41 +4879,12 @@
      from whatever the process is doing, but does not terminate it."
 
     self checkIfCodeIsReallyModified ifTrue:[
-	(self confirm:('Code modified - abort anyway ?'))
-	ifFalse:[
-	    ^ self
-	]
-    ].
-
-    inspecting ifTrue:[
-	inspectedProcess isDead ifTrue:[
-	    self showTerminated.
-	    ^ self
-	].
-	(AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
-	    self showError:'** the process does not handle the abort signal **'
-	] ifTrue:[
-	    self interruptProcessWith:[AbortOperationRequest raise].
-	].
-	^ self
-    ].
-
-    steppedContext := wrapperContext := nil.
-    haveControl := false.
-    exitAction := #abort.
-
-    "exit private event-loop"
-    catchBlock notNil ifTrue:[
-	abortButton turnOff.
-	catchBlock value.
-
-	"/ not reached
-	'DebugView [warning]: abort failed' errorPrintCR.
-    ].
-
-    ^ self.
-
-    "Modified: / 17.11.2001 / 22:53:22 / cg"
+        (self confirm:('Code was modified.\\Abort anyway ?'))
+        ifFalse:[
+            ^ self
+        ]
+    ].
+    ^ self doAbortWithoutConfirmation
 !
 
 doAbortAll
@@ -4957,6 +4930,42 @@
     "Modified: / 17.11.2001 / 22:53:22 / cg"
 !
 
+doAbortWithoutConfirmation
+    "abort - send Object>>abortSignal, which is usually caught
+     at save places (for example: in the event loop) and returns back
+     from whatever the process is doing, but does not terminate it."
+
+    inspecting ifTrue:[
+        inspectedProcess isDead ifTrue:[
+            self showTerminated.
+            ^ self
+        ].
+        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
+            self showError:'** the process does not handle the abort signal **'
+        ] ifTrue:[
+            self interruptProcessWith:[AbortOperationRequest raise].
+        ].
+        ^ self
+    ].
+
+    steppedContext := wrapperContext := nil.
+    haveControl := false.
+    exitAction := #abort.
+
+    "exit private event-loop"
+    catchBlock notNil ifTrue:[
+        abortButton turnOff.
+        catchBlock value.
+
+        "/ not reached
+        'DebugView [warning]: abort failed' errorPrintCR.
+    ].
+
+    ^ self.
+
+    "Modified: / 17.11.2001 / 22:53:22 / cg"
+!
+
 doChangeProcessPriority
     "ask for and change the process's priority"
 
@@ -5280,23 +5289,23 @@
     inspecting ifTrue:[^ self].
 
     self checkIfCodeIsReallyModified ifTrue:[
-	(self confirm:('Code modified - step anyway ?'))
-	ifFalse:[
-	    ^ self
-	]
+        (self confirm:('Code was modified.\\Step anyway ?'))
+        ifFalse:[
+            ^ self
+        ]
     ].
 
     canContinue ifTrue:[
-	steppedContext := wrapperContext := nil.
-	haveControl := false.
-	exitAction := #step.
-
-	"exit private event-loop"
-	catchBlock value.
-
-	"/ not reached
-	'DebugView [warning]: send failed' errorPrintCR.
-	sendButton turnOff.
+        steppedContext := wrapperContext := nil.
+        haveControl := false.
+        exitAction := #step.
+
+        "exit private event-loop"
+        catchBlock value.
+
+        "/ not reached
+        'DebugView [warning]: send failed' errorPrintCR.
+        sendButton turnOff.
     ]
 
     "Created: / 6.3.1997 / 21:09:36 / cg"
@@ -5510,70 +5519,70 @@
     inspecting ifTrue:[^ self].
 
     self checkIfCodeIsReallyModified ifTrue:[
-	(self confirm:('Code modified - step anyway ?'))
-	ifFalse:[
-	    ^ self
-	]
+        (self confirm:('Code was modified\\Step anyway ?'))
+        ifFalse:[
+            ^ self
+        ]
     ].
 
     canContinue ifTrue:[
-	selectedContext notNil ifTrue:[
-	    con := actualContext. "/ selectedContext.
-	    steppedContextLineno := actualContext lineNumber.
-	] ifFalse:[
-	    con := contextArray at:2.
-	    steppedContextLineno := con lineNumber.
-	].
-
-	skipLineNr := lineNrOrNilOrMinus1.
-
-	lineNrOrNilOrMinus1 == -1 ifTrue:[
-	    steppedContextLineno := skipLineNr := nil.
-	].
-
-	(stepUntilEntering isNil and:[stepHow == #send]) ifTrue:[
-	    steppedContext := contextArray at:1.
-	    stepHow := #nextIn.
-	] ifFalse:[
-	    stepHow == #nextOut ifTrue:[
-		steppedContext := con home.
-	    ] ifFalse:[
-		steppedContext := con.
-	    ].
-	].
-
-	wrapperContext := nil.
+        selectedContext notNil ifTrue:[
+            con := actualContext. "/ selectedContext.
+            steppedContextLineno := actualContext lineNumber.
+        ] ifFalse:[
+            con := contextArray at:2.
+            steppedContextLineno := con lineNumber.
+        ].
+
+        skipLineNr := lineNrOrNilOrMinus1.
+
+        lineNrOrNilOrMinus1 == -1 ifTrue:[
+            steppedContextLineno := skipLineNr := nil.
+        ].
+
+        (stepUntilEntering isNil and:[stepHow == #send]) ifTrue:[
+            steppedContext := contextArray at:1.
+            stepHow := #nextIn.
+        ] ifFalse:[
+            stepHow == #nextOut ifTrue:[
+                steppedContext := con home.
+            ] ifFalse:[
+                steppedContext := con.
+            ].
+        ].
+
+        wrapperContext := nil.
 
 "/ ' step con:' print. (ObjectMemory addressOf:steppedContext) printHex. ' ' print. steppedContext printCR.
 
-	"
-	 if we step in a wrapped method,
-	 prepare to skip the prolog ...
-	"
-
-	inWrap := false.
-	method := con method.
-	(method notNil
-	and:[method isWrapped
-	and:[method originalMethod ~~ method]]) ifTrue:[
-	    inWrap := true
-	].
-
-	lineNrOrNilOrMinus1 == #return ifTrue:[
-	    Processor activeProcess forceInterruptOnReturnOf:con.
-	].
-
-	con := nil.
-	bigStep := true.
-	haveControl := false.
-	exitAction := #step.
-
-	"exit private event-loop"
-	catchBlock value.
-
-	"/ not reached
-	'DebugView [warning]: step failed' errorPrintCR.
-	stepButton turnOff. nextButton turnOff. sendButton turnOff.
+        "
+         if we step in a wrapped method,
+         prepare to skip the prolog ...
+        "
+
+        inWrap := false.
+        method := con method.
+        (method notNil
+        and:[method isWrapped
+        and:[method originalMethod ~~ method]]) ifTrue:[
+            inWrap := true
+        ].
+
+        lineNrOrNilOrMinus1 == #return ifTrue:[
+            Processor activeProcess forceInterruptOnReturnOf:con.
+        ].
+
+        con := nil.
+        bigStep := true.
+        haveControl := false.
+        exitAction := #step.
+
+        "exit private event-loop"
+        catchBlock value.
+
+        "/ not reached
+        'DebugView [warning]: step failed' errorPrintCR.
+        stepButton turnOff. nextButton turnOff. sendButton turnOff.
     ]
 
     "Modified: / 29.7.1998 / 21:50:16 / cg"
@@ -6688,21 +6697,22 @@
 findNodeIn:tree forInterval:interval
     <resource: #obsolete>
 
-    |node|
-
-self obsoleteMethodWarning.
-    node := nil.
-    tree nodesDo:[:each |
-	(each intersectsInterval:interval) ifTrue:[
-	    (node isNil or:[node == each parent]) ifTrue:[
-		node := each
-	    ] ifFalse:[
-		(node parent notNil
-		    and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil]
-	    ]
-	]
-    ].
-    ^ node
+    self obsoleteMethodWarning.
+    ^ DoWhatIMeanSupport findNodeIn:tree forInterval:interval
+"/    |node|
+"/
+"/    node := nil.
+"/    tree nodesDo:[:each |
+"/        (each intersectsInterval:interval) ifTrue:[
+"/            (node isNil or:[node == each parent]) ifTrue:[
+"/                node := each
+"/            ] ifFalse:[
+"/                (node parent notNil
+"/                    and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil]
+"/            ]
+"/        ]
+"/    ].
+"/    ^ node
 !
 
 goodSkipUntilSelector
@@ -8261,6 +8271,8 @@
 "/                self showError:ex description.
 "/                ex proceed.
 "/            ] do:[
+                device isNil ifTrue:[^ self].
+                
                 device
                     dispatchModalWhile:[
                         Processor activeProcess state:#debug.
@@ -8769,9 +8781,9 @@
      Redefined here, to answer true, if exclusice Debugger, which cannot handle popup boxes"
 
     (exclusive or:[windowGroup isNil]) ifTrue:[
-	^ true
-    ].
-    ^ super confirm:aString.
+        ^ true
+    ].
+    ^ super confirm:(resources stringWithCRs:aString).
 !
 
 doShowSelection:lineNr
@@ -9297,11 +9309,12 @@
                 ] ifFalse:[
                     UserPreferences current syntaxColoring ifTrue:[
                         implementorClass isNil ifTrue:[
+                            |guessedHome|
                             (con isBlockContext
                             and:[con home isNil
-                            and:[con guessedHome notNil]])
+                            and:[(guessedHome := con guessedHome) notNil]])
                             ifTrue:[
-                                implementorClass := con guessedHome mclass
+                                implementorClass := guessedHome mclass
                             ]
                         ].
                         implementorClass notNil ifTrue:[
@@ -9375,6 +9388,7 @@
             ].
 
             codeView
+                simulatedSelf:rec;
                 doItAction:
                     [:theCode |
                          evaluatorClass
@@ -9481,7 +9495,7 @@
 
 printConditionOn:aStream
     ignoredSendingClassAndSelectors notEmptyOrNil ifTrue:[
-        aStream nextPutAll:(' if called from %1 » %2'
+        aStream nextPutAll:(' if called from %1 » %2'
                                 bindWith:ignoredSendingClassAndSelectors first first
                                 with:ignoredSendingClassAndSelectors first second).
         ^ self.
--- a/Diff2.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/Diff2.st	Tue Oct 18 22:55:22 2016 +0100
@@ -29,6 +29,8 @@
 "
 "{ Package: 'stx:libtool' }"
 
+"{ NameSpace: Smalltalk }"
+
 Object subclass:#Diff2
 	instanceVariableNames:'file1 file2'
 	classVariableNames:''
@@ -121,7 +123,8 @@
 
 documentation
 "
-    Generic diff/comm utilities. Agnostic as to the longestCommonSubsequence algorithm used.
+    Generic diff/comm utilities. 
+    Agnostic as to the longestCommonSubsequence algorithm used.
 
     Instance Variables
         file1:          <SequenceableCollection> One of the two files to compare.
@@ -841,10 +844,10 @@
 !Diff2 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Diff2.st,v 1.5 2014-11-24 14:15:56 cg Exp $'
+    ^ '$Header$'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Diff2.st,v 1.5 2014-11-24 14:15:56 cg Exp $'
+    ^ '$Header$'
 ! !
 
--- a/Diff3.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/Diff3.st	Tue Oct 18 22:55:22 2016 +0100
@@ -29,6 +29,8 @@
 "
 "{ Package: 'stx:libtool' }"
 
+"{ NameSpace: Smalltalk }"
+
 Object subclass:#Diff3
 	instanceVariableNames:'file1 file0 file2 diffClass'
 	classVariableNames:''
@@ -102,7 +104,8 @@
 
 documentation
 "
-    Diff3 provides a three-way-merge algorithm suitable for performing textual merges, such as are often required as part of source-code version control systems.
+    Diff3 provides a three-way-merge algorithm suitable for performing textual merges, 
+    such as are often required as part of source-code version control systems.
 
     Instance Variables
         diffClass:      <Class> Should be a subclass of GenericDiff. Used to resolve changes.
@@ -834,10 +837,10 @@
 !Diff3 class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Diff3.st,v 1.3 2014-02-25 07:00:13 cg Exp $'
+    ^ '$Header$'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Diff3.st,v 1.3 2014-02-25 07:00:13 cg Exp $'
+    ^ '$Header$'
 ! !
 
--- a/DirectoryContentsBrowser.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/DirectoryContentsBrowser.st	Tue Oct 18 22:55:22 2016 +0100
@@ -1846,12 +1846,15 @@
     rawKey := anEvent rawKey.
 
    "/ (key ~= #'Alt_L') ifTrue:[self halt.].
-    key == #Accept ifTrue:[
-        self withActivityIndicationDo:[
-            self fileFileIn.
-        ].
-        ^ true.
-    ].
+   "/ cg: removed; too dangerous, because it depends on which view has
+   "/ the focus - in the codeView, it is a save; in the list, it is a fileIn.
+   "/ this is confusing to newcomers.
+"/    key == #Accept ifTrue:[
+"/        self withActivityIndicationDo:[
+"/            self fileFileIn.
+"/        ].
+"/        ^ true.
+"/    ].
     key == #Paste ifTrue:[
         self pasteFiles.
         ^ true.
--- a/FileBrowser.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/FileBrowser.st	Tue Oct 18 22:55:22 2016 +0100
@@ -2026,10 +2026,13 @@
         self fileRemove.
         ^ self
     ].
-    (key == #Accept) ifTrue:[
-        self fileFileIn.
-        ^ self
-    ].
+    "/ cg: removed; too dangerous, because it depends on which view has
+    "/ the focus - in the codeView, it is a save; in the list, it is a fileIn.
+    "/ this is confusing to newcomers.
+    "/    (key == #Accept) ifTrue:[
+    "/        self fileFileIn.
+    "/        ^ self
+    "/    ].
     (key == #GotoLine) ifTrue:[
         self fileGet.
         ^ self
--- a/FileBrowserV2SettingsDialog.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/FileBrowserV2SettingsDialog.st	Tue Oct 18 22:55:22 2016 +0100
@@ -114,7 +114,7 @@
          name: 'Settings Dialog'
          min: (Point 10 10)
          max: (Point 1024 768)
-         bounds: (Rectangle 0 0 443 621)
+         bounds: (Rectangle 0 0 528 649)
          menu: mainMenu
        )
        component: 
@@ -122,7 +122,7 @@
          collection: (
           (SubCanvasSpec
              name: 'FileBrowserV2SettingsAppl'
-             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 -34 1)
+             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 -36 1)
              level: 0
              hasHorizontalScrollBar: true
              hasVerticalScrollBar: true
@@ -133,7 +133,7 @@
            )
           (HorizontalPanelViewSpec
              name: 'HorizontalPanel1'
-             layout: (LayoutFrame 0 0.0 -34 1 -16 1.0 0 1)
+             layout: (LayoutFrame 0 0.0 -36 1 -16 1.0 0 1)
              horizontalLayout: fitSpace
              verticalLayout: center
              horizontalSpace: 3
@@ -147,7 +147,8 @@
                    translateLabel: true
                    model: doSave
                    enableChannel: enableButtons
-                   extent: (Point 81 22)
+                   extent: (Point 97 32)
+                   usePreferredHeight: true
                  )
                 (ActionButtonSpec
                    label: 'Apply'
@@ -155,7 +156,8 @@
                    translateLabel: true
                    model: doApply
                    enableChannel: enableButtons
-                   extent: (Point 82 22)
+                   extent: (Point 98 32)
+                   usePreferredHeight: true
                  )
                 (ActionButtonSpec
                    label: 'Reload'
@@ -163,14 +165,16 @@
                    translateLabel: true
                    model: doReload
                    enableChannel: enableButtons
-                   extent: (Point 82 22)
+                   extent: (Point 97 32)
+                   usePreferredHeight: true
                  )
                 (ActionButtonSpec
                    label: 'Cancel'
                    name: 'Cancel'
                    translateLabel: true
                    model: doCancel
-                   extent: (Point 82 22)
+                   extent: (Point 98 32)
+                   usePreferredHeight: true
                  )
                 (ActionButtonSpec
                    label: 'Help'
@@ -179,7 +183,8 @@
                    translateLabel: true
                    model: help
                    enableChannel: enableButtons
-                   extent: (Point 82 22)
+                   extent: (Point 98 32)
+                   usePreferredHeight: true
                  )
                 )
               
@@ -322,10 +327,10 @@
 !FileBrowserV2SettingsDialog class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2SettingsDialog.st,v 1.12 2015-01-27 12:17:15 cg Exp $'
+    ^ '$Header$'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2SettingsDialog.st,v 1.12 2015-01-27 12:17:15 cg Exp $'
+    ^ '$Header$'
 ! !
 
--- a/FindFileApplication.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/FindFileApplication.st	Tue Oct 18 22:55:22 2016 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 2002 by eXept Software AG
               All Rights Reserved
@@ -515,7 +513,7 @@
                 (ActionButtonSpec
                    label: 'Clear Cache'
                    name: 'ClearCacheButton'
-                   layout: (LayoutFrame -169 1 125 0 -44 1 147 0)
+                   layout: (LayoutFrame -169 1 125 0 -21 1 147 0)
                    translateLabel: true
                    model: clearCache
                  )
--- a/NewLauncher.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/NewLauncher.st	Tue Oct 18 22:55:22 2016 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 1997-1998 by eXept Software AG
 	      All Rights Reserved
@@ -2325,6 +2323,7 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
      MenuEditor new openOnClass:NewLauncher andSelector:#menuToolbar
      (Menu new fromLiteralArrayEncoding:(NewLauncher menuToolbar)) startUp
@@ -2332,133 +2331,121 @@
 
     <resource: #menu>
 
-    ^
+    ^ 
      #(Menu
-	(
-	 (MenuItem
-	    activeHelpKey: fileSaveImage
-	    enabled: enableDangerousMenuItemsInRemoteLauncher
-	    label: 'save image'
-	    itemValue: saveImage
-	    nameKey: saveImage
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary saveImageIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: fileFileBrowser
-	    label: 'open file browser'
-	    itemValue: openFileBrowser
-	    nameKey: fileBrowser
-	    translateLabel: true
-	    isButton: true
-	    isVisible: fileBrowserItemVisible
-	    submenuChannel: menuFileHistory
-	    labelImage: (ResourceRetriever ToolbarIconLibrary startFileBrowserIcon)
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    activeHelpKey: toolsWorkspace
-	    label: 'open workspace'
-	    itemValue: openWorkspace
-	    nameKey: workspace
-	    translateLabel: true
-	    isButton: true
-	    submenuChannel: menuOpenWorkspaceTypes
-	    labelImage: (ResourceRetriever ToolbarIconLibrary startWorkspaceIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: classesSystemBrowser
-	    label: 'open system browser'
-	    itemValue: openApplication:
-	    nameKey: systemBrowser
-	    translateLabel: true
-	    isButton: true
-	    isVisible: systemBrowserItemVisible
-	    submenuChannel: menuClassHistory
-	    labelImage: (ResourceRetriever ToolbarIconLibrary startSystemBrowserIcon)
-	    argument: 'SystemBrowser'
-	  )
-	 (MenuItem
-	    activeHelpKey: classesSystemBrowserOnClass
-	    label: 'System Browser On Class'
-	    translateLabel: true
-	    isButton: true
-	    isVisible: false
-	    submenuChannel: menuClassHistory
-	    labelImage: (ResourceRetriever ToolbarIconLibrary startSystemBrowserOnHistoryClassIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: toolsChangesBrowserOrNavigateToRecentChange
-	    label: 'open changes browser'
-	    itemValue: startChangesBrowser
-	    nameKey: changesBrowser
-	    translateLabel: true
-	    isButton: true
-	    submenuChannel: menuChangeHistory
-	    labelImage: (ResourceRetriever ToolbarIconLibrary startChangesBrowserIcon)
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    activeHelpKey: toolsGUIPainter
-	    label: 'open GUI Builder'
-	    itemValue: openApplication:
-	    nameKey: guiBuilder
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary startUIPainterIcon)
-	    argument: 'UIPainter'
-	  )
-	 (MenuItem
-	    activeHelpKey: toolsMenuEditor
-	    label: 'open menu editor'
-	    itemValue: openApplication:
-	    nameKey: menuEditor
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary startMenuEditorIcon)
-	    argument: 'MenuEditor'
-	  )
-	 (MenuItem
-	    activeHelpKey: toolsImageEditor
-	    label: 'open image editor'
-	    itemValue: openApplication:
-	    nameKey: imageEditor
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary startImageEditorIcon)
-	    argument: 'ImageEditor'
-	  )
-	 (MenuItem
-	    label: ''
-	  )
-	 (MenuItem
-	    activeHelpKey: systemGarbageCollectAndCompress
-	    label: 'garbage collect and compress'
-	    itemValue: compressingGarbageCollect
-	    nameKey: garbageCollect
-	    translateLabel: true
-	    isButton: true
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary garbageCollectIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: helpSTXOnlineDocumentation
-	    label: 'help'
-	    itemValue: startDocumentationTool
-	    nameKey: help
-	    translateLabel: true
-	    isButton: true
-	    startGroup: right
-	    labelImage: (ResourceRetriever XPToolbarIconLibrary stxHelpIcon)
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            activeHelpKey: fileSaveImage
+            enabled: enableDangerousMenuItemsInRemoteLauncher
+            label: 'save image'
+            itemValue: saveImage
+            nameKey: saveImage
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary saveImageIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileFileBrowser
+            label: 'open file browser'
+            itemValue: openFileBrowser
+            nameKey: fileBrowser
+            isButton: true
+            isVisible: fileBrowserItemVisible
+            submenuChannel: menuFileHistory
+            labelImage: (ResourceRetriever ToolbarIconLibrary startFileBrowserIcon)
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            activeHelpKey: toolsWorkspace
+            label: 'open workspace'
+            itemValue: openWorkspace
+            nameKey: workspace
+            isButton: true
+            submenuChannel: menuOpenWorkspaceTypes
+            labelImage: (ResourceRetriever ToolbarIconLibrary startWorkspaceIcon)
+          )
+         (MenuItem
+            activeHelpKey: newSystemBrowser
+            label: 'open system browser'
+            itemValue: openApplication:
+            nameKey: systemBrowser
+            isButton: true
+            submenuChannel: menuClassHistory
+            labelImage: (ResourceRetriever ToolbarIconLibrary startNewSystemBrowserIcon)
+            argument: 'Tools::NewSystemBrowser'
+          )
+         (MenuItem
+            activeHelpKey: classesSystemBrowserOnClass
+            label: 'System Browser On Class'
+            isButton: true
+            isVisible: false
+            submenuChannel: menuClassHistory
+            labelImage: (ResourceRetriever ToolbarIconLibrary startSystemBrowserOnHistoryClassIcon)
+          )
+         (MenuItem
+            activeHelpKey: toolsChangesBrowserOrNavigateToRecentChange
+            label: 'open changes browser'
+            itemValue: startChangesBrowser
+            nameKey: changesBrowser
+            isButton: true
+            submenuChannel: menuChangeHistory
+            labelImage: (ResourceRetriever ToolbarIconLibrary startChangesBrowserIcon)
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            activeHelpKey: toolsGUIPainter
+            label: 'open GUI Builder'
+            itemValue: openApplication:
+            nameKey: guiBuilder
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary startUIPainterIcon)
+            argument: 'UIPainter'
+          )
+         (MenuItem
+            activeHelpKey: toolsMenuEditor
+            label: 'open menu editor'
+            itemValue: openApplication:
+            nameKey: menuEditor
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary startMenuEditorIcon)
+            argument: 'MenuEditor'
+          )
+         (MenuItem
+            activeHelpKey: toolsImageEditor
+            label: 'open image editor'
+            itemValue: openApplication:
+            nameKey: imageEditor
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary startImageEditorIcon)
+            argument: 'ImageEditor'
+          )
+         (MenuItem
+            label: ''
+          )
+         (MenuItem
+            activeHelpKey: systemGarbageCollectAndCompress
+            label: 'garbage collect and compress'
+            itemValue: compressingGarbageCollect
+            nameKey: garbageCollect
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary garbageCollectIcon)
+          )
+         (MenuItem
+            activeHelpKey: helpSTXOnlineDocumentation
+            label: 'help'
+            itemValue: startDocumentationTool
+            nameKey: help
+            isButton: true
+            startGroup: right
+            labelImage: (ResourceRetriever XPToolbarIconLibrary stxHelpIcon)
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -3686,17 +3673,6 @@
     ^ (Smalltalk at:#'SQL::ODBCScratchpad') notNil
 !
 
-systemBrowserItemVisible
-    |holder|
-
-    (holder := builder bindingAt:#systemBrowserItemVisible) isNil ifTrue:[
-        builder
-            aspectAt:#systemBrowserItemVisible
-            put:(holder := ValueHolder with:UserPreferences current useNewSystemBrowser not).
-    ].
-    ^ holder
-!
-
 tabList
     ^ resources array:#('Transcript' 'Errors').
 !
--- a/PerforceSourceCodeManagerUtilities.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/PerforceSourceCodeManagerUtilities.st	Tue Oct 18 22:55:22 2016 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 2006 by eXept Software AG
               All Rights Reserved
@@ -310,7 +308,7 @@
         ^ true.
     ].
 
-    self activityNotification:(resources string:'checking in %1' with:aClass name).
+    self activityNotification:(resources string:'PerforceSourceCodeManager [info]: checking in %1' with:aClass name).
     pri := Processor activePriority.
     Processor activeProcess withPriority:pri-1 to:pri
     do:[
@@ -1805,7 +1803,7 @@
         ].
 
         checkInRepaired ifTrue:[
-            Transcript showCR:'checking in ' , pathName asFilename baseName , ' (manually repaired version) ...'
+            Transcript showCR:'PerforceSourceCodeManager [info]: checking in ' , pathName asFilename baseName , ' (manually repaired version) ...'
         ] ifFalse:[
             'PerforceSourceCodeManager [warning]: cannot (for now) checkin; conflicts found' infoPrintCR.
             Transcript showCR:'checkin of ' , pathName asFilename baseName , ' aborted (conflicting changes; repository unchanged)'.
--- a/SettingsDialog.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/SettingsDialog.st	Tue Oct 18 22:55:22 2016 +0100
@@ -67,7 +67,7 @@
     It is used (among others) in the launcher's and filebrowser's settings-dialogs.
 
     However, it is rather generic and can be setup for any application's setting dialog.
-    The actual contents (i.e. the arganization tree and tab contents) is provided
+    The actual contents (i.e. the organization tree and tab contents) is provided
     by a spec-array (the settingsList).
     You will find a default settings list here, but in theory, applications may provide
     their own one, or modify a copy of that list for specialized settings dialogs.
@@ -1687,7 +1687,7 @@
         "D121136 - Filename doesnot understand allBold"
         (Dialog 
             confirm:(resources 
-                        stringWithCRs:'Save your changed settings in the settings file?\(which is: "%1"\\If not saved, these changes only apply to your current session.'
+                        stringWithCRs:'Save your changed settings in the settings file?\(which is: "%1")\\If not saved, these changes only apply to your current session.'
                         with:self class currentSettingsFilename asString allBold))
         ifTrue:[
             self saveSettingsWithoutAskingForFile.
@@ -1708,7 +1708,10 @@
 createRootItem
     |rootItem lbl|
 
-    resources := AbstractLauncherApplication resources.
+    "/ this is stupidly wrong!!
+    "/ if the launcher thinks it needs this, it should set the resources
+    "/ (otherwise, reuse of resource dialog is difficult eg. in expecco)
+    "/ resources := AbstractLauncherApplication resources.
     rootItem := self class itemClass new.
     lbl := resources string:'Settings'.
     rootItem label:lbl "allBold".
@@ -1724,10 +1727,10 @@
 initialize
     |rootItem|
 
+    super initialize.
     rootItem := self createRootItem.
     self applicationList root:rootItem; showRoot:true "false".
     self selectedItem value:rootItem.
-    super initialize.
 
     "Modified: / 03-11-2007 / 14:22:18 / cg"
 !
--- a/Tools__CheckinInfoDialog.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/Tools__CheckinInfoDialog.st	Tue Oct 18 22:55:22 2016 +0100
@@ -319,7 +319,7 @@
              translateLabel: true
              model: checkinReasonHolder
              isTriggerOnDown: true
-             select: 'reasonBugfix'
+             select: reasonBugfix
            )
           (RadioButtonSpec
              label: 'Feature / Enhancement'
@@ -408,6 +408,7 @@
                    translateLabel: true
                    model: doCancel
                    extent: (Point 282 22)
+                   usePreferredHeight: true
                  )
                 (ActionButtonSpec
                    label: 'OK'
@@ -415,6 +416,7 @@
                    translateLabel: true
                    model: doAccept
                    extent: (Point 282 22)
+                   usePreferredHeight: true
                  )
                 )
               
--- a/Tools__CodeView2.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/Tools__CodeView2.st	Tue Oct 18 22:55:22 2016 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
               All Rights Reserved
@@ -477,6 +475,11 @@
     "Modified: / 01-08-2010 / 20:40:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+acceptEnabled:aBoolean
+
+    textView acceptEnabled:aBoolean
+!
+
 breakpoints
     |s|
 
--- a/Tools__MethodCategoryList.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/Tools__MethodCategoryList.st	Tue Oct 18 22:55:22 2016 +0100
@@ -1788,7 +1788,7 @@
 methodInfoFor:aMethod in:mclass selector:selector lazy:lazy
     |info isDocumentationMethod isVersionMethod def methodsPackage|
 
-    "/ the first at:ifAbsent: is aktually not needed - it is here to
+    "/ the first at:ifAbsent: is actually not needed - it is here to
     "/ reduce the average blocking time, and to allow for debugging the info generating
     "/ code without deadlock
     MethodInfoCacheAccessLock critical:[
--- a/Tools__MethodList.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/Tools__MethodList.st	Tue Oct 18 22:55:22 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 2000 by eXept Software AG
 	      All Rights Reserved
@@ -1595,14 +1597,14 @@
     ].
     idx == 0 ifTrue:[
         "/ method was not previously shown; try to avoid a full update
-        (self isMethodToBeShown:aMethod) ifTrue:[
+        "/ (self isMethodToBeShown:aMethod) ifTrue:[
             self invalidateList
-        ].
+        "/ ].
     ] ifFalse:[
         self browserNameList at:idx put:s.
     ]
 
-    "Modified: / 17-08-2011 / 15:05:02 / cg"
+    "Modified: / 16-10-2016 / 23:31:22 / cg"
 ! !
 
 !MethodList methodsFor:'private-presentation'!
--- a/Tools__NavigationState.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/Tools__NavigationState.st	Tue Oct 18 22:55:22 2016 +0100
@@ -1686,6 +1686,9 @@
 !
 
 isProjectFullBrowser
+    "showing a single or multiple full projects
+     (but not a regular browser, in projects-mode."
+    
     ^ canvasType == #singleProjectFullBrowserSpec
       or:[ canvasType == #multipleProjectFullBrowserSpec ]
 
--- a/Tools__NewClassWizardDialog.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/Tools__NewClassWizardDialog.st	Tue Oct 18 22:55:22 2016 +0100
@@ -21,7 +21,8 @@
 		createUpdateMethodHolder createInitializerHolder
 		createInitialGUICodeHolder classInstVarNamesHolder
 		classVarNamesHolder nameSpaceHolder categoryHolder
-		stereotypeHolder'
+		stereotypeHolder isCreatingClassHolder listOfSuperclassesHolder
+		canDisableTemplateCreationHolder'
 	classVariableNames:'LastLanguage LastSuperclass LastPackage LastNamespace
 		LastCategory'
 	poolDictionaries:''
@@ -136,7 +137,7 @@
 'Open a dialog for namespace selection'
 
 #package
-'Package into which this class should be placed.\Packages are units for deployment\(separately compiled & deployable libraries and applications)'
+'Packages are units for deployment\(separately compiled & deployable libraries and applications).\For class creation, choose the package into which this class should be placed.\For package creation, define the packageID of the new package.\ID must be of the form: "<module>:<path>", for example: "myname:demos/myFirstDemoProgram"'
 
 #project
 'Project-ID (aka package) into which this class should be placed'
@@ -314,55 +315,66 @@
              translateLabel: true
            )
           (LabelSpec
-             label: 'Class Creation Wizard'
+             label: 'Class/Package Creation Wizard'
              name: 'Label11'
              layout: (LayoutFrame 100 0 10 0 390 0 50 0)
              translateLabel: true
            )
           (LabelSpec
-             label: 'Programming Language:'
-             name: 'Label9'
-             layout: (LayoutFrame 7 0 90 0 301 0 112 0)
-             activeHelpKey: programmingLanguage
-             translateLabel: true
-             adjust: right
-           )
-          (ComboListSpec
-             name: 'ComboList1'
-             layout: (LayoutFrame 308 0 90 0 -32 1 112 0)
-             activeHelpKey: programmingLanguage
-             model: languageHolder
-             comboList: listOfLanguages
-             useIndex: true
-           )
-          (LabelSpec
              label: 'Stereotype:'
              name: 'Label13'
-             layout: (LayoutFrame 10 0 143 0 180 0 165 0)
+             layout: (LayoutFrame 10 0 91 0 180 0 113 0)
              activeHelpKey: stereotype
              translateLabel: true
              adjust: right
            )
           (ComboListSpec
              name: 'ComboList3'
-             layout: (LayoutFrame 190 0 142 0 -32 1 164 0)
+             layout: (LayoutFrame 190 0 91 0 -32 1 113 0)
              activeHelpKey: stereotype
              model: stereotypeHolder
              comboList: listOfStereotypes
              useIndex: true
            )
           (LabelSpec
+             label: 'Programming Language:'
+             name: 'Label9'
+             layout: (LayoutFrame 7 0 126 0 301 0 148 0)
+             activeHelpKey: programmingLanguage
+             visibilityChannel: isCreatingClassHolder
+             translateLabel: true
+             adjust: right
+           )
+          (ComboListSpec
+             name: 'ComboList1'
+             layout: (LayoutFrame 308 0 126 0 -32 1 148 0)
+             activeHelpKey: programmingLanguage
+             visibilityChannel: isCreatingClassHolder
+             model: languageHolder
+             comboList: listOfLanguages
+             useIndex: true
+           )
+          (LabelSpec
              label: 'Class Name:'
              name: 'Label1'
              layout: (LayoutFrame 10 0 172 0 180 0 194 0)
              activeHelpKey: className
+             visibilityChannel: isCreatingClassHolder
              translateLabel: true
              adjust: right
            )
+          (LabelSpec
+             label: '*'
+             name: 'Label14'
+             layout: (LayoutFrame 180 0 173 0 190 0 195 0)
+             visibilityChannel: isCreatingClassHolder
+             translateLabel: true
+           )
           (InputFieldSpec
              name: 'EntryField1'
              layout: (LayoutFrame 190 0 172 0 -32 1 194 0)
              activeHelpKey: className
+             visibilityChannel: isCreatingClassHolder
              model: classNameHolder
              acceptOnReturn: true
              acceptOnTab: true
@@ -370,16 +382,11 @@
              acceptOnPointerLeave: true
            )
           (LabelSpec
-             label: '*'
-             name: 'Label14'
-             layout: (LayoutFrame 180 0 173 0 190 0 195 0)
-             translateLabel: true
-           )
-          (LabelSpec
              label: 'Superclass:'
              name: 'Label2'
              layout: (LayoutFrame 10 0 202 0 180 0 224 0)
              activeHelpKey: superclass
+             visibilityChannel: isCreatingClassHolder
              translateLabel: true
              adjust: right
            )
@@ -387,15 +394,17 @@
              name: 'ComboBox1'
              layout: (LayoutFrame 190 0 202 0 -32 1 224 0)
              activeHelpKey: superclass
+             visibilityChannel: isCreatingClassHolder
              model: superclassNameHolder
              acceptOnLostFocus: true
-             comboList: listOfSuperclasses
+             comboList: listOfSuperclassesHolder
              useIndex: false
            )
           (LabelSpec
              label: '*'
              name: 'Label15'
              layout: (LayoutFrame 180 0 202 0 190 0 224 0)
+             visibilityChannel: isCreatingClassHolder
              translateLabel: true
            )
           (ActionButtonSpec
@@ -403,6 +412,7 @@
              name: 'Button1'
              layout: (LayoutFrame -22 1 202 0 -2 1 224 0)
              activeHelpKey: chooseSuperclass
+             visibilityChannel: isCreatingClassHolder
              translateLabel: true
              model: openSuperClassChooser
            )
@@ -414,6 +424,13 @@
              translateLabel: true
              adjust: right
            )
+          (LabelSpec
+             label: '*'
+             name: 'Label16'
+             layout: (LayoutFrame 180 0 245 0 190 0 267 0)
+             visibilityChannel: isCreatingPackageHolder
+             translateLabel: true
+           )
           (ComboBoxSpec
              name: 'ComboBox2'
              layout: (LayoutFrame 190 0 242 0 -32 1 264 0)
@@ -438,6 +455,7 @@
              name: 'Label4'
              layout: (LayoutFrame 10 0 272 0 180 0 294 0)
              activeHelpKey: namespace
+             visibilityChannel: isCreatingClassHolder
              translateLabel: true
              adjust: right
            )
@@ -445,6 +463,7 @@
              name: 'ComboList2'
              layout: (LayoutFrame 190 0 272 0 -32 1 294 0)
              activeHelpKey: namespace
+             visibilityChannel: isCreatingClassHolder
              model: nameSpaceHolder
              comboList: listOfNamespaces
            )
@@ -453,6 +472,7 @@
              name: 'Button5'
              layout: (LayoutFrame -22 1 272 0 -2 1 294 0)
              activeHelpKey: namespaceChooser
+             visibilityChannel: isCreatingClassHolder
              translateLabel: true
              model: openNamespaceChooser
            )
@@ -461,6 +481,7 @@
              name: 'Label12'
              layout: (LayoutFrame 10 0 302 0 180 0 324 0)
              activeHelpKey: category
+             visibilityChannel: isCreatingClassHolder
              translateLabel: true
              adjust: right
            )
@@ -468,6 +489,7 @@
              name: 'ComboBox3'
              layout: (LayoutFrame 190 0 302 0 -32 1 324 0)
              activeHelpKey: category
+             visibilityChannel: isCreatingClassHolder
              model: categoryHolder
              acceptOnLostFocus: true
              comboList: listOfCategories
@@ -477,6 +499,7 @@
              name: 'Button6'
              layout: (LayoutFrame -22 1 302 0 -2 1 324 0)
              activeHelpKey: categoryChooser
+             visibilityChannel: isCreatingClassHolder
              translateLabel: true
              model: openCategoryChooser
            )
@@ -485,6 +508,7 @@
              name: 'Label5'
              layout: (LayoutFrame 10 0 342 0 180 0 364 0)
              activeHelpKey: instanceVariableNames
+             visibilityChannel: isCreatingClassHolder
              translateLabel: true
              adjust: right
            )
@@ -492,6 +516,7 @@
              name: 'EntryField4'
              layout: (LayoutFrame 190 0 342 0 -32 1 364 0)
              activeHelpKey: instanceVariableNames
+             visibilityChannel: isCreatingClassHolder
              model: instVarNamesHolder
              acceptOnReturn: true
              acceptOnTab: true
@@ -503,6 +528,7 @@
              name: 'Label6'
              layout: (LayoutFrame 10 0 372 0 180 0 394 0)
              activeHelpKey: classVariableNames
+             visibilityChannel: isCreatingClassHolder
              translateLabel: true
              adjust: right
            )
@@ -510,6 +536,7 @@
              name: 'EntryField5'
              layout: (LayoutFrame 190 0 372 0 -32 1 394 0)
              activeHelpKey: classVariableNames
+             visibilityChannel: isCreatingClassHolder
              model: classVarNamesHolder
              acceptOnReturn: true
              acceptOnTab: true
@@ -521,6 +548,7 @@
              name: 'Label7'
              layout: (LayoutFrame 10 0 402 0 180 0 424 0)
              activeHelpKey: classInstVariableNames
+             visibilityChannel: isCreatingClassHolder
              translateLabel: true
              adjust: right
            )
@@ -528,6 +556,7 @@
              name: 'EntryField6'
              layout: (LayoutFrame 190 0 402 0 -32 1 424 0)
              activeHelpKey: classInstVariableNames
+             visibilityChannel: isCreatingClassHolder
              model: classInstVarNamesHolder
              acceptOnReturn: true
              acceptOnTab: true
@@ -546,6 +575,7 @@
              name: 'CheckBox1'
              layout: (LayoutFrame 120 0 442 0 280 0 464 0)
              activeHelpKey: createAccessors
+             visibilityChannel: isCreatingClassHolder
              model: createAccessorsHolder
              translateLabel: true
            )
@@ -554,6 +584,7 @@
              name: 'CheckBox6'
              layout: (LayoutFrame 310 0 442 0 -36 1 464 0)
              activeHelpKey: createInitialGUICode
+             enableChannel: canDisableTemplateCreationHolder
              model: createInitialGUICodeHolder
              translateLabel: true
            )
@@ -562,6 +593,7 @@
              name: 'CheckBox2'
              layout: (LayoutFrame 120 0 472 0 0 1 494 0)
              activeHelpKey: createInitializer
+             visibilityChannel: isCreatingClassHolder
              model: createInitializerHolder
              translateLabel: true
            )
@@ -570,6 +602,7 @@
              name: 'CheckBox5'
              layout: (LayoutFrame 120 0 502 0 0 1 524 0)
              activeHelpKey: createUpdateMethod
+             visibilityChannel: isCreatingClassHolder
              model: createUpdateMethodHolder
              translateLabel: true
            )
@@ -578,6 +611,7 @@
              name: 'CheckBox3'
              layout: (LayoutFrame 120 0 532 0 0 1 554 0)
              activeHelpKey: createRequiredMethods
+             visibilityChannel: isCreatingClassHolder
              model: createRequiredMethodsHolder
              translateLabel: true
            )
@@ -756,34 +790,43 @@
 !NewClassWizardDialog methodsFor:'actions'!
 
 doAccept
+    self isCreatingPackageHolder value ifFalse:[
+        self doAcceptForNewClass ifFalse:[^ self].
+    ] ifTrue:[
+        self doAcceptForNewPackage ifFalse:[^ self].
+    ].    
+    super doAccept.
+!
+
+doAcceptForNewClass
     |newClassName superclassName superclass package answer|
 
     newClassName := self classNameHolder value.
     newClassName isEmptyOrNil ifTrue:[
-        Dialog warn:'No Classname entered'.
-        ^ self.
+        self warn:('No Classname entered').
+        ^ false.
     ].
     newClassName isValidSmalltalkIdentifier ifFalse:[
-        Dialog warn:'No valid Classname entered (must be alphaNumeric)'.
-        ^ self.
+        self warn:'No valid Classname entered (must be alphaNumeric)'.
+        ^ false.
     ].
     newClassName first isUppercase ifFalse:[
-        Dialog warn:'No valid Classname entered (first Character must be uppercase)'.
-        ^ self.
+        self warn:'No valid Classname entered (first Character must be uppercase)'.
+        ^ false.
     ].
 
     superclassName := self superclassNameHolder value.
     superclass := Smalltalk classNamed:superclassName.
     superclass isNil ifTrue:[
         (superclassName knownAsSymbol and:[Smalltalk includesKey:superclassName asSymbol]) ifFalse:[
-            Dialog warn:'No such Superclass'.
-            ^ self.
+            self warn:'No such Superclass'.
+            ^ false.
         ].
         (Smalltalk at:superclassName asSymbol) isBehavior ifFalse:[
-            Dialog warn:('"%1" refers to a global which is not a class (%2)'
-                        bindWith:superclassName
-                        with:superclass className).
-            ^ self.
+            self warn:'"%1" refers to a global which is not a class (%2)'
+                        with:superclassName
+                        with:superclass className.
+            ^ false.
         ].
     ].
 
@@ -791,9 +834,9 @@
     package notEmptyOrNil ifTrue:[
         (package asPackageId module isEmptyOrNil
         or:[ package asPackageId directory isEmptyOrNil ]) ifTrue:[
-            Dialog warn:('The packageID "%1" must be of the form "module:directory" (for the source repository management)'
-                        bindWith:package).
-            ^ self.
+            self warn:'The packageID "%1" must be of the form "module:directory" (for the source repository management)'
+                        with:package.
+            ^ false.
         ].
 
         (ProjectDefinition definitionClassForPackage:package) isNil ifTrue:[
@@ -808,7 +851,7 @@
                         values:#(guiApplicationType #nonGuiApplicationType #libraryType)
                         lines:nil cancel:false.
 
-            answer == false ifTrue:[^ self].
+            answer == false ifTrue:[^ false].
 
             ProjectDefinition
                 definitionClassForPackage:package
@@ -834,12 +877,55 @@
     LastPackage := packageHolder value.
     LastLanguage := self listOfLanguages at:(languageHolder value).
 
-    super doAccept.
+    ^ true
 
     "Modified: / 30-01-2011 / 09:33:28 / cg"
     "Modified (comment): / 27-01-2012 / 14:53:02 / cg"
 !
 
+doAcceptForNewPackage
+    |package projectType|
+
+    package := self packageHolder value.
+    package isEmptyOrNil ifTrue:[
+        self warn:'Missing packageID'.
+        ^ false.
+    ].
+    
+    (package asPackageId module isEmptyOrNil
+    or:[ package asPackageId directory isEmptyOrNil ]) ifTrue:[
+        self warn:'The packageID "%1" must be of the form "module:directory" (for the source repository management)'
+                    with:package.
+        ^ false.
+    ].
+
+    (ProjectDefinition definitionClassForPackage:package) notNil ifTrue:[
+        self warn:'Package already exists'.
+        ^ false.
+    ].    
+    self stereotypeSymbol == #GUIProject ifTrue:[
+        projectType := ProjectDefinition guiApplicationType
+    ] ifFalse:[    
+        self stereotypeSymbol == #NonGUIProject ifTrue:[
+            projectType := ProjectDefinition nonGuiApplicationType
+        ] ifFalse:[    
+            self stereotypeSymbol == #LibraryProject ifTrue:[
+                projectType := ProjectDefinition libraryType
+            ] ifFalse:[
+                self warn:'oops - what kind of package is this'.
+                ^ false.
+            ]
+        ].    
+    ].
+    ProjectDefinition
+        definitionClassForPackage:package
+        projectType:projectType
+        createIfAbsent:true.
+            
+    self doCancel. "/ hack - for now.
+    ^ false.
+!
+
 doCancel
     self closeRequest.
 !
@@ -929,11 +1015,24 @@
 !
 
 stereotypeChanged
-    |stereoType|
+    |stereoTypeSymbol|
 
-    stereoType := self listOfStereotypes at:(self stereotypeHolder value).
-
-    stereoType = '<none>' ifTrue:[
+    self listOfSuperclassesHolder value:self listOfSuperclasses.
+    
+    stereoTypeSymbol := self stereotypeSymbol.
+    
+    (stereoTypeSymbol = #'GUIProject'
+    or:[ stereoTypeSymbol = #'NonGUIProject'
+    or:[ stereoTypeSymbol = #'LibraryProject' ]]) ifTrue:[
+        self isCreatingClassHolder value:false. 
+        self canDisableTemplateCreationHolder value:false.
+        self createInitialGUICodeHolder value:true.
+    ] ifFalse:[
+        self isCreatingClassHolder value:true.    
+        self canDisableTemplateCreationHolder value:true.
+    ].    
+    
+    stereoTypeSymbol = nil ifTrue:[
         self createInitializerHolder value:true.
         self createPrintMethodHolder value:false.
         self createAccessorsHolder value:true.
@@ -941,26 +1040,26 @@
         self createUpdateMethodHolder value:false.
     ].
 
-    stereoType = 'Data Object' ifTrue:[
+    stereoTypeSymbol = #'DataObject' ifTrue:[
         self superclassNameHolder value:'Model'.
         self createAccessorsHolder value:true.
         self createInitialGUICodeHolder value:false.
         self createUpdateMethodHolder value:false.
     ].
-"/    stereoType = 'Enumeration' ifTrue:[
+"/    stereoTypeSymbol = #'Enumeration' ifTrue:[
 "/        self superclassNameHolder value:'Enumeration'.
 "/        self createInitializerHolder value:true.
 "/        self createAccessorsHolder value:false.
 "/        self createInitialGUICodeHolder value:false.
 "/    ].
-    stereoType = 'GUIApplication' ifTrue:[
+    stereoTypeSymbol = #'GUIApplication' ifTrue:[
         self superclassNameHolder value:'ApplicationModel'.
         self createInitializerHolder value:false.
         self createPrintMethodHolder value:false.
         self createInitialGUICodeHolder value:true.
         self createUpdateMethodHolder value:true.
     ].
-    stereoType = 'SharedPool' ifTrue:[
+    stereoTypeSymbol = #'SharedPool' ifTrue:[
         self superclassNameHolder value:'SharedPool'.
         self createAccessorsHolder value:false.
         self createInitializerHolder value:true.
@@ -968,7 +1067,7 @@
         self createInitialGUICodeHolder value:false.
         self createUpdateMethodHolder value:false.
     ].
-    (stereoType startsWith: 'Startup') ifTrue:[
+    (stereoTypeSymbol = #'StartupClass') ifTrue:[
         self superclassNameHolder value:'StandaloneStartup'.
         self createAccessorsHolder value:false.
         self createInitializerHolder value:true.
@@ -976,7 +1075,7 @@
         self createInitialGUICodeHolder value:true.
         self createUpdateMethodHolder value:false.
     ].
-    stereoType = 'TestCase' ifTrue:[
+    stereoTypeSymbol = #'TestCase' ifTrue:[
         self superclassNameHolder value:'TestCase'.
         self createAccessorsHolder value:false.
         self createInitializerHolder value:false.
@@ -984,7 +1083,7 @@
         self createInitialGUICodeHolder value:true.
         self createUpdateMethodHolder value:false.
     ].
-    stereoType = 'WebService' ifTrue:[
+    stereoTypeSymbol = #'WebService' ifTrue:[
         self superclassNameHolder value:'HTTPService'.
         self createAccessorsHolder value:false.
         self createInitializerHolder value:false.
@@ -992,7 +1091,7 @@
         self createInitialGUICodeHolder value:true.
         self createUpdateMethodHolder value:false.
     ].
-    stereoType = 'Widget' ifTrue:[
+    stereoTypeSymbol = #'Widget' ifTrue:[
         self superclassNameHolder value:'View'.
         self createInitializerHolder value:false.
         self createPrintMethodHolder value:false.
@@ -1001,10 +1100,30 @@
     ].
 
     "Modified: / 27-01-2012 / 14:47:20 / cg"
+!
+
+stereotypeSymbol
+    |stereoTypeIndex stereoTypeSpec stereoTypeSymbol|
+
+    stereoTypeIndex := self stereotypeHolder value.
+    stereoTypeIndex isNil ifTrue:[^ nil].
+    
+    stereoTypeSpec := self stereotypeSpec at:stereoTypeIndex.
+    stereoTypeSymbol := stereoTypeSpec first.
+    ^ stereoTypeSymbol
 ! !
 
 !NewClassWizardDialog methodsFor:'aspects'!
 
+canDisableTemplateCreationHolder
+    <resource: #uiAspect>
+
+    canDisableTemplateCreationHolder isNil ifTrue:[
+        canDisableTemplateCreationHolder := true asValue.
+    ].
+    ^ canDisableTemplateCreationHolder.
+!
+
 categoryHolder
     <resource: #uiAspect>
 
@@ -1032,6 +1151,12 @@
     ^ classNameHolder.
 !
 
+classNameVisibleHolder
+    <resource: #uiAspect>
+
+    ^ self isCreatingClassHolder
+!
+
 classVarNamesHolder
     <resource: #uiAspect>
 
@@ -1128,6 +1253,19 @@
     ^ instVarNamesHolder.
 !
 
+isCreatingClassHolder
+    <resource: #uiAspect>
+
+    isCreatingClassHolder isNil ifTrue:[
+        isCreatingClassHolder := true asValue
+    ].
+    ^ isCreatingClassHolder.
+!
+
+isCreatingPackageHolder
+    ^ BlockValue forLogicalNot:self isCreatingClassHolder.
+!
+
 languageHolder
     <resource: #uiAspect>
 
@@ -1164,51 +1302,101 @@
     ^ Smalltalk allPackageIDs copy sort
 !
 
+listOfStereotypeSymbols
+    "program readable list"
+    ^ self stereotypeSpec collect:[:each | each isNil ifTrue:[nil] ifFalse:[each first]].
+!
+
 listOfStereotypes
-    ^ #(
-        '<none>'
-"/        ConsoleApplication
-        'Data Object'
-"/        Enumeration
-        GUIApplication
-        SharedPool
-        TestCase
-        'StartupClass (main entry for standalone apps)'
-        WebService
-        Widget
-    )
-
-    "Modified: / 27-01-2012 / 14:46:39 / cg"
+    "human readable list"
+    ^ self stereotypeSpec collect:[:each | each isNil ifTrue:[nil] ifFalse:[each second]].
 !
 
 listOfSuperclasses
     <resource: #uiAspect>
 
-    |l superClassName|
+    |l superClassName
+     stereoTypeSymbol more
+     includeObject includeModel includeApplicationModel includeView
+     includeStandaloneStartup|
 
+    stereoTypeSymbol := self stereotypeSymbol.
+    
+    includeObject := includeModel := includeApplicationModel := includeView := true.
+    includeStandaloneStartup := false.
+    
+    stereoTypeSymbol = #'DataObject' ifTrue:[
+        includeApplicationModel := includeView := false.
+    ].
+    stereoTypeSymbol = #'Enumeration' ifTrue:[
+        includeModel := includeApplicationModel := includeView := false.
+    ].
+    stereoTypeSymbol = #'GUIApplication' ifTrue:[
+        includeModel := includeView := includeObject := false.
+    ].
+    stereoTypeSymbol = #'ConsoleProgram' ifTrue:[
+        includeModel := includeApplicationModel := includeView := includeObject := false.
+        includeStandaloneStartup := true.
+    ].
+    stereoTypeSymbol = #'SharedPool' ifTrue:[
+        includeModel := includeApplicationModel := includeView := includeObject := false.
+    ].
+    (stereoTypeSymbol = #'StartupClass') ifTrue:[
+        includeModel := includeApplicationModel := includeView := includeObject := false.
+        includeStandaloneStartup := true.
+    ].
+    stereoTypeSymbol = #'TestCase' ifTrue:[
+        includeModel := includeApplicationModel := includeView := includeObject := false.
+    ].
+    stereoTypeSymbol = #'WebService' ifTrue:[
+        includeModel := includeApplicationModel := includeView := includeObject := false.
+    ].
+    stereoTypeSymbol = #'Widget' ifTrue:[
+        includeModel := includeApplicationModel := includeObject := false.
+    ].
+    
     l := OrderedCollection new.
-    (superClassName := self superclassNameHolder value) notNil ifTrue:[
-        l add:superClassName.
-    ].
-    superClassName ~= 'Object' ifTrue:[
+    (includeObject and:[superClassName ~= 'Object']) ifTrue:[
         l add:'Object'
     ].
-    superClassName ~= 'Model' ifTrue:[
+    (includeModel and:[superClassName ~= 'Model']) ifTrue:[
         l add:'Model'
     ].
-    superClassName ~= 'View' ifTrue:[
+    (includeView and:[superClassName ~= 'View']) ifTrue:[
         l add:'View'
     ].
-    superClassName ~= 'ApplicationModel' ifTrue:[
+    (includeApplicationModel and:[superClassName ~= 'ApplicationModel']) ifTrue:[
         l add:'ApplicationModel'
     ].
-    l add:'-'.
-    l addAll:(SystemBrowser visitedClassNamesHistory).
+    
+    includeStandaloneStartup ifTrue:[
+        superClassName ~= 'StandaloneStartup' ifTrue:[
+            l add:'StandaloneStartup'
+        ].
+        superClassName ~= 'StandaloneStartupHeadless' ifTrue:[
+            l add:'StandaloneStartupHeadless'
+        ].
+    ].
+    
+    more := UserPreferences systemBrowserClass visitedClassNamesHistory.
+    more notEmptyOrNil ifTrue:[
+        l add:'-'.
+        l addAll:more.
+    ].
     ^ l
 
     "Created: / 30-01-2011 / 10:34:44 / cg"
 !
 
+listOfSuperclassesHolder
+    <resource: #uiAspect>
+
+    listOfSuperclassesHolder isNil ifTrue:[
+        listOfSuperclassesHolder := self listOfSuperclasses asValue.
+    ].
+    ^ listOfSuperclassesHolder.
+!
+
 nameSpaceHolder
     <resource: #uiAspect>
 
@@ -1245,11 +1433,32 @@
     ^ stereotypeHolder.
 !
 
+stereotypeSpec
+    ^ #(
+        ( nil '<none>' )
+        ( DataObject 'Data Object' )
+"/      ( Enumeration Enumeration )
+        ( GUIApplication 'GUI Application')
+        ( ConsoleProgram 'Console Program')
+        ( SharedPool 'Shared Pool')
+        ( TestCase TestCase )
+        ( WebService 'Web Service' )
+        ( Widget Widget)
+        ( StartupClass 'Startup Class (main entry for standalone apps)' )
+        nil
+        ( GUIProject 'GUI Project')
+        ( NonGUIProject 'Non-GUI Project')
+        ( LibraryProject 'Library Project')
+    )
+
+    "Modified: / 27-01-2012 / 14:46:39 / cg"
+!
+
 superclassNameHolder
     <resource: #uiAspect>
 
     superclassNameHolder isNil ifTrue:[
-        superclassNameHolder := (LastSuperclass ? 'Object') asValue.
+        superclassNameHolder := (LastSuperclass ? ''"'Object'") asValue.
     ].
     ^ superclassNameHolder.
 
--- a/Tools__NewSystemBrowser.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/Tools__NewSystemBrowser.st	Tue Oct 18 22:55:22 2016 +0100
@@ -125,68 +125,6 @@
 initialize
     Icon initialize.
     Color initialize.
-
-    "/ self installInLauncher.            - now done in phase 2
-    ObjectMemory addDependent:self.
-!
-
-installInLauncher
-    "add myself to the launcher menu and toolBar"
-
-    |menuItem icon action currentLauncher|
-
-    NewLauncher isNil ifTrue:[^ self].
-    ToolbarIconLibrary isNil ifTrue:[^ self].
-
-"/    "Class may be changed, and we want to start the changed class"
-    action := (MessageSend receiver:(Smalltalk at:self name) selector:#open).
-    icon := [self startNewSystemBrowserIcon].
-
-"/    menuItem := MenuItem new
-"/                    value: action;
-"/                    isButton: false;
-"/                    translateLabel: true;
-"/                    label:'New System Browser' icon:icon;
-"/                    nameKey: #newSystemBrowser;
-"/                    activeHelpKey: #newSystemBrowser;
-"/                    submenuChannel: #menuClassHistoryNew;
-"/                    showBusyCursorWhilePerforming:true.
-"/
-"/    NewLauncher
-"/        addMenuItem:menuItem
-"/        from:self
-"/        in:'menu.classes'
-"/        position:#(before systemBrowser)
-"/        space:true.
-
-    menuItem := MenuItem new
-                    value: action;
-                    isButton: true;
-                    translateLabel: true;
-                    icon:icon;
-                    nameKey: #newSystemBrowser;
-                    activeHelpKey: #newSystemBrowser;
-                    submenuChannel: #menuClassHistoryNew;
-                    showBusyCursorWhilePerforming:true.
-
-    NewLauncher
-        addMenuItem:menuItem
-        from:self
-        in:'toolbar'
-        position:#(before systemBrowser)
-        space:false.
-    currentLauncher := NewLauncher current.
-    currentLauncher notNil ifTrue:[
-        currentLauncher systemBrowserItemVisible value:false.
-    ]
-
-    "
-     self removeFromLauncher.
-     self installInLauncher.
-     self removeFromLauncher
-    "
-
-    "Modified: / 08-08-2011 / 21:48:27 / cg"
 !
 
 loadRefactoryBrowser
@@ -200,9 +138,7 @@
 !
 
 postAutoload
-    "add myself to the launcher menu."
-
-    self installInLauncher.
+
     "/ try to load the refactoryBrowser package ...
     self loadRefactoryBrowser.
 
@@ -213,39 +149,6 @@
     "
 
     "Modified: / 23.8.2001 / 12:32:34 / cg"
-!
-
-removeFromLauncher
-    "remove myself from the launcher menu"
-
-    |currentLauncher|
-
-    NewLauncher isNil ifTrue:[^ self].
-    NewLauncher removeUserTool:#newSystemBrowser.
-    currentLauncher := NewLauncher current.
-    currentLauncher notNil ifTrue:[
-        currentLauncher systemBrowserItemVisible value:true
-    ]
-
-    "
-     self removeFromLauncher
-    "
-!
-
-unload
-    "class is about to be unloaded - remove myself from the launcher menu"
-
-    self removeFromLauncher.
-    super unload.
-!
-
-update:something with:aParameter from:changedObject
-    something == #initialized ifTrue:[
-        changedObject == ObjectMemory ifTrue:[
-            self installInLauncher.
-            ObjectMemory removeDependent:self.
-        ]
-    ].
 ! !
 
 !NewSystemBrowser class methodsFor:'accessing-history'!
@@ -23364,7 +23267,9 @@
     |cls|
 
     ^ (cls := self theSingleSelectedClass) notNil
-    and:[ cls theNonMetaclass isVisualStartable ]
+    and:[ (cls theNonMetaclass isVisualStartable)
+          or:[ cls isStartableWithMain 
+          or:[ cls isStartableWithStart ]]]
 !
 
 hasStartableApplicationSelectedHolder
@@ -31881,18 +31786,6 @@
     do:[
         |builder|
 
-"/        createdClass :=
-"/            superclass
-"/                subclass: (namespacePrefix,newClassName) asSymbol
-"/                instanceVariableNames: dialog instVarNamesHolder value
-"/                classVariableNames: dialog classVarNamesHolder value
-"/                poolDictionaries: ' '
-"/                category: category.
-"/
-"/        dialog classInstVarNamesHolder value notEmptyOrNil ifTrue:[
-"/            createdClass class instanceVariableNames: dialog classInstVarNamesHolder value
-"/        ].
-
         builder := ClassBuilder new.
         builder metaclass:(language metaClass).
         builder
@@ -38913,10 +38806,17 @@
         ^ self
     ].
     (cls := aClass whichClassDefinesInstVar:newName) notNil ifTrue:[
-        Dialog warn:(resources string:'Sorry: a variable named ''%1'' is already defined in ''%2''.\\Proceed ?'
+        Dialog warn:(resources stringWithCRs:'A variable named ''%1'' is already defined in ''%2''.'
                                 with:newName allBold
                                 with:cls name allBold).
         ^ self
+"/ disabled, because refactoring will fail (need a new one: rewrite uses of var1 to use var2        
+"/        (Dialog confirm:(resources stringWithCRs:'A variable named ''%1'' is already defined in ''%2''.\\Change the code to use that one as well?'
+"/                                with:newName allBold
+"/                                with:cls name allBold)) ifFalse:[
+"/            ^ self
+"/        ].
+"/        self halt.
     ].
 
     (Dialog
@@ -38949,7 +38849,13 @@
 
     oldName := node name.
     definingNode := node whoDefines: oldName.
-    definingNode isNil ifTrue: [self warn: oldName , ' is not a temporary variable in the method'. ^ self].
+    definingNode isNil ifTrue: [
+        self hasInstanceVariableSelectedInCodeView ifTrue:[
+            self codeMenuRenameInstanceVariable.
+            ^ self.
+        ].    
+        self warn: oldName , ' is not a temporary variable in the method'. ^ self
+    ].
 
     LastVariableRenames isNil ifTrue:[
         LastVariableRenames := CacheDictionary new:30.
@@ -39019,27 +38925,28 @@
 
 findNodeIn:tree forInterval:interval
     <resource: #obsolete>
-    |node wouldReturn|
-
-self obsoleteMethodWarning.
-    node := nil.
-    tree nodesDo:[:each |
-        (each intersectsInterval:interval) ifTrue:[
-            (node isNil or:[node == each parent]) ifTrue:[
-                node := each
-            ] ifFalse:[
-                (node parent notNil
-                    and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil]
-            ]
-        ] ifFalse:[
-            node notNil ifTrue:[
-                "/ already found one - beyond that one; leave
-                wouldReturn notNil ifTrue:[wouldReturn := node].
-            ]
-        ].
-    ].
-"/ (wouldReturn notNil and:[wouldReturn ~~ node]) ifTrue:[self halt].
-    ^ node
+
+    self obsoleteMethodWarning.
+    ^ DoWhatIMeanSupport findNodeIn:tree forInterval:interval
+"/    |node wouldReturn|
+"/    node := nil.
+"/    tree nodesDo:[:each |
+"/        (each intersectsInterval:interval) ifTrue:[
+"/            (node isNil or:[node == each parent]) ifTrue:[
+"/                node := each
+"/            ] ifFalse:[
+"/                (node parent notNil
+"/                    and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil]
+"/            ]
+"/        ] ifFalse:[
+"/            node notNil ifTrue:[
+"/                "/ already found one - beyond that one; leave
+"/                wouldReturn notNil ifTrue:[wouldReturn := node].
+"/            ]
+"/        ].
+"/    ].
+"/"/ (wouldReturn notNil and:[wouldReturn ~~ node]) ifTrue:[self halt].
+"/    ^ node
 
     "Modified: / 20-11-2006 / 12:31:12 / cg"
 !
@@ -56425,6 +56332,9 @@
                                     result := result reject:[:m | m mclass isMeta]
                                 ].
                             ].
+                            dialog ignoreDocumentationMethods ifTrue:[
+                                result := result reject:[:m | m category = 'documentation' ]
+                            ].    
                         ].
                         self showInfo:nil.
                         result
@@ -58976,13 +58886,17 @@
     self navigationState showingParseError:false.
     (messageShown := msg) notNil ifTrue:[
         messageShown := msg asStringCollection "asStringWithoutFinalCR".
-        messageShown size == 1 ifTrue:[
+        messageShown size <= 1 ifTrue:[
             messageShown := msg.
         ] ifFalse:[
-            doAnimate := true.
-            "/ messageShown do:[:eachLine|
-            "/     Transcript show:' > '; showCR:eachLine; showCR:'"'.
-            "/].    
+            UserPreferences current showMarqueeInfo ifFalse:[
+                messageShown := messageShown first
+            ] ifTrue:[                    
+                doAnimate := true.
+                "/ messageShown do:[:eachLine|
+                "/     Transcript show:' > '; showCR:eachLine; showCR:'"'.
+                "/].    
+            ].
         ].    
     ].
     self infoLabelHolder value:messageShown.
@@ -61094,11 +61008,11 @@
     "double-click on a class to exec; or launch button.
      Return true if successful"
 
-    |cls|
+    |cls args|
 
     cls := clsArg theNonMetaclass.
 
-    (cls isBrowserStartable) ifFalse:[^ false].
+    "/ (cls isBrowserStartable) ifFalse:[^ false].
 
     (cls isVisualStartable) ifTrue:[
         self busyLabel:'starting application %1' with:cls name.
@@ -61113,10 +61027,16 @@
     ].
     (cls isStartableWithMain) ifTrue:[
         self busyLabel:'invoking main of %1' with:cls name.
-        "/ (self confirm:('Invoke %1''s main ?' bindWith:clsName)) ifTrue:[
-            cls main.
-        "/ ].
-        ^ true.
+        (cls class includesSelector:'main') ifTrue:[
+            "/ (self confirm:('Invoke %1''s main ?' bindWith:clsName)) ifTrue:[
+                cls main.
+            "/ ].
+            ^ true.
+        ]. 
+        args := Dialog request:'command line arguments:' initialAnswer:'' onCancel:nil.
+        args isNil ifTrue:[^ false].
+        cls main:(args asCollectionOfWords).
+        ^ true
     ].
     (cls isStartableWithStart) ifTrue:[
         self busyLabel:'invoking start of %1' with:cls name.
--- a/Tools__NewSystemBrowserCodeView.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/Tools__NewSystemBrowserCodeView.st	Tue Oct 18 22:55:22 2016 +0100
@@ -218,9 +218,8 @@
 !
 
 findNodeForInterval:anInterval
-
     "
-        An empty interval check based on Claus suggestion
+        An empty interval check based on Claus' suggestion
         (email Fri, 10 Oct 2008 16:10:25 +0200)
     "
     anInterval isEmpty ifTrue:[^nil].
@@ -233,27 +232,28 @@
 !
 
 findNodeIn:tree forInterval:interval 
-    |node wouldReturn|
-
-    node := nil.
-    tree = #error ifTrue:[^nil].
-    tree nodesDo:[:each | 
-        (each intersectsInterval:interval) ifTrue:[
-            (node isNil or:[node == each parent]) ifTrue:[
-                node := each
-            ] ifFalse:[
-                (node parent notNil 
-                    and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil]
-            ]
-        ] ifFalse:[
-            node notNil ifTrue:[
-                "/ already found one - beyond that one; leave
-                wouldReturn notNil ifTrue:[wouldReturn := node].
-            ]
-        ].
-    ].
-(wouldReturn notNil and:[wouldReturn ~~ node]) ifTrue:[self halt].
-    ^ node
+    ^ DoWhatIMeanSupport findNodeIn:tree forInterval:interval
+"/    |node wouldReturn|
+"/
+"/    node := nil.
+"/    tree = #error ifTrue:[^nil].
+"/    tree nodesDo:[:each | 
+"/        (each intersectsInterval:interval) ifTrue:[
+"/            (node isNil or:[node == each parent]) ifTrue:[
+"/                node := each
+"/            ] ifFalse:[
+"/                (node parent notNil 
+"/                    and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil]
+"/            ]
+"/        ] ifFalse:[
+"/            node notNil ifTrue:[
+"/                "/ already found one - beyond that one; leave
+"/                wouldReturn notNil ifTrue:[wouldReturn := node].
+"/            ]
+"/        ].
+"/    ].
+"/(wouldReturn notNil and:[wouldReturn ~~ node]) ifTrue:[self halt].
+"/    ^ node
 
     "Created: / 19-02-2008 / 09:40:24 / janfrog"
     "Modified: / 21-02-2008 / 09:35:31 / janfrog"
--- a/Tools__SearchDialog.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/Tools__SearchDialog.st	Tue Oct 18 22:55:22 2016 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 2000 by eXept Software AG
 	      All Rights Reserved
@@ -26,7 +24,8 @@
 		listHolder matchProcess inputField showMetaFilter
 		metaclassesOnlyHolder classesOnlyHolder initialText
 		withSearchStringInLiterals searchStringInLiteralsHolder
-		searchFreeStandingWordsOnlyHolder withSearchFreeStandingWordsOnly'
+		searchFreeStandingWordsOnlyHolder withSearchFreeStandingWordsOnly
+		ignoreDocumentationMethodsHolder'
 	classVariableNames:'LastCodeSearched LastCodeSearchWasMethod LastGlobalSearched
 		LastStringSearched LastSearchWasMatch LastSearchWasCaseSensitive
 		LastStringSearchArea LastCodeSearchArea AREA_LISTOFMETHODS
@@ -179,10 +178,18 @@
 
 !SearchDialog methodsFor:'accessing'!
 
+currentClass:aClass
+    currentClass := aClass   
+!
+
 currentPackage
     ^ currentPackage
 !
 
+currentPackage:aPackage
+    currentPackage := aPackage   
+!
+
 initialText:aString
     initialText := aString.
 !
@@ -225,6 +232,13 @@
     ^ selectorOrCode.
 !
 
+ignoreDocumentationMethods
+    "the value of the corresponding check toggle;
+     if on, only search in metaclasses"
+
+    ^ (ignoreDocumentationMethodsHolder ? false) value
+!
+
 matchMethods
     ^ isMethodHolder value ? false.
 !
@@ -548,8 +562,8 @@
      Any additional parameters (metaOnly, searchLiterals etc. must have been done
      already."
     
-    "searchWhat:
-        one of:#selector 
+    "searchWhatArg:
+        one of:#selector #string
      searchArea:
         one of: #everywhere #currentNameSpace
     "
@@ -603,6 +617,12 @@
         currentPanel := self.
         self addCheckBoxForSearchFreeStandingWordsOnly
     ].
+    (showMetaFilter ? false) ifTrue:[
+        currentPanel := self.
+        searchWhat == #string ifTrue:[
+            self addCheckBoxForIgnoreDocumentationMethods
+        ].
+    ].
     
     self addHorizontalLine.
 
@@ -711,7 +731,7 @@
                 ].
             ].
         ].
-        (currentPackage notNil and:[ currentPackage ~= (browser nameListEntryForALL) ]) 
+        (currentPackage notNil and:[ browser isNil or:[ currentPackage ~= (browser nameListEntryForALL) ]]) 
         ifTrue:[ 
             self addCheckBoxForCurrentPackage.
             self addCheckBoxForCurrentPackageAndSubPackages.
@@ -720,6 +740,9 @@
                 self addCheckBoxForClassesPackage:(currentClass package) 
             ].
         ].
+        currentClass notNil ifTrue:[
+            self addCheckBoxForSelectedClass
+        ].    
     ].
     searchAreas isEmptyOrNil ifTrue:[
         self addCheckBoxForEverywhere.
@@ -913,6 +936,20 @@
     ^ b.
 !
 
+addCheckBoxForIgnoreDocumentationMethods
+    |p b|
+
+    p := View new.
+    
+    b := CheckBox label:(resources string:'Ignore Documentation Methods') in:p.
+    b model:(ignoreDocumentationMethodsHolder := false asValue).
+    b helpKey:#ignoreDocumentationMethods.
+    self makeTabable:b.
+
+    currentPanel add:p.
+    ^ nil.
+!
+
 addCheckBoxForMetaClassesOnly
     |p b|
 
@@ -1012,9 +1049,9 @@
 addCheckBoxForSelectedClass
     |b lbl arg|
 
-    (browser isMethodListBrowser 
+    ((browser notNil and:[browser isMethodListBrowser])
     or:[ currentClass isNil
-    or:[ selectedClasses size > 1] ]) ifTrue:[ 
+    or:[ selectedClasses size > 1]]) ifTrue:[ 
         selectedClasses size == 1 ifTrue:[ 
             lbl := 'Selected class ("%1")'.
             arg := selectedClasses first theNonMetaclass name.
--- a/WorkspaceApplication.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/WorkspaceApplication.st	Tue Oct 18 22:55:22 2016 +0100
@@ -4490,11 +4490,29 @@
 "/    ].
 
     device platformName == #X11 ifTrue:[
-        font := Font family:'unifont' face:'medium' style:'roman' size:16 encoding:'iso10646-1'.
-        font := font onDevice:device ifAbsent:nil.
+        OperatingSystem isOSXlike ifTrue:[
+            font := Font family:'Arial Unicode MS' face:'regular' style:'roman' size:11 encoding:'iso10646-1'.
+            font := font onDevice:device ifAbsent:nil.
+            font isNil ifTrue:[    
+                font := Font family:'Menlo' face:'regular' style:'roman' size:11 encoding:'iso10646-1'.
+                font := font onDevice:device ifAbsent:nil.
+            ].    
+        ].    
         font isNil ifTrue:[    
-            font := Font family:'arial' face:'medium' style:'roman' size:12 encoding:'iso10646-1'.
+            font := Font family:'DejaVuSansMono' face:'medium' style:'roman' size:16 encoding:'iso10646-1'.
             font := font onDevice:device ifAbsent:nil.
+            font isNil ifTrue:[    
+                font := Font family:'FreeMono' face:'regular' style:'roman' size:16 encoding:'iso10646-1'.
+                font := font onDevice:device ifAbsent:nil.
+                font isNil ifTrue:[    
+                    font := Font family:'unifont' face:'medium' style:'roman' size:16 encoding:'iso10646-1'.
+                    font := font onDevice:device ifAbsent:nil.
+                    font isNil ifTrue:[    
+                        font := Font family:'arial' face:'medium' style:'roman' size:12 encoding:'iso10646-1'.
+                        font := font onDevice:device ifAbsent:nil.
+                    ].
+                ].
+            ].
         ].
     ] ifFalse:[
         "/ font := Font family:'Arial Unicode MS' face:'medium' style:'roman' size:10 encoding:'ms-ansi'.
--- a/extensions.st	Sun Oct 09 22:55:02 2016 +0100
+++ b/extensions.st	Tue Oct 18 22:55:22 2016 +0100
@@ -2140,6 +2140,9 @@
         add:'-windowGroup' -> [ self instVarNamed:#windowGroup ];
         add:'-sensor' -> [ self instVarNamed:#sensor ];
         add:'-parent' -> [ self instVarNamed:#container ];
+        add:'-hidden' -> [ self isHiddenOnRealize ];
+        add:'-enabled' -> [ self enabled ];
+        
         yourself
 ! !
 
--- a/resources/de.rs	Sun Oct 09 22:55:02 2016 +0100
+++ b/resources/de.rs	Tue Oct 18 22:55:22 2016 +0100
@@ -631,7 +631,9 @@
 'Code Search'                                                                                           'Quellcode suchen'
 'Code to Search'                                                                                        'Zu suchender Quellcode'
 'Code was modified.\\Change selection anyway'                                                           'Geänderter Text wurde nicht gesichert.\\Auswahl dennoch ändern'
-'Code was modified.\\Exit anyway ?'                                                                     'Modifizierter Text wurde nicht gesichert. Dennoch beenden ?'
+'Code was modified.\\Exit anyway ?'                                                                     'Modifizierter Text wurde nicht gesichert.\\Dennoch beenden ?'
+'Code was modified.\\Abort anyway ?'                                                                    'Modifizierter Text wurde nicht gesichert.\\Dennoch abbrechen ?'
+'Code was modified.\\Step anyway ?'                                                                     'Modifizierter Text wurde nicht gesichert.\\Dennoch Einzelschritt ausführen ?'
 'Code was modified.\\Remove buffer anyway'                                                              'Änderungen wurden nicht gesichert.\\Seite dennoch entfernen'
 'Coded Break & Tracepoints'                                                                             'Break- und Tracepoints im Code'
 'Coded Breakpoints'                                                                                     'Breakpoints im Code'
@@ -684,6 +686,7 @@
 'Compare with Current'                                                                                  'Vergleichen - mit aktueller Version'
 'Compare with Current Version'                                                                          'Vergleichen mit aktueller Version'
 'Compare with Each Other'                                                                               'Miteinander vergleichen'
+'Compare with File'                                                                                     'Vergleich mit Datei'
 'Compare with Newest in Repository'                                                                     'Vergleichen mit neuester Repository-Version'
 'Compare with Original in Repository'                                                                   'Vergleichen mit ursprünglicher Repository-Version'
 'Compare with Previous'                                                                                 'Vergleich mit voriger Version'