Change Log for Kicad Started 2007-June-11 Please add newer entries at the top, list the date and your name with email address. 2007-Oct-27 UPDATE Jean-Pierre Charras ================================================================================ + all: remove unused files. some translations +cvpcb: set flag wxFRAME_FLOAT_ON_PARENT when create the footprint 3D frame and the display frame minor other changes + pcbnew: Use collector class to locate items in modedit. This is a big enhancement, but a small work for me because Dick made all the work. 2007-Oct-26 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew: Add class_marker.cpp and class_marker.h and move MARQUEUR functions in class_marker.cpp Change MARQUEUR::HitTest to take in account the zoom level. change global var EDA_Appl to g_EDA_Appl 2007-Oct-25 UPDATE Geoff Harland ================================================================================ + cvpcb * Fine-tuned contents of dialog_display_options.cpp, dialog_display_options.h, and dialog_display_options.pjd, so that the controls within the associated ("Display Options") dialog box now also expand if that dialog is expanded. + all * The share/selcolor.cpp file (which is no longer used) has been removed, and replaced with share/selcolor.cpp.notused 2007-Oct-24 UPDATE Jean-Pierre Charras ================================================================================ + cvpcb: 2 missing .prj files added (and updated) dialog_display_option.cpp is rebuild from its dialog_display_option.prj source 2007-Oct-23 UPDATE Geoff Harland ================================================================================ + eeschema * Sizers have now been provided for the "EESchema Preferences" dialog box, together with "OK", "Cancel", and "Apply" buttons. And an additional bitmap button and checkbox have also been provided for the purpose of editing the color and visibility of the grid. 2007-Oct-21 UPDATE Geoff Harland ================================================================================ + all * Provided an MAYBE_RESIZE_BORDER field within all of the .pjd files (used by DialogBlocks), and restored the MAYBE_RESIZE_BORDER field to cleaningoptions_dialog.h 2007-Oct-21 UPDATE Dick Hollenbeck ================================================================================ + all added UIpolicies.txt 2007-Oct-21 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew: rename dialog_clean_pcb.pjd to cleaningoptions_dialog.pjd, accordind to the corresponding cpp filename. enter the new tool tips in cleaningoptions_dialog.pjd. +all: USE_RESIZE_BORDER is now defined (default) in fctsys.h. Therefore, under windows, dialogs are now resizable (like under unix) 2007-Oct-21 UPDATE Geoff Harland ================================================================================ + eeschema & pcbnew & gerbview * Sizers have now been provided within the "Colors" dialog box. 2007-Oct-19 UPDATE Dick Hollenbeck ================================================================================ + pcbnew * "Clean tracks" changed to "Track operations". * Housekeeping on clean.cpp completed. Added static void ConnectDanglingEndToVia( BOARD* pcb ) in clean.cpp which extends tracks to via centers. Call it from "extend to pads", works nice. * Added tooltip text to cleaningoptions_dialog.cpp's m_ConnectToPadsOpt but don't know if DialogBlocks will parse this backwards. * Made compilable, somebody broke #define VIA_???? s throughout. Would not compile. * SEGVIA::SetPos() & GetPos() added. 2007-Oct-17 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew: Removed enhancements in connectivity computation because rastnest computation does not work (errors) with short track segments (lenght < width) . This is not a bug, but an algorithm problem, so I must work on algos. 2007-Oct-17 UPDATE Geoff Harland ================================================================================ + pcbnew * Rolled back previous changes (made in revision 336) that edited the values of vias' Shape property (following feedback from Jean-Pierre Charras concerning the true significance of that property). 2007-Oct-13 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew: remove a change for Read VIA because via attributes (TROUGH VIA, BLIND VIA or BURIED VIA) are autorisations for layer connection, and are not a real layer indicator. If a via connect layers from copper to component, it can have a BURIED VIA attribute. the meaning is for this via the layer pair can be changed for other layer pair if after editing this via connect 2 tracks which are only int internal layers, its layer pair can be changed. If a via has a TROUGH VIA attribute, it connects ALL layers, whenever tracks connected to it. Note: curenty: only TROUGH VIA are handled. Other types (BLIND VIA and BURIED VIA) are only experimental. A **lot** of code is needed for a full support. enhancements in connectivity computation 2007-Oct-15 UPDATE Geoff Harland ================================================================================ + pcbnew * Made some changes involving vias so that these would have the correct value of the Shape property assigned to them - while being created, and while files are being saved, and while files are being loaded. 2007-Oct-14 UPDATE Dick Hollenbeck ================================================================================ + pcbnew: * housekeeping and translation to English on bottom third of pcbnew/clean.cpp. No algorithm changes were intended, only improved readability. * my todo: figure out how to intercept double clicks on a wxWidgets text control so I can complete the work I started on MARQUEUR error tracking. 2007-Oct-13 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew: ratsnest.cpp translated into english. Many infos on the LEE algorithm used here added. todo (by myself): connect.cpp translation. onrightclick() bug (created by last change) solved: one could reselect an item, while moving a previously selected item (pcbnew crashes). 2007-Oct-13 UPDATE Geoff Harland ================================================================================ + eeschema * The previously provided "Quit" button within the "List of Material" dialog box has been replaced with "OK", "Cancel", and "Apply" buttons. Greater consistency has also been achieved after clicking on the "Create List" button; none of the prevailing settings are subsequently saved (previously, some, but not all, of the settings were subsequently saved). (However, settings can still be saved by clicking on either of the "OK" or "Apply" buttons instead.) Assorted cleanup and beautification of associated source code. * The genliste.cpp file (which is no longer used) has been removed, and replaced with genliste.cpp.notused 2007-Oct-12 UPDATE Dick Hollenbeck ================================================================================ + all * m_NetCode is now private or protected throughout. added SetNet() and GetNet() to all classes which have this member name. ditto for m_Sous_NetCode, for which there is now SetSubNet() and GetSubNet(). + pcbnew added more disambiguating text to the PcbGeneralLocateAndDisplay() popup menu for tracks. We need all the info we can get there I found after using the software for many hours. Jean-Pierre: I never thought I would find a greater problem in using Kicad than having to lay down all the ground and power tracks, rather that just linking vias into pre-established zones or "tagged layers". But I have, hundreds of my tracks and vias are showing unconnected under my BGA, (where say the track or via is NetCode==0) and it should not be, because the damn track ties the BGA pad to a nearby via. How can the software be made to think these three items are on the same net, without re-entering all the damn tracks? This issue has been coming up for months on the user list, it must be dealt with now. There is always the same lame answer, "make sure your tracks go to the center of the pads". Nonsense, the software picked the track end points, not me, and grid was on when it did it. There are bugs here. Does Recalcule_all_net_connexion() work, and why is not called from anywhere? 2007-Oct-11 UPDATE Dick Hollenbeck ================================================================================ + pcbnew * D_PAD::Draw() refinements. * WinEDA_DrawFrame::SetToolID() will redraw the DrawPanel if the track button is selected or de-selected and the high-contrast mode is in play. * If high-contrast mode is in play, the Select Layer Pair dialog completion will redraw the DisplayPanel, now that SMD pads' colors are so dependent on these variables. 2007-Oct-11 UPDATE Dick Hollenbeck ================================================================================ + pcbnew * D_PAD::Draw() so that it shows SMD pads as greyed out when in high contrast mode and not on current layer. Slight variation on this when laying down tracks: m_Route_Layer_BOTTOM or m_Route_Layer_TOP layers' SMD pads are not greyed out. * Changed English UI text for "Cotation" to "Dimension". 2007-Oct-11 UPDATE Geoff Harland ================================================================================ + pcbnew * The "Target Properties" and "Pads Global Edit" dialog boxes can now (otherwise) be cancelled by pressing the "Esc" key, and the caption of the "OK" button within the latter dialog box has been capitalised (so that an icon is now provided within that button within the Linux version of KiCad). * The pcbpiste.cpp file (which is no longer used) has been removed, and replaced with pcbpiste.cpp.notused + cvpcb * The affiche.cpp file (which is no longer used) has been removed, and replaced with affiche.cpp.notused 2007-Oct-11 UPDATE Geoff Harland ================================================================================ + pcbnew * The previously provided "Exit" button within the "Colors:" dialog box has been replaced with "OK", "Cancel", and "Apply" buttons, and the code for editing the visibility of the Grid layer from that dialog now is "cleaner" than before. Details associated with buttons within that dialog box moved from set_color.cpp to set_color.h (matching implementation for GerbView's corresponding dialog box). * Fixed bug which previously prevented the Copper layer from being selected as the current layer when only one copper layer is enabled (and made some modifications to the code for selecting the next copper layer and previous copper layer). + gerbview * The code for editing the visibility of the Grid layer from the "GerbView Layer Colors:" dialog box is "cleaner" than before, and assorted other beautification. + eeschema * The options.cpp file (which is no longer used) has been removed, and replaced with options.cpp.notused 2007-Oct-10 UPDATE Dick Hollenbeck ================================================================================ + pcbnew * bug fix: prevent OnRightClick() from calling PcbGeneralLocateAndDisplay() when creating a new track. * bug fix: popup menu was not handling Mires, because the collector was not being asked to find them. * added TRACK::ShowWidth() and call it from BOARD_ITEM::MenuText(). There was not enough information in Selection Clarification at a busy junction to make a reasonable choice. * SEGVIA::MenuText() shows via width, rather than net_code. * Beautified ratsnets.cpp, I would like to understand it better. It would help if the comments were in English. + all * Changed English UI text "Mire" to "Target" according to this post: http://tech.groups.yahoo.com/group/kicad-users/message/1380 * rewrote msgpanel.cpp so it retains wxStrings and therefore can repaint its window when being uncovered, resized or whatever. 2007-Oct-9 UPDATE Dick Hollenbeck ================================================================================ + pcbnew changed pcbnew/onrightclick.cpp so that a right click only shows the Selection Clarification menu if there is no selected object or if the click is in a position different from where the selection was previously made. 2007-Oct-09 UPDATE Jean-Pierre Charras ================================================================================ + eeschema: cross-probing minor bug solved ( due to last modification): pins/pads not probed 2007-Oct-08 UPDATE Geoff Harland ================================================================================ + gerbview Display on screen now updates properly (in Linux version) after clicking on the "OK" button provided within the "GerbView Layer Colors" dialog box. 2007-Oct-7 UPDATE Jean-Pierre Charras ================================================================================ + eeschema create new file cross-probing.cpp move RemoteCommand() to cross-probing.cpp and create SendMessageToPCBNEW() + pcbnew bug in move pad fixed (could crash pcbnew) Small change in selection clarification (side effect removed): - Escape or click on title does not show the next popup menu. - the title is displayed under linux - definition CUIVRE_N translated into COPPER_LAYER_N 2007-Oct-07 UPDATE Geoff Harland ================================================================================ + all * Various dialog boxes can now (otherwise) be cancelled by pressing the "Esc" key. (Some dialog boxes still require attention in that regard though, so that task is not yet complete.) And the captions of the "OK" button within various dialog boxes have been fully capitalised (meaning that an icon is now provided within each of those buttons within the Linux version of KiCad). * DIALOG_STYLE (defined within include/wxstruct.h) now includes MAYBE_RESIZE_BORDER field. (Refer to 2007-Oct-2 UPDATE notes for the relevance of this.) * Beautification and house keeping. + eeschema * The editpart.cpp and editpart.cpp files (which are no longer used) have been removed, and replaced with editpart.cpp.notused and editpart.cpp.notused + cvpcb * Additional "OK", "Cancel", and "Apply" buttons have now been provided for the "Options" dialog box which lists various display options for footprints. + pcbnew * Invoking the "Select Layer Pair:" dialog box is no longer possible whenever only one (copper) layer is currently enabled. And it is no longer possible to select the same layer to be both the Top Layer and Bottom Layer (for any Layer Pair). * Deselecting layers during the "Swap layers" command is now more user-friendly, due to the provision of an additional "(Deselect)" radiobutton within the (child) "Select Layer:" dialog box (which is always invoked whenever a different radiobutton within the "Swap Layers:" dialog box is clicked on). (It had previously been necessary to cancel the "Select Layer:" dialog box before being able to click on the "Deselect" button within the "Swap Layers:" dialog box.) * Definition for NB_LAYERS changed from (EDGE_N + 1) to (LAST_NO_COPPER_LAYER + 1) (Although EDGE_N is currently the "last" layer, that wouldn't necessarily still be true if any additional layers are ever defined in the future.) And comparisons to 29 (or 28) have been replaced with comparisons to NB_LAYERS (when appropriate). + gerbview * The previously provided "Exit" button within the "GerbView Layer Colors" dialog box has been replaced with "OK", "Cancel", and "Apply" buttons; and both the visibility and color of the Grid layer can now be edited from the same dialog. * Deselecting (Gerber) layers during the "Export to Pcbnew" command is now more user-friendly, due to the provision of an additional "(Deselect)" radiobutton within the (child) "Select Layer:" dialog box (which is always invoked whenever a different radiobutton within the "Layer selection:" dialog box is clicked on). (It had previously been necessary to cancel the "Select Layer:" dialog box before being able to click on the "Deselect" button within the "Layer selection:" dialog box.) * The "Export to Pcbnew" command now requires at least one Gerber file to have been already loaded. And Gerber files can now be loaded into any of the 32 (Gerber) layers provided. (It had previously been necessary to avoid having any gaps within the sequence of used Gerber layers.) 2007-Oct-6 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew create new file cross-probing.cpp move RemoteCommand() and SendMessageToEESCHEMA() to cross-probing.cpp 2007-Oct-3 UPDATE Dick Hollenbeck ================================================================================ + pcbnew made BOARD_ITEM::UnLink() virtual added BOARD_ITEM::DeleteStructure(). added EDA_BaseStruct::DeleteStructList() deleted gerbview/struct.cpp, pcbnew/struct.cpp, BOARD::~BOARD() now deletes objects that it owns. Collectors now finds MARQUEURs also added MARQUEURS::Display_Infos() added MARQUEURS::HitTest() 2007-Oct-2 UPDATE Dick Hollenbeck ================================================================================ + all The lack of border resizing in dialogs has been a problem. In my world, dialog boxes are resizable. I use large fonts, I like to see stuff. So now for __UNIX__ they are resizeable, for windows not. See fctsys.h and the #define for MAYBE_RESIZE_BORDER. For windows it defaults to zero which means resizeable is not featured. A compiler command line option of "USE_RESIZE_BORDER" can override this windows default. 2007-Oct-01 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew/eeschema Cross-probing pcbnew to eeschema: A left click on a pad in pcbnew moves the eeschema cursor on the corresponding component pin A left click on a footprint ref or value in pcbnew moves the eeschema cursor on the corresponding component ref or value A left ckick on a footprint moves the eeschema cursor on the corresponding component anchor + pcbnew removed drc.cpp change line 584, and translate comments in english. nothing broken: -> a pad with its netcode = 0 means the pad ** must be left unconnected ** (not attached to * a net). -> a track with its netcode = 0 means the track is not attached to a net (cannot be connected to any pad). 2007-Sep-30 UPDATE Dick Hollenbeck ================================================================================ + pcbnew Added dedicated Show() function for SEGVIA. Enhanced BOARD_ITEM::MenuText() for SEGVIA. 2007-Sep-29 UPDATE Dick Hollenbeck ================================================================================ + pcbnew * drc.c made a change near line 584 to comment out pt_pad->m_NetCode test against zero. This was preventing me from laying out my board. It's possible that this broke something else, but it is also clear that something was broke before this change, because I could not put down some tracks. * beautification, house keeping. 2007-Sep-29 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew create new file onleftclick.cpp move onleftcligk() and onleftDcligk() from edit.cpp to onleftclick.cpp 2007-Sep-27 UPDATE Jean-Pierre Charras ================================================================================ + all test case for OnLeftClick() handling enhancements. TAB key removed, because is not needed for block selection and double click. (SHIHT ou CTRL or ALT key is sufficient to suppress the popup menu if needed for a double click ) Some work is still needed, of course + pcbnew Color grid setting now works 2007-Sep-26 UPDATE Dick Hollenbeck ================================================================================ + all test case for OnLeftClick() handling from a release circumstance. a few simple changes to void WinEDA_DrawPanel::OnMouseEvent( wxMouseEvent& event ), but they affect all programs in a subtle way. TAB key allow double clicking, but is not needed for block selection. + pcbnew GENERAL_COLLECTOR::GetCount() returns int, not unsigned. Was tired of the compiler complaining when using an int ndx. 2007-Sep-25 UPDATE Dick Hollenbeck ================================================================================ + pcbnew * removed reference to global display options DisplayOpt.DisplayZones in collectors.cpp so collectors.cpp can continue to be used in multiple future (non-display related) general contexts. I don't want unnecessary dependencies in there. The way to completely ignore a type is to exclude it from scanList. The way to sometimes ignore a type is to add support for this in COLLECTORS_GUIDE. * Moved TYPEZONE to end of AllBoardItems, added GENERAL_COLLECTOR::AllButZones to provide support for DisplayOpt.DisplayZones. * Added aHotKeyCode to PcbGeneralLocateAndDisplay() + gerbview * viewer was getting stuck in a loop when loading a bad gerber file. Fixed the bug, but line 223 through 225 of readgerb.cpp needs review. * beautified a few files with uncrustify, (any I had to look at). 2007-sept-25 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew: * add class_board_item.cpp file and move BOARD_ITEM::MenuText() and BOARD_ITEM::MenuIcon() in it * Add zone detection, forgotten in PcbGeneralLocateAndDisplay() + class_collector.h: add void COLLECTOR::Remove( unsigned int item_position ), needed by zone detection, see PcbGeneralLocateAndDisplay 2007-Sep-25 UPDATE Geoff Harland ================================================================================ + gerbview The "Exit" button previously provided within the dialog box invoked from the "Preferences -> File ext" menu entry has now been replaced by "OK" and "Cancel" buttons. Similarly, the "Accept" button previously provided within each of the dialog boxes invoked from the "Preferences -> Options" and "Preferences -> Display" menu entries has now been replaced by an "OK" button. And each of those three dialog boxes can now (otherwise) be cancelled by pressing the "Esc" key. 2007-sept-22 UPDATE Jean-Pierre Charras ================================================================================ + all * small change in hotkeys handling (Ki_HotkeyInfo: new member m_IdMenuEvent to call an existing event handler from a hotkey list) + eeschema: * added drag component in pop up menu and hotkeys * plot svg format: incorrect arc draw fixed 2007-Sep-22 UPDATE Dick Hollenbeck ================================================================================ + pcbnew GENERAL_COLLECTOR::Collect() was skipping thru hole pads even though they were visible. Highlight tool now sends message to eeschema when a pad is selected. 2007-Sep-20 UPDATE Dick Hollenbeck ================================================================================ + eeschema * beautify, add debug Show() functions, changed ReturnFieldName() to return "const wxString&" for speed, added GetFieldValue(). * tracking down questionable behavior (a bug?) in erc regarding pwr_flag, still looking 2007-sept-20 UPDATE Jean-Pierre Charras ================================================================================ + all * hotkeys handling finished + pcbnew * bug fix: a subtle bug in place via : partial drc only was made. 2007-Sep-14 UPDATE Dick Hollenbeck ================================================================================ + pcbnew * controle.cpp, added Function AllAreModulesAndReturnSmallestIfSo() which is called from PcbGeneralLocateAndDisplay() * onrightclick.cpp changed to calls to BOARD_ITEM::MenuText(), and switched to member functions for createPopupMenus() so we can get all the state information we need for the proper menus. * BOARD_ITEM::MenuText() got new argument BOARD*, and elaboration for TRACKs and VIAs and Pcb Graphics. * Fixed a problem in GENERAL_COLLECTOR::Inspect() so it now knows that MODULEs have their own visibility controls (same for pads and pcb texts). This interpretation must always match the drawing code's interpretation. * Made TRACK::TRACK( const TRACK& ) protected to enforce use of TRACK::Copy() 2007-Sep-13 UPDATE Dick Hollenbeck ================================================================================ + kicad * Inverted the logic associated with filters. Filters now enable a file in the project manager. The default is to ignore all files. * The filter for *.sch files is smarter, in that it looks to display only top level *.sch files, rather than all *.sch files. + Others More beautification 2007-sept-13 UPDATE Jean-Pierre Charras ================================================================================ + all * EDA_BaseStruct.SetType() removed. The m_StructType member of class EDA_BaseStruct is no more modified in kicad. Now Virtual functions can be widely used. * The old EDA_BaseStruct.ReturnClassName() was removed. the virtual EDA_BaseStruct.GetClass() is used instead. + gerbview: hotkeys Ok. 2007-Sep-13 UPDATE Geoff Harland ================================================================================ + eeschema & pcbnew & gerbview A Cancel button has now been provided for the "Colors" dialog box, which also permits it to (otherwise) be cancelled by pressing the "Esc" key; the button whose color matches that of the color currently selected (for the layer being edited) also has the initial focus set to it. 2007-Sep-11 UPDATE Dick Hollenbeck ================================================================================ + pcbnew * Changed PcbLocateAndDisplay() to be tool specific in its search and to present a popup menu when there are multiple items under the mouse. It is also a framework for future enhancements. @todo: grep for @todo and finish off those tasks. * Introduced a formal notion of "selected item". This is done with the addition of the WinEDA_BasePcbFrame::SetCurItem() function. So now you have to first select an item with the left mouse button before you attempt to use the right button popup menu. Right button no longer has an effect on the currently selected item. The currently selected item is shown in the MsgPanel. When none is selected, the m_Pcb is shown. * Tweaked the OnRightClick() popup menus so that the most likely choices are at the top. * Added wxString BOARD_ITEM::MenuText() const and BOARD_ITEM::MenuIcon() and both need more work, work which I will not have time to do. 2007-Sep-10 UPDATE Dick Hollenbeck ================================================================================ + pcbnew * Searched and did not see any usage of TRACK::Copy(int), where int was other than '1', so renamed it to TRACK::CopyList(int) and commented it out because with int==1, this makes Copy(1) equivalent to the new Copy(void). * Made TRACK::Copy() capable of copying SEGZONE too. 2007-sept-10 UPDATE Jean-Pierre Charras ================================================================================ + gerbview Programmable hotkeys added. Fixed a compilation probleme in ansi mode (non unicode mode). 2007-Sep-8 UPDATE Dick Hollenbeck ================================================================================ + pcbnew * Made good progress in onrightclick.cpp for multiple items under the mouse. * Fixed some macros in macros.h so they can be followed with a semicolon and used like simple expressions. All changes not yet committed. 2007-sept-6 UPDATE Jean-Pierre Charras ================================================================================ + eeschema & pcbnew Programmable hotkeys update. some features are still subject to change (mainly path for config files: see 2007-aug-30 UPDATE)) The preference menu has a command to create and reread config hotkey files. the hotkey ? lists the current hotkeys. 2007-Sep-4 UPDATE Dick Hollenbeck ================================================================================ + pcbnew * Made GENERAL_COLLECTORS_GUIDE and GENERAL_COLLECTOR useable. They can now serve as a fully functional replacement for PcbGeneralLocateAndDisplay(), see DEBUG code in BOARD_ITEM* WinEDA_BasePcbFrame::PcbGeneralLocateAndDisplay(). * Made GENERAL_COLLECTOR capable of Collect()ing from a MODULE as well as a BOARD. * pcbnew/onrightclick.cpp changed English from "Free Module" to "Unlock Module". Next I hope to add some UI to handle multiple items under the mouse in onrightclick.cpp 2007-sept-04 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew better comments in editrack-part2 (the todo remark solved) + todo.txt: note about editrack-part2 modified (problem solved) 2007-Aug-31 UPDATE Dick Hollenbeck ================================================================================ + pcbnew & gerbview * Added TRACK::Copy() which can copy a SEGVIA or a TRACK. * Changed export_to_pcbnew.cpp so it created a SEGVIA properly, a significant change. Moved and changed a big block of code in export_to_pcbnew.cpp so we can properly construct the SEGVIA(). Not tested. * Make EDA_BaseStruct::m_StructType private so we can trap where it is being changed. (It should never be changed after construction, see comment above EDA_BaseStruct::SetType().) 2007-Aug-30 UPDATE Dick Hollenbeck ================================================================================ + pcbnew * Removed SEGVIA::IsViaOnLayer, and instead implemented an override to virtual BOARD_ITEM::IsOnLayer() called SEGVIA::IsOnLayer(). * Tweaked TRACK::Visit() to not traverse the KICAD_T scan list and a corresponding change to BOARD::Vist() so we can now get VIA priority if desired. (Have to traverse m_Tracks twice, wonder if we could use two lists: m_Tracks and a new m_Vias?) * Changed signature of MODULE::Display_Infos( WinEDA_DrawFrame* frame ) so it gets called virtually with any BOARD_ITEM* which is actually a MODULE*. This was a bug. * With virtual functions, it is now critical that the correct object type be instantiated. This was not happening in ioascii.cpp when reading the vias. Bug fixed. * GENERAL_COLLECTOR getting closer to useable. 2007-aug-30 UPDATE Jean-Pierre Charras ================================================================================ + eeschema & pcbnew more about programmable hotkeys. Most existing hotkeys are programmable and displayed in popup menus or tools Work still in progress but most features are ok. some features are not fixed (mainly the configuration files path, which is currently the home directory under unix systems and kicad/template under windows)) 2007-Aug-29 UPDATE Dick Hollenbeck ================================================================================ + pcbnew Started abstract class COLLECTORS_GUIDE. Renamed classtrc.cpp to classtrc.cpp.notused Changed some comments in class BOARD's header to english, clarifying linked list contents. 2007-aug-27 UPDATE Jean-Pierre Charras ================================================================================ + all Display grid size in mils or mm in popup menu according to the current unit choice 2007-Aug-24 UPDATE Dick Hollenbeck ================================================================================ + eeschema & pcbnew * Removed class EDA_BaseLineStruct, which brought no behavioral advantage, only data. Classes which were based on it got its data members added and their initializers. * Changed type of EDA_BaseStruct::m_StructType from int to KICAD_T which is an enum. This makes debugging easier since gdb will show the name of the KICAD_T rather than simply a number. Added NOT_USED = -1 to KICAD_T enum for 3d which was using -1. * More beautification using latest uncrustify and the committed uncrustify.cfg 2007-Aug-24 UPDATE Geoff Harland ================================================================================ + pcbnew A new option has now been provided which permits Gerber files to be generated in which the contents of the Edges Pcb layer are not also included with the contents of each other layer. 2007-Aug-23 UPDATE Dick Hollenbeck ================================================================================ + eeschema & pcbnew * Fixed MODULE::Visit() and BOARD::Vist() so they traverse certain lists only once and they are working nicely now. * You can test the GENERALCOLLECTOR::Scan() code by compiling with DEBUG=1 on the command line and enabling the stuff near line 124 in pcbnew/controle.cpp, then watch Show( std::cout ) show the selected items in xml format on your console. (launch pcbnew from command line.) @todo: The layer selection mechanism used by the collector is still inadequate, so tomorrow I will add a new class COLLECTORS_GUIDE which can be used by a COLLECTOR to control its operation. It adds the concept of layer locking, even though PCBNEW does not support that in the UI yet. 2007-Aug-22 UPDATE Dick Hollenbeck ================================================================================ + eeschema & pcbnew Things are still pretty transient, should be stable a day or two: * Fixed a filename case sensitivity problem that would show up on Linux but probably not on Windows: bitmap/Reload.xpm needed uppercase R. * Wedged a new class BOARD_ITEM underneath all PCB drawable classes. This is a big change and may introduce a bug or two, but it is worth it for the future, because we can add virtual functions there that do not impact the entire project (since everything is derived from EDA_BaseStruct). The corresponding class in EESCHEMA seems to be DrawPartStruct, so we had nothing in PCBNEW like that. BOARD_ITEM::GetLayer() and SetLayer() introduced, more functions to come. Much of this work is geared towards making collectors.cpp's ARROWCOLLECTOR::Inspect() very very simple, and that can be a model for future work. * Changed min() and max() macros to MIN() and MAX() because min() and max() are actually reserved according to the C++ standard! (and their usage prevented the use of #include ). * Added files class_collector.h, collectors.h, and collectors.cpp. File collectors.cpp is still unfinished. * Started using a function and class comment style that will make sense to the Doxygen source code documenter program. * Beautified more un-beautified files. 2007-aug-21 UPDATE Jean-Pierre Charras ================================================================================ + eeschema & pcbnew First version of programmable hotkeys by editing hotkey configuration files. some hotkeys are not programmable (Zoom)(work in progress) 2007-Aug-21 UPDATE Dick Hollenbeck ================================================================================ + administrative Added copyright.h as a proposed copyright header for Mr. Charras's review. Added uncrustify.cfg, the configuration file for the "uncrustify" C++ beautifier. 2007-Aug-20 UPDATE Dick Hollenbeck ================================================================================ + pcbnew & eeschema * Moved allowed m_Flags values from pcbnew.h, general.h, and eeschema/delete.cpp to base_struct.h near m_Flags itself. Several of the flags values were changed. I am only comfortable with this change if m_Flags is not written to disk anywhere, and we need to give that some thought. If m_Flags is a memory only usage and not saved to disk, then this change should be safe. I could not find any case where m_Flags was being saved to disk, but I could have missed one. The reason for the change was to consolidate into one place the allowed values so that as new flags are allocated there is no conflict. * Moved most all the pcbnew/affiche.cpp functions to virtual member functions of their respective classes with the name Display_Infos(). * Moved GetEquipot() global function to BOARD::FindNet(). These changes are working towards a concise locate.cpp module, on the way to implementing the multiple choice support. Mass edits should be slowing down in a day or so. 2007-Aug-20 UPDATE Geoff Harland ================================================================================ + eeschema & pcbnew The comments provided within postscript files now fully comply with Adobe's Document Structuring Convention. 2007-aug-20 UPDATE Jean-Pierre Charras ================================================================================ + eeschema & pcbnew modify hotkeys.cpp code (large modifications). Added: common code in hotkeys_basic.cpp (in common) and hotkeys_basic.h (in include) In the future, i hope hotkeys will be programmed by a config file + pcbnew filename drc_dialog.prj changed to dialog_drc.prj (according to the fulename dialog_drc.cpp and dialog_drc.h created by dialogblock from the .prj) 2007-Aug-19 UPDATE Dick Hollenbeck ================================================================================ + all * Made BASE_SCREEN::m_CurrentItem private so we can force usage of the new SetCurItem() function, and use it to put a breakpoint on the only place that m_CurrentItem is changed, namely in the new SetCurItem() function. ( Added new function GetCurItem() as well to class BASE_SCREEN in drawpanel_wxstruct.h.) Using a stack trace at the breakpoint we can tell who called it. There were in excess of 450 edits to get this done so I had to commit it asap so other folks could get on with edits without a merge conflict. * Started work on the COLLECTOR class which will assist in giving a choice in PCBNEW when there is more than one click candidate at the same mouse or cursor coordinates. COLLECTOR not committed yet. * More beautification. * The mouse click and part synchronization from EESCHEMA to PCBNEW would track fine but would not always position the PCBNEW part on screen. Now we center it unconditionally. No change was made in the reverse direction since that code uses the long established Find support. 2007-Aug-14 UPDATE Dick Hollenbeck ================================================================================ + eeschema & pcbnew * Added mouse click, TCP/IP socket based, part synchronization in the reverse of how it was working, so a mouse click on a module in PCBNEW will take EESCHEMA to the part with the same reference. * More beautification, working with developer of uncrustify. Almost ready to add the customized uncrustifiy configuration file to this project. * Fixed a bug in pcbnew/tracepcb.cpp's WinEDA_PcbFrame::Trace_Pcb( wxDC* DC, int mode ) which was using a bool for the MaskLay variable, causing through hole pads on modules on copper layer not to be shown when the copper components were set to invisible. 2007-aug-11 UPDATE Jean-Pierre Charras ================================================================================ + eeschema modify hotkeys.cpp code. 2007-Aug-10 UPDATE Dick Hollenbeck ================================================================================ + pcbnew & common Improved MODULE::FindPadOrModule(). Ran more source files through auto-beautifier. Renamed dupltrac.cpp to dupltrac.cpp.notused. 2007-aug-10 UPDATE Jean-Pierre Charras ================================================================================ + eeschema better hotkeys.cpp code. 2007-Aug-09 UPDATE Dick Hollenbeck ================================================================================ + pcbnew & common Released the new Visitor paradigm. Wrote MODULE::FindPadOrModule() using it. 2007-aug-09 UPDATE Jean-Pierre Charras ================================================================================ + eeschema Some new hotkeys (see hotkeys.cpp). Now, the key ? display the current existing hotkeys 2007-Aug-08 UPDATE Dick Hollenbeck ================================================================================ + pcbnew & common * Renamed locate.cpp's distance() to DistanceTest() and moved it to trigo.cpp. Pass more parameters to DistanceTest and removed globals that were used by distance() in locate.cpp. Moved and renamed DistanceTest function proto from protos.h to trigo.h. * Implemented HitTest() for class_cotation, class_mire, and a few other classes by factoring out existing code from locate.cpp. locate.cpp should operate exactly the same as before. * Improved or implemented the Show() function for several classes. * Detected that the suspected class_module hit-testing bug was not real, i.e. no bug found. 2007-aug-08 UPDATE Jean-Pierre Charras ================================================================================ + eeschema bug in class_hierarchy_sheet.cpp. + pcbnew small change in block commands: rastnest was updated for each footprint, while moving footprints. Now it is updated at the end of changes. enhancements in block.cpp and connect.cpp 2007-Aug-07 UPDATE Dick Hollenbeck ================================================================================ + pcbnew & common * More searching work. Made HitTest() virtual. Factored out a HitTest() function for both class_module and class_pad from existing code. * Embellished the Show() function for several of the classes. Could be the basis of a possible future XML export, but with the native format being ascii already, this is of questionable value as an export. * Discovered a long time existing bug in class_module hit-testing. Still need to understand it. It could just be an improperly formatted module. 2007-Aug-06 UPDATE Dick Hollenbeck ================================================================================ + pcbnew & common Started sketching out a new search architecture. To learn more: look for "INSPECTOR" text in base_struct.h. 2007-Aug-05 UPDATE Dick Hollenbeck ================================================================================ + pcbnew & common * Added some conditional DEBUG code for showing the pcb object tree in simple XML format. See class EDA_BaseStruct's new Show() function. * Changed the function name of Locate( const wxPoint& ref_pos ) to bool HitTest(..) in both class_text_mod and base_struct. * More beautification and commenting. 2007-Aug-04 UPDATE Dick Hollenbeck ================================================================================ + pcbnew Read-ability formatting, I am playing with a C++ beautifier called "uncrustify". I had to patch it and spent 2 days getting it configured. Patch not sent upstream yet. Fixed a bug in "display local ratsnest pad or module": if you had a small module and the mouse clicked its reference text, the ratnest for the associated module would not show. The work around was to add support to Show_1_Ratsnest() so it could take a TYPETEXTEMODULE as the result of the hit-testing. But I think a longer term better solution will be to create a specific search function for this kind of hit-testing, one which could disregard text and look only for pads and modules. 2007-aug-02 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew Drc test now generates a DRC file report. 2007-Jul-31 UPDATE Geoff Harland ================================================================================ + pcbnew Drill Map and Drill Report files now list the diameters of each drill in the selected drill unit first, and then in the other drill unit. Drill report files also now list the tool assigned to each drill, and the correct hole count and oval count for each drill size; the file creation date and the selected drill unit are also listed. 2007-Jul-30 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew Some file are added (missing .prj files) Better Drc test: Zones can be tested. better pad to pad test. 2007-Jul-25 UPDATE Jean-Pierre Charras ================================================================================ ** Some minor enhancements + pcbnew In Drc diags, better (more explicit) messages Change (and simplify) code in 'update' as well as 'insert' modules into main PCB from within the module editor, because it had a bug (crashes when there was no footprint in pcb) 2007-June-21 UPDATE Tim Hanson ================================================================================ + pcbnew 1. added button to 'update' as well as 'insert' modules into main PCB from within the module editor. Made them functional, of course. 2. added control-o, control-s & control-f to pcbnew, though I'm not perfectly happy with the implementation -- wxwidgets puts the control-characters in alphabetical order! 2007-June-25 UPDATE Jean-Pierre Charras ================================================================================ + pcbnew minor enhancement in Edit footprint dialog (more help tool tips). better hotkey.cpp (code cleaning and info messages) 2007-June-19 UPDATE Dick Hollenbeck ================================================================================ + pcbnew After locking a module with 'L', update the status window with the locked status. Side step some asserts from wxWidgets which were happening when running compiled for debug. 2007-June-16 UPDATE Richard A Burton ================================================================================ + pcbnew fix debug assert starting pcbnew with wx2.6 + build add install targets for resources and docs 2007-June-15 UPDATE Dick Hollenbeck ================================================================================ + pcbnew ** only modules on the present layer are subject to individual module moves, rotations, or layer swaps, with the 'M', 'G', 'R' or 'S' hotkeys. ** only unlocked modules are subject to the individual module moves, rotations, or layer swaps, with the 'M', 'G', 'R' or 'S' hotkeys. ** implemented the 'L' hotkey to quickly lock or unlock a module, just by hovering over it and hitting the 'L' or 'l' key. The lock is toggled. ** Enhanced locate.cpp's Locate_Prefered_Module(BOARD * Pcb, int typeloc) significantly, it now has a widely ranging behavior based on the typeloc argument. 2007-June-14 UPDATE Igor Plyatov ================================================================================ + eeschema Added sorting by value or position in to the annotation window (Thanks for patch to Andrey Fedorushkov). 2007-June-13 RELEASE Jean-Pierre Charras ================================================================================ +All: merging my development with svn version + pcbnew: bug fix (problem in postscript generation due to the internationalization of floating point number notation ) added tool to select layer pair and monitor active layer + eeschema bug fix: crash libedit when loading certain components (linux only) incomplete generation of erc file list 2007-June-13 UPDATE Richard A Burton ================================================================================ + build: dynamic linking by default, use make -f makefile.gtk KICAD_STATIC_LINK=1 or uncomment the bit in libs.linux for static 2007-June-11 UPDATE Richard A Burton ================================================================================ + build: removed several 2 line scripts for configuring wx builds and put them in how-to-build-kicad.txt improved KICAD_STATIC_LINK handling so it can be overridden on the command line e.g. "make -f makefile.gtk KICAD_STATIC_LINK=0" 2007-June-11 UPDATE Dick Hollenbeck ================================================================================ + Started this change log file. 2007-June-5 UPDATE Richard A Burton ================================================================================ + pcbnew: fixed 3d-display image export (blank box in image) + build: fixed makefile clean targets so they don't fail if already clean fixed wx2.6 compatibility 2007-May-25 RELEASE Jean-Pierre Charras ================================================================================ + pcbnew: bug: problem with 3D shapes. + Gerbview: Better (but crude...) support to export gerber files to pcbnew. ================================================================================ End Of File