kicad/CHANGELOG.txt

525 lines
24 KiB
Plaintext

KiCad ChangeLog 2009
====================
Please add newer entries at the top, list the date and your name with
email address.
2009-may-12 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++All:
Rework on TEXTE_PCB, SCH_TEXT and EDA_TextStruct classes.
Code seriously cleaned, obscure and duplicated code removed,
and some oddities removed ( like different .m_Orient values in eeschema and
pcbnew, for the same text orientation )
Multiline texts (in comments and Pcb texts) are now supported.
In pcbnew text justifications could work (but not yet used and tested)
2009-may-01 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++pcbnew:
Better dialog options for zones on technical layers.
Zones on silk screen filled with segments are now plotted
Better support of multiline texts (work in progress)
2009-apr-25 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++ Eeschema:
When annotating: tests and repairs bad (duplicated) time stamps.
Can be found in old schematics or converted from others tools ...
2009-apr-24 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++Pcbnew:
Fixed: fully broken netlist import from eeschema when using time stamp.
(normal operation worked fine)
Added: alawys print diags in dialog window when reading a netlist
2009-apr-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++ALL:
Code clarification: There were 3 functions to display info:
- DisplayInfo (displaying a message info)
- class members DisplayInfo and Display_Infos doing the same thing
(and sometimes these 2 functions were existing in some classes)
This was *very* confusing and created minor bugs
(info in eeschema was not always displayed, because the "bad" function was used)
Now DisplayInfo is renamed DisplayInfoMessage
Ann class member DisplayInfo is used in all classes ( replaces all Display_Infos instances)
2009-apr-12 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++eeschema:
Default libraries path are now differents for pcbnew and eeschema (as it do)
Fixed: bad library search path for schematic component docs (docs were not found)
Added: display actual lib paths in eeschema lib config dialog.
These next fix give the same behavior than "old" version
Use relative paths in libraries and doc filenames when possible
i.e when a file is found in a sub path in a default path
(very important for Windows/linux/mac compatibility of projects and their configs)
TODO: allows user to add paths in list. Currently the user path for lib is broken
(but the new code could allow the user to add more than one user path)
TODO: do the same for pcbnew and cvpcb
2009-apr-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++eeschema:
- Viewlib: listboxes for lib or component selection are now resizable
- library cache name changed from <root_name>.cache.lib to <root_name>-cache.lib
Needed by the new code using wxFileName.
When wxFileName calculate the filename, it returns <root_name>,
and the old code returns <root_name>.cache
So to avoid problems or ugly code, the lib cache name is now <root_name>-cache
Old cache is used if the lib cache with the new name is not found.
2009-apr-07 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++pcbnew:
fixed: bug 2738052 (Delete tool does not delete zones outlines)
++eeschema:
fixed: void history file list in menu
++All:
made GetAssociatedDocument() compatible with last changes in kicad path handling.
Get PDF doc associated with a component now works
Some work still needed.
2009-apr-06 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++common:
overbar patch merged in drawtxt.cpp and mainly in eechema/class_pin.cpp
some cleanup and some compiling problems fixed.
++eeschema:
changed dialog_eeschema_config.cpp to use wxFormBuilder to create
the corresponding equivalent dialog in dialog_eeschema_config_fbp.cpp
2009-apr-05 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++All
* Removed all instances #ifdef eda_global, COMMON_GLOBL, and MAIN in order
to unobfuscate global variables.
* Moved global variables common to all applications into common.cpp.
* Moved global variables common to Pcbnew, Gerbview, and Cvpcb into
pcbcommon.cpp.
* Create pcbcommon library to prevent compiling shared PCB drawing object
files multiple times.
* Replaced round() with wxRound and eliminate MSVC specific implementation.
* Moved project configuration files into the application class.
* Moved editor name global variable into the application class.
* Created load and save settings methods for basic frame class and begin
putting global variables in the class where they are used.
* Start replacing obsolete wxWidgets file functions and redundant Kicad
file name manipulation code with wxFileName.
* Initial library search path implementation using wxPathList.
* Define correct wxFileDialog wild cards.
* Apply patch Fix typo in about box to keep MAC folks happy.
* Lots of general code clean up, spelling error fixes, and uncrustification.
* Renamed Affiche_Status_Box to UpdateStatusBar.
++EESchema
* Defined Load() method so library file drawing objects can load themselves.
* Defined GetBoundingBox() method so library file drawing objects can
calculate their own bounding box.
* Fix arc library drawing object bounding box calculation.
* Remember last import and export library path in library editor.
* Add new library search path support.
++Kicad
* Eliminate the one giant case statement to rule them all command event
handler and create per command event handlers.
++CvPcb
* Add new library search path support.
* Add message dialogs to prompt user of library file load errors instead of
failing silently.
* Fix NULL pointer bug were display frame would crash CvPcb when
WinEDA_DisplayFrame::Get_Module() could not find foot print module.
++PcbNew
* Add new library search path support.
* Add message dialogs to prompt user of library file load errors instead of
failing silently.
2009-mar-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++pcbnew:
added BOM generator (in postprocess menu)
2009-mar-28 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++All
code cleanup in project_config.cpp.
Now parameters common to all projects are saved on exit.
(they are usally options like colors, draw options ...)
++pcbnew:
added option to show or not netnames on pads and tracks
2009-mar-23 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew:
in DRC: added test pads to holes.
++Al:
minor changes.
2009-mar-16 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew:
Fixed:
bug that crashes pcbnew when removing all footprints
(in connection calculations, pointers to pads not reset)
bug that crashes pcbnew when filling a zone
if a module has a trapezoidal pad
(trapezoidal pads are not yet implemented in zone filling,
they are now calculated as rect shape (todo: a better handling) )
2009-mar-12 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++eeschema:
Added: option to print ALL users fields in B.O.M.,
so if more than 8 fields, they are printed. (issue 2680640)
++pcbnew:
Added 5 metric grids (1mm, 0.5mm 0.25mm 0.2mm and 0.1mm) in default grid list.
Minor bug in drill map creation (PS format) fixed
2009-mar-11 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew:
fixed: a bug that can delete an existing zone after creating a new zone,
if the new zone contains this existing zone
This is a DRC error, buf can be temporary possible when creating complex zones
2009-mar-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew:
++gerbview:
print,plot: error message displayed when no layer selected.
2009-Mar-5 UPDATE Vesa Solonen <vesa.solonen@hut.fi>
================================================================================
++pcbnew:
bug fix in zones_convert_brd_items_to_polygons.cpp:
Fixes "thermal stub bleed" in zone fill. Small (compared to thermal width) pads are handled properly now.
2009-mar-05 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew:
bug fix in move_or_drag_track.cpp:
function SortTrackEndPoints() broken: does not handle pointers to pads for start and end and flags relative to these pointers
MergeCollinearTracks( ) broken, because it merge segments having different width or without any connectivity test.
2 collinear segments can be merged only in no other segment or vais is connected to the common point
and if they have the same width. See cleanup.cpp for merge functions
These functions break the connectivity calculations.
So they are temporary disabled (see my comments in these functions)
bug fix in Marque_Une_Piste(): the last segments created can be see as part of the flagged track:
so delete track (or edit track width) deletes the track and some others segments (last created)
bug fix 2660689 Unconnected pads in RC4. Also fixed some no deletion of the old track when creating a new track
2009-Feb-25 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++EESchema
* Fixed hot key bug that caused undo and redo events in the library editor
to be passed to the schematic frame. Fixes bug #1896790.
* Fixed hot key bug that allowed new wire to be placed during block move
causing a manage cursor message box to pop up.
* Fixed hot key bug that allows an object in block to be deleted during
a move or drag operation.
2009-Feb-25 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew
* Markers were not shown when on top of a high-lighted pad. Moved highlight
drawing function into class BOARD and out of Frame. Call BOARD::DrawHighLight() from
within BOARD::Draw() to fix.
* Gerbers were not generated if you had EDGE_MODULEs on a copper layer, such as in
a MuWaveBasicShape. The line thickness was not being put into the gerber via a DCODE.
These gerber files were bad, and geda gerbv would also complain.
* A few window titles were not conformant with UIpolicies.txt.
* You could not load a *.pro file from another project into PCBNEW if your current
project had none. Changed wildcard mask.
* Deleted gen_self.h and moved that code into muonde.cpp
2009-Feb-24 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew
* dialog boxes calling OnInitDialog are flashing because these functions
change the size of controls that are already on screen. This leads to
an annoying resize operation. So I renamed OnInitDialog(event) to
void init() and call it from the constructors. Did this for
dialog_general_options.cpp and dialog_display_options.
* dialog_general_options was not setting g_MagneticPadOption and g_MagneticTrackOption
2009-Feb-24 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew:
bug fix:
2628615 Error message after right click into zone
2625434 Crash after trying to edit a line/drawing
++cvpcb
fix: 2625090 CVpcb - language selection
2009-Feb-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++gr_basic.cpp
Added: Function ClipAndDrawFilledPoly()
Used to clip a polygon and display it as Filled Polygon
uses the Sutherland and Hodgman algo to clip the given poly against a rectangle.
This rectangle is the drawing area
this is useful under Linux (2009) because filled polygons are incorrectly drawn
if they have too large coordinates (seems due to integer overflows in calculations)
Could be removed in some years, if become unnecessary.
2009-Feb-17 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew
Loading a module into the module editor was changing the layer count
of a loaded board. This is because void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event )
calls bool WinEDA_BasePcbFrame::Clear_Pcb( bool query )
which then sets the global g_DesignSettings.m_CopperLayerCount = 2;
This is terrible.
We need a layer count in each board, not as a global. For now, comment out the assignment in initpcb.cpp.
2009-Feb-17 Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew:
Dialog track options redesigned with wxFormBuilder
Alt via drill renamed Specific via drill in dialog and popup menu.
Added tips in dialog.
2009-Feb-09 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++eeschema
Changed dialog_edit_label so that it is UIpolicies.txt compliant. Proper case
on window titles, resizeable dialog border, minimum text width handling.
2009-Feb-7 Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++All:
change grid size type from integer to double (using wxRealPoint insteed of wxSize)
This is mandatory in Pcbnew to handle metric user grids without error
(was unusable before, using integer grid size).
A lot of footprints uses not metric grid.
refinements for user grid (mainly in read/write config).
2009-Feb-06 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew
added "cutout" from a ZONE_CONTAINER capability to the SPECCTRA export.
added "netless zone" support to SPECCTRA export.
2009-Feb-6 Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
Added a forgotten contributor (Tim Hanson) to kicad contributor list.
++pcbnew:
Zoom factors in 1.5 progression, and limited to 18 values
(near to to Wayne Stambaugh's changes: 15 values are not enought for pcbnew)
removed minor problems in zoom box selection (removed blank line).
Added user grid selection in modedit and refinements when user grid is selected.
++eeschema:
Zoom factors in 1.5 progression, and limited to 15 values according to Wayne Stambaugh's changes.
2009-Feb-05 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++All
* Change CMakeList.txt so that all PCB object classes that do not need built
separately for pcbnew, gerbview, and cvpcb only get built once and added
to the common library.
* Override all classes derived from WinEDA_BasePcbFrame so that the source
code file basepcbframe.cpp only gets compiled once and added to the common
library.
* Prevent cursor movement keys from moving outside of client area by
automatically scrolling the drawing.
2009-Feb-4 UPDATE Vesa Solonen <vesa.solonen@hut.fi>
================================================================================
++pcbnew:
++eeschema:
Zoom factors in 3th root series of 2. So two intermediates between half/double scale.
2009-Feb-04 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++All
* Refactor header files to reduce the number of files that need recompiled
when making changes to base classes.
* Move sine and cosine look up tables from trigo.h to trigo.cpp to avoid
multiple recompiles.
2009-feb-01 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++All:
change filename drawpanel_wxstruct.h to class_drawpanel.h
and move class BASE_SCREEN description from drawpanel_wxstruct.h to a new file: class_base_screen.h
minor enhancement for window zoom command.
refinements in 3D zones drawing.
2009-jan-31 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++All:
Print functions and display zoom level modified to use the new zoom implementation
Comments added in some functions.
Code cleaning
some bugs fixed.
Added contributors to list in about Kicad.
2009-Jan-29 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++All
* Replace zoom implementation with a more flexible ( and hopefully useful )
design.
* Removed gr_basic.h from fctsys.h so that the entire project doesn't get
rebuilt unnecessarily.
2009-Jan-29 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++all
common.c added EnsureTextCtrlWidth()
++eeschema
* dialog edit component in schematic: make sure chipname text control is wide
enough to handle unusually long chip names.
* Retain and re-use user's desired dialog edit component window size.
Did not have time to look at dialog edit component in library.
2009-Jan-27 UPDATE Vesa Solonen <vesa.solonen@hut.fi>
================================================================================
++pcbnew:
Zone arc approximation starts with half increment offset from v/h for pads and vias
to get more fill space between rows.
2009-Jan-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++pcbnew:
Found why remove unused thermal stubs fails sometimes:
Only the first filled area in a zone was tested.
Solved.
2009-Jan-18 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++All
* Replace Kicad file history implementation with wxFileHistory.
* Laid groundwork for search paths using wxPathList in EDA_Appl.
* Made ReCreateMenuBar actually recreate the menu bar. Now language updates
to menus can be changed without restarting program.
* Lots of general housekeeping, simplification, and code beautifying.
++EESchema
* Fix zoom and pan bug in library viewer panel due to incorrect DrawPanel
rectangle.
* Add zoom accelerator keys to library viewer (works in GTK, not Windows).
* Add Postscript header to new print dialog so Linux build works.
++PcbNew
* Add Postscript header to new print dialog so Linux build works.
2009-Jan-17 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++All:
Cleaned code in print dialogs.
They are now specific to eeschema and pcbnew.
Gerbview uses pcbnew dialog.
The code is now a lot more easy to understand.
2009-Jan-15 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Pcbnew:
Added: patch from Rok Markovic (rok@kanardia.eu) to remove unused stubs in thermal pads
Modified: print boards when printing in color mode layers on one sheet:
now printed in OR mode like drawings on screen
Also in SVG mode, but OR mode seems not work very well in SVG mode (tested with inkscape).
2009-Jan-11 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Pcbnew:
Added: print SVG format.
SVG print/plot function uses WRITE modeinsteed of OR mode as graphic mode.
todo ? uses OR graphic mode with black background color (wait and see)
++eeschema:
Code cleanup for Print SVG format, and used wxFormBuilder in SVG print dialog
2009-Jan-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Pcbnew:
Calculations to create filled areas in a zone modified and uses 2 pass:
1 - filled areas are calculated with pads in zone.
2 - If thermal shapes are wanted, they are added (i.e. copper removed after ).
Seen comments in zones_convert_brd_items_to_polygons.cpp
The initial method was calculate filled areas in one pass.
With the 2 pass calculation, the calculation time is more expensive but:
- Kbool seems now works correctly in cases where the one pass way does not work
- Thermal reliefs can have a better shape (todo..) because when calculating them, the filled
areas are known (this was not the case in one pass way)
2009-Jan-08 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Eeschema:
Print and plot functions now properly prints all sheets in a complex hierarchy
plot files created have now a new filename in order to be compatible with complex hierarchies
2009-Jan-07 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Eeschema:
Print function now properly prints all sheets in a complex hierarchy
Note: plot functions are not updated and do not plot all sheets.
2009-Jan-07 UPDATE Wayne Stambaugh <stambaughw@verizon.net>
================================================================================
++all
* Don't pan or zoom on mouse wheel events when the cursor is not in the
drawing area.
* Reduce all zoom code to a single zoom command handler.
* Eliminate redundant zoom command identifiers.
* Move pop up zoom command handler from DrawPanel to DrawFrame.
* Change hot key zoom handlers to use command events.
* Added DrawFrame event table to replace COMMON_EVENTS_DRAWFRAME macro.
* Added locale path relative to binary path for development purposes.
* Minor code clean ups and duplicate header removal in files that were
updated.
2009-Jan-04 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++all
wxPcbStruct.h: made m_Pcb private, added GetBoard(). Am considering
putting each gerber layer into its own BOARD.
2009-Jan-02 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
++Eeschema:
Code cleaning.
LibDrawPolyline uses now std::vector<wxPoint> to handle corners.
DrawPolylineStruct uses now std::vector<wxPoint> to handle corners.