Hi, Back again after a few weeks in Scotland doing some other work.
If you recall, I am working to make improvements to the gEDA suite for use in undergraduate teaching at Cambridge Univ. Engineering Department. Over the past weeks, I've been becoming more familiar with the codebase, and now have some local changes made which I think it would be good to submit for re-integration before the code-sprint. As I'm not familiar with CVS, the work I've been doing is as follows: Checkout CVS (annonnymous) (I did this on Tues, 18th July): Compile, modify, compile.. from within the resulting geda/gaf directory. I'd appreciate advice on better working practices, as to seperate out my changes, I now need to checkout the new CVS, make a diff between that and my work (after cleaning the build files (.o etc) out), then sort out the chances which I have made, so I can then end up with a patch for each group of new functionality / changed behaviour I've been working on. I'm sure this will be a lesson to think more clearly about how I'm going to seperate my mods from the CVS download! The changes I've made for our use (some of which should will be useful back in CVS I hope): Mouse behaviour: --------------- * Added option to allow mouse panning on middle mouse button, as well as RH button. * Changed pan "gain" to 1, rather than 5, so when panning with the mouse, the schematic page moves as if you had actually grabbed the page at the point when you start panning from * (Hardcoded), scroll wheel behaviour to zoom in/out, with LEFT/RIGHT, UP/DOWN with a "shift" / "control" modifier * Slightly modified the preview widget / event handler code to allow mouse scroll zooming with the same event handler as the main schematic view We now have a gschem, where the mouse scroll wheel is able to zoom, pan by dragging, and pan LR / UD by scrolling with modifier keys - basically making it a navigation button / wheel. Re-layed out component picker: ----------------------------- * Eventually, I would like to see the component picker able to dock as a side pane along the left or right of the schematic page view. I've re-layed out the dialog in a more vertical way, and removed the superfluous "Apply" and "Close" buttons. * Split out component selection code from x_fileselect.c into a new file, x_compselect.c * Modified preview widget code to allow it to resize with available space Superficial cosmetic: -------------------- * First attempt at an icon for gschem ( from a photo of an 8pin SOIC ), mainly so I can identify which window is gschem easily in my "Alt-Tab" window switcher. * Code to set the icon is a bug hard-coded hack, and needs someone who knows how to assist in its proper implementation. (Getting automake / whatever to install the icon in the right place, and getting gschem to find it - rather than my hard-coded path method). Bugs noted: ---------- * Some odd behaviour I'm noticing when zooming the window after a resize, which can jump the mouse-pointer off the screen, put the schematic page origin in a funny place, allow components to be placed above the origin. * A crash I saw once - in the autosave code, in s_page_autosave(), from libgeda/src/s_page.c. Unfortunatly, I lost the stack dump (which wasn't helpful anyway), but the problem appeared to be that toplevel->page_head was not equal to NULL, but was not pointing at valid memory. I note that this callback is an auto-save system called from a g_timeout or something. This timeout is never cancelled once it is setup, so is there a possibility that it gets called concurrently with the active page being free'd? I never saw the crash again (and presuming it could be an unrelated memory corruption which caused it), stopped digging at the auto-save code. Any ideas on how to seperate these patched functionalities out, and which bits are suitable / useful for upstream inclusion? I'm keen to hear more about people's thoughts on a component manager / database for light -> heavy symbol work on a per company / project basis, as this is exactly what I'm wanting to implement as part of this project. As some will recall, a new project manager is on the cards, although I've not yet spent much time working out how it should work, either GUI or backend wise. Regards, Peter Clifton _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user