www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2015/10/03/13:06:58

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=mail.ud03.udmedia.de; h=
to:from:subject:message-id:date:mime-version:content-type
:content-transfer-encoding; s=beta; bh=VE1AjAXmYq9gtr51ecsvHtWHN
/E9lXXjEk5+smEuhgw=; b=v60aDEXh3r+juncRoKlocV9pSE5ViImkOSwY+/buC
AFYbKgjeGgQ/kRNmDfDrSlaWFjGl37EDTNcuaBb4d3vjhrE45kOcG+lBHqIDtDUf
cmwVhrnIYvEq9L8GrgHWWCpzV8+jBDXczoZ8ViIuKDNvXduPbu47r6afZzgUPJOq
LI=
To: geda-user AT delorie DOT com
From: "Markus Hitter (mah AT jump-ing DOT de) [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com>
Subject: [geda-user] Clutterless user interface or even more custom special super
features?
X-Enigmail-Draft-Status: N1110
Message-ID: <56100AF8.4090802@jump-ing.de>
Date: Sat, 3 Oct 2015 19:06:00 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
Thunderbird/38.2.0
MIME-Version: 1.0
Reply-To: geda-user AT delorie DOT com

gEDAers,

while investigating bug 1018103 ...

https://bugs.launchpad.net/geda-project/+bug/1018103

... I learned that there are no less than three special modes for
ignoring text, hiding text and/or ignoring anything but text exist. The
bug is a crashing one, hitting Undo takes the whole application with it,
data lost.

To me this bug is a typical example of what happens when custom
behaviour is stacked on other custom behaviour, stacked on even more
custom behaviour: each custom mode has to take into account every other
custom mode, complexity of code explodes. Well, code explodes, or the
application explodes at runtime, when a non-working combination of these
features is hit.

Hide names mode is documented as following (action.c, line 2586):

> If set, only text will be sensitive for mouse clicks and actions
> that work on objects under the mouse. You can still select other
> objects with a lasso (left mouse drag) and perform actions on the
> selection.

The problem here is that despite anything but text is ignored, drawing
lines is still allowed.


I can see four solutions:

1. Add a lot more special case search code to check not only for mode
flags like ONLYNAMESFLAG, but also under which conditions this search
happens. This easily makes one special case for every other case. 3
names modes x 12 drawing modes = 36 cases.

2. Disable modes like track drawing mode while in names only mode. This
would be the advertised behaviour. Also a lot of code and on top of
this, unexpected user behaviour ("I can't draw tracks anymore and I
don't know why").

3. Try to make Undo() independent from this query. It's "undo last
operation", after all, not "undo the object under the crosshair".

4. Remove these special modes. That'd be LOCKNAMESFLAG, HIDENAMESFLAG
and ONLYNAMESFLAG. Chances are good they're barely known anyways and
modal behaviour is usually considered to be bad for an intuitive user
interface. It should certainly be possible to prefer or avoid text by
the standard means (hiding or activating the corresponding layers).

5.: 3. and 4. together.

6. Doing nothing is _not_ an option. It's a crashing bug.


I tend to do 4., then 3.. Anybody volunteering to write and test all 36
cases of 1. or 2.?


Markus

-- 
- - - - - - - - - - - - - - - - - - -
Dipl. Ing. (FH) Markus Hitter
http://www.jump-ing.de/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019