On Sun, Jul 24, 2016 at 02:35:13PM +0200, Yuriy Tymchuk wrote: > I’ve found a partial hack: > > whenEdited: aBlock > "Set a block to perform when the text wasEddited & the widget entered > hasUnacceptedEdits mode" > > hasUnacceptedEdits whenChangedDo: [ :val | > val ifTrue: aBlock value ] > > So now before the text is accepted I can block some other widgets
wtf is whenEdited: :-o There are couple of bugs I've reported last week in regards to this, because it's quite annoying. https://pharo.fogbugz.com/f/cases/18799/TextModel-whenTextChanged-and-whenTextIsAccepted-should-behave-differently https://pharo.fogbugz.com/f/cases/18800/TextModel-has-inconsistent-text-changed-API I guess whenEdited: should be added to those issues. Btw, what are you trying to do? Because I was playing around with custom styling for my DSL (parsed & highlighted by PetitParser), but got stopped by this same issue. Do you use a similar setup? Could we extrapolate something generically useful from this? Peter > > Uko > > > On 24 Jul 2016, at 14:17, Nicolai Hess <[email protected]> wrote: > > > > > > > > 2016-07-24 13:45 GMT+02:00 Yuriy Tymchuk <[email protected] > > <mailto:[email protected]>>: > > There is #pendingText to access it, finally found that. Now I want to > > detect when someone starts typing and do actions (like disable something > > until the text is accepted). There is whenTextChanged: but it’s not that > > useful because it checks if the accepted text has changed. Is there a way > > to check if pendingCode has changed? Or if the model is entering > > “hasUnacceptedEdits”? > > > > No :( > > > > I don't think this is possible. > > You could turn autoAccept to true and listen for set a whenTextChanged > > block, but of course, you can not display "unaccepted" text anymore, > > because all text is accepted. > > > > Uko > > > >> On 24 Jul 2016, at 12:48, Yuriy Tymchuk <[email protected] > >> <mailto:[email protected]>> wrote: > >> > >> Cool. Thank you Nicolai. While we are on this, is there an example of how > >> to display the parsing/compilation error as is done in playground? > >> > >> Uko > >> > >> > >>> On 24 Jul 2016, at 11:37, Nicolai Hess <[email protected] > >>> <mailto:[email protected]>> wrote: > >>> > >>> > >>> > >>> 2016-07-24 11:35 GMT+02:00 Nicolai Hess <[email protected] > >>> <mailto:[email protected]>>: > >>> > >>> > >>> 2016-07-24 11:14 GMT+02:00 Yuriy Tymchuk <[email protected] > >>> <mailto:[email protected]>>: > >>> Hi, > >>> > >>> at some moment I wrote a super angry comment about Spec. But as there is > >>> a big effort put into documentation & improving the framework I’ve > >>> decided to give it another try. > >>> > >>> And guess what, after 10 min I ran into yet one more problem. I was > >>> expecting that it will be tough to have a custom styling for code, but no > >>> it’s much simpler: how do I get a text from text model? I type something > >>> in, sent #getText to the model => nothing. I expect that the problem is > >>> that the text is not accepted… Why in the first place a basic text model > >>> needs this “accept” stuff? What if I have just a dialog where someone > >>> types something and submits it? I don’t need accepts with orange corners > >>> for that. > >>> > >>> textmodel autoAccept: true. > >>> > >>> > >>> I think that you’ve got the idea. I just want to build a simple UI and it > >>> looks like it’s easier to do it with Morphic… > >>> > >>> Cheers. > >>> Uko > >>> > >>> > >>> But I agree, it is not *that* obvious and I think the behavior even > >>> changed as we replaced the PluggableTextMorph with Rubric ones - (maybe?) > >>> > >>> Anyway, maybe we need a way to distinguish between > >>> - get visible text (view get text?) > >>> and > >>> - get accepted text (model get text?) > >>> > >>> nicolai > >>> > >> > > > > >
