Sunday, 4 May 2008

gschem with b-spline paths and filled sections

Just thought I'd share a couple of screen-shots of a feature hopefully targeted for gEDA 1.6.0, support for closed / filled polygons.

Since its simple to do so with cairo, I've implemented this a an arbitrary SVG type path string. Code-reuse from librsvg (LGPL) made this a more approachable task.



At the moment, the code allows modification of existing paths from within gschem by dragging the control points, but you can't yet create new paths, add / remove nodes or change node-types.

At the very least, we could hope to support reading and rendering polygons / closed arbitrary paths for gEDA 1.6.0, so if anyone is keen, the stock libraries can be improved with this pretty'fication. I already made a stab at the bipolar transistors.

Saturday, 3 May 2008

Cairo support for gschem

Following the merge of Werner's branch elimitnating the remaining usage of screen coordinates in gschem's graphics state, gschem is far better at allowing you to zoom and pan whilst making drawing operations.

I have since rebased my pending changes to the object "place" code (inserting symbols, copy / paste with buffers, move, copy, multi-copy etc..) and on top of that branch, have revived the experimental cairo rendering code I started what seems forever ago.



The screenshot above shows cairo rendering of all primitives, including the text (which is via cairo's "toy" text API). Work to allow support of gschem's existing line-font is underway, but dependant on new API aditions scheduled for cairo 1.8. I think I'm getting used to the "Sans" font in gschem, so perhaps that will have to remain an option.

The code is distilling nicely now, and by cooperating with existing code (XOR drawing with GDK during rubberbanding and placing), I now have a branch where pretty graphics are available without the bugs and cut down functionality of my old branch (which removed essential code, but hadn't quite got to replacing it).

Sunday, 13 April 2008

PCB Close confirmation dialog

Work has been keeping me very busy recently, so I haven't had much chance to write gEDA or PCB code. I am using both for a my work though, so I am finding ideas for various improvements.

One small thing which took my fancy this morning was PCB's "OK to lose data ?" prompt when you accidentally forget to save before closing your layout.

It had to go, and now the GTK HID of PCB sports a dialog which looks very much like gschem's.

Obligatory screenshot:


I've hooked this in such a way that it should be relatively trivial to add the same kind of dialog to the Lesstif HID, but I'll leave that as an excercise for the reader.

Monday, 7 January 2008

PCB Library browser

Using code from gschem's symbol selection dialog, I've been working on a replacement for pcb's library window. The aim is to target an area where discoverability is perceived as poor for new users, making footprint selection from within pcb an easier task.

There is a little work remaining in tidying up the code, but this dialog will hopefully be a feature of the next pcb release.

Before:


After:

gEDA releases shaping up

Things seem to be shaping up nicely towards having a 1.4.0 stable release of gEDA within the coming month or so, with a great deal of activity in the various GIT trees, and pcb's CVS.

Ales has announced intention to release the second unstable development snapshot in the 1.3.x series on Thursday 1oth Jan, and I'm tentatively planning to match this with an xgsch2pcb 0.1.2 release.

The desktop integration I was working on is mostly finished and committed. We now have MIME icons (original artwork by Tomaz Solc), menu entries and application icons installed with the various gEDA tools. Work remains to add the PCB half of the MIME icons, however there shouldn't be too much work involved in doing this.

The list of blocking bugs for a 1.4.0 release has almost vanished now, so it seems we're all set for a fantastic release. Once 1.3.1 is out, brave users help checking for last minute bugs would be very much appreciated by all.

Thursday, 29 November 2007

Fuel tank....

Deciding to investigate the slightly petroly smell the silver wreckmobile has been emitting lately, I'm overjoyed to find a rust hole in the side of the petrol tank.

Hmm... poking round the dissolving undersealant covering the suspicious area doesn't seem to have helped the rate its dripping my £petrol onto the floor, either.

So, now I have an additional, urgent task, to find petrol cans, empty the thing, then find, purchase and fit a new petrol tank. For now, its parked on a sloping drive way, and on a jack to try and raise the leak. Given the £30 worth of petrol I put in the other day, I strongly suspect thats not going to be enough to stop it for a while.

Just the extra task I wanted. Grr....

Wednesday, 28 November 2007

Let the blogging begin...

Having encouraged Peter Brett to blog more frequently about gEDA, it dawned on me that I should also write about what I'm doing with gEDA development.

I have lots of things "cooking", most of which can be found in various branches of my gEDA GIT repository, which I push out to repo.or.cz.

Some things nearing completion:
  • Drawing fixes for slow rendering with composited desktops
  • Refactoring of data-structures to remove the ATTRIB struct
  • Refactoring and cleanup of "placing" code in gschem

Some longer term projects:
  • Desktop integration, including MIME type registration and icons (Based on work by Tomaz Solc)
  • Cairo rendering for gschem
  • Continued refactoring of libgeda and gschem to use more GList based APIs
I'm really looking forward to seeing some of the exciting changes which have happened recently in gEDA starting to hit main-stream distribution and usage.

In the mean time, I've a couple of bugs to fix in the development branch... it seems that even the most careful refactoring can introduce bugs or uncover problems.