0.9.2 beta-test (5816) ~~~~~~~~~~~~~~~~~~~~~~ [act_draw] -Add: accept object:oidpath scope for naming parent group [act_read] -Import: from pcb-rnd [boxsym-rnd] -Fix: use our standard file name ending, .ry, instead of .sym [doc] -Update: index page for beta and plans for the stable -Update: regroup and reorder state for the beta testing phase -Import: autostyle from pcb-rnd doc/; use unified headers on the page -Change: switch over to the unified Ringdove index.html layout on the main page -Cleanup: cschem vs. sch-rnd: keep cschem only on data model side -Cleanup: archive the nlnet roadmap: it's pretty much completed -Cleanup: move some of the old doc used for the design process to archive -Del: archive use cases - these were relevant for making the initial design -Del: obsolete style guide - we ended up with a slightly different one in practice -Del: plans/ -Move: libcschem doc in developer/, sch-rnd users won't need it -Import: packaging script from pcb-rnd -Import: rosetta html generator from pcb-rnd, for scripting examples -Add: irc page, mirrors page, help wanted page -Add: link (video) tutorial from the main page -Add: scripting: cross-link pcb-rnd's doc on generic scripting and different languages -Add: scripting example: working quick attr editor -Add: scripting example: voltage divider -Add: scripting example: text autorotate: object listing and careless rotation to tes tht new API -Add: scripting example: autolabel: figure wich groups need label, place labels at 0;0 for now -Add: scripting example: zillion (array copy) -Add: query: document .anylocked and .level -Add: lihata format doc links to the project file syntax tutorial [gui] -Fix: status: don't print uninitialized string on grid unit -Fix: edit act idpath arg converter: free idpath only if it was allocated by the conversion -Add: edit act: rotate90 accepts idpath specified object (for scripting) [io_geda] -Fix: read_path_xy() accepts comma as separator as well -Fix: instead of creating a custom group for path, create a polygon (so it can have a fill) -Add: minimal text alignment: halign should work, vertical align is approximated by move [io_tinycad] -Fix: error message is printed with file name, line and newline -Add: create symbol groups in indirect for symdef; parse symdefs -Add: place symbols from the local lib -Add: parse and place labels (wirenet name floater or sheet decoration text) -Add: support for objects (sheet decor text) -Add: support for with a custom group -Add: parse DETAILS subtree and extract and set administrative sheet attributes like author or page -Add: parse sheet size, set min height/width attributes -Add: flip y coords and translate by sheet height to get the same orientation -Add: parse and create symdef rectangles -Add: support by creating custom symbols; forge on rail symbols generated for -Add: parse sheet polygons -Add: capacitor pin: 'hidden' pin style: draw a 0-length terminal [lib] -Fix: csch_search_all_selected() always recurses to non-atomic groups; this fixes "selected wire can not be deleted using {s r}" -Fix: when creating a new abstract port (auto-alloc), set parent -Fix: missing graphical connection is not always an error, e.g. attribute conn of a non-graphical terminal in a symbol -Fix: sort out how to handle missing graphical connection with drc later on -Fix: typo caused wrong abstract id2name -Fix: util_wirenet: do not leave stray empty wirenet groups around after a new line merging existing groups -Fix: util_wirenet: when drawing a new wire segment attaching to an existing wirenet group, apply the group's transformations on the new line so it is placed properly -Fix: dup_into() should be able to transform source obj to match the reverse-transformations of destination group so that the final installed coords are not changed; implemented for lines only at the moment -Fix: more robust merge_into(): expect that source objects are deleted ahead -Fix: text vs. box intersection calculated properly for rotated text - not for the unrotated gross bbox but for the rotated net text meta rectangle -Fix: not only wirenet objects may be in a conn, when a line is removed, always remove it from its conn -Fix: disable wirenet side effects while merging a wirenet group into another wirenet group; this fixes the bug where the merge would remove a middle-object from the source wirenet breaking the source wirenet into new groups that are then not moved -Fix: when recalculating connections after an object move, if a connection is to keep, still update its coords because the parent object may have moved slightly -Fix: remove cgrp_inst2spec optimization: it's not enough to look at the group's own transformations, parent's matter too, it's safer to do all this once, with reverse xform -Fix: when a connection is recalculated, remove objects that are no longer connected -Fix: if a junction is "drawn" (e.g. in buffer copy), the line objet being drawn may be removed in the process, in wirenet optimization -Fix: do not update junctions in wirenet recalc freeze, proper recalc of junction after wirenet recalc unfreeze -Fix: don't crash if there's no objects in wirenet being recalculated -Fix: don't calculate crossing between wire line and wire non-line in wirenet merges (non-line is typically a label text) -Fix: when removing a whole wirenet group, remove connection of child objects -Fix: don't attempt to make a conenction that connects an object to itself -Fix: don't make connection between child objects of the same group -Fix: preserve connections in network merge -Fix: preserve original connections only in "group move into" -Fix: when finding conns for a terminal look for wires, when finding conns for a wire, look for terminals -Fix: insert idpath custom fungw type converter on init -Fix: revert should create a new sheet when reverting to the original sheet is not possible (file does not exist) -Fix: wirenet: when merging a wirenet into another, remove the leftover empty wirenet group -Add: refine invalid conn error message with type -Add: code for caclculating whether a point is within a triangle -Add: efficient code for calculating whether any of multiple points is in a triangle -Add: a pointer mark field in object header for temporary storage in sync code -Add: direct user to the config setting for merging multiple connections per port -Add: array attribute set API from C const string arrays -Add: publish attrib side effect function (some io plugins need it) -Add: all-attribute copy helper [lib_alien] -Cleanup: separate X and Y and non-axis-aligned coord transformations so the per axis offset and mirroring can be introduced later -Add: expose coord conversion for convenince -Add: helper functions for creating polygons and line based polygon contours -Add: option for flipping x and/or y coordinates -Add: optional x and y translation on coords -Add: arc-in-poly-contour helper -Add: helper function to approximate a bezier in a polygon contour [menu] -Add: ctrl+s saves [propedit] -Fix: return coords in long, not in rnd coord (makes no sense to convert to mm) -Add: propget() also accepts objbin as first arg (like propset); useful for scripting -Add: when geo is enabled, include bbox coords (also bbox center) -Add: accessor for reading inst rot, inst mirx and inst miry of text objects [query] -Fix: do not return pointer free'd -Fix: idpath requires clear memory for idpath target because of vectors -Fix: .selected returns any-parent-selection as well to be consistent with GUI behavior -Fix: scope name is "sheet", not "board" in sch-rnd context -Add: .anylocked: returns true if an object is locked in any way (e.g. group lock) -Add: .level is evaluated to the object's depth in the tree; 1 means directly on the sheet [scconfig] -Fix: reset all sphash config fields between compiling modules -Add: print which app required librnd to avoid possible confusion [sch-rnd] -Fix: when buffer-pasting wirenet groups, schedule merge-recalc so they get merged/connected properly -Fix: don't crash while cutting to buffer if selected object is already removed -Fix: select wirenet on second selection click on wire -Fix: when copying a wire into the buffer create the "same" wirenet parent as it had on the sheet (minus metadata) so that it behaves like a wire, not a plain decoration line on paste -Fix: {s r} (selected remove) deleting junctions won't cause an assert -Fix: partial wirenet {s r} bug: freeze wirenet recalcs while the remove loop is running so that existing wirenets are not split up -Fix: normalize wirenet line using inst2spec when put into a buffer-wirenet-group so it remains in position -Fix: when any dyntext of a wirenet is copied, also copy all attributes of the wirenet -Fix: buffer clean: use a low level object remove that doesn't have side effects: don't attempt to maintain undo or wirenet merges in buffer when everything is going to be removed anyway -Fix: do not try copy or paste conn objects, recalculate them instead -Cleanup: remove obsolete font related config nodes -Cleanup: move Revert() implementation from lib to sch-rnd: it depends on creating a new sheet which is app-specific -Add: place wirenet labels on the longest line -Add: BufferCopy(): optional x and y arguments to override crosshair (for scripting) -Add: BufferPaste() action for scripting -Add: API for creating new sheet in-place, in an existing (csch_sheet_t *) [sch_dialogs] -Fix: tree dialog: disable auto-expand because group nodes are of interest in themselves -Fix: abstract model dialog: do not crash if port's parent is NULL -Fix: missing has_coords attr from quick_attr to attrib dialog obj converter helper function -Fix: dlg_attrib #includes its own .h to avoid desync'd function proto -Fix: tree dialog should refresh preview after compilation finished -Fix: refresh preview when local lib entry is updated/refreshed -Fix: don't let the parametric library window open for non-parametric symbol -Cleanup: const correctness -Cleanup: remove unused var -Cleanup: incompatible pointers -Add: attr editor button in tree view [tutorial] -Add: getting started video -Add: devmap video -Add: heavy symbol video -Add: portmap video -Add: text video -Add: dyntext video [util] -Import: awk format helper from pcb-rnd (needed by packages.sh) 0.9.1 beta-test (5277+bugfix) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [export_png] -Fix: librnd 3.2.0 does not yet have pixmap export API, disable pixmap exporting 0.9.0 beta-test (5277) ~~~~~~~~~~~~~~~~~~~~~~ [boxsym-rnd] -Cleanup: use http url for contact instead of email address (due to spam) [devmap library] -Add: 2n3904 - a real common NPN for the getting started tutorial -Add: led5 for the getting started tutorial -Add: polarized rcy, for the getting started video [diag] -Add: UndoSplit() to make undo of batched operations possible step-by-step for debug [doc] -Fix: design: halign values left and right replaced with start and end for clarity (mirroring affects this) -Fix: lihata native file format spec: wrong root types for sheet and devmap -Update: direct traffic to pcb-rnd@ instead of cschem@ (mailing list merger) -Rename: all examples from *.lht to *.rs (and *.rp) -Add: text mirx and miry in design doc: we had to deal with text mirrors because of inherited transformations anyway, adding an explicit field makes it easier to manage alignments -Add: lihata format doc: text object mirx and miry -Add: refine {des3:36} on the single line text case when halign is considered -Add: document what happens if forge tries to append/prepend array to scalar -Add: scripting example: quick attribute for tolerance [export_abst] -Add: plugin for exporting the abstract model to text [export_png] -Fix: uninitialized memory on xform -Fix: when exporting in monochrome, fill polygons with grey above a certain threshold of light colors -Fix: set fill-gray-threshold bounds to 0..100 (fixes the GUI entry) -Add: export pixmap objects [export_ps] -Fix: uninitialized memory on xform -Fix: when exporting in black-and-white, fill polygons with gray above a certain threshold of light colors -Fix: when exporting in monochrome, fill polygons with gray above a certain threshold of light colors -Fix: make it clear that gray threshold is considered only in monochrome mode export (both in ps and eps) -Fix: greyscale poly fill: more accurate approximation of the rgb color using an average of components -Fix: set fill-gray-threshold bounds to 0..100 (fixes the GUI entry) -Cleanup: remove some pcb reference leftovers -Change: make --fill-page default on -Add: automatic toc; hint on toc being automatically decided [export_svg] -Fix: help uses .rs instead of .sch for example -Fix: uninitialized xform [export_tedax] -Fix: help uses .rs instead of .sch for example [font] -Change: replace ttf font with pcb-rnd's font engine -Import: aussiefont from edakrill [gui] -Fix: update top window title only if currently shown sheet's data changes (but not if buffer changes) -Fix: trigger autocompile on the sheet that had the change (but do not start autocompile timer on buffers) -Fix: right click context menu respects only_floaters and lock_floaters -Change: switch over default file name endings to .rs and .ry [io_lihata] -Add: save and load text object mirx and miry -Change: switch over default file name endings to .rs and .ry [lib] -Fix: wrong sign when applying child xform rot on text -Fix: text mirror function sets mirror flags instead of rotating -Fix: text: invert child xform rotation angle on odd mirrors -Fix: halign enum values renamed from LEFT/RIGHT to START/END to match the spec -Fix: text mirror: if text is not bbox-specified, do not change spec2 coords (they should be calculated) -Fix: don't mirror spec2 of text objects - spec2 is really a width+height from spec1 -Fix: inst2spec on group: don't invert rotation direction -Fix: cgrp_inst2spec(): do not do inverse transformation, but replicate normal parent transformation, that's how we get the same coords as during render -Fix: get text rotation vs. mirror right (both for unrotated bbox and precalculated for rendering): rotate first, then mirror -Fix: remove rotation tweak in text mirror operation: it turned out to be a workaround for a rendering bug -Fix: rewrite floater_origin() to use raw matrix transformations so that it considers mirroring too -Fix: text_inst2spec() calculates new x2 and y2 using width and height to preserve orientation of bbox-specified text -Fix: text_inst2spec() preserves mirror bits -Fix: cgrp_inst2spec(): rotation angle should be inverted even if parent is not mirrored but target group is -Fix: integrity test shouldn't segfault (but report error) if connection parent is NULL -Fix: conn update shouldn't add deleted objects to connecions (but should still run the update to remove it from existing conns) -Fix: when calculating conn object coords ignore pairs of objects that have the same parent -Fix: conn object: when a referee is removed, check if remaining referees are from at least 2 different groups; if not, remove the connection -Fix: don't crash when attrib string val modified to NULL -Fix: terminology: when creating a new terminal, use "TERMNAME" for initial value instead of PINNAME -Fix: connection object graphics: don't draw connection mark between same-group objects -Fix: batch all remove side effects into a single undo slot -Fix: cnc_conn undo print: print full path of the object being added/removed in a conn -Fix: conn auto-add: do not (undoably) add an object to a connection if the object is already in the connection (adding it the second time would have no effect but then adding it to the undo list would confuse the system after undo) -Change: "place terminal" shouldn't mark the terminal name dyntext with the floater flag; the user should modify a name attribute -Add: remember raw inst_rot and inst_mir* when updating text to make text render's job easier -Add: text spec mirx and miry -Add: text_modify() can modify mirx and miry -Add: apply text mirx/miry when calculating bbox corners -Add: new layer for hosting text object meta (bbox and orientation) -Add: symbol-to-component name engine hook -Add: optimization: do not draw a new wire if it fully overlaps with an existing one -Add: search: first_gui object with an user specified filter callback -Add: csch_search_first_gui_inspect_filter() for user filetering on floaters -Add: comment that allows using the mark field for any sync plugin -Add: implement csch_attrib_setptr() - saves an strdup()/free() -Add: undo helper macro for placing marks on the undo list -Add: better floater placement: if hint coords available, place wire-net floater there [menu] -Add: {a v} changes the value attribute, {a f} changes the footprint attribute [place] -Fix: place terminal and place attrib: mark the sheet changed [propedit] -Add: expose text object mirx and miry [query] -Add: support for text mirx and miry -Fix: missing halign enum name "center" -Fix: advanced search tabs: we don't have refdes but name -Cleanup: pcb-rnd reference leftover in window title [renumber] -Add: plugin for automatically renumbering symbols (filling in the name attribute) [sch-rnd] -Fix: text alignment in mirrored bbox specified case -Fix: default file naming in buffer save is .sy for symbol -Fix: buffer: when picking up floater for copy, do a reverse transformation of parent transformations so that the coords in buffer are in the absolute coord system -Fix: don't hardwire .sch-rnd for dot path in menu paths,use config.h variant so it can be overridden -Fix: when clicking for selecting an object and there are overlapping objects, ignore the one already selected (lets you cycle through objects) -Cleanup: pcb references left over in config help -Change: when saving buffer to symbol, offer sym.rs as default file name, where sym is easy to replace (already selected) -Move: lock_floaters and only_floaters are handled in central gui search so that things like {a v} don't need to reimplement them -Add: implement start/end/center text alignment -Add: implement word and glyph justified rendering -Add: draw textbbox and origin controlled by text meta layer visibility -Add: sch_rnd_search_first_gui_inspect() that applies only_floaters and lock_floaters -Add: menu for listing unnamed symbols (hotkey: {s l u}); rename {s k} to {s l k} for consistency [sch_dialogs] -Fix: allow attribute dialog object search to pickup terminals (use the _inspect() search), e.g. in {a a} -Add: tree dialog: print connections oid-paths for a conn object -Add: tree dialog: preview for a conn object should zoom to the bbox of all calculated intersections ("green stuff") and hilight all objects participating in the connection -Add: apply hint coords for floater placement when attribute dialog invoked for object [std_cschem] -Add: rename components ending with ?? to oid based unique naming (to avoid collisions) and warn the user -Add: plugin configuration with fix_unnamed_syms (enabled by default) [std_forge] -Add: plugin for cschem standard attribute forging -Add: put the plugin on default views; run forge before std_cschem for the connect list to work from forge output [std_tools] -Fix: drag&drop move selected: don't ignore selected object when clicked -Cleanup: remove pcb_ prefix leftover -Cleanup: remove tool: no need to mark sheet changed, low level code does that -Add: double click while drawing lines or wires stops drawing [symbol] -Cleanup: rename symbols from *.sym to *.rs -Fix: opamp, comparator: V- transformation to keep text readable -Fix: use bbox-defined text for rail symbols with center alignment -Fix: common awk: terminals are created with all labels properly mirrored so they grow away from terminal origin in all four orientaitons terminals can be placed -Fix: ldo symbol term label directions -Change: term label shouldn't be floater but dyntext and the user should modify a name attribute -Change: common sym awk: term label shouldn't be floater but dyntext and the user should modify a name attribute 0.8.4 alpha5 (r4889) ~~~~~~~~~~~~~~~~~~~~ [act_draw] -Add: DrawLine(), DrawRelease(), DrawGroup action(), DrawCircle(), DrawArc(), DrawWire(), DrawText() [backann] -Add: back annotation plugin with bap import and GUI [boxsym-rnd] -Fix: strip whitepsace from pin field args -Fix: pin alignment corner case with only top and bottom pins -Add: generate group uuids -Add: don't overwrite input with monolith on file name match, print an error instead -Add: throw error on multiple definitions (terminal name non-uniq) -Add: pin label option -Add: let the user tweak text size estimation factor [build] -Fix: remove redundant broken map_plugins rule -Add: generate Makefile.conf to help install scripts later -Add: make install -Add: install minuid CLI tool into libdir - boxsymrnd depends on it [construct] -Fix: don't even start converting to poly below 3 objects [doc] -Fix: design: specify source format only for the case the data is saved - don't care how it is stored in-memory; clarify when the UID based source format needs to be used -Fix: pcb-rnd terminology change from element to subcircuit -Fix: design: components and nets are primarily identified by their name -Cleanup: unnecessary full path in example -Cleanup: rename cschem to sch-rnd in svn url -Change: design doc: uuid (and src_uuid) are not attributes but non-mandatory properties of groups -Import: action doc scripts from pcb-rnd -Add: uuid and src_uuid in lihata format doc -Add: backann example: name nets because anon net name is not stable -Add: design: project file terminology with the root sheets -Add: design: {6:29} explains the relation between hierarchy and the optional project file [examples] -Fix: use a.name instead of A.name in dyntext -Fix: use a.devmap instead of A.devmap -Add: (instance) uuid in all groups -Add: full back annotation example [export_png] -Add: screen-colors export option that keeps selection and hilight colors -Add: --view parameter [export_ps] -Fix: restore view on error -Add: screen-colors export option that keeps selection and hilight colors -Add: --view parameter for ps and eps [export_svg] -Add: screen-colors export option that keeps selection and hilight colors -Add: --view parameter [gui] -Add: autocompile: GUI and implementation -Add: sheetsel: mark non-root sheets with parenthesis [io_lihata] -Fix: test parse accepts file only if it is of the requested type -Add: load and preserve project file lihata doc in memory, in the project structure -Add: save/load grp/grp_ref uuid and src_uuid [lib] -Fix: text update: optimization gone bad: can't skip detailed angle transformation if text is mirrored in any direction, even if input rotation is zero -Fix: don't crash if group ref target is NULL in csch_cgrp_ref_get_attr() -Fix: csch_grp_ref_get_top() shouldn't crash when sheet->direct or sheet->indirect is queried -Fix: sheet revert should also trigger sheet post-load event at the end, it's really a load -Fix: sheet uninit frees the undo list; sheet init resets/initializes the undo list -Fix: wrong order of local lib uninit when sheet is uninited may cause broken hash table in symlib_local -Fix: when converting a group ref to group, copy any attribute of the referee that's not set in the group -Fix: grp_ref embed to grp changes the sheet so should call sheet_changed -Fix: compile net merge should copy sources into the new net -Fix: compile net merge: remove sources from the source group which shall be empty by now -Fix: don't crash in "find sheet by load name" in case load name of a sheet is NULL - it just shouldn't match -Fix: integrity check: don't complain about object disjoint from a wirenet if object is a floater (typically it's the netname) -Fix: attr undo list free: don't crash on swapped attr being NULL (normal case) -Fix: wirenet draw: group all operations in a single undo slot when a new wire segment merges existing wires -Fix: default export file name for unknown page is unknown.EXT, not sch-rnd..EXT -Change: make plug io types a bitfield so multiple types can be probed -Add: upgrade project struct for remembering the lihata document (for now) and mark that it will be an extension of the librnd project struct at librnd 4.0.0 -Add: bit to mark if a sheet is not a root in a project -Add: when compiling a project, start compilation only from root sheets, aux sheets should be reached through root sheets -Add: generate new (instance) UUID for groups as they are allocated -Add: copy group source uuid on alloc and dup -Add: undoable group uuid modify calls -Add: assert() on group ref being NULL in csch_cgrp_ref_get_attr(): it's usually indication of a bug, reveal it ASAP in debug mode -Add: extend the object hash API with a more flexible, bitfield ignore -Add: object hash can ignore floater geo and grp placement (useful for loclib symbols) -Add: integrity check: every group object shall have an instance uuid -Add: loclib edit callback in backend API -Add: utility call that figures if a concrete group is a source of an abstract object -Add: mark wirenet merge source as ghost so it can be omitted from output -Add: wirenet util: count junctions on a line object -Add: wirenet util: function to determine if a new wire line would hit the endpoint of an existing wireline with its middle -Add: publish attr source append API so that failed writes can be logged -Add: compile: log failed attribute writes -Add: attribute source parse: also parse type bits -Add: publish csch_conn_text2ptr() -Add: integrity checks on connection objects so strange/invalid cases are caught earlier -Add: export util: helper functions to compile and restore abstract model around export to handle --view [library] -Fix: use a.devmap instead of A.devmap so that compilation can change the printout -Fix: excess group in coil-var-3 -Change: use a.value instead of A.value for display value so it can be calculated during compilation -Cleanup: use for initial value for all stock librayr symbol - it's dangerous to use a valid-looking value, the user may forget to modify that after placement [propedit] -Add: handle UUIDs -Add: help text for the most common fields [query] -Fix: remove PCB from query help -Fix: remove ctx from linked list when dialog is closed -Add: support for grp .uuid and .src_uuid -Add: close all the sheet's search dialogs when sheet is unloaded -Add: close all search dialogs when plugin is unloaded [sch-rnd] -Fix: poly arc fill for negative delta shoudl result in positive steps -Fix: poly fill approximation assumes 600 DPI on exporters that don't set coord-per-px -Fix: font rendering compensation for x-mirrored text (180 deg rotation before render) -Fix: menu: use 'k' for grid units now that librnd supports it -Fix: don't list 32k and 64k for default grid units, they are out of range -Fix: wrong uninit sequence: free paths only after hidlib uninit, else saving config to user file (e.g. saving window geometry on exit) will break -Fix: menu: connection attr quick change is really about symbols not a generic groups, move it in the right submenu -Change: rename conf node prj.sheets to prj.root_sheets to prepare for hierarchic designs -Change: crosshair color in default config to make wires more visible -Change: enable autocompile by default -Add: draw: xform bits to disable rendering selection and hilight colors -Add: also list aux sheets in project file for hierarchic designs to be fully specified -Add: multi: load all sheets of a project file when the project file is loaded directly -Add: mark non-root (aux) sheets when loading all sheets of a project file -Add: UUIDs in the default sheet -Add: when creating a new sheet, make new UUIDs for sheet->direct -Add: lock floaters, only floaters config & menu -Add: menu: {a s} for slot change shorthand [sch_dialogs] -Fix: tree preview renders the sheet of the object, not the currently gui-visible sheet -Fix: library dialog refresh: get the name of the root lib entry and use that to decide if it's the subtree and to log what got refreshed -Fix: refresh preferences dialog general and lib tabs on board change -Fix: close open library window when sheet is closed -Fix: undo dialog shall be global and shall always display data for the current sheet -Fix: tree dialog has one root per sheet (matters when showing a multi-sheet project) -Change: disable showing hidlib-name of the sheet - this concept should be moved from librnd to pcb-rnd as legacy -Change: tree dialog is really per project local, not per sheet local -Add: need to refresh any open library window in sheet postproc: revert may remove local lib -Add: library dialog: optional button for loclib edit -Add: do not display ghost abstract objects -Add: update tree (but with a shorter timeout) when sheets in a project change [std_tools] -Add: arrow tool repsects only-floater and lock-floater config [symbol] -Change: switch over common_sym awk to rely on externally supplied minuid seed to guarantee unique UUIDs -Add: license banner for common awk -Add: uuids in all lib symbols -Add: common_sym awk: generate uuid field for each group if minuid is initialized -Add: common sym awk: sym_term() has a label option that overrides the terminal name printout with whatever user requested label [symlib_local] -Fix: print string attribute for name in error log instead of binary garbage -Fix: symlib_local_free() gets a lib ptr but sh and shna contain groups; look up the group -Fix: loc_replace(): need to remove from hash/lib first, only then can the group be free'd, else hash removal would fail -Fix: parsed the wrong string in "object:oidpath" addressing -Fix: grp -> grp_ref loclib conversion: always keep the role attribute explicitly - it's too important to lose trying to rely on lib refs -Fix: set board changed after converting grp to loclib grp_ref -Add: loclib edit callback, invokes attribute editor -Add: preserve attributes that differ from the loclib version when converting a group to group-ref [util] -Import: deblist and keylist from pcb-rnd for doc to generate -Import: list_dialogs (devhelper) from pcb-rnd, adapt to sch-rnd 0.8.3 alpha4 (r4400) ~~~~~~~~~~~~~~~~~~~~ [boxsym-rnd] -Fix: monolithic symbol: avoid overlapping terminals if multiple slots use the same side -Fix: remember multi-slot coords and insert separator only when side got incremented -Fix: when generating monolith, prefix slotted pin names with slot number to make them unique [build] -Add: generate, compile, link and use embedded version of default config instead of depending on ./ -Add: embedded default sheet fallback -Add: embedded version of the menu file [construct] -Change: allow arc in poly while converting objects to poly [doc] -Add: developer doc on how local symlib copy&paste works (especially in multi-sheet setup) -Add: lihata file format versions -Add: lihata format doc [export_tedax] -Add: --view argument for selecting which view to export [gui] -Fix: sheetsel: use the basename of the parent directory of the project file for project name -Fix: off-by-one bug in sheetsel project basename calculation when there's no '/' in project path -Del: redundant Unselect() implementation -Cleanup: get rid of infobar's global sheet dependency where easily possible [io_lihata] -Fix: do not save or load conf subtree in buffer save/load -Fix: do not save editor/mode in sheet conf subtree (to reduce noise) -Add: buffer load/save hooks and test-parse [lib] -Fix: remember template name for new sheets so revert-sheet can load the template even tho loadname and hidlib name are NULL (for enforcing save-as) -Fix: const correctness: csch_cfg_multiport_net_merge is not modified by the lib -Fix: group dup shouldn't crash if dst allocation (with enforced ID) fails but return NULL -Fix: project export name: when deduced from sheet, truncate "extension" of the sheet load name and append both view name and a * -Fix: split up disjoint wirenets after a delayed/inhibited wirenet update -Cleanup: rename export_netlist to export_project because the real difference is operating on the abstract model exporting the whole project, what the exporter does with it is its own business -Del: project->symlibs (was in use before project switched to coraleda-standard config approach) -Add: sheet post unload event -Add: Unload() action (works for sheets for now) -Add: event for copy-to-buffer so that local lib can take over -Add: API for buffer load/save -Add: csch_cgrp_ref_ptr2text() -Add: integrity check: grp_ref object must have a referee and if it's a pointer, it must be within the same sheet -Add: pass on the sheet that triggered project export to figure output name, just in case project does not have a name -Add: project compilation gets a viewid arg so it doesn't necessarily rely on project's default view (allows reentrant export on a different view) -Add: get-view-idx-by-name API -Add: CompileProject() has an optional arrgument for naming a view to use -Add: "deleted" concept in group ref's child_xform; do not export deleted items -Add: function to clear the cache portion of child_xforms of a grp ref -Add: assert() on trying to use removed child xform -Add: throw an error for "grp-ref with child xform within grp-ref" for now -Add: integrity check: detect disjoint wirenet groups -Add: helper macro that converts object[=oidpath] into a keyword (F_Object) and an object pointer resolving the oidpath [propedit] -Fix: don't use int for enum: unsafe when passed as pointer -Fix: passing incompatible pointer to modify() on polygons -Fix: remove pcb-rnd-specific scope hints from help -Add: implement toggle for polygon has_fill and has_stroke -Add: Propset() -Add: Proptoggle() -Add: Propget() action -Add: Propprint() action [scconfig] -Add: detect system font dir (testing dir existence from a list) and include it in generated config.h -Add: --fontdir to override autodetection [sch-rnd] -Fix: multi: calculating the wrong project file name (dir, not file) -Fix: move generating sheet post-load event from lib to sch-rnd's multi so that project config is already loaded by the time the event is emitted -Fix: multi: properly restore config state after a failed load -Fix: run group update on pasted object only if it's really a group -Fix: do not accept rc/font_dirs on project or design role (that's too late for the font engine) -Fix: print all GUI plugins available (not only the ones loaded) -Fix: refuse to copy grp_ref objects to buffer - they would break on paste later if the sheet changes or if pasted on another sheet -Fix: do not export each sheet of a project from project export -Fix: select the arrow tool after loading a new sheet so that a sheet saved 'mode' wouldn't cause problems -Fix: typo in the menu file: saving buffer group should work on any group, not just symbols -Cleanup: remove global project dependency from -x exporting -Cleanup: remove dumping the abstract model from project netlist export call - there are better ways looking at the abstract model by now -Change: SaveBuffer() and LoadBuffer() argument for saving whole buffer is "All", not "Sheet" as the save format has a different header -Add: make font mapping code substitute $() in font dirs so scconfig detected font dirs can be fed in and use scconfig detected font dir by default -Add: multi: support for sheet unload -Add: multi: helper for finding next/prev sheet from a given sheet (for fallback after an unload) -Add: sheet unload menu -Add: be more explicit about which operations are on sheets in the file menu -Add: fill in rc.path.design using the sheet's file name -Add: --show-paths prints library search paths and font dirs -Add: emit event BUFFER_COPY_CUSTOM and perform the copy only if no plugin did it -Add: BufferSave() and BufferLoad() works on whole buffers (op is "All") -Add: fail with an error message when pasting a group-ref (must be handled by plugins, e.g. symlib_local) -Add: generic project export call gets optional explicit name from the export plugin -Add: implement RemoveSelected() for {s r} -Add: UnSelect(All) action with a menu binding -Add: Select(All) action with menu binding -Add: Select(Invert) inverts selection -Add: draw code for arc-in-poly -Add: remember file name when sch-rnd was started with a file name pointing to a non-existent file and a new sheet had to be created so save won't ask for the file name [sch_dialogs] -Fix: quick attr: accept non-native-action fungw functions for quick_attr callback so that scripts can implement quick_attr as well -Fix: update (global) undo dialog content after switching sheets -Add: about box -Add: attribute dialog: when creating a new attribute, also ask for the value for quicker edit -Add: attribute dialog: set value on existing attribute in 'new' if both key and value are specified -Add: EditText() first arg object=oidpath works -Add: PenDialog() accepts object=oidpath as first arg [std_devmap] -Fix: compiler error message prints devmap name string (not the devmap attribute struct) [std_tools] -Fix: batch undo operations of line endpoing move: in case of wire lines this may be a series of operations to break wirenets -Fix: reset movecopy endpoint when a new move starts so it doesn't accidentally inherit previous endpoint state [symlib_local] -Fix: copy loclib ref to buffer should create a "purpose=symbol" grp within buffer's indirect where the local symlib is grown -Fix: don't require keeping the original OID when creating indirect symbol loclib entry - pasting from buffer will oftne have collisions in OIDs -Add: when loclib grp_ref is copied to buffer, also copy the referee into the indirect subtree of the buffer -Add: when copying to buffer, rebind ref so it doesn't point to the sheet's indirect -Add: sanity checks for loclib grp_ref paste -Add: paste grp_ref with also pasting inderect referee and fixing up the reference 0.8.2 alpha3 (r4136) ~~~~~~~~~~~~~~~~~~~~ [boxsym-rnd] -Update: use attribute -symbol-generator instead of symbol_generator to avoid collisoin (and dash for consistency) [build] -Fix: explicit rule for building load_cache object -Fix: explicit rule for building src_3rd ttf_bbox's mapper [doc] -Fix: do not hardwire UID as means of reference from abstract to concrete model, leave the decision to the implementor -Change: rewrite attribute source syntax to make the GUI be able to trace back sources -Add: release procedure imported from pcb-rnd, tuned for sch-rnd alpha state -Add: explain that the indirect subtree hosts different group types, including devmap -Add: explain the first level of groups within the indirect subtree -Add: document how --layers works -Add: computer readable tables of query fields for concrete objects; generated html version -Add: query: copy relevant parts for functions from pcb-rnd doc -Add: portmap & devmap & display name document -Add: document loclib_name field for groups -Add: attribute key prefix '-' and '+' to control merging -Add: devmap file format -Add: document child_xform [examples] -Del: old project file example - we've switched to config-tree-based project files -Fix: portmap example slot2.lht: specify the portmap only once -Fix: remove redundant copies of the titlebox -Update: switch over from slot to -slot attrib avoiding attrib collision -Add: include devmap loclib in devmap example (devmap loclib is mandatory) [export_lpr] -Add: print (using generic lpr implementation from librnd) [export_png] -Change: switch over from local copy of draw_png to using librnd 3.2.0's pixmap draw plugin -Add: --layers [export_ps] -Change: switch over from local copy of ps/eps draw code to librnd's lib_exp_text -Add: depend on lib_exp_text -Add: --layers for ps and eps [export_svg] -Change: switch over from local copy of ps/eps draw code to librnd's lib_exp_text -Add: depend on lib_exp_text -Add: --layers [gui] -Fix: potential NULL pointer deref on load -Fix: overwrite sheet's loadname on save as to keep it in sync (not on plain save) -Fix: invalidate_all() after compile - a lot of dyntext has changed -Fix: compile button invokes the action not with the project that was active at setting up GUI but the project that's active at the moment (the user may have switched in multi-sheet setup) -Import: title.c from pcb-rnd to set app top window title -Add: action for relative-switching sheets -Add: adapt title.c for sch-rnd -Add: sheet selector (multi-sheet support) [io_geda] -Fix: more detailed error messages in path parsing -Fix: separator in H path xy coords is not comma but space [io_lihata] -Fix: project file header to match pcb-rnd's -Del: remove old project file loading - switched to librnd -Cleanup: switch over from csch_message() to rnd_message() -Add: save/load conf subtree to/from sheet file -Add: load and save group ->loclib_name -Add: accept coraleda project in test-parse [lib] -Fix: export util: determine default export file name using loadname of the sheet, not realname (makes a difference if sheet is a symlink) -Fix: when creating dummy project file, make sure the the proper dummy lihata doc is created for it -Fix: reverse prio levels of plugins - order should be from lower prio (larger integer) to higher prio (smaller integer) according to the spec -Fix: attrib source type is not a single char but a string (to match the spec) -Fix: uninitialized stack var caused wrong net name for comparison/log in wirenet merge -Fix: segf when compiling on unsaved page -Fix: compile: when a group ref overwrites an attribute of the referee with the same prio, that's not a compilation error, simple skip the write -Del: local implementation of project file name calculation (csch_project_name_by_sheet_name()) -> use librnd's -Del: get rid of local message.[ch] implementation in favor of librnd's -Change: high level attrib code always gets source as pointer, so that allocation can be simplified in a subsequent commit -Change: make struct csch_source_arg_s opaque, making the allocation scheme an internal business of the attrib code -Change: make connections layer visible by default -Optimize: simplify temp attrib source allocation, save two malloc()s -Move: local lib support, remember loclib_name, centrally allocate loclibs -Add: library changed event -Add: layer visibility table for default exports -Add: temporary workaround until librnd4.0.0: LoadFrom() uses multi.h API to load multiple sheets instead of replacing current sheet -Add: csch_lib_clear_sheet_lib() - will be useful for cleaning the library before a global rehash -Add: preview_text hook for library backends, so non-symlib implementations can get something displayed in the library window -Add: unset dummy bit on project file when it's written out by librnd -Add: compiler: implement attribute collision rules, introducing the '-' prefix for omitting attribute promotion -Add: run standard attribute compilation on ports -Add: API for attribute source decompile -Add: utility function for embedding a group_ref (converting it into a group) - floater transformation not yet done -Add: function to remove a lib entry from the tree -Add: new drawing layer for symbol meta (bbox & status) [library] -Update: prefix all the misc attributes with the a minus sign so they are not promoted to the component [propedit] -Fix: don't let group ref child objects changed [query] -Fix: clean up user functions before compilation instead of expecting the previous compilation succeeded -Fix: throw error message if there's user function in expression -Fix: report compilation errors using rnd_message() instead of --debug-only trace -Fix: reset lex buffer before parsing a new script (matters after a compilation error) -Add: include last seen line number in compilation error report [scconfig] -Fix: use configure .sch-rnd dot dir (under $HOME) instead of hardwired string -Cleanup: switch over to use /local/csch instead of /local/pcb in the db tree [sch-rnd] -Fix: uninit gui support plugin before unloading all plugins so that it won't hold its deps back with refco and every plugin is properly uninited and unloaded -Fix: typo in buffer code: when buffer place event took over creating the target object, take the right object for result -Fix: set rnd_render in expose_main() so that gui exporting works -Fix: buffer paste at 0;0 should call group update with xform (there's no move that would do that) -Fix: arrow tool shift-click on selected object should unselect it -Cleanup: remove code dups with pcb-rnd, using librnd's new exec prefix helper -Cleanup: move export helper function from sch-rnd.c to export.c -Change: use our own app's config prefix in the default conf for clarity -Add: explicit rule for compiling src_3rd/libuundo objects -Add: print runtime librnd version as well -Add: make it possible to render (draw) using local layer visibility instead of the current GUI's (required for reliable exports) -Add: export helper: interpret a layer visibility description string and set xform visibility accordingly -Add: export menu -Add: print menu -Add: multisheet: temporary code for switching sheets by saving/loading config states (before librnd 4.0.0) -Add: SymlibRehash() action -Add: prj/ conf subtree with list of sheets, allowed to load only from the project file -Add: refuse to load view conf from the sheet file or cli, scope should be at least project -Add: emit LOAD_POST event after loading a sheet -Add: object right click context menu for symbol vs. local library handling (embed/unembed) -Add: draw dashed bbox on the symbol meta layer -Add: symbol meta layer: draw an L or E in the top left corner depending on whether the symbol is loclib grp-ref or embedded grp [sch_dialogs] -Fix: missing return value on library dialog error exits -Fix: library: remember the full path of cursor so it can be restored after extending the local lib -Fix: don't let {e t} edit group ref child objects -Fix: tree dialog: track of what object was last shown in preview and do not change zoom/pan, only redraw on status changes as long as object selection did not change -Fix: generate file name change event on changing sheet name to get the titlebar updated -Fix: attr dialog: prefix group ref referee keys with a space so they are not found for most context (and cursor is not set to them when a target key is requested) -Fix: attribute dialog: disable the floater button for group refs (grp refs can't host new objects) -Fix: attribute dialog: allow limited edit of referenced group attributes -Fix: attribute dialog: don't let the user change priority value on referenced group's attributes -Fix: don't crash on library selection if nothing is selected when "use selected" is clicked, take it as a cancel -Add: update all library GUIs open for the related sheet upon a library changed event -Add: attribute dialog displays referenced grp's attributes as well -Add: dyntext edit: when invoked on a grp_ref direct dyntext child refering to the group_ref's attribute, invoke the attribute editor, that's the only way to change the text -Add: dyntext edit: throw error if grp_ref child was a dyntext but could not be edited -Add: dyntext edit: widgets to directly access/edit attribute value in the simplest and most common cases -Add: print error messages when the attr edit button can't figure which attribute to edit -Add: create the PrintGUI() action using librnd's implementation -Add: attribute dialog: set the name of the left-right pane for testing save/restore -Add: tree dialog preview: show original sheet, not current GUI sheet (it is a local dialog) -Add: if lib backend preview_text() is available, use that for generating the preview instead of trying to draw a symbol (useful for non-symbol libs) -Add: button for following attribute history row -Add: AbstractDialog() takes optional abst_id and attr_name to navigate cursors to an existing attribute -Add: cross-call from abstract attribute history to attr source abstract object (opening the right attribute dialog) -Add: abstract attribute source traceback button: when concrete object attribute is clicked, open the attribute editor with the object's oidpath and attr name to get the cursor right -Add: abstract attribute side: when presenting attribute history, auto-select highest prio line, that's the one that determined the final value -Add: include libmaster's name and sheet name because multiple instances may be open -Add: special buttons for local lib handling [std_devmap] -Fix: do not modify portmap attribute values while parsing for assisted edit -Fix: assisted portmap edit: return 'changed' state after modification -Fix: port map quick edit: memory management bug on initial pcb/pinnum fillin -Update: prefer -slot over slot for the slot attribute -Add: more detailed error messages on invalid devmap attributes -Add: figure which symbol(s) contributed the devmap attribute -Add: local lib support - automatically save any devmap used on the sheet in the local lib -Add: implement loclib refresh-from-external-lib -Add: count/list devmap usage from local lib [symlib_fs] -Fix: when loading a parametric symbol from the rendered temp file, replace group file name with the original parametric symbol file name - nobody is interested in the temp file name [symlib_local] -Add: when enabled, create local lib reference for buffer pasted symbol groups [target_pcb] -Del: no need to manually derive port attributes, they are all compiled centrally -Fix: when display name is set, description should include where it was copied from [util] -Update: example boxsym has "-slot" attr so it doesn't propagate 0.8.1 alpha2 (r3606) ~~~~~~~~~~~~~~~~~~~~ [boxsym-rnd] -Fix: do not emit excess, zero sized box -Fix: swap order of pins from bottom->top to top->bottom on the left and right side to match the order in the file [build] -Fix: replace "fp" plugin class with "symlib" class as sch-rnd has symbol libraries, not footprints -Fix: classification of std_* plugins (they are feature, not io) -Add: ./configure: --enable-bison and --enable-byaccic -Add: define sphash so that plugins can use it -Add: new plugin class "engine" to separate them from more generic features [doc] -Add: generated doc on stock parametric symbols -Add: devmap: specify how non-slotted portmap entries look like -Add: describe how does the display/name attribute work, explain heavy symbols -Add: explain portmap and devmap [examples] -Add: a real LDO example circuit (using the stock lib and portmap) -Add: a working devmap example with 2 of the same n mosfet symbols with different pinouts -Add: devmap example conn1 gnd and vcc connections -Add: slotting example with devmap -Add: inhomogeneous slotting example (clocked SR latch built of 4 NAND gates) -Del: project file special subtree for symlibs (project file becoming config based) [export_png] -Add: disabled-by-default until draw_png is moved to librnd [export_ps] -Add: export ps (ps and eps) [export_svg] -Add: standard svg export; low level draw copied from pcb-rnd [export_tedax] -Add: register an export HID as well so the standard librnd export mechamism works -Add: call the generic exporter from the export plugin -Add: more details in error messages on pin number/refdes -Fix: use abstract net's ->netname for the final fallback if there's no better attribute based name -Fix: do not export components with no name; such component is meant to be graphical by definition -Fix: no parent refdes is not an error, it only means parent component (and all pins) should be omitted from the netlist -Fix: prefer display/* attributes over pcb/* attributes (do not hardwire workflow) [gui] -Fix: use gui_inspect search for right click so that terminals are picked up over symbols, wirenets and floaters -Add: compile box in the top status bar -Add: view button invokes ViewDialog() [io_geda] -Add: plugin main to read gschem sheets and symbols [io_lihata] -Fix: reverse ordering of negative OIDs to preserve object order on a load-save round trip (new negative OIDs are assigned in decreasing order) -Del: don't load symlib dirs from a special subtree from project file, it'll be part of the normal config tree -Add: test parse callback -Add: support for group ref child xform load and save [lib] -Fix: avoid excess object redraws in text update -Fix: wrong ordering of io plugins by priority: higher value is better -Fix: if test parse returned okay, rewind() f once again because the real parser may also depend on it; also rewind after test parse when loading group -Fix: inhibit redraws during load, just in case the loader triggers some -Fix: wirenet util: don't print warning on ignored text object in wirenet mapping; such text object is typically the netname -Fix: search all selected: recurse into non-selected groups so that partial selection is found -Fix: if a new wirenet group is created during recalc freeze, add it to the recalc list (to be recalced after unfreeze) -Fix: wirenet unfreeze merge: recalc connections as well; calculate final net name on unfreeze merge, communicate renames using error messages so that the user gets notified -Fix: batch undo ops for drawing a wirenet segment as it often breaks down to multiple junction and conn operations -Fix: recalc connections on wirenet line move -Fix: do not add the same library root twice even if it got two map requests -Fix: reverting before save should get back to the default sheet -Fix: invalid free(): on sheet uninit remove comm_str only after removing all pens because pen hash depends on comm_str -Add: fully working net/component compilation that considers engines and views -Add: API: csch_oidpath_list_clear(), csch_text_invalid_chars() -Add: API: abstract type name resolver -Add: pointer domain for object arrays (vtp0 of csch_chdr_t *) -Add: recursive wirenet recalc freeze/unfreeze with a single recalc at the end -Add: wirenet: group merges after recalc unfreeze -Add: i/o API: call for backup sheet save (no side effects like resetting the changed flag) -Add: remember if a project is dummy (not loaded or saved, just created from scratch) -Add: abstract objects shall remember their abstract model parent for easier callbacks -Add: throw an error on port trying to connect to two different nets (except when it is being merged) -Add: project should remember last compilation abstract model so it can be displayed -Add: new search flavor, gui_inspect() that allows some of the non-movable/non-selectable objects to be picked up too (symbol lock bypass on terminals) -Add: project view accessors: return current view or view by name -Add: helper function to get the abstract object for a concrete object -Add: dyntext resolves abstract model's attributes using a.key references -Add: API: introduce an extra argument in project loading to tell if all sheets need to be loaded recursively as well -Add: API: project util: clear view list -Add: API: helper function to decide if any parent of an object is selected -Add: API: object hash functions -Add: API: group bit for preferring local lib -Add: group ref child transformations (experimental) -Change: use \001 instead of for dyntext rendering: should render as an empty box and it takes much less space and likely fits where the non-empty printout would -Change: auto terminal placement creates a floater for display/pinnum instead of concrete model's name to let filter plugins decide what to print -Del: lib_find API: always use cached lib -Move: realpath resolved from symlib_fs to core lib - will be needed by any fs based library -Move: fs lib mapping call from symlib_fs to core lib - will be used by any lib implementation -Cleanup: rename library.[ch] to util_lib_fs.[ch] for naming consistency and code repurpose -Cleanup: remove ->netname of abstract net, keep ->name only (consistent field naming) -Cleanup: in the concrete model only groups have attributes, remove attr hash from chdr -Cleanup: unreg actions on unload; related memory leaks [lib_alien] -Split: move read_helper out from io_geda to a reusable lib (multiple io plugins are going to depend on it) [library] -Fix: remove excess, zero sized box from the LDO sym -Fix: common awk: do not move name2 (pin name) by str length, it's good in its left aligned state -Fix: gnd symbol connects to net called GND not gnd, more widespread -Add: common awk: generate pin number with display/pinnum -Add: devmap for IRF510 in TO220 - perfect for example as the pinout differs from 2n7002 -Add: switch() --help: make style a proper enum and explain each possible value -Add: style=rotary support in switch() -Add: default titlebox symbol -Change: symbol lib terminal floaters: switch over from concrete model's pin name to display/pinnum [propedit] -Fix: integer overflow on coord entry maximums [query] -Add: concrete model query(), code based on pcb-rnd's quert() [sch-rnd] -Fix: font rendering: font rotation was determined too early, before a potential text_update that would calculate hte final transformed rotation angle -Fix: timed backup save uses the backup save i/o API so that the changed flag of the sheet is not lost -Fix: don't redraw while exporting -Fix: don't postproc sheet twice -Fix: draw code sets layer group to 1 to comply with HID API requirements -Fix: do not render sheet if set_layer returns 0 (respect the HID API) -Fix: invalid memory handling on exit: reset current sheet and project to NULL after freeing them so that emergency save is not done -Fix: overlapping strncpy() in librnd due to wrong handling of conf file name -Fix: use librnd's pixmap free instead of a plain free() so all internal fields of the pixmap are free'd too -Fix: do not call csch_init() twice, it leads to memory leaks -Fix: don't postprocess the sheet twice after loading from command line -Cleanup: rename default sheet file for naming consistency (with default project file) -Cleanup: unregister central resources (events, actions) on exit; memory leak cleanup -Add: advanced search menu (same as in pcb-rnd) -Add: menu for listing locked objects using query() -Add: menu for portmap quick attr -Add: menu: devmap library browser in window menu -Add: make multi-port net merge configurable from the conf system -Add: default views read from the config when creating a dummy project -Add: project file helpers: create new view, save project file; when creating a new project file, create the first overwrite subtree so it becomes a valid project file -Add: API: project util function for deleting the nth view -Add: API: buffer paste: generate event for hooking in and replace direct object dup -Add: conf node editor/paste_to_local_lib to control whether paste should be using the local lib [sch_dialogs] -Add: upgrade TreeDialog() to handle object arrays for pcb-rnd "view list" equivalent for now -Add: view dialog -Add: attr edit: fill in right side abstract attributes -Add: abstract model browser -Add: library dialog: optional modal version that returns the full path of the selected row -Add: parametric lib dialog (using rnd_inclib's) -Add: extend tree dialog to handle a whole project (multiple sheets) -Fix: quick attr connect: always enable the 'del' button, because del can be done by text input as well; instead of disabling, when clicked: check if key exists, throw error if not -Fix: attr dialog: if a new str attr is created, e.g. after {a a}, select the attr row for quicker floater button access -Fix: attr dialog floater creation: use the wire pen for wirenet name attr with {a a} -Fix: handle cancel on dyntext attribute picker -Fix: tree dialog: refresh preview after select/unselect/del on object -Cleanup: tree dialog: do not depend on ctx->sheet where object is available (switching over to project based operation) -Cleanup: use frame instead of separator in attribute dialog common buttons now that the related expfill bug is fixed in librnd [std_cschem] -Add: new plugin for handling standard cschem attribute mechanisms (such as component "connect" attrib) -Move: quick attr edit for symbol connect attribute moved to std_cschem, because that's the plugin processing this attribute by default [std_devmap] -Add: portmap engine -Add: devmap engine using cached fs lib [std_tools] -Add: copy/move all selected objects if there's selection [symlib_fs] -Add: set the sym_prefer_loclib bit in newly loaded groups -Add: test-parse files for group-type before adding them in the library (add symbols only) [symlib_local] -Add: prepare for one more layer of groups in indirect so that different backends can easily sotre their data without interference -Add: create a with-attributes and a no-attributes hash of the local lib while mapping -Add: event handler for buffer paste symbols, decides if ref needs to be created -Split: code that finds the local symlib into a reusable function (buffer place will need it as well) -Add: sort out what to do on symbol paste, fetch local lib root when needed -Add: look up the root dir and hash table for paste ref placement [target_none] -Add: dummy target that displays original names [target_pcb] -Add: target plugin for the PCB workflow; sets port display/pinnumber 0.8.0 alpha1 (r2889) ~~~~~~~~~~~~~~~~~~~~ Initial release.