X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Date: Tue, 16 Jul 2019 13:57:25 +0200 (CEST) From: Roland Lutz To: geda-user AT delorie DOT com Subject: [geda-user] Update on gEDA/gaf Message-ID: User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset=US-ASCII Reply-To: geda-user AT delorie DOT com Hi, I just pushed a series of commits to gEDA/gaf which mostly conclude what I had in mind for 1.9.3. GUI dock window development is now completed. Apart from the docking mechanism itself, the component selector was the main issue as it wasn't really designed to be dockable. I implemented an alternate, vertical layout for the dialog and revised the selection/update mechanism to make this work as expected. However, in order to get gEDA/gaf out of the deadlock it currently is in, I had to resort to a somewhat drastic measure: I removed all changes since 1.9.2 which are either unfinished, interfere with other changes, or make the further development of gEDA/gaf more complicated. In particular, these are parts of the libgeda refactoring by Edward Hennessy, the newer changes to the data/config directory system by Peter TB Brett, and the changes to legacy gnetlist by Vladimir Zhbanov. I'm aware that this means abandoning some good work, and I'd like to apologize to these developers. An excerpt from NEWS summarizing the changes in 2019 is attached below. Roland gschem changes -------------- * Tool windows are now "dockable", i.e., they can be either used as modal/non-modal dialogs or docked to the edges of the main window. * The action mechanism used for menu items, tool buttons, and key bindings has been redesigned, making several improvements possbile: - Actions can now be used interchangeably in the main menu, toolbar, context menu, and keymap. They are defined in a single place ("actions.c" for C actions and "builtins.scm" for Guile actions), including metadata like name, icon, and tooltip. - Menu items and tool buttons representing options have a little check or radio box beside them indicating their current state. - Menu items and tool buttons are greyed out while they can't be used. - Toolbar and context menu are customizable. - Menu and toolbar definitions are simple Scheme variables, allowing users to add actions to the menu without having to copy the menu definition. Actions are represented in Scheme code as applicable SMOBs, allowing them to be called like procedures while retaining the action information necessary for rendering the menus/toolbar. - "Repeat Last Action" (usually bound to ".") uses the same logic as the middle mouse button repeat action does, i.e., only actions that "make sense" qualify for repeating. * The menus, toolbar, and keymap have been revamped to more closely resemble the "standards" for a desktop application. Some actions have been assigned more accessible or memorable keys. * Attaching and detaching attributes now work as expected: - "Attributes / Attach Attributes" used to depend on the order in which objects were selected, taking the first selected object as the base object to attach attributes to, regardless of its type. Now, the selected objects are searched for a base object of suitable type, and only if exactly one is found, the attributes are attached to it. - "Attributes / Detach Attributes" used to work on selected components and nets, detaching all attributes from these objects. It now works on the selected *attributes*, allowing the user to selectively detach specific attributes while leaving the rest attached. * The "Light Color Scheme" (V L) selected from the menu now has a true white background. For compatibility, selecting the "lightbg" colormap in gschemrc loads the old, light-gray color scheme; the new color scheme can be selected as "whitebg". * The library window has been made fit to be used as a dock window: - When the dialog is resized to be taller than a certain aspect ratio, it switches automatically to a stacked layout where the preview and attribute panes are located below the symbol selector. - While in stacked layout, the bottom panes can be expanded and collapsed to give more room to the symbol selector. - The window is automatically refreshed on library updates. * Symbol editing has been improved: - The page can now be scrolled to negative coordinates, making it feasible to edit symbols without moving them away from the origin, then translating them back. This also allows to consciously choose something that makes sense for the symbol as the location of the origin. - The coordinate origin is now indicated with slightly darker grid lines. (This can be enabled/disabled via "View / Show Origin".) - The "Symbol Translate" action has been replaced with "Place Origin" which lets the user select the position of the origin interactively. * Added Igor2's code for back-annotation from pcb-rnd. * "File / Revert" only asks for confirmation if the file has been modified. * The "repeat" function of the middle mouse button now evaluates actions at the current mouse position. * Mouse gestures work properly again. * Added further menu items: - "View / Show Menubar" (V M) - "View / Show Toolbar" (V T) - "View / Show Scrollbars" (V S) - "Tools / Select Locked Objects" (T L) * Adding an attribute, changing the slot of a component, replacing the contents of a picture, and selecting "Pan" from the menu used not to work properly with undo/redo. This has been fixed. * "Edit / Undo" and "Edit / Redo" now show the name of the action that will be undone/redone.