kicad/include
Maciej Suminski bf80cc770e Changed the way of looking up NETINFO_ITEM using net names (using boost::unordered_map). Added a hash function (wxString) for that. Introduced NETINFO_ITEM::GetNetItem( wxString ). BOARD::FindNet() uses the map.
Net codes are updated upon net list update. (BOARD::ReplaceNetlist())
Added in some places (mostly class_board.cpp) pad->SetNet() calls to synchronize net codes.
On creation of NETINFO_LIST, the first NETINFO_ITEM is added (the unconnected items net).
Removed COMPONENT_NET::m_netNumber, as it was not used anywhere.
Added an assert to D_PAD::GetNetname(), checking if net code and net name is consistent for unconnected pads. Added an assert for NETINFO_LIST::AppendNet() to assure that appended nets are unique.

It seems that at this point:
- Updating net lists works fine. The only difference between the file ouput is that after changes it contains empty nets as well.
- Nets are not saved in the lexical order. Still, net names and net codes are properly assigned to all items in the .kicad_pcb file. It is going to be addressed in the next commit. I believe it should not create any problems, as pads are sorted by their net names anyway (NETINFO_LIST::buildPadsFullList())

Performed tests:
- Created a blank PCB, saved as pic_programmer.kicad_pcb (from demos folder). Updated net lists. .kicad_pcb file (comparing to the results from master branch) differ with net order (as mentioned before), net codes and timestamps.
- Removed some of components from the above .kicad_pcb file and updated net lists. Modules reappeared. .kicad_pcb file differs in the same way as described above.
- Trying to change a pad net name (via properties dialog) results in assert being fired. It is done on purpose (as there is a call to GetNetname() and net name and net code do not match). This will not happen after the next commit.
- Prepared a simple project (starting with schematics). Imported net list, changed schematic, reimported net list - changes are applied.
- Eagle & KiCad legacy boards seem to load without any problem.
2014-01-10 18:04:07 +01:00
..
gal 8 bit string relief via class UTF8 2014-01-01 20:17:07 -06:00
geometry Removed warning. 2013-12-05 13:46:13 +01:00
math Mainly case changes. 2013-10-14 20:40:36 +02:00
tool Remove some uses of using namespace std. 2013-12-13 10:27:30 -06:00
ttl Removed unnecessary parts. 2013-12-06 15:01:36 +01:00
view Merged rtree.h, to avoid code duplication. 2013-11-13 17:03:22 +01:00
HersheyCyrillic.h.unused Use layer_widget in Gerbview 2010-02-03 14:05:17 +00:00
appl_wxstruct.h add {Get,Set}ModuleLibraryNickname to EDA_APP, reformatting 2013-10-17 14:01:35 -05:00
base_struct.h All: GetBoundingBox returns now a const EDA_RECT. 2013-11-24 18:48:14 +01:00
base_units.h Initial release of pl_editor, the page layout and title block editor. 2013-07-19 20:27:22 +02:00
bezier_curves.h Schematic component object encapsulation and Doxygen comment warning fixes. 2010-12-14 10:56:30 -05:00
bitmaps.h Initial release of pl_editor, the page layout and title block editor. 2013-07-19 20:27:22 +02:00
block_commande.h Enforced EDA_COLOR_T type and minor const-ification 2012-09-02 14:06:47 +02:00
build_version.h legacy pcbnew plugin touch ups 2011-12-14 20:24:52 -06:00
class_base_screen.h ReturnStringFromValue() refinements 2013-08-03 15:20:55 -05:00
class_bitmap_base.h pl_editor: add a PPI (pixel per inch) setup option for bitmaps. 2013-10-19 12:29:54 +02:00
class_board_design_settings.h Pcbnew: enhancements for blind/buried vias palcement, and save blind/buried vias allowed option in .kicad_pcb file 2013-08-28 18:14:39 +02:00
class_board_item.h Pcbnew: Code cleaning and some minor fixes. 2013-11-20 18:26:47 +01:00
class_collector.h Rationalize numeric time stamps to type time_t. 2012-05-24 21:52:04 -04:00
class_colors_design_settings.h 1) Add "rules" to base of tree for copying into BZR_HOME/rules. 2013-05-25 23:36:44 -05:00
class_drawpanel.h Changed the way of refreshing canvases (both standard & GAL). 2013-09-20 17:29:32 +02:00
class_drawpanel_gal.h Fixed SetCurrentContext() assert, that was firing on closure of pcbnew, when the OpenGL backend was active. 2013-12-05 14:54:30 +01:00
class_drc_item.h Pcbnew: Fix issue when displaying net names and/or pad numbers including the "<" char in drc dialog, because drc dialog uses an wxHtmlWindow to display drc messages, and the "<" char has a special meaning and is not allowed in texts (now replaced by the" &lt;" sequence in messages displayed in html) 2013-10-14 18:03:38 +02:00
class_layer_box_selector.h minor changes and refinement in class pcb layer box 2013-09-02 11:06:17 +02:00
class_macros_record.h add forgotten file to bzr3107, add GOST to KICAD_BULD_VERSION if defined KICAD_GOST 2011-09-07 14:38:11 +04:00
class_marker_base.h Encapsulated drawmode as an enum for type checking 2012-09-01 15:38:27 +02:00
class_pcb_screen.h Implemented the LAYER_NUM typedef (LAYER was already taken as a class name...) to represent a layer number. 2013-03-31 15:27:46 +02:00
class_sch_screen.h *) retain grid origin in the BOARD and save it in legacy and kicad board files. 2013-08-03 00:15:23 -05:00
class_title_block.h All: use a S expression to describe the page layout (title block and grid references). Work in progress. 2013-06-05 14:03:16 +02:00
class_undoredo_container.h Typedef STATUS_FLAGS to encapsulate EDA_ITEM bitmapped flags 2013-03-28 20:12:46 +01:00
class_worksheet_dataitem.h Merged upstream. 2013-10-28 21:34:06 +01:00
colors.h Added one more function to convert colors. 2013-09-11 11:11:27 +02:00
colors_selection.h switch to <> for includes from "" per conversation with Jean-Pierre and Wayne, adjust search paths 2012-01-22 22:33:36 -06:00
common.h Remove wxUSE_UNICODE definition from CMakeLists.txt, because this define comes from wxWidgets and should not be made inside kicad 2013-10-11 18:24:43 +02:00
confirm.h Minor message box improvements 2013-10-18 09:32:22 -04:00
convert_basic_shapes_to_polygon.h 1) Add "rules" to base of tree for copying into BZR_HOME/rules. 2013-05-25 23:36:44 -05:00
convert_from_iu.h REMOVE: USE_PCBNEW_NANOMETERS by making it the only way to go in pcbnew, effectively removing the deci-mils build. 2013-08-06 18:21:40 -05:00
convert_to_biu.h REMOVE: USE_PCBNEW_NANOMETERS by making it the only way to go in pcbnew, effectively removing the deci-mils build. 2013-08-06 18:21:40 -05:00
dcsvg.h.unused Minor fixes and cleanup 2013-02-26 12:25:30 +01:00
dialog_get_component.h EDA_LIST_DIALOG: add a filter option to select names to display is list, from a kamil zorychta's patch <kamil.zorychta@gmail.com> 2013-01-10 13:18:43 +01:00
dialog_helpers.h FIX: work around for wx 2.8 bug affecting wxListCtrl column resizing. 2013-11-26 11:08:07 -06:00
dialog_hotkeys_editor.h Fix some minor issues in hotkey dialogs 2013-09-21 19:09:08 +02:00
dialog_shim.h EDA_LIST_DIALOG_BASE is used multiple times for different numbers of 2013-11-17 00:04:20 -06:00
dlist.h add dialog for fp_lib_table 2012-10-15 17:30:01 -05:00
drawtxt.h Replace in EDA_TEXT::Draw the parameter EDA_DRAW_PANEL* aPanel by EDA_RECT* aClipBox, which is the actual parameter used by Draw. 2013-06-29 11:52:22 +02:00
dsnlexer.h Make pretty prettier by striving for single line module pads. Add slick std::string based strprintf(), twice. 2013-09-26 00:29:54 -05:00
eda_dde.h Code cleanup: Pcbnew: move files relative to exort functions to the new folder exporters 2014-01-08 15:18:51 +01:00
eda_doc.h Minor fixes, dead code removal, and coding policy fixes. 2011-11-08 11:37:25 -05:00
eda_text.h Pcbnew, 3D viewer: fix incorrect position of multiline texts. 2013-12-27 08:24:36 +01:00
fctsys.h Minor code cleaning: Remove unused file, remove obsolete or useless defines 2013-11-15 10:28:31 +01:00
filter_reader.h Add Pcbnew GEDA PCB module plugin support. 2012-12-28 15:52:12 -05:00
footprint_info.h remove USE_FP_LIB_TABLE code, make it the norm. Add lazy loading support to FOOTPRINT_INFO. 2013-12-12 10:01:03 -06:00
fp_lib_table.h 8 bit string relief via class UTF8 2014-01-01 20:17:07 -06:00
fpid.h 8 bit string relief via class UTF8 2014-01-01 20:17:07 -06:00
gestfich.h Add patch from Jacobo Aragunde Perez <Log of opened and closed applications in KiCad launcher> 2013-01-18 11:42:23 +01:00
gr_basic.h Migrated the interfaces accepting angles to the double type 2013-05-05 09:17:48 +02:00
grid_tricks.h *) Factor out Cut, Copy, and Paste for wxGrid into class common/GRID_TRICKS. 2013-10-23 13:56:03 -05:00
hashtables.h Changed the way of looking up NETINFO_ITEM using net names (using boost::unordered_map). Added a hash function (wxString) for that. Introduced NETINFO_ITEM::GetNetItem( wxString ). BOARD::FindNet() uses the map. 2014-01-10 18:04:07 +01:00
hotkey_grid_table.h Fix some minor issues in hotkey dialogs 2013-09-21 19:09:08 +02:00
hotkeys_basic.h Pcbnew: add hotkey Z to reset grid origin. 2013-08-03 18:16:57 +02:00
html_messagebox.h *) Change FOOTPRINT_LIST::ReadFootprintFiles( FP_LIB_TABLE*, const wxString*) 2013-12-09 12:09:58 -06:00
id.h *) Introduce "invoke_a_dialog.h" to information hide between top frame 2013-06-07 15:56:55 -05:00
ki_mutex.h move ${Boost_LIBRARIES} into cvpcb, pcbnew, _pcbnew and out of github, because worker threads used regardless of github 2013-12-09 12:48:42 -06:00
kicad_device_context.h 1) Add "rules" to base of tree for copying into BZR_HOME/rules. 2013-05-25 23:36:44 -05:00
kicad_string.h Pcbnew: change general properties dialog rotation angle to text edit control. 2013-12-17 16:38:20 -05:00
layers_id_colors_and_visibility.h Patches one by Lorenzo, one by Orson 2013-11-06 11:17:42 -06:00
length.h.usuned Namespace KiGfx->KIGFX. 2013-10-14 16:13:35 +02:00
macros.h minor tidying 2013-12-31 00:25:53 -06:00
menus_helpers.h 1) Add "rules" to base of tree for copying into BZR_HOME/rules. 2013-05-25 23:36:44 -05:00
msgpanel.h 1) Add "rules" to base of tree for copying into BZR_HOME/rules. 2013-05-25 23:36:44 -05:00
newstroke_font.h Application name capitalization fixes. 2011-09-30 14:15:37 -04:00
online_help.h Application name capitalization fixes. 2011-09-30 14:15:37 -04:00
pad_shapes.h Eeschema: code cleanup, remove dead code and some global and useless variables 2012-09-28 19:47:41 +02:00
painter.h Namespace KiGfx->KIGFX. 2013-10-14 16:13:35 +02:00
param_config.h Fix wierd ConfigBaseWriteDouble's Printf( wxT("%12f"), aValue ); format string 2013-06-04 09:44:21 -05:00
pcbcommon.h Pcbnew: fix 45 degree rotation angle undo and global variable elimination. 2013-12-16 16:40:03 -05:00
pcbstruct.h work on footprint plugin API 2012-04-15 22:18:41 -05:00
plot_common.h Fix worksheet multiple line text plotting bug. (fixes lp:1261906) 2013-12-23 11:25:13 -05:00
profile.h Profile counter simplified, so it should be more portable. 2013-11-27 09:46:59 +01:00
ptree.h Implement "KiCad s-epression" support for boost::property_tree's ptree, the 8 2013-04-08 16:04:45 -05:00
reporter.h CvPcb footprint library table implementation. 2013-09-14 16:33:22 -04:00
richio.h 8 bit string relief via class UTF8 2014-01-01 20:17:07 -06:00
sch_base_frame.h *) retain grid origin in the BOARD and save it in legacy and kicad board files. 2013-08-03 00:15:23 -05:00
sch_item_struct.h Remove some uses of using namespace std. 2013-12-13 10:27:30 -06:00
trigo.h Eeschema: netlist generation: fix bad choice for the "best net name" when selecting a net name between labels connected to the same net. 2013-09-27 14:30:35 +02:00
utf8.h 8 bit string relief via class UTF8 2014-01-01 20:17:07 -06:00
validators.h Pcbnew: footprint library table fixes. 2013-11-29 13:29:41 -05:00
wildcards_and_files_ext.h Initial release of pl_editor, the page layout and title block editor. 2013-07-19 20:27:22 +02:00
worksheet.h Replace in EDA_TEXT::Draw the parameter EDA_DRAW_PANEL* aPanel by EDA_RECT* aClipBox, which is the actual parameter used by Draw. 2013-06-29 11:52:22 +02:00
worksheet_shape_builder.h Merged upstream. 2013-10-28 21:34:06 +01:00
worksheet_viewitem.h Namespace KiGfx->KIGFX. 2013-10-14 16:13:35 +02:00
wxBasePcbFrame.h Upstream merge. 2013-12-20 10:15:00 +01:00
wxEeschemaStruct.h Code cleanup: Pcbnew: move files relative to exort functions to the new folder exporters 2014-01-08 15:18:51 +01:00
wxPcbStruct.h Code cleanup: Pcbnew: move files relative to exort functions to the new folder exporters 2014-01-08 15:18:51 +01:00
wxstruct.h Code cleanup: Pcbnew: move files relative to exort functions to the new folder exporters 2014-01-08 15:18:51 +01:00
xnode.h Make KiCad compile with minimal warnings against SVN HEAD of wxWidgets as of today. 2014-01-07 19:34:04 -06:00