[squeak-dev] deselection broken in method list

Eliot Miranda eliot.miranda at gmail.com
Mon Jul 28 05:12:19 UTC 2014

Hi Chris,

On Sat, Jul 26, 2014 at 9:53 AM, Chris Muller <asqueaker at gmail.com> wrote:

>  > > Hi All,
>>>> > >
>>>> > >     I depend heavily on fileOutAll in method list browsers.  For
>>>> example, I'm trying to create versions of the VM's boolean cheat code for
>>>> the Sista bytecode set and do this by filing out the code for the Newspeak
>>>> set and editing it.  I tried to do this using "self systemNavigation
>>>> browseAllSelect: [:m| ('*ooleanCheat*V*' match: m selector) or: [m
>>>> sendsSelector: #booleanCheatV4:]]" to get a method list browser.  Then I
>>>> was expecting to be able to use file out with nothing in the list selected.
>>>>  This files out all methods in the list but...
>>>> > >
>>>> > > Deselection is broken!  I can't deselect the first item and hence
>>>> can only file out a single definition .  Will whoever changed this please
>>>> restore it asap? (in trunk)
>>>> > >
>>>> > >
>>>> > > Hi again, hey, I just realized!  There is a way to deselect in the
>>>> MessageTrace.  It's called "Invert Level Selection" and its on the "more"
>>>> menu (Shift+yellow click).
>>>> > >
>>>> > > Hot key for it is Command+Shift+I (capital "eye").
>>>> > >
>>>> >
>>>> > Wasn't that ?DoIt and invoke the inspector? ?
>>> No, that's only from a code pane.  We're talking about from the upper
>>> pane of a MessageTrace or MessageSet.
>>> But now I see I misspoke -- because I had been experimenting with Eliots
>>> question from a MessageTrace with only one message it it.
>>> This is something I've wnated fixed for a long time, I'll see if I can
>>> spend a little time wiht it today and solve it.
>>> BTW, why is it intuitive at all that NO SELECTION means ALL SELECTION
>>> for filing out?  Talk about unintuitive -- THAT sounds like it would be a
>>> bug in itself but, whatever..
>> Nonsense ;-)  A selection in a list means one thing in the list.  What
>> else can nothing in the list be interpreted as?
> That's a logical choice for the browser that only supports 0-or-1
> selection.  But the MessageTrace browser only currently supports 1-to-many
> selection, so to file them all out you would simply select them all.

When I use multiple select followed by fileOut in the message trace only
the first selection is printed out.  So multiple select is broken at least
for file out.

In the latter case, What-Is-Selected = What-Is-Filed-Out, which is
> intuitive and consistent.  In the former case, the user has to make the
> translation that "Zero-Selection = All-Filed-Out" which puts the UI's
> behavior briefly into their cognitive view (a higher level than the
> intuitive level).  That's all I meant.

Except that, at least in the case of fileOut, multiple select isn't

>  It is either nothing selected or "the list".  Of course it's intuitive.
>> If one says "file out" to a list of items it is natural for that command to
>> apply to the whole list.  You're not seeing the trees for the forest.
>>>> To focus on Eliot's original question: The deselection mechanism works
>>>> in Squeak4.5-13352.image. It does not work in trunk now.
>>> No, nothing has changed other than the traceMessages preference being
>>> set, which is way more important than occasionally filing out methods of a
>>> list.
>> It's not about what is more important.  It is about /not breaking
>> things/.
> Eliot, I'm sorry to repeat myself but, _nothing has changed_.  Nothing is
> broken that wasn't "broken" before.
> MessageSet is a 0-or-1 selection, period.  MessageTrace selection is
> 1-to-many and has been for many years.  You could very easily select them
> all and then file them out (and, I'm sorry I didn't mention that before!).
>  In spite of that easy work-around, I offered in my last note to spend time
> looking into it MessageTrace supporting 0-to-many selection.
> And your value judgement that trace messages is way more important is just
>> that, a value judgement.
>  Trace messages drives me mad.  There is no back button.  If there was a
>> back button then it could be helpful, but without a back button it is
>> hugely irritating much of the time.  i.e. "I want a list of senders of foo;
>> ok, got the list, now do a whole lot of reading based around that. Oh s**t,
>> I juts drilled down and now my original list is nested and I've lost my
>> context, and... there's no back button".
> No browser in Squeak has a "back button."  Squeak's UI has always been
> that you can navigate FROM anywhere, TO anywhere, instantly, which is
> multifold more productive than breadcrumbs and modal browsing.  For the
> case above, your "back button" would be simply Command+d, or the up-arrow.
>  Did you even try that?
> Makes me wonder if you've given MessageTrace a fair-shake..  :(
> Chris, you can't just change the tools to suit your whim because you're
>> release manager.
> 4.5 had a very deliberately selected collection of
> productivity-improvements to the IDE by addressing long-standing issues
> that have plagued Smalltalk IDE's since the 1980's, like
> window-proliferation.  It's clear you prefer modal browsing, and possibly
> why you think they were "whimsical" changes.  They were not.
> The tools need to improve without breaking old workflows.
> I hope you now agree, no workflow was "broken".  You were just so
> accustomed to "Zero Selection = All Selection" that it didn't occur to us
> that "All selection = All selection".  :)
> Dude, I'd like to work on the upgrades you suggested for the mc history.
>  Since it's clear you don't like MessageTrace anyway, you now have TWO
> workarounds, and since I assume you'll just change your preference setting,
> I'm gonna go back to working on those mc history improvements rather than
> fiddle with MessageTrace to make it 0-to-many...  Okay?

It's OK.  But the issue with MessageSet was that the BrowserRequestor did
break no-select fileOut by, when augmenting a menu in a message set with
nothing selected, prompting for a selector and selecting what ever the
cursor was pointing at in the list.  I fixed this in Monticello-eem.595.

So I'm sort-of happy in that I have no-select fileOutAll working again in
the message set.  But I don't have it working in message trace, and the
message trace has no back button.

If message set had a back button and observed multiple-select for the
operations it provides I /would/ prefer it over message set.  It ain't
there yet.

Forgive the criticism.  It is not meant to be harsh.

 Deselecting with the Control key is broken in 4.5 and for a long time
>>> before that.  As I said, we should focus on letting that "isControlled"
>>> input var to MessageTrace>>#toggleSelectionAt:shifted:controlled: be
>>> able to come in as a "true" and then everything should just work...
>>> I'll see if there's an easy fix.
>> --
>> best,
>> Eliot
> --
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20140727/bbefaf46/attachment.htm

More information about the Squeak-dev mailing list