RubAbstractTextArea copying

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

RubAbstractTextArea copying

Stephan Eggermont-3
I'm trying to understand how to copy a rubric text morph.
I don't have a 2nd implementor of #text:textStyle:textColor
so how does this work?

RubAbstractTextArea>>text: t textStyle: s color: c textColor: tc
        "Private -- for use only in morphic duplication"
        self releaseParagraph.
        super text: t textStyle: s color: c textColor: tc.


Reply | Threaded
Open this post in threaded view
|

Re: RubAbstractTextArea copying

Henrik Nergaard
Hi Stephan,

I looked into the bug a bit and found something strange....

| m m2 |

m := ColorPanel open.
m2 := m submorphs third copy.
m = m2 panel. "prints false; the panel is duplicated "

-------------

add this method to DragWelL:

veryDeepInner: deepCopier
        super veryDeepInner: deepCopier

and it returns true.

Another observation is that after all the text is lost, if you have a Playground that is effected and try to do something like: (ColorPanel allInstances size.) it raises an error 'MessageNotUnderstood: receiver of "style:" is nil'  from "a GLMMorphicPharoPlaygroundRenderer actOnHighlightAndEvaluate: ann"

Hope this helps

Best regards,
Henrik

-----Original Message-----
From: Pharo-dev [mailto:[hidden email]] On Behalf Of Stephan Eggermont
Sent: Friday, September 18, 2015 4:09 PM
To: [hidden email]
Subject: [Pharo-dev] RubAbstractTextArea copying

I'm trying to understand how to copy a rubric text morph.
I don't have a 2nd implementor of #text:textStyle:textColor so how does this work?

RubAbstractTextArea>>text: t textStyle: s color: c textColor: tc
        "Private -- for use only in morphic duplication"
        self releaseParagraph.
        super text: t textStyle: s color: c textColor: tc.


Reply | Threaded
Open this post in threaded view
|

Re: RubAbstractTextArea copying

Stephan Eggermont-3
On 18-09-15 16:50, Henrik Nergaard wrote:
> I looked into the bug a bit and found something strange....
>
> | m m2 |
>
> m := ColorPanel open.
> m2 := m submorphs third copy.
> m = m2 panel. "prints false; the panel is duplicated "

Yes, that is a bug, that should stay the same.

> add this method to DragWelL:
>
> veryDeepInner: deepCopier
> super veryDeepInner: deepCopier

That seems to work.

> Another observation is that after all the text is lost,
 > if you have a Playground that is effected and try to do
 > something like: (ColorPanel allInstances size.) it raises
 > an error 'MessageNotUnderstood: receiver of "style:" is nil'
 > from "a GLMMorphicPharoPlaygroundRenderer actOnHighlightAndEvaluate: ann"

Yes. All editors break. That is independent of the ColorPanel, I've
verified with the cloning of cards. I just don't know how I can safely
copy a Rubric editor morph. Either directly, or through its textModel.

Stephan



Reply | Threaded
Open this post in threaded view
|

Re: RubAbstractTextArea copying

Henrik Nergaard
It does not seem that RubScrolledTextMorph supports duplication/copy (tried to duplicate one from nautilus code area and the same clear all code happened. Trying to duplicate a Playground just freezes the image (might be some circular references that is not handled when copying )).

Anyway: this code works ish.. (does not add unaccepted edits)

CodeCard>>#duplicate
        | newCard |
       
        newCard := self class new.
        newCard
        selector: self selector; "must be before selectedClass"
        selectedClass: self selectedClass;
        updateCodeWith: self textModel text.
        self activeHand attachMorph: newCard. "attachMorph: is nicer than grabMorph: :)"
        selected := false.
        self changed.


Best regards,
Henrik

-----Original Message-----
From: Pharo-dev [mailto:[hidden email]] On Behalf Of Stephan Eggermont
Sent: Friday, September 18, 2015 6:19 PM
To: [hidden email]
Subject: Re: [Pharo-dev] RubAbstractTextArea copying

On 18-09-15 16:50, Henrik Nergaard wrote:
> I looked into the bug a bit and found something strange....
>
> | m m2 |
>
> m := ColorPanel open.
> m2 := m submorphs third copy.
> m = m2 panel. "prints false; the panel is duplicated "

Yes, that is a bug, that should stay the same.

> add this method to DragWelL:
>
> veryDeepInner: deepCopier
> super veryDeepInner: deepCopier

That seems to work.

> Another observation is that after all the text is lost,
 > if you have a Playground that is effected and try to do  > something like: (ColorPanel allInstances size.) it raises  > an error 'MessageNotUnderstood: receiver of "style:" is nil'
 > from "a GLMMorphicPharoPlaygroundRenderer actOnHighlightAndEvaluate: ann"

Yes. All editors break. That is independent of the ColorPanel, I've verified with the cloning of cards. I just don't know how I can safely copy a Rubric editor morph. Either directly, or through its textModel.

Stephan



Reply | Threaded
Open this post in threaded view
|

Re: RubAbstractTextArea copying

Stephan Eggermont-3
On 18-09-15 22:52, Henrik Nergaard wrote:

> It does not seem that RubScrolledTextMorph supports duplication/copy (tried to duplicate one from nautilus code area and the same clear all code happened. Trying to duplicate a Playground just freezes the image (might be some circular references that is not handled when copying )).
>
> Anyway: this code works ish.. (does not add unaccepted edits)
>
> CodeCard>>#duplicate
> | newCard |
>
> newCard := self class new.
> newCard
> selector: self selector; "must be before selectedClass"
> selectedClass: self selectedClass;
> updateCodeWith: self textModel text.
> self activeHand attachMorph: newCard. "attachMorph: is nicer than grabMorph: :)"

> selected := false.
> self changed.
>

Thanks Henrik. I'm slowly getting to the finer points of Morphic.

Stephan