diff --git a/src/NewTools-Debugger-Commands/StDebuggerSettingsCommand.class.st b/src/NewTools-Debugger-Commands/StDebuggerSettingsCommand.class.st index 0c910bf36..4714b9d7d 100644 --- a/src/NewTools-Debugger-Commands/StDebuggerSettingsCommand.class.st +++ b/src/NewTools-Debugger-Commands/StDebuggerSettingsCommand.class.st @@ -37,8 +37,7 @@ StDebuggerSettingsCommand >> canBeExecuted [ { #category : 'executing' } StDebuggerSettingsCommand >> execute [ - SettingBrowser new - rootNodes: - (SettingBrowser currentTree nodeNamed: #debugging) allChildren; + (StSettingsBrowser newApplication: self context application) + selectPath: #(tools debugging); open ] diff --git a/src/NewTools-Epicea/EpDashboardPresenter.class.st b/src/NewTools-Epicea/EpDashboardPresenter.class.st index e9f4f94e6..09a38212b 100644 --- a/src/NewTools-Epicea/EpDashboardPresenter.class.st +++ b/src/NewTools-Epicea/EpDashboardPresenter.class.st @@ -150,12 +150,11 @@ EpDashboardPresenter >> monitor: anEpMonitor [ { #category : 'actions' } EpDashboardPresenter >> openSettingsBrowser [ "Inspired on Glamour's code" - | settingsBrowser settingsWindow | - settingsBrowser := SettingBrowser new - changePackageSet: - {self packageOrganizer packageNamed: 'NewTools-Epicea'}; - yourself. + + settingsBrowser := (StSettingsBrowser newApplication: self application) + selectPath: #(tools epicea); + yourself. settingsWindow := settingsBrowser open. settingsBrowser expandAll ] diff --git a/src/NewTools-FileBrowser/StFileNavigationSystemPresenter.class.st b/src/NewTools-FileBrowser/StFileNavigationSystemPresenter.class.st index 3e46cf7a7..d58551a22 100644 --- a/src/NewTools-FileBrowser/StFileNavigationSystemPresenter.class.st +++ b/src/NewTools-FileBrowser/StFileNavigationSystemPresenter.class.st @@ -121,9 +121,9 @@ StFileNavigationSystemPresenter >> columns: aCollectionOfColumns [ StFileNavigationSystemPresenter >> configButtonAction [ configButton action: [ - SettingBrowser new - rootNodes: (SettingBrowser currentTree nodeNamed: #fileBrowser) allChildren; - open ]. + (StSettingsBrowser newApplication: self application) + selectPath: #(tools fileBrowser); + open ] ] { #category : 'initialization' } diff --git a/src/NewTools-Pulse/StPulse.class.st b/src/NewTools-Pulse/StPulse.class.st index 004177f95..6e9a92318 100644 --- a/src/NewTools-Pulse/StPulse.class.st +++ b/src/NewTools-Pulse/StPulse.class.st @@ -833,9 +833,8 @@ StPulse >> mutex [ { #category : 'private - actions' } StPulse >> openSettingsBrowser [ - SettingBrowser new - rootNodes: - (SettingBrowser currentTree nodeNamed: #pulse) allChildren; + (StSettingsBrowser newApplication: self application) + selectPath: #(tools pulse); open ] diff --git a/src/NewTools-SettingsBrowser/StSettingsBrowser.class.st b/src/NewTools-SettingsBrowser/StSettingsBrowser.class.st index 79fc89428..115dc44fa 100644 --- a/src/NewTools-SettingsBrowser/StSettingsBrowser.class.st +++ b/src/NewTools-SettingsBrowser/StSettingsBrowser.class.st @@ -106,6 +106,22 @@ StSettingsBrowser >> exporter [ ^ exporter ] +{ #category : 'private' } +StSettingsBrowser >> findPathOf: pathCollection on: itemCollection [ + | first node | + + pathCollection ifEmpty: [ ^ #() ]. + + first := pathCollection first. + + node := itemCollection detect: [ :each | each name = first ] ifNone: [ nil ]. + node ifNil: [ ^ #() ]. + + ^ { node }, (self + findPathOf: pathCollection allButFirst + on: node allChildren) +] + { #category : 'searching' } StSettingsBrowser >> followPath: aStSettingNode in: aCollection [ @@ -241,6 +257,21 @@ StSettingsBrowser >> selectDialog: fileReferneces [ openModal ] +{ #category : 'accessing' } +StSettingsBrowser >> selectPath: aCollection [ + "selects a path of the settings tree (by name). + e.g. aSettingsBrowser selectPath: #(tools epicea)" + + | pathItems | + + pathItems := self findPathOf: aCollection on: categoriesPresenter roots. + pathItems isEmptyOrNil ifTrue: [ ^ self ]. + + categoriesPresenter + selectPathByItems: pathItems + scrollToSelection: true +] + { #category : 'private' } StSettingsBrowser >> sortNodes: aCollection [ diff --git a/src/NewTools-WelcomeBrowser/StWelcomeSetupPresenter.class.st b/src/NewTools-WelcomeBrowser/StWelcomeSetupPresenter.class.st index 301177965..01ee95fea 100644 --- a/src/NewTools-WelcomeBrowser/StWelcomeSetupPresenter.class.st +++ b/src/NewTools-WelcomeBrowser/StWelcomeSetupPresenter.class.st @@ -118,7 +118,7 @@ StWelcomeSetupPresenter >> newThemePresenter: aTheme [ { #category : 'actions' } StWelcomeSetupPresenter >> openSettingsBrowser [ - SettingBrowser open + (StSettingsBrowser newApplication: self application) open ] { #category : 'private' }