How does the quick scroll work in OmniBrowser's columns?

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

How does the quick scroll work in OmniBrowser's columns?

Damien Pollet
Hi,

In OB you can hit a key with the mouse over a column and the selection
will go to the 1st item whose name starts with the letter you typed.
Quickly typing a few letters will jump to the 1st item with that
prefix.

I'd like to add that to the OB Universe Browser, but it doesn't seem
to be a command in OB-Standard... how does it work ?

PS. in OB this works in the columns for packages, protocols and
methods, but not in the class column (it briefly blinks in black
instead).

--
Damien Pollet
type less, do more [ | ] http://typo.cdlm.fasmz.org

Reply | Threaded
Open this post in threaded view
|

Re: How does the quick scroll work in OmniBrowser's columns?

K. K. Subramaniam
On Wednesday 02 May 2007 10:51 pm, Damien Pollet wrote:
> Hi,
>
> In OB you can hit a key with the mouse over a column and the selection
> will go to the 1st item whose name starts with the letter you typed.
> Quickly typing a few letters will jump to the 1st item with that
> prefix.
I find it easier to pick items from a pop-up menu or list when the cursor
iterates over items that starts with the key pressed (like in file managers),
rather than treat the key as starting a filter. Perhaps, being a typist, I
tend to put both hands on the home row when typing out words in full. Single
key press is like clicking a button, so I dont take my hand away from the
mouse. Prefix-based completion is nice when I am typing out in a text field
(e.g. Location in browsers, Spotlight on Mac OSX or Run Command on Linux). I
found Squeak filtering in menus and file lists a bit disconcerting.

I wonder if others have a different experience,
Subbu

Reply | Threaded
Open this post in threaded view
|

Re: How does the quick scroll work in OmniBrowser's columns?

David Röthlisberger
In reply to this post by Damien Pollet
Hi Damien,

> In OB you can hit a key with the mouse over a column and the selection
> will go to the 1st item whose name starts with the letter you typed.
> Quickly typing a few letters will jump to the 1st item with that
> prefix.
>
> I'd like to add that to the OB Universe Browser, but it doesn't seem
> to be a command in OB-Standard... how does it work ?

This is standard behavior of PluggableListMorph which is used by OB to display all
nodes of an OBColumn. See method #basicKeyPressed: aChar in class PluggableListMorph.

> PS. in OB this works in the columns for packages, protocols and
> methods, but not in the class column (it briefly blinks in black
> instead).

I think this is a bug that it doesn't work for classes. I checked the method
#basicKeyPressed: a bit, the fourth last line reads:

nextSelection := self getList findFirst: [:a | a == nextSelectionText].

Changing '==' to '=' solves the problem for me.
The reason is that the elements of the columns are symbols for packages, protocols
and methods, but for classes they are Texts. That's why the condition '==' never
evaluates to true, since the nodes are always newly generated when invoking #getText.
A symbol with the same content is always the same object, so there the condition
evaluates to true for the correct node, but this is not hold for Texts.

So maybe you are also using Texts for the nodes in the OB Universe Browser?

Kind regards,
David


Reply | Threaded
Open this post in threaded view
|

Re: How does the quick scroll work in OmniBrowser's columns?

Damien Pollet
In reply to this post by K. K. Subramaniam
On 03/05/07, subbukk <[hidden email]> wrote:
> > In OB you can hit a key with the mouse over a column and the selection
> > will go to the 1st item whose name starts with the letter you typed.
> > Quickly typing a few letters will jump to the 1st item with that
> > prefix.
> I find it easier to pick items from a pop-up menu or list when the cursor
> iterates over items that starts with the key pressed (like in file managers),
> rather than treat the key as starting a filter. Perhaps, being a typist, I

That's what I mean, pressing a key X means "go to next item starting
with X". You can press repeatedly (slower than some threshold I
suppose), and it will cycle through items starting with X.
If you type XYZ quickly (faster than said threshold) it will take this
as the prefix. As far as I experimented it's not a filter.

--
Damien Pollet
type less, do more [ | ] http://typo.cdlm.fasmz.org

Reply | Threaded
Open this post in threaded view
|

Re: How does the quick scroll work in OmniBrowser's columns?

Damien Pollet
In reply to this post by David Röthlisberger
On 03/05/07, David Röthlisberger <[hidden email]> wrote:
> Changing '==' to '=' solves the problem for me.

> So maybe you are also using Texts for the nodes in the OB Universe Browser?

Indeed we are. I could fix it by adding asSymbol averywhere but I
think the correct solution is to fix PluggableListMorph, which has
another small bug: if another key is pressed quickly (before 300ms),
it is appended to the lastKeystrokes. But if the current selection
still matches the additional keystroke, the selection *shouldn't*
change.

i will report that on mantis.
--
Damien Pollet
type less, do more [ | ] http://typo.cdlm.fasmz.org


Reply | Threaded
Open this post in threaded view
|

Re: How does the quick scroll work in OmniBrowser's columns?

Damien Pollet
On 03/05/07, Damien Pollet <[hidden email]> wrote:
> i will report that on mantis.

done:    http://bugs.squeak.org/view.php?id=6462

--
Damien Pollet
type less, do more [ | ] http://typo.cdlm.fasmz.org

Reply | Threaded
Open this post in threaded view
|

Re: How does the quick scroll work in OmniBrowser's columns?

Damien Cassou-3
2007/5/3, Damien Pollet <[hidden email]>:
> On 03/05/07, Damien Pollet <[hidden email]> wrote:
> > i will report that on mantis.
>
> done:    http://bugs.squeak.org/view.php?id=6462

If you want your fix to be accepted, I advice you to put your fix in a
mcz or a cs. You also have to put it here:
http://wiki.squeak.org/squeak/5934

--
Damien Cassou

Reply | Threaded
Open this post in threaded view
|

Re: How does the quick scroll work in OmniBrowser's columns?

Damien Pollet
On 03/05/07, Damien Cassou <[hidden email]> wrote:
> If you want your fix to be accepted, I advice you to put your fix in a
> mcz or a cs. You also have to put it here:

cs uploaded on mantis

> http://wiki.squeak.org/squeak/5934

this page is protected :(

--
Damien Pollet
type less, do more [ | ] http://typo.cdlm.fasmz.org