gEDA-dev: gschem -- Datastructures

Peter Clifton pcjc2 at cam.ac.uk
Mon Jul 31 16:09:42 EDT 2006


On Mon, 2006-07-31 at 12:13 +0100, Peter Clifton wrote:

> I'm not committing to implementing such changes yet, but wanted to see
> what people thought to the following arrangement.
> 
> I'm _very_ interested to hear comments from the gschem developers.
> 
> **********

**********

I'm slowly getting tabbed schematic editing to work, which necessitated
some changes to the TOPLEVEL and PAGE data structures. I've encountered
a few "gotchas" where I can nolonger assume TOPLEVEL->page_current
points at the correct page to be working with. (For example, signal
handlers firing off at unexpected times).

Many of these gotchas would be far easier to fix if the data-structures
were refactored at the same time.

I am really searching for some encoragement / criticism / advice about
how best to procede with this work in a way which can be sensibly merged
with CVS head in the future.

I am _convinced_ that some data-structure changes are necessary to make
gschem managable in the future. Anything which makes gschem more
maintainable / understandable / future proof is (as far as I'm
concerned) completely compatible with my employers interests, and I will
be able to devote time to doing it.

What I don't want to do, is to spend the next "n" weeks working solidly
on these changes without any real feeling for whether it will be merged,
as my supervisor would also quite like me to fix our local symbol
library (heavy... yuck).

Please save me from the symbol library task by giving some feedback
regarding my prefered project, this data-structure refactoring!

Is it acceptable to make the transition to tabbed browsing at the same
time as a patch to refactor the data-structures? (I started out making
tabbed browsing changes, and then had to start the refactoring).

Tabbed browsing cannot (without hacks) be without some refactoring, and
all the work I've done so far is tied to the tabbed browsing code. Must
I split them, or might a combined patch be accepted when this work is
completed?

**********

> gschem window <-> view <-> page detachment.
> 
> 
> [ TRUE GLOBAL VARIABLES ]
>         |
>         |------------------------  (Do we keep track of VIEW objects at
>         |                        |  the global level, or leave as
> children?)
>         ---- WINDOW              |
>         |       |_NB____TAB <-> VIEW --------------
>         |            |__TAB <-> VIEW ---------     |
>         |                        |            |    | 
>         ---- WINDOW              |            |    | 
>         |       |_NB____TAB <-> VIEW -------- |    |
>         |            |__TAB <-> VIEW -----   ||    |
>         |            |__TAB <-> VIEW ---  |  ||    |
>         |                               | |  ||    |
>         |                               | |  ||    |
>         |                               | |  ||    |
>         |            (Multiple views)   | |  ||    |
>         |___ PAGE  <====================--   ||    |
>        (head) n                              ||    |
>         |     |                              ||    |
>         |     p      (Multiple views)        ||    |
>         |    PAGE  <==========================     |
>         |     n                                    |
>         |     |                                    |
>         |     p                                    |
>         |___ PAGE  <-------------------------------
>        (tail)




More information about the geda-dev mailing list