Re: New List Dialog Ideas (LONG!)


Subject: Re: New List Dialog Ideas (LONG!)
From: Thomas Fletcher (thomasf@qnx.com)
Date: Tue Aug 08 2000 - 08:42:35 CDT


On Sat, 5 Aug 2000, Martin Sevior wrote:

> HI Thomas,
> Thanks very much for the time and effort you've put into this.
> I've known that our List implementation was not as USer Friendly as I
> would like and certainly the dialog looks ugly. I'll respond to your
> points.

Don't get me wrong, I think that the list work is great, and the
dialog is what we needed to be able to interface and test the work
that was done. I just think that it isn't very intuitive, and was
really a pain for me to build from code based on the Unix version,
since some of the interactions of various components were not clear.

> On Fri, 4 Aug 2000, Thomas Fletcher wrote:
> > Comment #1
> > ----------
> >
> > You should be able to turn a list item on/off by clicking
> > on the appropriate icon on the toolbar. For example if I
> > type the line:
> >
> > This is very cool |
> >
> > Then press the numbered list button I get (| is my cursor).
> >
> > 1. This is very cool |
> >
> > Now if I press the numbered list button again I get
> >
> > [1. ] |This is very cool
> >
> > Where [] indicates a selection. Unfortunately I can't
> > delete this area like it would seem. In any case you
> > shouldn't have to. Pressing the list icon should create
> > a list for the current line/block and Un-pressing the
> > list icon should un-do the list for the current line/block
> > (effectively joining it with the previous line).
> >
>
> This is a bug. I haven't noticed this. Certainly the list label
> should have dissapeared. I might have fixed this with the latest
> list update from yesterday. Can you check?

I just did a CVS update and checked this morning. It does
work as I suggested now, though when I "de-list" the item
I get an ASSERT at fl_BlockLayout.cpp:2106 --> UT_isWordDelimiter().

> > For example if I have created:
> > 1. A line
> > 2. Another line
> > 3. Yet another line
> >
> > Put my cursor on line 2 and "un-press" the list icon then
> > in Word I get:
> >
> > 1. A line
> > Another line
> > 2. Yet another line
> >
>
> We should get this now. I'm sure I got that in Linux.

Hmm yes ... well we sort of get this behaviour:

1. A line
2. Another line
3. Yet another line

Goes to

1. A line
Another line
2. Yet another line

Then toggling it back on we get:

1. A line
1. Another line
2. Yet another line

While I understand the behaviour (based on our other discussions), I'm
not convinced that I agree with it. I think that in the case where
you don't have any whitespace/paragraph boundaries and are sitting
between two lists, the two lists should merge (assuming the same
level and attributes).

[Highlighting a paragraph to "list" it snipped ]

> I agree that would be cool. This could be implemented. We will do it.
> (Bruce Pearson appears to have taken an interest in Lists and I wouldn't
> want to deprive him of his fun.:-)

Excellent!

> > Comment #2
> > ----------
> >
> > Word doesn't let you have an empty list item, which means
> > that you can quickly terminate a list at any time by hitting
> > return twice. For example if I have:
> >
> > 1. A line
> > 2. Another line |
> >
> > Then hit return once I get
> >
> > 1. A line
> > 2. Another line
> > 3. |
> >
> > Then hitting return again, Word detects that I've done a
> > double return and rips out the 3rd list item and does this:
> >
> > 1. A line
> > 2. Another line
> >
> > |
> >
> > Which is most likely what we would want since generally you
> > start a new paragraph/add a line of whitespace after a list.
>
> I agree with Bob here. If you want the list to stop just delete the list
> label. I hope this happens now.

I don't agree with Bob =;-) See my previous posting/follow-up
to his remarks to understand why we should provide both behaviours
if possible.

I also noticed this somewhat annoying bug:

This is a line |

Turning on the list does:

1. |This is a line

The fact that my cursor moves is really quite annoying. I'll file a
bugzilla entry for it, but just noticed the problem doing this example.

> > Alternately if I was at the
> >
> > 1. A line
> > 2. Another line
> > 3. |
> >
> > And hit backspace ONCE then line 3. dissappears and we get
> >
> > 1. A line
> > 2. Another line
> > |
> >
> > Currently we have to backspace TWICE to get this behaviour,
> > and then when we do the list button doesn't toggle off to
> > indicate that we are no longer in list selection mode, so
> > you can't re-toggle it to give you a 3.
>
> You hit backspace once to delete the tab and again to delete the list
> label. It is easier to program it this way but also there is an argument
> that this actually desirable behaviour. The user might want to get rid of
> the whitspace in front of the list label and just keep the list Label. You
> can't do this in Word. Hitting the backspace twice isn't that hard and it
> is obvious what each key press is doing.

Really? Wasn't obvious to me that that is what it was doing? (Of course
it wasn't deleting the list label either, but it is now). I think that
we should think about the lists labels and tabs as one continuous block,
and not as two seperate entities. If you wanted to get rid of the
whitespace in front of the label (or change it for that matter) you
should either be able to: 1) Use the custom labels dialog to make adjustments
2) Use the tabstop thingy on the top ruler/dialog to control where/what
the spacing is. This works for me right now.

> So do we want to immediately deleted the tab and list label with a single
> key press?

That would be my vote, but I am but one voice here.

> The list button should pop out at this point. The fact that it doesn't is
> a bug. If you press it again anyway you will start a new list with a "1".
> If you want a "3" you can either go back to the previous line and press
> "return" or open the dialog and press "resume list".

Ok the button doesn't pop-up with this build after deleting a list
item, but it does work as you described. Again though it means I
have to hit delete, delete, return before I can get back to resuming
my list. My argument would be that we should be putting a 3. here
as this is the most likely high runner case. It isn't very often
that you want to have two lists one following the other without
any whitespace in between. For those low runner cases then I would
say that it would be acceptable to make the user to

1. An item
2. Another item
[return]
1. New list

Then press delete to move the list up a line so that it is

1. An item
2. Another item
1. New list

> Also are you sure you want a "3." here? You might also want to start a new
> list.

Agreed, but I don't think that this is the high runner case.

> > Comment #3
> > ----------
> >
> > Word has three different modes/categories for their lists.
> > Bullets and Numbered lists are a single depth list very
> > much like what we have now. Their third category is
> > Outline Numbered which is like:
> >
> > 1.
> > a.
> > i.
> >
>
> I think this is what I've been thinking of as multi-level lists but right
> now these are:
>
> 1.
> 2.
> 3.
> 4.1
> 4.2
> 4.3
> 4.4.1
> 4.4.2
>
> etc. so there are no indents are extra level. We can choosing the style of
> the list label. You do this by starting a new list on an already existing
> list. I think we should debate whether word or the present system is more
> desirable. Apart from my laziness I think if the current system worked
> correctly it has some desirable features. For a start, you want you can
> place the list label where ever you want by inserting a tab before it. You
> don't have to live with what word does.
>
> Next this is roughly what Latex does by default and love latex.

This is fine, but then maybe we need to provide people with an
option of indent before <label> indent after. Then they would
of course be able to use the little draggers on the toolbar
and the paragraph preference to customize the tabsettings. I
think that we need to decide which is the high runner case
and make that the default. I don't see this as a huge problem,
especially since we can already configure tabstops. The only
benefit the Word style has is that it is very very easy to
move from one list level to the next (and very clear what
list level you are on.

So I can do

1. A list item
<tab> 1.1 A sub item
      <tab>1.1.1 Another sub item
<del> 1.2 A sub item

Without having to mess around with dialogs, cursor positioning
etc.

> > Moving from one list state to the next is very simple and
> > is done through what I have previously called promote/demote,
> > but is just increasing/decreasing the indent level. In
> > Word if you start off with
> >
> > 1. A line
> > 2. |
> >
> > Then at this point, before typing anything hit TAB then
> > you promote the indent level so that now you get:
> >
> > 1. A line
> > a. |
> >
> > Hitting TAB again gets you the next level:
> >
> > 1. A line
> > i. |
> >
> > If you DELETE/BACKSPACE before typing in any characters
> > then you will demote the indent level, so one backspace
> > from here gets:
> >
> > 1. A line
> > a. |
> >
> > If you type and work at this level then the next return
> > will maintain you indent level:
> >
> > 1. A line
> > a. Another line
> > b. |
> >
> > If you type in any character and then double backspace
> > then you with loose the list label but not the indent
> > level.
> >
> > 1. A line
> > a. Another line
> > | (after typing something and backspacing over list)
> >
> > NOTE: This doesn't un-indent you back to 2.
> >
> > I think that we should follow all of these same behaviours
> > when the time comes for us to support outline numbered lists.
>
> Hmm this would require a lot of thought to get right right. We don't
> presently have the infrastructure to do this.

No problem ... just something to think about. I don't actually
think that it will be overly difficult if you base it on
tabstops and just track that you are either in the list
or not in the list. I'll see if I can get some rules together.

> > Comment #4
> > ----------
> >
> > I really want to re-work our list dialog to be simple and
> > straightforward. I think that the Word dialog does very
> > well in this regard. They have three tabs:
> >
> > [Bullets][Numbered][Outline Numbered]
> >
> > On each tab you get to choose one of six small previews
> > or select a customize button to roll your own. I don't
> > think that we should worry too much about the roll our
> > own just yet (and where to store that information?) ...
> > but if we aren't going to follow Word's dialog then I
> > would suggest the following dialog design:
> >
> > ------------------------------------------------------|
> > |
> > Style: [Drop Down List] /--------------------\ |
> > | | |
> > | | |
> > Type: [Drop Down Types] | PREVIEW | |
> > | | |
> > | | |
> > [Customize Button] | | |
> > \--------------------/ |
> > |
> > () Restart Numbering () Continue Numbering |
> > |
> > |
> > [Apply/OK] [Close] |
> > ------------------------------------------------------|
> >
> > Here the Style indicates one of three types of lists,
> > Bulleted Lists, Numbered Lists or Outline Numbered lists
> > the same as in Word.
> >
> > The Types is a friendly name for the indentation types,
> > or a user provided name in the case of user configurations.
> > For example:
> > Bulleted: Numbered Lists
> > -Dots -Arabic Dot (1., 2. )
> > -Stars -Roman Dot (i., ii. )
> > -Dashes -Lower Paren (a), b) )
> > -Dingbats -Upper Dot (A., B., )
> >
> > Outline Numbered
> > -Arabic Roman (1., i. ..)
> > etc.
> >
> > Of course looking at this it almost seems like really we
> > would want to have a type (character, number etc) then
> > a delimiter (dot, dash, parentheses) as well as an indent
> > level when we allow the user to customize it.
> >
> > In any case I know that this has been a rather long e-mail.
> > Took quite some time to compose, but I think that we have
> > had some really great work done on the list code and I'm
> > looking forward to seeing this feature go rock solid like
> > the other great features which have been added as of late.
>
> OK this is certainly looks more appealling but I'm not sure you've
> given access to all the functionality available.
>
> Do you mean "restart numbering" to be "stop list"? I don't see a stop list
> button on the dialog. Does the position of the cursor imply whether we are
> changing or starting a new list? With the present system we start a
> multilevel level list if we "start" a list within an already active list.
> With the system above it is not clear if we are changing the style of the
> present list or starting a new list at a higher level.

I don't think that we should ever have a stop list button.
It doesn't make sense to have this button when the functionality
is so easily available from either the keyboard (double
return//return, delete) or from just toggling the list
button.

This dialog only controls the behaviour (ie look/feel) of
the list currently active, or to be active. The
promote/demote behaviour comes from the keyboard so
you don't need to have the list dialog. The restart
numbering and continue numbering are radio dialogs.

For example if I had:

1.
1.1
2.
<<Select list dialog>>

Then my list would change based on my selection. These
options decide if I should just continue with the current
list (if there is one) and put 3. or start a new list with
1. The default is to just continue the list (if one exists).

See with Word you just hit tab to get access to a multi-level
list (assuming that we have an outline numbered list). We
could certainly have a "Start Sublist" button so that we
don't have to use the tab/delete to sublist and join
lists.

Thomas
-------------------------------------------------------------
Thomas (toe-mah) Fletcher QNX Software Systems
thomasf@qnx.com Neutrino Development Group
(613)-591-0931 http://www.qnx.com/~thomasf



This archive was generated by hypermail 2b25 : Tue Aug 08 2000 - 08:42:30 CDT