[squeak-dev] The Trunk: Morphic-kfr.1418.mcz
David T. Lewis
lewis at mail.msen.com
Sun Apr 22 16:41:45 UTC 2018
I re-saved Karl's update in Morphic-dtl.1418, which is the same as Morphic-kfr.1418
except for the fixed ancestry. I kept a copy of Karl's original MCZ file in case
of any problems.
Dave
On Sun, Apr 22, 2018 at 10:10:04AM -0400, David T. Lewis wrote:
> 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
|