Lint Rule selection dialog improved. jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Wed, 27 Feb 2013 23:57:04 +0000
branchjv
changeset 12432 f60cf9a3482b
parent 12431 9f0c59c742d5
child 12433 864df9509297
Lint Rule selection dialog improved. Now it allows to choose one of the predefined rule sets.
Make.proto
Tools__LintRuleList.st
Tools__LintRuleSelectionDialog.st
Tools__LintRuleSettingsApplication.st
Tools__NewSystemBrowser.st
bc.mak
libtool.rc
--- a/Make.proto	Wed Feb 27 12:34:59 2013 +0000
+++ b/Make.proto	Wed Feb 27 23:57:04 2013 +0000
@@ -263,7 +263,7 @@
 $(OUTDIR)NewLauncher.$(O) NewLauncher.$(H): NewLauncher.st $(INCLUDE_TOP)/stx/libtool/AbstractLauncherApplication.$(H) $(INCLUDE_TOP)/stx/libview2/ToolApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)OrderedCollectionInspectorView.$(O) OrderedCollectionInspectorView.$(H): OrderedCollectionInspectorView.st $(INCLUDE_TOP)/stx/libtool/InspectorView.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SetInspectorView.$(O) SetInspectorView.$(H): SetInspectorView.st $(INCLUDE_TOP)/stx/libtool/InspectorView.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)SettingsDialog.$(O) SettingsDialog.$(H): SettingsDialog.st $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalList.$(H) $(INCLUDE_TOP)/stx/libbasic2/List.$(H) $(INCLUDE_TOP)/stx/libbasic/OrderedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libtool/AbstractSettingsApplication.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItemWithLabelAndIcon.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItemWithLabel.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SettingsDialog.$(O) SettingsDialog.$(H): SettingsDialog.st $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalList.$(H) $(INCLUDE_TOP)/stx/libbasic2/List.$(H) $(INCLUDE_TOP)/stx/libbasic/OrderedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItemWithLabelAndIcon.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItemWithLabel.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(INCLUDE_TOP)/stx/libtool/AbstractSettingsApplication.$(H) $(STCHDR)
 $(OUTDIR)SmalltalkCodeGeneratorTool.$(O) SmalltalkCodeGeneratorTool.$(H): SmalltalkCodeGeneratorTool.st $(INCLUDE_TOP)/stx/libtool/CodeGeneratorTool.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Tools__BackgroundSourceProcessingService.$(O) Tools__BackgroundSourceProcessingService.$(H): Tools__BackgroundSourceProcessingService.st $(INCLUDE_TOP)/stx/libtool/Tools__CodeViewService.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Tools__BreakpointService.$(O) Tools__BreakpointService.$(H): Tools__BreakpointService.st $(INCLUDE_TOP)/stx/libtool/Tools__CodeViewService.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/Tools__LintRuleList.st	Wed Feb 27 12:34:59 2013 +0000
+++ b/Tools__LintRuleList.st	Wed Feb 27 23:57:04 2013 +0000
@@ -215,10 +215,11 @@
                 ifNil:[Set new]
                 ifNotNil:[aCollectionOrNil asSet].
     
-    self selectionHolder value: sel
+    self selectionHolder value: sel.
 
     "Created: / 25-08-2010 / 13:28:43 / Jan Vrany <enter your email here>"
     "Modified: / 25-08-2010 / 15:29:35 / Jan Vrany <enter your email here>"
+    "Modified: / 27-02-2013 / 23:33:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 showCheckbox
@@ -341,6 +342,9 @@
     ].
 
     (changedObject == selectionHolder) ifTrue:[
+        listView notNil ifTrue:[
+            listView invalidate
+        ].
         ^self.            
     ].
 
@@ -348,7 +352,7 @@
     super delayedUpdate:something with:aParameter from:changedObject
 
     "Created: / 26-08-2010 / 11:43:33 / Jan Vrany <enter your email here>"
-    "Modified: / 05-08-2011 / 00:17:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 27-02-2013 / 23:40:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectionChanged
@@ -361,9 +365,11 @@
         self selectionHolder value: selection
     ] ifFalse:[
         self selectionHolder value: (selection collect:[:entry|entry rule])
-    ]
+    ].                                 
+    listView invalidate
 
     "Created: / 05-08-2011 / 00:10:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 27-02-2013 / 23:31:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !LintRuleList methodsFor:'event processing'!
--- a/Tools__LintRuleSelectionDialog.st	Wed Feb 27 12:34:59 2013 +0000
+++ b/Tools__LintRuleSelectionDialog.st	Wed Feb 27 23:57:04 2013 +0000
@@ -29,7 +29,8 @@
 
 SimpleDialog subclass:#LintRuleSelectionDialog
 	instanceVariableNames:'selectionHolder variablePanel relativeCorners detailsShown
-		listSelection'
+		listSelection rulesetList rulesetHolder rulesetNameList
+		rulesetNameHolder'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Lint'
@@ -127,9 +128,16 @@
         component: 
        (SpecCollection
           collection: (
+           (ComboListSpec
+              name: 'ComboBox1'
+              layout: (LayoutFrame 0 0 0 0 0 1 25 0)
+              model: rulesetNameHolder
+              acceptOnPointerLeave: false
+              comboList: rulesetNameList
+            )
            (VariableVerticalPanelSpec
               name: 'VariableVerticalPanel1'
-              layout: (LayoutFrame 0 0 0 0 0 1 -30 1)
+              layout: (LayoutFrame 0 0 30 0 0 1 -30 1)
               component: 
              (SpecCollection
                 collection: (
@@ -224,11 +232,17 @@
         )
       )
 
-    "Modified: / 01-03-2012 / 10:50:28 / cg"
+    "Modified: / 27-02-2013 / 23:23:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !LintRuleSelectionDialog methodsFor:'accessing'!
 
+ruleset: ruleset
+    self rulesetHolder value: ruleset
+
+    "Created: / 27-02-2013 / 23:36:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 selection
 
     ^self selectionHolder value
@@ -245,9 +259,11 @@
 
 selectionAsRule
 
-    ^RBCompositeLintRule rules: self selection name: 'Selected rules'
+    self rulesetHolder value rules: self selection.
+    ^self rulesetHolder value.
 
     "Created: / 25-08-2010 / 14:10:58 / Jan Vrany <enter your email here>"
+    "Modified: / 27-02-2013 / 23:40:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !LintRuleSelectionDialog methodsFor:'actions'!
@@ -311,6 +327,112 @@
     "Created: / 15-04-2010 / 20:13:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+rulesetHolder
+    "return/create the 'rulesetHolder' value holder (automatically generated)"
+
+    rulesetHolder isNil ifTrue:[
+        rulesetHolder := ValueHolder new.
+        rulesetHolder addDependent:self.
+    ].
+    ^ rulesetHolder
+!
+
+rulesetHolder:something
+    "set the 'rulesetHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    rulesetHolder notNil ifTrue:[
+        oldValue := rulesetHolder value.
+        rulesetHolder removeDependent:self.
+    ].
+    rulesetHolder := something.
+    rulesetHolder notNil ifTrue:[
+        rulesetHolder addDependent:self.
+    ].
+    newValue := rulesetHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:rulesetHolder.
+    ].
+!
+
+rulesetList
+    "return/create the 'rulesetList' value holder (automatically generated)"
+
+    rulesetList isNil ifTrue:[
+        rulesetList := RBCompositeLintRule rulesets asList.
+        rulesetList addDependent:self.
+    ].
+    ^ rulesetList
+
+    "Modified: / 27-02-2013 / 23:07:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+rulesetList:something
+    "set the 'rulesetList' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    rulesetList notNil ifTrue:[
+        oldValue := rulesetList value.
+        rulesetList removeDependent:self.
+    ].
+    rulesetList := something.
+    rulesetList notNil ifTrue:[
+        rulesetList addDependent:self.
+    ].
+    newValue := rulesetList value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:rulesetList.
+    ].
+!
+
+rulesetNameHolder
+    "return/create the 'rulesetNameHolder' value holder (automatically generated)"
+
+    rulesetNameHolder isNil ifTrue:[
+        rulesetNameHolder := self rulesetHolder value name asValue.
+        rulesetNameHolder addDependent:self.
+    ].
+    ^ rulesetNameHolder
+
+    "Modified: / 27-02-2013 / 23:42:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+rulesetNameHolder:something
+    "set the 'rulesetNameHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    rulesetNameHolder notNil ifTrue:[
+        oldValue := rulesetNameHolder value.
+        rulesetNameHolder removeDependent:self.
+    ].
+    rulesetNameHolder := something.
+    rulesetNameHolder notNil ifTrue:[
+        rulesetNameHolder addDependent:self.
+    ].
+    newValue := rulesetNameHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:rulesetNameHolder.
+    ].
+!
+
+rulesetNameList
+    "return/create the 'rulesetNameList' value holder (automatically generated)"
+
+    rulesetNameList isNil ifTrue:[
+        rulesetNameList := ValueHolder new.
+    ].
+    ^ rulesetNameList
+!
+
+rulesetNameList:something
+    "set the 'rulesetNameList' value holder (automatically generated)"
+
+    rulesetNameList := something.
+!
+
 selectionHolder
     "return/create the 'selectionHolder' value holder (automatically generated)"
 
@@ -329,6 +451,72 @@
     "Created: / 24-07-2010 / 15:05:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!LintRuleSelectionDialog methodsFor:'change & update'!
+
+update:something with:aParameter from:changedObject
+    "Invoked when an object that I depend upon sends a change notification."
+
+    "stub code automatically generated - please change as required"
+
+    changedObject == rulesetList ifTrue:[
+        self updateRulesetNameList.
+         ^ self.
+    ].
+    changedObject == rulesetHolder ifTrue:[
+        self rulesetNameHolder value: self rulesetHolder value name.
+        self selection: self rulesetHolder value flattened.
+         ^ self.
+    ].
+    changedObject == rulesetNameHolder ifTrue:[
+        self updateRulesetHolder.
+         ^ self.
+    ].
+    super update:something with:aParameter from:changedObject
+
+    "Modified: / 27-02-2013 / 23:27:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateRulesetHolder
+    | ruleset |    
+
+    self rulesetHolder value name == self rulesetNameHolder value ifTrue:[
+        ^self.
+    ].
+
+    (self rulesetNameList value notNil and:[self rulesetNameHolder value asString = self rulesetNameList value last asString]) ifTrue:[
+        ruleset := RBCompositeLintRule new.
+        ruleset name: ('New Rule Set ' , (self rulesetList size + 1) printString).
+        self rulesetList add: ruleset.
+        RBCompositeLintRule rulesets add: ruleset.
+        self rulesetNameHolder value: ruleset name.
+    ] ifFalse:[
+        | idx |
+        idx := self rulesetNameList value indexOf: self rulesetNameHolder value.
+        ruleset := self rulesetList at: idx.
+    ].
+    self rulesetHolder value: ruleset.
+
+    "Created: / 27-02-2013 / 23:15:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateRulesetNameList
+
+    self rulesetNameList value: 
+        ((self rulesetList collect:[:e|e name])
+            add: 'New Ruleset...' asText allItalic;
+            yourself)
+
+    "Created: / 27-02-2013 / 23:08:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LintRuleSelectionDialog methodsFor:'hooks'!
+
+commonPostBuild
+    self updateRulesetNameList.
+
+    "Created: / 27-02-2013 / 23:10:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !LintRuleSelectionDialog class methodsFor:'documentation'!
 
 version_CVS
--- a/Tools__LintRuleSettingsApplication.st	Wed Feb 27 12:34:59 2013 +0000
+++ b/Tools__LintRuleSettingsApplication.st	Wed Feb 27 23:57:04 2013 +0000
@@ -15,7 +15,7 @@
 
 AbstractSettingsApplication subclass:#LintRuleSettingsApplication
 	instanceVariableNames:'rulesetList rulesetSelectionHolder hasSelectionHolder'
-	classVariableNames:''
+	classVariableNames:'LastFileName'
 	poolDictionaries:''
 	category:'Interface-Lint'
 !
@@ -36,6 +36,21 @@
 "
 ! !
 
+!LintRuleSettingsApplication class methodsFor:'class initialization'!
+
+initialize
+
+    Smalltalk addStartBlock:[
+        NewLauncher
+            addSettingsApplicationByClass: self name
+            withName: 'Tools/SmallLint'
+            icon: nil.
+    ]
+
+    "Created: / 04-02-2012 / 21:50:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 27-02-2013 / 22:37:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !LintRuleSettingsApplication class methodsFor:'interface opening'!
 
 open    
@@ -252,16 +267,14 @@
 doExport
     <resource: #uiCallback>
 
-    "automatically generated by UIPainter..."
+    | file |
 
-    "*** the code below performs no action"
-    "*** (except for some feedback on the Transcript)"
-    "*** Please change as required and accept in the browser."
-    "*** (and replace this comment by something more useful ;-)"
+    file := Dialog requestFileName: (resources string: 'Select file') default: (LastFileName ? Filename currentDirectory / 'exported-ruleset.st').
+    file isEmptyOrNil ifTrue:[ ^ self ].
 
-    "action to be defined here..."
+    self shouldImplement
 
-    Transcript showCR:self class name, ': action for doExport ...'.
+    "Modified: / 27-02-2013 / 23:53:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 doImport
@@ -399,3 +412,5 @@
     ^ '$Changeset: <not expanded> $'
 ! !
 
+
+LintRuleSettingsApplication initialize!
--- a/Tools__NewSystemBrowser.st	Wed Feb 27 12:34:59 2013 +0000
+++ b/Tools__NewSystemBrowser.st	Wed Feb 27 23:57:04 2013 +0000
@@ -107,7 +107,6 @@
 "
 ! !
 
-
 !NewSystemBrowser class methodsFor:'initialization'!
 
 initialize
@@ -237,7 +236,6 @@
     ].
 ! !
 
-
 !NewSystemBrowser class methodsFor:'accessing-history'!
 
 addToBookMarks:aClass selector:aSelectorOrNil
@@ -319,7 +317,6 @@
     "Modified: / 13-09-2012 / 18:14:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser class methodsFor:'defaults'!
 
 synchronousUpdate
@@ -333,7 +330,6 @@
     "Modified (comment): / 24-08-2011 / 15:33:27 / cg"
 ! !
 
-
 !NewSystemBrowser class methodsFor:'help specs'!
 
 flyByHelpSpec
@@ -502,7 +498,6 @@
 )
 ! !
 
-
 !NewSystemBrowser class methodsFor:'image specs'!
 
 defaultIcon
@@ -745,7 +740,6 @@
     ^ ToolbarIconLibrary startNewSystemBrowserIcon
 ! !
 
-
 !NewSystemBrowser class methodsFor:'interface specs'!
 
 browserPageSpec
@@ -5459,7 +5453,6 @@
     "Modified: / 07-06-2011 / 14:39:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser class methodsFor:'interface specs-dialogs'!
 
 repositoryConsistencyDialogSpec
@@ -5717,7 +5710,6 @@
       )
 ! !
 
-
 !NewSystemBrowser class methodsFor:'interface specs-message pane'!
 
 messageInfoSpec
@@ -5830,7 +5822,6 @@
       )
 ! !
 
-
 !NewSystemBrowser class methodsFor:'menu specs'!
 
 browseMenu
@@ -13022,7 +13013,6 @@
       )
 ! !
 
-
 !NewSystemBrowser class methodsFor:'menu specs-SCM-category'!
 
 categoryMenuSCMCommon
@@ -13407,7 +13397,6 @@
       )
 ! !
 
-
 !NewSystemBrowser class methodsFor:'menu specs-SCM-class'!
 
 classCVSMenu
@@ -15329,7 +15318,6 @@
     "Modified: / 28-10-2012 / 11:54:14 / cg"
 ! !
 
-
 !NewSystemBrowser class methodsFor:'menu specs-SCM-project'!
 
 projectCVSMenu
@@ -16275,7 +16263,6 @@
     "Modified: / 24-07-2012 / 17:40:34 / cg"
 ! !
 
-
 !NewSystemBrowser class methodsFor:'menu specs-SCM-selector'!
 
 selectorMenuCVS
@@ -16644,7 +16631,6 @@
       )
 ! !
 
-
 !NewSystemBrowser class methodsFor:'menu specs-dialogs'!
 
 classesWhichHaveBeenModifiedPopupMenu
@@ -16837,7 +16823,6 @@
     "Modified: / 29-09-2006 / 16:11:08 / cg"
 ! !
 
-
 !NewSystemBrowser class methodsFor:'menu specs-popup'!
 
 categoryPopUpMenu
@@ -16983,7 +16968,6 @@
     "Created: / 18.2.2000 / 11:58:25 / cg"
 ! !
 
-
 !NewSystemBrowser class methodsFor:'menu specs-subversion'!
 
 classSubversionMenu
@@ -17247,7 +17231,6 @@
       )
 ! !
 
-
 !NewSystemBrowser class methodsFor:'menu specs-toolbar'!
 
 toolBarMenu
@@ -17566,7 +17549,6 @@
       )
 ! !
 
-
 !NewSystemBrowser class methodsFor:'queries'!
 
 hasSubversionSupport
@@ -17576,7 +17558,6 @@
     "Modified: / 19-01-2012 / 10:46:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser class methodsFor:'startup'!
 
 browseClass:aClass
@@ -17796,7 +17777,6 @@
     "Created: / 06-07-2011 / 18:27:53 / cg"
 ! !
 
-
 !NewSystemBrowser class methodsFor:'utilities'!
 
 enterBoxTitle:title okText:okText label:label
@@ -17815,7 +17795,6 @@
     "Created: / 6.2.2000 / 01:07:11 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'accessing'!
 
 isEmbeddedBrowser
@@ -17830,7 +17809,6 @@
     isEmbedded := aBoolean.
 ! !
 
-
 !NewSystemBrowser methodsFor:'aspects'!
 
 bookmarkHolder
@@ -18136,7 +18114,6 @@
     builder aspectAt:#suppressChangeSetUpdate put:aBoolean
 ! !
 
-
 !NewSystemBrowser methodsFor:'aspects-environment'!
 
 selectedCategoriesAsEnvironment
@@ -18264,7 +18241,6 @@
     "Modified: / 28-02-2012 / 16:28:38 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'aspects-kludges'!
 
 metaToggle
@@ -18278,7 +18254,6 @@
 
 ! !
 
-
 !NewSystemBrowser methodsFor:'aspects-menus'!
 
 categoryMenu
@@ -18476,7 +18451,6 @@
     ^ self class visitedClassNamesHistory
 ! !
 
-
 !NewSystemBrowser methodsFor:'aspects-navigation'!
 
 categoryList
@@ -18698,6 +18672,7 @@
 ! !
 
 
+
 !NewSystemBrowser methodsFor:'aspects-organization'!
 
 categoryMenuVisible
@@ -19171,7 +19146,6 @@
     "Modified: / 18.8.2000 / 19:03:48 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'aspects-presentation'!
 
 bookmarkBarVisibleHolder
@@ -19629,7 +19603,6 @@
     "Created: / 02-07-2011 / 18:27:29 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'aspects-queries'!
 
 anyBreakOrTracePointsAreSet
@@ -23471,7 +23444,6 @@
     self navigationState versionDiffApplication:diffApp.
 ! !
 
-
 !NewSystemBrowser methodsFor:'help specs'!
 
 flyByHelpSpec
@@ -23499,7 +23471,6 @@
     ^ super flyByHelpTextFor:aComponent
 ! !
 
-
 !NewSystemBrowser methodsFor:'history'!
 
 addToHistory: class
@@ -23518,7 +23489,6 @@
     "Modified: / 02-07-2011 / 18:33:22 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-browse'!
 
 browseImplementorsOf
@@ -25813,7 +25783,6 @@
 viewMenuSelectAllClasses
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-buffers'!
 
 bufferMenuCreateBuffer
@@ -25978,7 +25947,6 @@
     "Modified: / 28-02-2012 / 10:22:24 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-category'!
 
 categoryMenuCheckInEach
@@ -26787,7 +26755,6 @@
     self spawnCategoryBrowserFor:(self selectedCategoriesValue) in:where
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-checks-lint'!
 
 foo
@@ -26930,15 +26897,25 @@
 !
 
 smalllintRulesFromUser
-    |dlg|
+    | dlg rules |
 
     self loadSmalllint.
     dlg := Tools::LintRuleSelectionDialog new.
 
-    dlg selection: (LastLintRules ifNil:[nil"self smalllintRulesAll flattened"] ifNotNil:[LastLintRules flattened]).
+    LastLintRules notNil ifTrue:[
+        rules := LastLintRules
+    ] ifFalse:[
+        RBCompositeLintRule rulesets size > 0 ifTrue:[
+            rules := RBCompositeLintRule rulesets detect:[:e|e name = #Default] ifNone:[ RBCompositeLintRule rulesets first]
+        ] ifFalse:[
+            rules := RBCompositeLintRule allRules 
+        ].
+    ].
+
+    dlg ruleset: rules.
     ^ (dlg open; accepted)
-	    ifTrue:[ LastLintRules := dlg selectionAsRule ]
-	    ifFalse:[ nil ].
+            ifTrue:[ LastLintRules := dlg selectionAsRule ]
+            ifFalse:[ nil ].
 
     "
      LastLintRules := nil.
@@ -26948,6 +26925,7 @@
     "Created: / 17-04-2010 / 09:41:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 25-08-2010 / 15:35:16 / Jan Vrany <enter your email here>"
     "Modified (format): / 06-03-2012 / 18:55:09 / cg"
+    "Modified: / 27-02-2013 / 23:50:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 smalllintRulesOrAll
@@ -27159,7 +27137,6 @@
     "Modified: / 01-03-2012 / 19:52:57 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-checks-old'!
 
 classMenuCheck
@@ -27321,7 +27298,6 @@
     "Modified (comment): / 01-03-2012 / 14:10:43 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-class'!
 
 addClassesToRemoveForClass:aClass to:classesToRemove removingSubclasses:removingSubclasses withCancel:withCancel
@@ -32069,7 +32045,6 @@
     self classMenuGenerateMultiSetterMethod
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-class hierarchy'!
 
 classHierarchyMenuSelectWithAllSubclasses
@@ -32122,7 +32097,6 @@
     ^ self selectedClasses
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-class packaging'!
 
 excludeClasses: toExclude fromProject:aDefinitionClass using:generator
@@ -32154,7 +32128,6 @@
     aDefinitionClass makeClassesAutoloaded:toMakeAutoloaded usingCompiler:generator
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-class repository'!
 
 allKnownTagsInClasses:aCollectionOfClasses
@@ -34784,7 +34757,6 @@
     "Created: / 21-12-2011 / 20:11:25 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-code'!
 
 codeMenuAddClassVariable:newName inClass:aClass asValueHolder:asValueHolder
@@ -36666,7 +36638,6 @@
     aTwoArgBlock value:cls value:selector.
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-debug'!
 
 classMenuClearCoverageInfo
@@ -37266,7 +37237,6 @@
     "Modified: / 28-02-2012 / 16:52:45 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-help'!
 
 openClassDocumentation
@@ -37300,7 +37270,6 @@
     self updateSpecialCodeEditorVisibility
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-methodList'!
 
 methodListMenuCheckInClass
@@ -37529,7 +37498,6 @@
     "Modified: / 28-02-2012 / 16:27:44 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-namespace'!
 
 nameSpaceMenuCheckOut
@@ -37655,7 +37623,6 @@
     "Modified: / 28-02-2012 / 16:53:04 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-other'!
 
 editModeInsert
@@ -37721,7 +37688,6 @@
     "Created: / 15-10-2011 / 12:02:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-project'!
 
 classMenuCheckInBuildSupportFiles
@@ -41108,7 +41074,6 @@
     "Modified: / 23-10-2006 / 11:01:42 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-project-monticello'!
 
 projectMenuMonticelloBrowseRepositories
@@ -41117,7 +41082,6 @@
     "Created: / 01-12-2011 / 21:47:24 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-protocol'!
 
 doMoveSelectedProtocolsToProject:newProject
@@ -41852,7 +41816,6 @@
     "Modified: / 28-02-2012 / 16:34:54 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-searching'!
 
 askForClassToSearch:doWhatByDefault single:singleClass msgTail:msgTail resources:resourcesOrNil thenDo:aBlock
@@ -42503,7 +42466,6 @@
     "Modified: / 02-06-2011 / 11:35:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-selector'!
 
 askForClassToMoveOrCopy:doWhat
@@ -46426,7 +46388,6 @@
     "Modified: / 28-02-2012 / 16:36:22 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-subversion'!
 
 commonMenuSubversionOpenSettings
@@ -46436,7 +46397,6 @@
     "Modified: / 26-03-2010 / 20:01:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu actions-subversion-class'!
 
 classMenuSubversionShowRevisionLog
@@ -47828,7 +47788,6 @@
     aBlock value:selectedVariable value:isClassVar
 ! !
 
-
 !NewSystemBrowser methodsFor:'menu-actions-other'!
 
 goBack
@@ -47855,7 +47814,6 @@
     "Modified: / 22-02-2008 / 17:18:56 / janfrog"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menus-dynamic'!
 
 boockmarksMenu
@@ -49080,7 +49038,6 @@
     "Modified: / 09-09-2012 / 13:24:04 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menus-dynamic-SCM'!
 
 categoryMenuSCMFor: sourceCodeManagerClassName
@@ -49562,7 +49519,6 @@
     "Created: / 12-10-2011 / 20:28:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser methodsFor:'menus-dynamic-subversion'!
 
 commonSubversionBranchMenu
@@ -49595,7 +49551,6 @@
     "Modified (format): / 01-12-2011 / 21:06:52 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'navigation'!
 
 askForClassNameMatching:matchStringArg
@@ -50413,7 +50368,6 @@
     "Modified: / 5.2.2000 / 23:07:10 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-buffers'!
 
 removeBuffer:nr
@@ -50465,7 +50419,6 @@
     self removeBuffer:(selectedBuffer value)
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-checks'!
 
 anySpecialEditorModified
@@ -50603,7 +50556,6 @@
     ^ true
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-code update'!
 
 autoSearch:aString
@@ -51652,7 +51604,6 @@
     "Modified: / 01-12-2011 / 14:26:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-dialogs'!
 
 askForDirectoryToFileOut:title default:defaultDirOrNil
@@ -52722,7 +52673,6 @@
 	    cancel: [nil]
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-helpers'!
 
 anySelectedClass
@@ -53844,7 +53794,6 @@
       and:[ (view isSameOrComponentOf:appView) ]
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-helpers-subApps'!
 
 categoryListApp
@@ -53926,7 +53875,6 @@
     "Modified: / 14-02-2012 / 14:00:36 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-presentation'!
 
 asyncShowMethodInfo
@@ -54570,7 +54518,6 @@
     ]
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-searching'!
 
 searchCompletionBlock
@@ -54703,7 +54650,6 @@
     "Created: / 06-04-2012 / 12:56:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-semantic checks'!
 
 checkAcceptedMethod:aMethod inClass:aClass
@@ -55034,7 +54980,6 @@
     ^ nil.
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-smalllint'!
 
 smalllintRulesAll
@@ -55069,7 +55014,6 @@
     "Created: / 06-09-2012 / 14:49:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser methodsFor:'private-syntax coloring'!
 
 startSyntaxHighlightProcess
@@ -55362,7 +55306,6 @@
     "Modified: / 08-08-2011 / 15:09:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser methodsFor:'setup'!
 
 browserCanvas
@@ -55670,7 +55613,6 @@
     self normalLabel.
 ! !
 
-
 !NewSystemBrowser methodsFor:'special editors'!
 
 specialEditorCanvasForMethod:aMethod
@@ -55917,7 +55859,6 @@
     "Modified: / 28-02-2012 / 17:02:07 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'startup & release'!
 
 closeRequest
@@ -55981,7 +55922,6 @@
     "Modified: / 20-11-2006 / 12:16:37 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'string search tool'!
 
 hideSearchBar
@@ -56060,7 +56000,6 @@
     ].
 ! !
 
-
 !NewSystemBrowser methodsFor:'user actions'!
 
 backToLastClass
@@ -56859,7 +56798,6 @@
     "Modified: / 28-02-2012 / 16:51:54 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'user actions-accepting'!
 
 acceptMethod:codeArg inClass:cls language: languageOrNil check:doCheck
@@ -57962,7 +57900,6 @@
     self setAcceptAction:[:code | self codeView flash].
 ! !
 
-
 !NewSystemBrowser methodsFor:'user actions-class'!
 
 classLoad
@@ -58110,7 +58047,6 @@
     "Modified: / 12-09-2006 / 13:48:12 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'user actions-comparing'!
 
 doCompareIn:aNavigationState
@@ -58181,7 +58117,6 @@
     "Modified: / 27-07-2012 / 22:25:17 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'user actions-events'!
 
 keyInCategoryListView:key rawKey:rawKey
@@ -58552,7 +58487,6 @@
     "Modified: / 17-08-2011 / 13:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser methodsFor:'user actions-helpers'!
 
 hideMessagePane
@@ -58719,7 +58653,6 @@
     "Modified: / 15-05-2012 / 10:46:06 / cg"
 ! !
 
-
 !NewSystemBrowser methodsFor:'user actions-profiler'!
 
 spawnProfilerStatistics:statistics in: where
@@ -58736,7 +58669,6 @@
     "Modified (format): / 29-11-2011 / 14:49:08 / cg"
 ! !
 
-
 !NewSystemBrowser::ClassCompletionEntry methodsFor:'accessing'!
 
 klass
@@ -58755,7 +58687,6 @@
     showPrefix := something.
 ! !
 
-
 !NewSystemBrowser::ClassCompletionEntry methodsFor:'converting'!
 
 asString
@@ -58768,7 +58699,6 @@
     "Created: / 04-04-2012 / 13:00:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser::ClassCompletionEntry methodsFor:'displaying'!
 
 displayOn:aGC x:x y:y opaque:opaque
@@ -58819,7 +58749,6 @@
     "Created: / 20-04-2012 / 18:19:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser::ClassCompletionEntry methodsFor:'printing & storing'!
 
 printOn:aStream
@@ -58833,7 +58762,6 @@
     "Modified: / 06-04-2012 / 13:30:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
--- a/bc.mak	Wed Feb 27 12:34:59 2013 +0000
+++ b/bc.mak	Wed Feb 27 23:57:04 2013 +0000
@@ -191,7 +191,7 @@
 $(OUTDIR)NewLauncher.$(O) NewLauncher.$(H): NewLauncher.st $(INCLUDE_TOP)\stx\libtool\AbstractLauncherApplication.$(H) $(INCLUDE_TOP)\stx\libview2\ToolApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)OrderedCollectionInspectorView.$(O) OrderedCollectionInspectorView.$(H): OrderedCollectionInspectorView.st $(INCLUDE_TOP)\stx\libtool\InspectorView.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SetInspectorView.$(O) SetInspectorView.$(H): SetInspectorView.st $(INCLUDE_TOP)\stx\libtool\InspectorView.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SettingsDialog.$(O) SettingsDialog.$(H): SettingsDialog.st $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalList.$(H) $(INCLUDE_TOP)\stx\libbasic2\List.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libtool\AbstractSettingsApplication.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItemWithLabelAndIcon.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItemWithLabel.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SettingsDialog.$(O) SettingsDialog.$(H): SettingsDialog.st $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalList.$(H) $(INCLUDE_TOP)\stx\libbasic2\List.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItemWithLabelAndIcon.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItemWithLabel.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(INCLUDE_TOP)\stx\libtool\AbstractSettingsApplication.$(H) $(STCHDR)
 $(OUTDIR)SmalltalkCodeGeneratorTool.$(O) SmalltalkCodeGeneratorTool.$(H): SmalltalkCodeGeneratorTool.st $(INCLUDE_TOP)\stx\libtool\CodeGeneratorTool.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)Tools__BackgroundSourceProcessingService.$(O) Tools__BackgroundSourceProcessingService.$(H): Tools__BackgroundSourceProcessingService.st $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)Tools__BreakpointService.$(O) Tools__BreakpointService.$(H): Tools__BreakpointService.st $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/libtool.rc	Wed Feb 27 12:34:59 2013 +0000
+++ b/libtool.rc	Wed Feb 27 23:57:04 2013 +0000
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2012\nCopyright eXept Software AG 1998-2012\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Wed, 27 Feb 2013 12:27:46 GMT\0"
+      VALUE "ProductDate", "Wed, 27 Feb 2013 23:55:00 GMT\0"
     END
 
   END