Select + Unselect

Requests for new features, question how to do something etc...

Moderator: lpaatero

Post Reply
gwport
Posts: 68
Joined: Mon Apr 03, 2006 5:28 pm

Select + Unselect

Post by gwport »

Dear Lauri,

GoWrite is now a very mighty and useful editor but it misses clear and easy access to a fundamental function seen in almost all editors for Go, Text, DTP, or whatever: Select + Unselect.

IMO, it should work as follows: Provide a new Command Edit | Select and a new Tool Button associated with it. The Tool Button's picture might be like that of "Edit everything in the board." with an added red outlined circle. The command / the tool should do both: select and unselect. Select what is unselected, unselect what is selected.

Once the command is active, the left mouse button should apply it to the clicked / drawn intersections. (Like currently the right mouse button does it for Select.)

Then, with some intersections being selected, the next command (like, e.g., "Edit square markings in the board." or CTRL L, or whichever) should apply to the selection (and probably then automatically unselect it because each intersection can have one and only one markup; further selection of the same intersections does not seem to have much sense).

Another command CTRL A might Select All or Unselect All.
robert jasiek
lpaatero
Go liiton hallitus
Posts: 528
Joined: Fri May 21, 2004 12:20 pm
Location: Finland

Post by lpaatero »

I will take a look at this. Right now I cannot remember if this feature it is still there, this might be just bug.

GOWrite did had this kind of selection / delection. But I did not see too many important use cases for it. Checked from code: logic was there, but hidden by couple of changes and bugs. I will restored logic in next 2.2 code drop and if it works well, I will later make it into 2.1 versions.

In long-term I am looking at re-writing seleciton logic, current one is internally really confusing.

There are multiple ways to make this kind of logic. Which one I will chose in future depends on how it would be used, as there are always "obscure" side effects from logic in special (or less special) cases.

Can you describe some of things you are trying to do, when this kind of selection logic would make things easier? So what kind of editing is difficult to do now?

regards
Lauri
gwport
Posts: 68
Joined: Mon Apr 03, 2006 5:28 pm

Post by gwport »

>>
Can you describe some of things you are trying to do, when this kind of selection logic would make things easier? So what kind of editing is difficult to do now?
<<

- preselect intersections to be filled with black setup stones
- preselect intersections to be filled with white setup stones
- preselect intersections to be filled with the same label
- preselect intersections to be filled with cross
- preselect intersections to be filled with circle
- preselect intersections to be filled with square
- preselect intersections to be filled with triangle
- preselect whole board for CTRL F
- select more intersections besides already selected intersections
- unselect all intersections to start selecting from scratch after typo of previously selecting some unwanted intersection(s)
- unselect single intersection because only the last added intersection was a typo

Probably there are more types of usage, which I don't recall just now. Anyway, all this is a) single intersection or b) rectangle of selected intersections or c) CTRL for adding more selected intersections.

Currently all selection works as AND. If you change that to select / unselect, it would become a combination of AND and NOT per intersection. (If you really have too much time, you could also offer an XOR selection, but that would be luxury, I guess.) If a rectangle is marked and some of the intersections are already selected, then you might keep the current AND logic or swap select / unselect per intersection in that rectangle. I am not sure yet which is more useful.

Anyway, multiple filling would always save time. The faster the editing process and the more intuitive the better usage becomes. One does not use an editor because one likes to use it but because its usage is necessary. The less time one spends on editing actions the more time one has for thinking about contents. Typically I use also a DTP program and need to edit therein as well. So I need much time just for editing documents. One mouse click less for a task that is repeated hundreds of times per document saves several minutes. With quite a lot of different editing tasks, all tasks together waste hours just for editing a single document. So every speedup / greater convenience / smaller stress in the editing process is very helpful.

Is it sufficiently clear how I would like to use select / unselect or do you need additional hints?
robert jasiek
lpaatero
Go liiton hallitus
Posts: 528
Joined: Fri May 21, 2004 12:20 pm
Location: Finland

Post by lpaatero »

gwport wrote:>>
Can you describe some of things you are trying to do, when this kind of selection logic would make things easier? So what kind of editing is difficult to do now?
<<

- preselect intersections to be filled with black setup stones
- preselect intersections to be filled with white setup stones
- preselect intersections to be filled with the same label
- preselect intersections to be filled with cross
- preselect intersections to be filled with circle
- preselect intersections to be filled with square
- preselect intersections to be filled with triangle
Why are you first selecting, and only then filling?

I would first select the corresponding tool from left hand toolbar, and then add. First selecting and only then adding makes sense only when selecting large square areas, which is quite rare, I think.

gwport wrote: - preselect whole board for CTRL F
Why you need to select whole board?
By default, whole board is put to clipboard. So only if you do selection and then immediately copy to clipboard, selected are is copied. I could not find immediately find case, where selection would be necessary (exept to undo selection just before it).
gwport wrote: - select more intersections besides already selected intersections
- unselect all intersections to start selecting from scratch after typo of previously selecting some unwanted intersection(s)
- unselect single intersection because only the last added intersection was a typo
No matter what I do, selecting large (complex) sets of intersections is going to be error prone. So my target is to reduce need for this to minimum. So would really like to know, where large and complex selection is best way to go, so that I can offer alternative (easier) way of doing same.

regards
Lauri
Guest

Post by Guest »

>>
Why are you first selecting, and only then filling?
<<

If I fill directly, I have to move the mouse to each single intersection and then click onto it. With N intersections to be filled, this means 2N editing steps. If I first select and then fill, I need about as few clicks / drag-clicks / CTRL clicks / CTRL drag-clicks for the selection as there are (hopefully) big rectangles of areas of intersections to be selected. Currently I comment on scoring. There about 2/3 of all intersections fit into some rectangle. Roughly estimating, my total number of clicks would be reduced to 1/2 up to 1/10 of the currently needed number. For marking scoring areas, it is extremely significant. For setup of scoring positions, it is already very significant.

An alternative would be an editing feature that fills (with the chosen filling type) each intersection of a selected string (black, white, or empty) because often I use features that apply to a whole string (like "scores for black", what I indicate by the markup "square").

>>
I would first select the corresponding tool from left hand toolbar, and then add. First selecting and only then adding makes sense only when selecting large square areas, which is quite rare, I think.
<<

For me, it is very frequent. Not just for rules commentaries but also for other commentaries it is very useful: positional judgement (mark likely territory), areas of influence, moyos, stones under attack, stones being alive, stones being dead, etc. It is visually so much more helpful to mark whole strings or connected parts of strings (black, white, empty) than to denote only one intersection with a letter. Go players think (also) visually and not like a dictionary's index. Therefore diagrams in documents should convey visible facts in the form of visible presentation. That few go books do this so far is more a sign of how difficult the editing process has been rather than that it would not be useful.

>>>
- preselect whole board for CTRL F
<<<
>>
Why you need to select whole board?
<<

When I work with a file, I use it to create several clipped pictures because this saves time, disk space, and management work. So within one file, I do several different tasks. As a consequence, it easily happens that something is marked (e.g., because I have just copied a subboard area) while then I want the whole board (e.g., to copy it). Besides, GoWrite offers so many mouse functions that it often happns that one makes "superfluous" typos. The easiest way to get rid of current selections is to select or unselect the whole board at once.

>>
By default, whole board is put to clipboard.
<<

And this default is good. Unfortunately, not always happens that I work without selecting something until I need to clip the whole board.

>>
I could not find immediately find case, where selection would be necessary (exept to undo selection just before it).
<<

Indeed, this is the most frequent cause.

>>
No matter what I do, selecting large (complex) sets of intersections is going to be error prone.
<<

Currently, it works fine (via right mouse button for preselecting intersections for Insert Label), except that the visible representation of the currently selected intersections does not unify connected areas of selected intersections but can contain red outlines around red outlines.

>>
So would really like to know, where large and complex selection is best way to go, so that I can offer alternative (easier) way of doing same.
<<

One alternative (not always though) is filling a whole string (black, white, or empty) at once with any setup / markup that makes sense (filling white setup onto black setup would replace black by white).

There are other editing concepts than preseection. E.g., see Drago. It allows pseudo-dragging with the effect that each touched intersection gets filled. This is better than nothing but not very convenient. Another option to allow dragging rectangles that become filling upon completing the rectangle. Quite like selecting rectangles. The user chosses a setup / markup and then drags a rectangle to be filled with it. This is even more convenient and faster than first preselecting and then filling.

BTW, it just comes to my mind that also Delete is not very convenient at the moment. It should work very much like what I suggest for filling: Delete a string or a rectangle.
lpaatero
Go liiton hallitus
Posts: 528
Joined: Fri May 21, 2004 12:20 pm
Location: Finland

Post by lpaatero »

Anonymous wrote:>>

An alternative would be an editing feature that fills (with the chosen filling type) each intersection of a selected string (black, white, or empty) because often I use features that apply to a whole string (like "scores for black", what I indicate by the markup "square").
Have you used territory marking tools (last two from bottom)? If you have used, do you have any comments on it?

Territory marking tools mplement simple "filling" that works quite fine for calculating game result, number of clicks needed to calculate is much lower compared to raw clicking.

regards
Lauri
gwport
Posts: 68
Joined: Mon Apr 03, 2006 5:28 pm

Post by gwport »

>>
Have you used territory marking tools (last two from bottom)? If you have used, do you have any comments on it?
<<

I tried that but I do not use it so far because for the kind of documents that I write the marks' appearance is not nice, or let's say unsuitable. I prefer marks that are clearly different from the appearance of the stones. The territory marks looks like small stones. (Also I avoid Circles because they resemble stones too much.) I really like using
- squares for black scoring intersections
- triangles for white scoring intersections
- crosses for stones to be removed
- A for alive stones
- D for dead stones
- U for uncapturable stones
etc.

An even greater problem is that the territory marks are totally unsuitable for marking areas under Area Scoring. It is not possible and does not make sense to put black circles onto black stones. To comment on different scoring methods with the same visible appearance, I use the same markings for Territory scoring that I use for Area Scoring.

What I think of the diamond filling? It is less intuitive for me than rectangular filling. It is much less useful than filling of empty strings as a whole would be or than filling of black-or-empty strings or white-or-empty strings as a whole would be.
robert jasiek
lpaatero
Go liiton hallitus
Posts: 528
Joined: Fri May 21, 2004 12:20 pm
Location: Finland

Post by lpaatero »

2.1.24 contains (possibly partial) fix that allows select/unselect. Current selection can be extended or limited using shift-right click. This was intended way of working for day one, but sereval bugs and changes were preventing it from working. (I think it has never really worked...)

You can also deselect areas using same technique. However selections must be of same size, so "area arithmetic" is not implemented.

I think I will implement "unselect all" in 2.2.
gwport wrote: BTW, it just comes to my mind that also Delete is not very convenient at the moment. It should work very much like what I suggest for filling: Delete a string or a rectangle.
Delete is bit problematic, as it has so many different kinds of situations it is used. If one makes error in recording game, it would be terrible, if delete deletes whole group...

gwport wrote:
What I think of the diamond filling? It is less intuitive for me than rectangular filling. It is much less useful than filling of empty strings as a whole would be or than filling of black-or-empty strings or white-or-empty strings as a whole would be.
For stones, it fills whole string. For free space, often areas are not completely closed and filling whole board causes "panic-effect" in many users. So better not to fill everything.

Filling black-or-empty strings or white-or-empty strings for normal users would be less usefull, as normally only captured stones and empty space is marked... (This offer sufficient information to count result accoring to any (normal) rules, I have not yet implemented calculation for other than Japanese rules.)
gwport
Posts: 68
Joined: Mon Apr 03, 2006 5:28 pm

Post by gwport »

lpaatero wrote:
>>
For free space, often areas are not completely closed and filling whole board causes "panic-effect" in many users.
<<

This panic can be avoided: Set single intersection as default but allow to switch markup mode to String, Rectangle, Diamond, or whatever. Mode changing can be done in different ways in a GUI. Your view menu is one possibility. Corel programs show a different one: Use a tool button in that clicking onto its lower right corner opens a popup selection of tool buttons while clicking onto the rest of the tool button executes the standard action (i.e. here: "application to one intersection only"). Also key-based mode switching can be imagined. Etc. Whether such causes panic or happiness is mainly a matter of how well the GUI is designed!

>>
So better not to fill everything.
<<

Today it was really tough: Many diagrams with 50 or more same marks (cross, triangle, or square) on different intersections...

>>
(normal) rules
<<

I better do not discuss here what "normal" is :)

>>
not yet implemented calculation for other than Japanese rules
<<

Calculation is different topic. (I do not use it when I use GW for editing.)
robert jasiek
Post Reply