Hi all,
I was talking with Ales yesterday. We want to share some ideas with you
and get people's thoughts. So please, post your opinion!

  - Noweb: I don't know anyone who has benefit of using it. If we want
to change to plain C files, we should convert all noweb comments into
doxygen (or whatever) comments. I think doxygen will improve code
documentation too. Is anyone still using noweb? who wants to drop noweb?
Any volunteers to do the work?

  - OK/cancel buttons: current GTK and Gnome widgets use to have the
cancel button on the left, and the ok button on the right.  Gschem have
them reversed. Recently I implemented the file load/save in gschem using
the GTK widget, so there's now an inconsistency within gschem. To be
consistent with all the other apps and Gtk widgets, gschem should change
the ok/cancel buttons to cancel/ok . Of course, using #ifdefs so a
virtual windows port will have them like all other windows apps:
ok/cancel. I don't know people reaction to this change. Comments?

  - Unsaved schematics warning when exiting: I always have to read the
text to know what button I should click on. I think it can be improved
with Discard/Save/Cancel buttons, and a text explaining the situation.
Since gschem has to deal with multiple pages, there are two
possibilities: one is to ask opening such a window for every page (I
don't like it this way), and the other is to put a list of unsaved
schematics in the window, with a checkbox so the user can choose what
schematics should be saved. The latter is currently implemented in
gedit, so maybe you could take a look at it and tell us if you like it
or not.

  - Heavy/light symbols: I don't want to start another never-ending
discussion on this, so please be kind with your answers and respect
other people's opinion. For example, I'd like to have only one symbol
for all NPN transistors. This would be a generic transistor symbol. All
the real transistor's symbols will use this symbol, and change only some
properties (pin number ordering, part-number... and even footprint, or
possible footprints, if we have some standard footprint library some
day), using attribute inheritance. This situation will have the
following benefit: I can use a generic transistor when drawing the
schematic. Later, I choose one real transistor suitable for the
application, so I have to replace the generic transistor by the new one.
Using the scheme described, both gattrib or gschem can do the
replacement: they only have to check if the replacement and the generic
transistor have the same symbol, and update the properties. This scheme
will let heavy and light coexist. I know there are some different
symbols for transistors (npn-1, npn-2, and npn-3). People use the one
they like more. Using the above scheme, the real transistors can use a
npn.sym symbol, which can be a link (maybe user defined) to one of the
available possibilities.

  - Heterogeneus parts: this is the hardest thing to code. Using the
symbol inheritance, we can define a per-slot symbol. The idea is that
gschem be aware of parts, and part slotting, keeping track of what slots
are currently used/unused, and changing the symbol if needed when you
change the slot attribute. I know heterogeneus parts can be used now,
assigning the same refdes to two different symbols, but I'd like a more
automated way.

  - Attributes for packaging/automated refdes assignation: currently if
you want to use an heterogeneus part, you have to assign the same refdes
to the symbols by hand. I'd prefer to assing some attribute which tells
gschem/gannotate that those symbols should be in the same physical part,
and if there can be another symbols automatically packaged into that
part or not (maybe another attribute). It's like a "part set": if two
symbols have the same part set, they should have the same refdes. Maybe
this "part set" attribute can be like a description (I won't like it to
be just a number, since I want to reuse a schematic across projects, and
I don't want to track the numbers myself) added by the user, and the
annotation utility should be aware of these special ones.

  - Autosaving: having gschem automatically save every unsaved schematic
every few minutes (user-defined). gschem can use another filename, like
#real_name.sch#, like emacs, or real_name.sch~.... These files should be
deleted when saving the page.

  - Autosaving when crashing: I know gschem shouldn't crash but, what if
it happens some day?. What about automatically saving the schematics
when crashing? I mean connecting the segfault signal to a function which
saves the unsaved schematics using filenames like
#real_name.sch.crashed#, real_name.sch.crashed, (depending on the
filename chosed for the last point). Gschem should look for these kind
of files when loading an schematic, and let's the user choose if he
wants to load this file instead of the normal one.

Cheers,

Carlos

Reply via email to