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

Re: gEDA-user: Multiple open pages in gschem



On Sat, 2007-03-31 at 18:39 -0400, Stuart Brorson wrote:

> If I were to be granted my wish, a better way to traverse hierarchy is
> to have a tree widget (i.e. directory/file browser) either on the left
> side of the gschem screen (like in -- ugh! -- MS Windows' file system
> browser), or maybe in a pop-up window.  Then if you click on a
> particular sheet, it opens up in the main gschem window.

Got it in one ;)

There is the corner case though, you might go "symbol/schematic->down"
in multiple palaces, with the same child symbol / schematic. (Say
"resistor-2.sym" for sake of example - even if it isn't a useful one)

libgeda should only ever open one copy at once. It tries, but the path
checking is broken by a "./" in the search path. With the gafrc I've
played with, its a problem for down->schematic, not the symbol library.

There needs to be a little differentiation between the structure, and
what files are currently open - in that respect at least.

> This pre-supposes that you have created the concept of "design" in
> gschem.  (That is, right now gschem only has the concept of a schematic
> page.  Yes, you can link schematic pages together in gschem, but the
> different pages can have nothing to do with one another -- they were
> just opened during the same gschem session.)   The concept of "design"
> would form the top-level data structure which would tie together all
> the different, associated schematic pages into a logical unit.  Then,
> the tree widget would reflect the actual structure of the entire
> design.

A fact which is limiting libgeda unfortunately. This is one of the
points Peter B and myself were looking to address in our data-structure
diagram. I realised today we don't need a "root design" file, but we do
need a "circuit" file - one for each level of hierarchy, referencing the
schematic pages which make it up.

Opening the root circuit is essentially enough to drag in the
information about the design. It might be possible to tag an attribute
in the schematic page to pull in siblings in that circuit, but I think a
file is cleaner.

"top-level" as exists now is difficult, it doesn't really map well, and
has bits of everything in it. We used new names in our diagram to keep
the concept clean, however I see a development path as follows:

Force one gschem window per sub-circuit (hierarchy level). Each window
has its own toplevel, and page list, so this maps nicely to the
"circuit" concept.

If we keep one instance of gschem (and hence libgeda) per "design", then
the one running process has all the data it needs in the entire design,
and allows us easy play at the sub-circuit level. (Which is where the
core of the nice internal nelisting comes in).

> I like the left/right arrows and the p. X of Y very much!  I'm a
> little unclear on the two down arrows, but suppose they are down
> symbol and down schematic, right?  If so, where's the up button?

Ha.. I broke "up" in the flattening I mentioned before. I think it is
easier, and functionally similar to replace it with "back" (as in
web-brower navigation).

Up was broken in libgeda anyway, if you consider the case of going "up"
from, say a resistor symbol - which could be instantiated in multiple
pages anyway. (It was certainly broken if you used the page-manager to
jump pages in the mean time).

The down arrows are as you say. The one with the under-bar is gtk stock
for goto-bottom - a weak analogy, that a symbol is the lowest atom you
get. In reality, I wanted to over-lay the goto-down arrow with an "S" or
"C" for symbol and circuit, but didn't have time to code that, or make
new stock icons.

There is yet another page-navigation metaphor available to us.. the
tabbed notebook, but to do this properly (as I discovered over the
summer), requires major data-structure changes.

Peter




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