[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: New user - Annoyances



On Wed, 2008-02-27 at 14:14 -0800, Steven Taylor wrote:
> As a new gEDA used who has completed a couple schematics now, I have a few  
> comments and questions. There are various inconsistencies in what the  
> mouse buttons do between various functions. Some of these are annoying and  
> could be modified to make it all easier to use. For example:
> 
> When you are adding nets, the left button ends a net segment and you can  
> continue the net with adding another segment with another left click, etc.  
> However, when you are done and on the last segment, you have to left click  
> it and then right click to stop adding to the net. It would be much  
> simpler to just be able to right click on the last segment to complete the  
> segment and stop the net.

I'm not sure I prefer that, as to me, as often I'll end up mousing away
from the last net I wanted to place, and then want to cancel. (Left
click to place and escape to cancel is my common way of working.).

> When you are adding lines, at the end of the first line segment, you left  
> click as you do when adding nets, but that ends the line and you have to  
> left click again to start a new segment. To be consistent, a left click  
> should end the line segment, but moving the mouse should continue adding a  
> new line segment until you right click which should add the last segment  
> and stop the add line function.

Granted, this is a pain. If you noticed, the "bus" routing is also
different. This is something we could perhaps try to clear up some time
before a 1.6.x release.

> When adding components, a left click instantiates the component and each  
> subsequent left click adds an other until the last one where you have to  
> left click and then right click to stop adding. Again it would be nice to  
> right click on the last instance, leaving it in place, and have that stop  
> the add components function.
> 
> I had a similar problem with the copy command stopping after just one  
> copy. Now I have just found the multiple copy command which operates as I  
> would have expected the copy command to work. The only thing I would  
> change is to have it make the last copy and stop copying with a right  
> click. I don't see any reason for having two copy commands at all.

Since we're also aiming at entry level, compatibility with how other
applications work is important. Most copy-paste operations in programs
paste once, although I don't see why we couldn't support the way you
wanted.

> Now, my question is, is there the capability for a user to change this  
> basic functionality through the key-mapping or config files? I have looked  
> through the files and have not been able to find what I am looking for. Of  
> course, I may not recognize it if I found it anyway. 

The keybindings (and other gschem settings) are defined in the
system-gschemrc file. This can be found
in /usr/share/gEDA/system-gschemrc (or on Debian / Ubuntu
systems, /etc/gEDA/system-gschemrc.

Search for "edit-keymap" and you'll be in the right place.

> Or, are these operational functions things that would require
> modification the the program source files? If so, which files
> would I need to look into and where can I find info on recompiling 
> the system?

With regards the right-click to end behaviour, this is something you'll
have to edit in the source-code. Beware that there are some
configuration options which can set the right button to be a pop-up
menu, rather than being a place / cancel action.


If you're working on a Debian / Ubuntu box, I'd suggest grabbing the
Debian package source, adding your modifications and rebuilding. This
allows your package management to work properly.

How did you install gEDA? (What distribution, and what gEDA version do
you have?)

With that information we'll be able to help more about how to rebuild
the distribution package with modifications, or install directly from
source.

The place you want to look (IIRC) is gschem/src/x_event.c
You can browse it on-line in our source-code repository:

http://git.gpleda.org/?p=gaf.git;a=tree
http://git.gpleda.org/?p=gaf.git;a=blob;f=gschem/src/x_event.c

98  gint x_event_button_pressed(GtkWidget *widget, GdkEventButton *event,
97                              GSCHEM_TOPLEVEL *w_current)

...

 129   if (event->button == 1) {
 130     switch(w_current->event_state) {

...

 302       case(DRAWNET):
 303       case(NETCONT):
 304         /* Only continue the net if net end worked */
 305         if (o_net_end(w_current, (int) event->x,
 306                       (int) event->y)) {
 307           o_net_start(w_current,
 308                       (int) w_current->save_x,
 309                       (int) w_current->save_y);
 310           w_current->event_state=NETCONT;
 311         }
 312         break;

...

 426   } else if (event->button == 2) {

...

 513   } else if (event->button == 3) {
 514     if (!w_current->inside_action) {
 515       if (w_current->third_button == POPUP_ENABLED) {
 516         i_update_menus(w_current);  /* update menus before popup  */
 517         do_popup(w_current, event);
 518       } else {
 519         w_current->event_state = MOUSEPAN; /* start */
 520         w_current->inside_action = 1;
 521         w_current->doing_pan = TRUE;
 522         start_pan_x = (int) event->x;
 523         start_pan_y = (int) event->y;
 524         throttle=0;
 525       }
 526     } else { /* this is the default cancel */
 527       switch (w_current->event_state) {
 528         case(STARTDRAWNET):
 529         case(DRAWNET):
 530         case(NETCONT):
 531         w_current->inside_action = 0;
 532         i_set_state(w_current, STARTDRAWNET);
 533         o_net_eraserubber(w_current);
 534         break;

...

 586         default:
 587         i_callback_cancel(w_current, 0, NULL);
 588         break;
 589       }
 590       i_update_toolbar(w_current);      
 591     }
 592   }
 593   return(0);
 594 }

> I am retired now but I have used several schematic capture systems over my  
> career and I have not really liked most of them. I actually prefer gEDA in  
> many ways over any of them. I just would like to make it even better.

Good to hear. I prefer PCB over any of the commercial efforts I've used,
and gschem beats most of the schematic capture tools I've come across
(especially OrCad, although granted, you don't have to try that hard to
do better OrCad capture!).

-- 
Peter Clifton

Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA

Tel: +44 (0)7729 980173 - (No signal in the lab!)



_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user