[squeak-dev] The Trunk: Morphic-kfr.1418.mcz

David T. Lewis lewis at mail.msen.com
Sun Apr 22 14:10:04 UTC 2018


Hi Karl,

I used the web interface to delete version Morphic-kfr.1418.

You will need to do "MCFileBasedRepository flushAllCaches" in your image,
and probably delete the file in your package-cache directory also.

Usually it is best not to delete versions the way I just did, but in this
case the version history seemed to be causing problems, so I deleted it.

If anyone has problems with a recently updated image, please revert back
to Morphic-cmm.1417 and do a flushAllCaches.

Dave


On Sun, Apr 22, 2018 at 11:50:59AM +0200, karl ramberg wrote:
> Hm,
> Bogus ancestry for this commit :-(
> Can it be deleted ?
> 
> Best,
> Karl
> 
> On Sun, Apr 22, 2018 at 11:31 AM, <commits at source.squeak.org> wrote:
> 
> > Karl Ramberg uploaded a new version of Morphic to project The Trunk:
> > http://source.squeak.org/trunk/Morphic-kfr.1418.mcz
> >
> > ==================== Summary ====================
> >
> > Name: Morphic-kfr.1418
> > Author: kfr
> > Time: 22 April 2018, 11:30:41.518937 am
> > UUID: d6dd46c1-fa46-5043-bf0d-8b4542cf733d
> > Ancestors: Morphic-kfr.1416, Morphic-cmm.1417
> >
> > Some maintenance to ScorePlayerMorph.
> > Fixing some layout issues.
> > Add menu options to make a new score and add tracks to the score.
> >
> > =============== Diff against Morphic-kfr.1416 ===============
> >
> > Item was changed:
> >   ----- Method: ProportionalSplitterMorph>>balanceOffsets (in category
> > 'layout') -----
> >   balanceOffsets
> > +       (self valueOfProperty: #fullDelta) ifNil: [self setProperty:
> > #fullDelta toValue: (0 at 0)] .
> >
> >         self layoutFrame hasFixedHeight ifTrue: [
> >                 | otop obot ctop cbot topf |
> >
> >                 otop := (owner submorphs detect: [:m |
> >                                         m layoutFrame topFraction isZero]
> > ifNone: [^ self]) in: [:tm |
> >                                                 tm top - (tm layoutFrame
> > topOffset ifNil: [0])].
> >
> >                 obot := (owner submorphs detect: [:m |
> >                                         m layoutFrame bottomFraction = 1]
> > ifNone: [^ self]) in: [:tm |
> >                                                 tm bottom - (tm
> > layoutFrame bottomOffset ifNil: [0])].
> >
> >                 ctop := (self layoutFrame topFraction * (obot - otop))
> > rounded
> >                                         + otop + (self layoutFrame
> > topOffset ifNil: [0]).
> >                 cbot := (self layoutFrame bottomFraction * (obot - otop))
> > rounded
> >                                         + otop + (self layoutFrame
> > bottomOffset ifNil: [0]).
> >
> >                 topf := self layoutFrame topFraction.
> >                 self layoutFrame topFraction:  ((ctop + cbot) * 0.5 -
> > otop) / (obot - otop) asFloat.
> >                 self layoutFrame bottomFraction: self layoutFrame
> > topFraction.
> >                 self layoutFrame topOffset: ctop -
> >                         (self layoutFrame topFraction * (obot - otop) +
> > otop) rounded.
> >                 self layoutFrame bottomOffset: cbot -
> >                         (self layoutFrame bottomFraction * (obot - otop) +
> > otop) rounded..
> >
> >                 (leftOrTop copy union: rightOrBottom) do: [:m |
> >                         (m layoutFrame topFraction closeTo: topf) ifTrue: [
> >                                 m layoutFrame topFraction: self
> > layoutFrame topFraction.
> >                                 m layoutFrame topOffset:
> >                                         m layoutFrame topOffset - (self
> > valueOfProperty: #fullDelta) y].
> >                         (m layoutFrame bottomFraction closeTo: topf)
> > ifTrue: [
> >                                 m layoutFrame bottomFraction: self
> > layoutFrame topFraction.
> >                                 m layoutFrame bottomOffset:
> >                                         m layoutFrame bottomOffset - (self
> > valueOfProperty: #fullDelta) y.]]] .
> >
> >         self layoutFrame hasFixedWidth ifTrue: [
> >                 | oleft oright cleft cright leftf |
> >
> >                 oleft := (owner submorphs detect: [:m |
> >                         m layoutFrame leftFraction isZero] ifNone: [^
> > self]) in: [:tm |
> >                                 tm left - (tm layoutFrame leftOffset
> > ifNil: [0])].
> >
> >                 oright := (owner submorphs detect: [:m |
> >                         m layoutFrame rightFraction = 1] ifNone: [^ self])
> > in: [:tm |
> >                                 tm right - (tm layoutFrame rightOffset
> > ifNil: [0])].
> >
> >                 cleft := (self layoutFrame leftFraction * (oright -
> > oleft)) rounded
> >                                         + oleft + (self layoutFrame
> > leftOffset ifNil: [0]).
> >                 cright := (self layoutFrame rightFraction * (oright -
> > oleft)) rounded
> >                                         + oleft + (self layoutFrame
> > rightOffset ifNil: [0]).
> >
> >                 leftf := self layoutFrame leftFraction.
> >                 self layoutFrame leftFraction: ((cleft + cright) * 0.5 -
> > oleft) / (oright - oleft) asFloat.
> >                 self layoutFrame rightFraction: self layoutFrame
> > leftFraction.
> >
> >                 self layoutFrame leftOffset: cleft -
> >                         (self layoutFrame leftFraction * (oright - oleft)
> > + oleft) rounded.
> >                 self layoutFrame rightOffset: cright -
> >                         (self layoutFrame rightFraction * (oright - oleft)
> > + oleft) rounded.
> >
> >                 (leftOrTop copy union: rightOrBottom) do: [:m |
> >                         (m layoutFrame leftFraction closeTo: leftf)
> > ifTrue: [
> >                                 m layoutFrame leftFraction: self
> > layoutFrame leftFraction.
> >                                 m layoutFrame leftOffset:
> >                                         m layoutFrame leftOffset - (self
> > valueOfProperty: #fullDelta) x].
> >                         (m layoutFrame rightFraction closeTo: leftf)
> > ifTrue: [
> >                                 m layoutFrame rightFraction: self
> > layoutFrame leftFraction.
> >                                 m layoutFrame rightOffset:
> >                                         m layoutFrame rightOffset - (self
> > valueOfProperty: #fullDelta) x.]]] .
> >
> >         self removeProperty: #fullDelta.
> >         owner layoutChanged
> >   !
> >
> > Item was changed:
> >   ----- Method: ProportionalSplitterMorph>>step (in category 'events')
> > -----
> >   step
> >         splitsTopAndBottom
> >                 ifTrue: [ self reduceTopBottomImbalance ]
> >                 ifFalse:
> >                         [ self reduceLeftRightImbalance abs > 1 ifTrue:
> >                                 [ self splittersLeftDo:
> >                                         [ : splitter | splitter
> > reduceLeftRightImbalance ].
> >                                 self splittersRightDo:
> > +                                       [ : splitter | splitter
> > reduceLeftRightImbalance ] ] ].
> > +       self balanceOffsets!
> > -                                       [ : splitter | splitter
> > reduceLeftRightImbalance ] ] ]!
> >
> > Item was added:
> > + ----- Method: ScorePlayerMorph>>addNewScore (in category 'menu') -----
> > + addNewScore
> > +       "Open a MIDI score and re-init controls..."
> > +       | score player |
> > +
> > +       score := MIDIScore new.
> > +       score tracks: (Array with: Array new).
> > +       score trackInfo: #('Instrument').
> > +       player := ScorePlayer onScore: score.
> > +       ^self onScorePlayer: player title: 'new'!
> >
> > Item was added:
> > + ----- Method: ScorePlayerMorph>>addTrackToScore (in category 'menu')
> > -----
> > + addTrackToScore
> > +       "add a instrument track to the current score"
> > +       | score tracks trackInfo player |
> > +       score := scorePlayer score.
> > +       tracks := score tracks copyWith:#().
> > +       score tracks: tracks.
> > +       trackInfo := score trackInfo copyWith: 'Instrument'.
> > +       score trackInfo: trackInfo.
> > +       player := ScorePlayer onScore: score.
> > +       ^self onScorePlayer: player title: 'new'!
> >
> > Item was changed:
> >   ----- Method: ScorePlayerMorph>>invokeMenu (in category 'menu') -----
> >   invokeMenu
> >         "Invoke a menu of additonal functions for this ScorePlayer."
> > -
> >         | aMenu |
> >         aMenu := MenuMorph new defaultTarget: self.
> > +       aMenu add: 'add a new score' translated action: #addNewScore.
> > +       aMenu add: 'add a new track to score' translated action:
> > #addTrackToScore.
> >         aMenu add: 'open a MIDI file' translated action: #openMIDIFile.
> > +       aMenu addList: {#-. {'save as AIFF file' translated. #saveAsAIFF}.
> > {'save as WAV file' translated. #saveAsWAV}. {'save as Sun AU file'
> > translated. #saveAsSunAudio}. #-}.
> > +       aMenu
> > +               add: 'reload instruments' translated
> > +               target: AbstractSound
> > +               selector: #updateScorePlayers.
> > -       aMenu addList: {
> > -               #-.
> > -               {'save as AIFF file' translated.        #saveAsAIFF}.
> > -               {'save as WAV file' translated.         #saveAsWAV}.
> > -               {'save as Sun AU file' translated.      #saveAsSunAudio}.
> > -               #-}.
> > -       aMenu add: 'reload instruments' translated target: AbstractSound
> > selector: #updateScorePlayers.
> >         aMenu addLine.
> >         scorePlayer midiPort
> > +               ifNil: [aMenu add: 'play via MIDI' translated action:
> > #openMIDIPort]
> > +               ifNotNil: [aMenu add: 'play via built in synth' translated
> > action: #closeMIDIPort.
> > -               ifNil: [
> > -                       aMenu add: 'play via MIDI' translated action:
> > #openMIDIPort]
> > -               ifNotNil: [
> > -                       aMenu add: 'play via built in synth' translated
> > action: #closeMIDIPort.
> >                         aMenu add: 'new MIDI controller' translated
> > action: #makeMIDIController:].
> >         aMenu addLine.
> >         aMenu add: 'make a pause marker' translated action:
> > #makeAPauseEvent:.
> > +       aMenu popUpInWorld: self world!
> > -
> > -       aMenu popUpInWorld: self world.
> > - !
> >
> > Item was changed:
> >   ----- Method: ScorePlayerMorph>>onScorePlayer:title: (in category
> > 'initialization') -----
> >   onScorePlayer: aScorePlayer title: scoreName
> >         | divider col r |
> >         scorePlayer := aScorePlayer.
> >         scorePlayer ifNotNil:
> >                 [scorePlayer  reset.
> >                 instrumentSelector := Array new: scorePlayer score tracks
> > size].
> >
> >         self removeAllMorphs.
> >         self addMorphBack: self makeControls.
> >         scorePlayer ifNil: [^ self].
> >
> >         r := self makeRow
> > +               hResizing: #spaceFill;
> > -               hResizing: #shrinkWrap;
> >                 vResizing: #shrinkWrap.
> >         r addMorphBack: self rateControl;
> >                 addMorphBack: (Morph newBounds: (0 at 0 extent: 20 at 0) color:
> > Color transparent);
> >                 addMorphBack: self volumeControl.
> >         self addMorphBack: r.
> >         self addMorphBack: self scrollControl.
> >
> >         col := AlignmentMorph newColumn color: color; layoutInset: 0.
> >         self addMorphBack: col.
> >         1 to: scorePlayer trackCount do: [:trackIndex |
> >                 divider := AlignmentMorph new
> >                         extent: 10 at 1;
> >                         borderWidth: 1;
> >                         layoutInset: 0;
> >                         borderColor: #raised;
> >                         color: color;
> >                         hResizing: #spaceFill;
> >                         vResizing: #rigid.
> >                 col addMorphBack: divider.
> >                 col addMorphBack: (self trackControlsFor: trackIndex)].
> >
> >         LastMIDIPort ifNotNil: [
> >                 "use the most recently set MIDI port"
> >                 scorePlayer openMIDIPort: LastMIDIPort].
> >   !
> >
> > Item was changed:
> >   ----- Method: ScorePlayerMorph>>rateControl (in category 'layout') -----
> >   rateControl
> >
> >         | rateSlider middleLine r |
> >         rateSlider := SimpleSliderMorph new
> >                 color: color;
> >                 sliderColor: Color gray;
> > +               extent: 180 at 12;
> > -               extent: 180 at 6;
> >                 target: self;
> >                 actionSelector: #setLogRate:;
> >                 minVal: -1.0;
> >                 maxVal: 1.0;
> >                 adjustToValue: 0.0.
> >         middleLine := Morph new  "center indicator for pan slider"
> >                 color: (Color r: 0.4 g: 0.4 b: 0.4);
> >                 extent: 1@(rateSlider height - 4);
> >                 position: rateSlider center x@(rateSlider top + 2).
> >         rateSlider addMorphBack: middleLine.
> >         r := self makeRow
> > +               hResizing: #spaceFill;
> > -               hResizing: #shrinkWrap;
> >                 vResizing: #rigid;
> >                 height: 24.
> >         r addMorphBack: (StringMorph contents: 'slow ' translated).
> >         r addMorphBack: rateSlider.
> >         r addMorphBack: (StringMorph contents: ' fast' translated).
> >         ^ r
> >   !
> >
> > Item was changed:
> >   ----- Method: ScorePlayerMorph>>scrollControl (in category 'layout')
> > -----
> >   scrollControl
> >
> >         | r |
> >         scrollSlider := SimpleSliderMorph new
> >                 color: color;
> >                 sliderColor: Color gray;
> > +               extent: 360 at 12;
> > -               extent: 360 at 6;
> >                 target: scorePlayer;
> >                 actionSelector: #positionInScore:;
> >                 adjustToValue: scorePlayer positionInScore.
> >         r := self makeRow
> > +               hResizing: #spaceFill;
> > -               hResizing: #shrinkWrap;
> >                 vResizing: #rigid;
> >                 height: 24.
> >         r addMorphBack: (StringMorph contents: 'start ' translated).
> >         r addMorphBack: scrollSlider.
> >         r addMorphBack: (StringMorph contents: ' end' translated).
> >         ^ r
> >   !
> >
> > Item was changed:
> >   ----- Method: ScorePlayerMorph>>trackNumAndMuteButtonFor: (in category
> > 'layout') -----
> >   trackNumAndMuteButtonFor: trackIndex
> >
> >         | muteButton instSelector pianoRollColor r |
> >         muteButton := SimpleSwitchMorph new
> >                 onColor: (Color r: 1.0 g: 0.6 b: 0.6);
> >                 offColor: color;
> >                 color: color;
> >                 label: 'Mute' translated;
> >                 target: scorePlayer;
> >                 actionSelector: #mutedForTrack:put:;
> >                 arguments: (Array with: trackIndex).
> >         instSelector := PopUpChoiceMorph new
> >                 extent: 95 at 14;
> >                 contentsClipped: 'oboe1';
> >                 target: self;
> >                 actionSelector: #atTrack:from:selectInstrument:;
> >                 getItemsSelector: #instrumentChoicesForTrack:;
> >                 getItemsArgs: (Array with: trackIndex).
> >         instSelector arguments:
> >                 (Array with: trackIndex with: instSelector).
> >         instrumentSelector at: trackIndex put: instSelector.
> >
> >         "select track color using same color list as PianoRollScoreMorph"
> >         pianoRollColor := (Color wheel: scorePlayer score tracks size) at:
> > trackIndex.
> >
> >         r := self makeRow
> >                 hResizing: #spaceFill;
> >                 vResizing: #spaceFill;
> >                 extent: 70 at 10.
> >         r addMorphBack:
> >                 ((StringMorph
> >                         contents: trackIndex printString
> >                         font: (TextStyle default fontOfSize: 24)) color:
> > pianoRollColor).
> >         trackIndex < 10
> >                 ifTrue: [r addMorphBack: (Morph new color: color; extent:
> > 19 at 8)]  "spacer"
> >                 ifFalse: [r addMorphBack: (Morph new color: color; extent:
> > 8 at 8)].  "spacer"
> >         r addMorphBack:
> >                 (StringMorph new
> > +                       extent: 80 at 14;
> > -                       extent: 140 at 14;
> >                         contentsClipped: (scorePlayer infoForTrack:
> > trackIndex)).
> >         r addMorphBack: (Morph new color: color; extent: 8 at 8).  "spacer"
> >         r addMorphBack: instSelector.
> >         r addMorphBack: (AlignmentMorph newRow color: color).  "spacer"
> >         r addMorphBack: muteButton.
> >         ^ r
> >   !
> >
> > Item was changed:
> >   ----- Method: ScorePlayerMorph>>volumeControl (in category 'layout')
> > -----
> >   volumeControl
> >
> >         | volumeSlider r |
> >         volumeSlider := SimpleSliderMorph new
> >                 color: color;
> >                 sliderColor: Color gray;
> > +               extent: 80 at 12;
> > -               extent: 80 at 6;
> >                 target: scorePlayer;
> >                 actionSelector: #overallVolume:;
> >                 adjustToValue: scorePlayer overallVolume.
> >         r := self makeRow
> > +               hResizing: #spaceFill;
> > -               hResizing: #shrinkWrap;
> >                 vResizing: #rigid;
> >                 height: 24.
> >         r addMorphBack: (StringMorph contents: 'soft  ' translated).
> >         r addMorphBack: volumeSlider.
> >         r addMorphBack: (StringMorph contents: ' loud' translated).
> >         ^ r
> >   !
> >
> >
> >

> 



More information about the Squeak-dev mailing list