Skip to content

Commit 5c99a72

Browse files
authored
Merge pull request #261 from OpenSmock/Issue_0260
Default Theme on setting
2 parents 44a3257 + 71314e6 commit 5c99a72

3 files changed

Lines changed: 52 additions & 22 deletions

File tree

src/Pyramid-Toplo/PyramidThemeFromSpaceExtension.class.st

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,41 +11,43 @@ Class {
1111
#category : #'Pyramid-Toplo-plugin-theme-management'
1212
}
1313

14-
{ #category : #asserting }
15-
PyramidThemeFromSpaceExtension class >> shouldInstall [
16-
17-
^ false
18-
]
19-
2014
{ #category : #actions }
2115
PyramidThemeFromSpaceExtension >> configureBuilder: aPyramidEditorBuilder [
2216

23-
(aPyramidEditorBuilder findPlugin: PyramidOpenFromSpacePlugin)
24-
addExtension: self.
25-
(aPyramidEditorBuilder findPlugin: PyramidSpacePlugin) builder
26-
addExtension: self.
27-
self themeSpaceSelector: (aPyramidEditorBuilder findPlugin: PyramidToploThemePlugin)
28-
themePresenter themeSpaceSelector
17+
| pyramidOpenFromSpacePlugin pyramidSpacePlugin pyramidToploThemePlugin |
18+
[
19+
pyramidOpenFromSpacePlugin := aPyramidEditorBuilder findPlugin:
20+
PyramidOpenFromSpacePlugin.
21+
pyramidSpacePlugin := aPyramidEditorBuilder findPlugin:
22+
PyramidSpacePlugin.
23+
pyramidToploThemePlugin := aPyramidEditorBuilder findPlugin:
24+
PyramidToploThemePlugin ]
25+
on: PyramidNoPluginFoundError
26+
do: [ ^ self ].
27+
28+
pyramidOpenFromSpacePlugin addExtension: self.
29+
pyramidSpacePlugin builder addExtension: self.
30+
self themeSpaceSelector:
31+
pyramidToploThemePlugin themePresenter themeSpaceSelector
2932
]
3033

3134
{ #category : #'as yet unclassified' }
3235
PyramidThemeFromSpaceExtension >> configureCloseOnSpace: aSpace [
3336

3437
aSpace toTheme: themeSpaceSelector currentTheme.
35-
aSpace root skinManager postponeRequestSkinIn: aSpace root
3638
]
3739

3840
{ #category : #'as yet unclassified' }
3941
PyramidThemeFromSpaceExtension >> configureOpenFromSpace: aSpace [
4042
"Do something with the space"
4143

4244
self defaultToTheme: aSpace toTheme.
43-
aSpace root skinManager postponeRequestSkinIn: aSpace root
4445
]
4546

4647
{ #category : #accessing }
4748
PyramidThemeFromSpaceExtension >> defaultToTheme [
4849

50+
defaultToTheme ifNil: [ defaultToTheme := PyramidToploThemePlugin defaultTheme new ].
4951
^ defaultToTheme
5052
]
5153

src/Pyramid-Toplo/PyramidThemeSelectorPresenter.class.st

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ PyramidThemeSelectorPresenter >> buttonRefreshTheme [
2424
{ #category : #'as yet unclassified' }
2525
PyramidThemeSelectorPresenter >> currentTheme [
2626

27-
^ self themeSelector selectedItem
27+
^ self themeSelector selectedItem new
2828
]
2929

3030
{ #category : #layout }
@@ -58,16 +58,14 @@ PyramidThemeSelectorPresenter >> initializeAllPossibleThemes [
5858

5959
allThemes := ToTheme allSubclasses select: [ :theme |
6060
theme canBeDefault ].
61-
62-
allThemes := allThemes collect: [ :each | each new ].
6361

6462
self triggerThemeChangement: false.
6563
self themeSelector items: allThemes.
6664

6765
(previousTheme isNotNil and: [ allThemes includes: previousTheme ])
6866
ifTrue: [ self themeSelector selectItem: previousTheme ]
69-
ifFalse: [ self themeSelector selectItem: allThemes first ].
70-
self triggerThemeChangement: true.
67+
ifFalse: [ self themeSelector selectItem: PyramidToploThemePlugin defaultTheme ].
68+
self triggerThemeChangement: true
7169
]
7270

7371
{ #category : #initialization }
@@ -96,9 +94,8 @@ PyramidThemeSelectorPresenter >> labelPresenter [
9694
PyramidThemeSelectorPresenter >> selectTheme: aToTheme [
9795

9896
self triggerThemeChangement: false.
99-
self themeSelector items do: [:theme | (theme class) = (aToTheme class) ifTrue: [ self themeSelector selectItem: (theme) ]].
100-
self triggerThemeChangement: true.
101-
97+
self themeSelector selectItem: aToTheme class.
98+
self triggerThemeChangement: true
10299
]
103100

104101
{ #category : #'as yet unclassified' }

src/Pyramid-Toplo/PyramidToploThemePlugin.class.st

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,40 @@ Class {
77
'themePresenter',
88
'themePropertyManager'
99
],
10+
#classInstVars : [
11+
'defaultTheme'
12+
],
1013
#category : #'Pyramid-Toplo-plugin-theme-management'
1114
}
1215

16+
{ #category : #'as yet unclassified' }
17+
PyramidToploThemePlugin class >> defaultTheme [
18+
19+
defaultTheme ifNil: [
20+
defaultTheme := (ToTheme withAllSubclasses select: [ :e | e canBeDefault ]) last ].
21+
^ defaultTheme
22+
]
23+
24+
{ #category : #'as yet unclassified' }
25+
PyramidToploThemePlugin class >> defaultTheme: anObject [
26+
27+
defaultTheme := anObject
28+
]
29+
30+
{ #category : #'as yet unclassified' }
31+
PyramidToploThemePlugin class >> defaultThemeSettingOn: aBuilder [
32+
33+
<systemsettings>
34+
(aBuilder pickOne: #defaultTheme)
35+
parent: #pyramid;
36+
label: 'Choose the default theme.';
37+
target: self;
38+
domainValues:
39+
(ToTheme withAllSubclasses select: #canBeDefault);
40+
description:
41+
'Define the theme that will be used by default when a new editor is opened.'
42+
]
43+
1344
{ #category : #adding }
1445
PyramidToploThemePlugin class >> toploAntIconCategory [
1546

0 commit comments

Comments
 (0)