Marcel Taeumel uploaded a new version of Morphic to project The Trunk: http://source.squeak.org/trunk/Morphic-mt.1542.mcz
==================== Summary ====================
Name: Morphic-mt.1542 Author: mt Time: 25 September 2019, 11:25:42.543838 am UUID: 7ef7fdda-3074-144f-8ff7-a728dbfc50a2 Ancestors: Morphic-mt.1541
Now that we have an MVC parent project and the project name is visible in the main docking bar, make that label clickable to open the change sorter. :-)
=============== Diff against Morphic-mt.1541 ===============
Item was added: + ----- Method: DockingBarMorph>>addUpdatingItem: (in category 'construction') ----- + addUpdatingItem: aBlock + | item | + item := DockingBarUpdatingItemMorph new. + aBlock value: item. + self addMorphBack: item!
Item was added: + ----- Method: DockingBarMorph>>items (in category 'accessing') ----- + items + + ^ submorphs select: [:m | m isKindOf: MenuItemMorph]!
Item was added: + UpdatingMenuItemMorph subclass: #DockingBarUpdatingItemMorph + instanceVariableNames: '' + classVariableNames: '' + poolDictionaries: '' + category: 'Morphic-Menus-DockingBar'!
Item was added: + ----- Method: DockingBarUpdatingItemMorph>>decorateOwner (in category 'as yet unclassified') ----- + decorateOwner + + "Ignore."!
Item was added: + ----- Method: DockingBarUpdatingItemMorph>>mouseEnter: (in category 'as yet unclassified') ----- + mouseEnter: evt + "Do not hover docking bar items directory. Mouse-down required. But if you already see a submenu, support hovering." + + owner selectedItem ifNotNil: [owner selectItem: self event: evt]!
Item was added: + ----- Method: TheWorldMainDockingBar>>browseChanges (in category 'right side') ----- + browseChanges + + ChangeSorter open.!
Item was added: + ----- Method: TheWorldMainDockingBar>>browseChangesLabel (in category 'right side') ----- + browseChangesLabel + "The project name is the same as the current change set." + + ^ Project current name!
Item was changed: ----- Method: TheWorldMainDockingBar>>createDockingBar (in category 'construction') ----- createDockingBar "Create a docking bar from the receiver's representation" | dockingBar | dockingBar := DockingBarMorph new adhereToTop; borderWidth: 0. self fillDockingBar: dockingBar. + "self labelIfNeeded: dockingBar." - self labelIfNeeded: dockingBar. ^ dockingBar!
Item was removed: - ----- Method: TheWorldMainDockingBar>>labelIfNeeded: (in category 'private') ----- - labelIfNeeded: aDockingBar - "Label the given docking bar with the project name, if needed" - (aDockingBar submorphWithProperty: #projectNameMorph) - contents: (Project current isTopProject ifTrue: [''] ifFalse: [Project current name]); - fitContents!
Item was changed: ----- Method: TheWorldMainDockingBar>>projectNameOn: (in category 'right side') ----- projectNameOn: aDockingBar + + aDockingBar addUpdatingItem: [:item | + item + help: 'Browse this project''s changes'; + target: self; + selector: #browseChanges; + wordingProvider: self + wordingSelector: #browseChangesLabel].! - | morph | - morph := StringMorph contents: ''. - morph - color: (self userInterfaceTheme textColor ifNil: [Color black]); - font: (self userInterfaceTheme font ifNil: [TextStyle defaultFont]). - morph setProperty: #projectNameMorph toValue: #projectNameMorph. - aDockingBar addMorphBack: morph. - self labelIfNeeded: aDockingBar!
Item was changed: ----- Method: TheWorldMainDockingBar>>updateIfNeeded: (in category 'private') ----- updateIfNeeded: aDockingBar "Update the given docking bar if needed" | timeStamp | timeStamp := aDockingBar valueOfProperty: #mainDockingBarTimeStamp ifAbsent: []. timeStamp ~= self class timeStamp ifTrue: [aDockingBar release; removeAllMorphs. + self fillDockingBar: aDockingBar]! - self fillDockingBar: aDockingBar] - ifFalse: - [self labelIfNeeded: aDockingBar]!
Item was added: + ----- Method: UpdatingMenuItemMorph>>decorateOwner (in category 'world') ----- + decorateOwner + + MenuIcons decorateMenu: owner.!
Item was changed: ----- Method: UpdatingMenuItemMorph>>updateContents (in category 'world') ----- updateContents "Update the receiver's contents"
| newString enablement nArgs | ((wordingProvider isNil) or: [wordingSelector isNil]) ifFalse: [ nArgs := wordingSelector numArgs. newString := nArgs = 0 ifTrue: [wordingProvider perform: wordingSelector] ifFalse: [(nArgs = 1 and: [wordingArgument notNil]) ifTrue: [wordingProvider perform: wordingSelector with: wordingArgument] ifFalse: [nArgs == arguments size ifTrue: [wordingProvider perform: wordingSelector withArguments: arguments]]]. newString = (self contentString ifNil: [ contents ]) ifFalse: [self contents: newString. + self decorateOwner ]]. - MenuIcons decorateMenu: owner ]]. enablementSelector ifNotNil: [(enablement := self enablement) == isEnabled ifFalse: [self isEnabled: enablement]]!
packages@lists.squeakfoundation.org