kicad/eeschema
Chris Pavlina f8415633bd Switch component chooser to wxDataViewCtrl, refactor
This refactors COMPONENT_TREE_SEARCH_CONTAINER into a Model-View-Adapter
architecture comprising:

- eeschema/cmp_tree_model.h
    - CMP_TREE_NODE: Base class representing a searchable library
        set with scoring and sorting

        - CMP_TREE_NODE_UNIT
        - CMP_TREE_NODE_ALIAS
        - CMP_TREE_NODE_LIB
        - CMP_TREE_NODE_ROOT

- eeschema/cmp_tree_model_adapter.h
    - CMP_TREE_MODEL_ADAPTER: mediator between wxDataViewCtrl (via
        wxDataViewModel) and CMP_TREE_NODE*

                   +---+                      +------------------+
 +---+  Generates  | A |                      |       VIEW       |
 | M |  from libs  | D |   wxDataViewModel    |------------------|
 | O | <---------- | A | <------------------> |  wxDataViewCtrl  |
 | D |             | P |                      |------------------|
 | E | <---------> | T | <------------------- |    wxTextCtrl    |
 | L | UpdateScore | E | UpdateSearchString() |------------------|
 +---+             | R |                      |                  |
                   +---+                      +------------------+

Representing the data with a proper model allows the wxDataViewCtrl to
be updated in bulk, which is significantly faster than the old method of
populating it one item at a time. This also adds flexibility if more
data is to be added in the future (which may come in handy with the
upcoming .sweet format, as that adds more ways components can be related
to each other).

Replacing the wxTreeListCtrl with a wxDataViewCtrl also significantly
reduces the general GUI quirkiness, as wxDataViewCtrl is much more well
behaved.
2017-03-06 09:50:48 -05:00
..
dialogs Switch component chooser to wxDataViewCtrl, refactor 2017-03-06 09:50:48 -05:00
netlist_exporters More flexible node mapping in Spice netlist exporter 2017-03-01 13:51:21 +01:00
plugins Fixes: lp:1645430 (CSV BOM generation using bom2csv.xsl script with custom entries has wrong format) 2016-11-29 13:07:20 +01:00
sim Correct way of freeing memory in NGSPICE class 2017-03-01 13:56:24 +01:00
widgets Fix transaltion issue. 2017-02-26 13:03:38 +01:00
CMakeLists.txt Switch component chooser to wxDataViewCtrl, refactor 2017-03-06 09:50:48 -05:00
Info.plist Changed the bundle identifier to org.kicad-pcb.<app> to follow the kicad domain name 2015-10-30 08:43:04 +13:00
annotate.cpp Cleanups 2016-06-24 12:55:54 +02:00
autoplace_fields.cpp EDA_TEXT object refactor. 2017-01-25 08:03:32 -05:00
backanno.cpp Unify window title formats 2016-09-26 17:28:25 -04:00
block.cpp Eeschema: SCH_SHEET_LIST improvements. 2016-03-06 16:22:01 -05:00
block_libedit.cpp Move LIB_PART::Draw drawing options into a struct 2017-02-19 13:40:26 -05:00
bus-wire-junction.cpp Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
busentry.cpp Eeschema: remove unused headers, unused variables, redundant casts, and minor boolean tweaks. 2015-11-03 14:44:05 -05:00
class_drc_erc_item.cpp fix Bug #152546 (Netlist not respecting case sensitivity for labels): the label matching is now case sensitive. To avoid issues with previous eeschema versions, add in ERC a dectection for "similar" labels (labels which differ only by a case sensitivity) 2015-12-20 13:40:17 +01:00
class_libentry.cpp Remove debug code matching on specific component names 2017-03-03 08:30:48 -05:00
class_libentry.h Fix incorrect initialization of a color parameter, which make the drawings in black in libedit 2017-02-23 17:55:55 +01:00
class_library.cpp Added missing PROPERTIES parameter to function calls in PART_LIB 2017-02-28 15:19:03 +01:00
class_library.h Remove excessive schematic symbol library re-linking. 2017-03-04 16:02:33 -05:00
class_netlist_object.cpp Add connection highlight to eeschema, step 1. 2016-11-16 11:07:02 +01:00
class_netlist_object.h Add connection highlight to eeschema, step 1. 2016-11-16 11:07:02 +01:00
class_sch_screen.h Remove excessive schematic symbol library re-linking. 2017-03-04 16:02:33 -05:00
cmp_library.keywords 1) Add "rules" to base of tree for copying into BZR_HOME/rules. 2013-05-25 23:36:44 -05:00
cmp_library_lexer.cpp 1) Add "rules" to base of tree for copying into BZR_HOME/rules. 2013-05-25 23:36:44 -05:00
cmp_tree_model.cpp Switch component chooser to wxDataViewCtrl, refactor 2017-03-06 09:50:48 -05:00
cmp_tree_model.h Switch component chooser to wxDataViewCtrl, refactor 2017-03-06 09:50:48 -05:00
cmp_tree_model_adapter.cpp Switch component chooser to wxDataViewCtrl, refactor 2017-03-06 09:50:48 -05:00
cmp_tree_model_adapter.h Switch component chooser to wxDataViewCtrl, refactor 2017-03-06 09:50:48 -05:00
component_references_lister.cpp Replace BOOST_FOREACH with C++11 range based for. 2016-06-29 16:07:55 -04:00
controle.cpp Fix questionable code and memory leak. 2017-03-04 17:35:34 +01:00
cross-probing.cpp Remove excessive schematic symbol library re-linking. 2017-03-04 16:02:33 -05:00
dialog_erc_listbox.h Workaround to fix Bug #1492513 (EEschema crash when I hit ERC button Edit). It happens only on Window 32bits build with msys2+gcc 5.2). The crash is due to the wxHtmlListBox used in ERC dialog (Although the sample htlbox works fine). 2015-09-10 14:03:16 +02:00
edit_bitmap.cpp Eeschema: add saving schematic files to schematic plugin. 2016-07-11 15:48:46 -04:00
edit_component_in_schematic.cpp Use library ID to store library symbol information in the schematic symbol. 2017-02-10 08:36:59 -05:00
edit_label.cpp EDA_TEXT object refactor. 2017-01-25 08:03:32 -05:00
eeredraw.cpp Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
eeschema.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
eeschema.icns [MacOSX] Updated Icons - Document ones still missing :( 2012-09-27 19:20:44 +02:00
eeschema.rc Remove old xpm icons files 2012-04-07 13:09:57 +02:00
eeschema_config.cpp Remove excessive schematic symbol library re-linking. 2017-03-04 16:02:33 -05:00
eeschema_config.h Pull existing settings into Doxygen module 2016-05-12 15:45:47 -04:00
eeschema_doc.icns Updates for OS X 2010-05-16 20:18:38 +02:00
eeschema_id.h Add connection highlight to eeschema, step 2: Fixes, refinements, add hot key, cleanup code. 2016-11-16 13:09:34 +01:00
erc.cpp Eeschema: SCH_SHEET_LIST improvements. 2016-03-06 16:22:01 -05:00
erc.h fix Bug #152546 (Netlist not respecting case sensitivity for labels): the label matching is now case sensitive. To avoid issues with previous eeschema versions, add in ERC a dectection for "similar" labels (labels which differ only by a case sensitivity) 2015-12-20 13:40:17 +01:00
events_called_functions_for_edit.cpp Eeschema: Fix a (minor but annoying) bug detected by coverity which prevent Eeschema to draw components in "fast mode" (i;e. without pin texts) when they are moved, due to a draw parameter which was incorrectly used. 2015-02-28 17:56:09 +01:00
files-io.cpp Fix broken schematic symbol library links in sub-sheets. 2017-03-05 13:18:26 -05:00
find.cpp Replace BOOST_FOREACH with C++11 range based for. 2016-06-29 16:07:55 -04:00
general.h Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
generate_alias_info.cpp Component chooser: display correct unit in reference field 2017-02-19 15:11:35 -05:00
generate_alias_info.h Component chooser: display correct unit in reference field 2017-02-19 15:11:35 -05:00
getpart.cpp Switch component chooser to wxDataViewCtrl, refactor 2017-03-06 09:50:48 -05:00
help_common_strings.h Eeschema, main menu (menubar.cpp): better code and fix outdated command and tool tip texts 2016-11-20 12:57:16 +01:00
hierarch.cpp Move bitmaps.h out of base_struct.h 2017-02-21 09:50:15 -05:00
highlight_connection.cpp Add connection highlight to eeschema, step 2: Fixes, refinements, add hot key, cleanup code. 2016-11-16 13:09:34 +01:00
hotkeys.cpp Correctly filter copyable objects for copy hotkey (Fixes lp:1571316) 2017-02-14 09:48:28 -05:00
hotkeys.h libedit: add hotkey for Load Component 2017-01-31 16:01:08 -05:00
invoke_sch_dialog.h Eeschema: improve netlist generation useability. 2015-06-23 09:55:16 -04:00
lib_arc.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
lib_arc.h Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
lib_bezier.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
lib_bezier.h Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
lib_circle.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
lib_circle.h Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
lib_collectors.cpp Move from class INSPECTOR as the EDA_ITEM::Visit() callback interface to a std::function 2016-07-12 15:05:54 -04:00
lib_collectors.h Move from class INSPECTOR as the EDA_ITEM::Visit() callback interface to a std::function 2016-07-12 15:05:54 -04:00
lib_draw_item.cpp Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
lib_draw_item.h Removed a few more headers from base_struct.h 2017-02-22 17:54:01 +01:00
lib_export.cpp Make the schematic I/O plugin the only option. 2017-02-10 08:36:57 -05:00
lib_field.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
lib_field.h Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
lib_pin.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
lib_pin.h Removed a few more headers from base_struct.h 2017-02-22 17:54:01 +01:00
lib_polyline.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
lib_polyline.h Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
lib_rectangle.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
lib_rectangle.h Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
lib_text.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
lib_text.h Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
libarch.cpp Fix legacy schematic I/O symbol library parser bug. 2017-02-14 14:49:22 -05:00
libedit.cpp Switch component chooser to wxDataViewCtrl, refactor 2017-03-06 09:50:48 -05:00
libedit_onleftclick.cpp Eeschema: editors: show the pin position (when clicking on it) in message panel. 2016-10-18 18:59:26 +02:00
libedit_onrightclick.cpp Eeschema: unify schematic and component library block mirror commands. 2016-04-22 10:15:16 -04:00
libedit_plot_component.cpp Move LIB_PART::Draw drawing options into a struct 2017-02-19 13:40:26 -05:00
libedit_undo_redo.cpp Other minor fixes 2015-01-27 12:01:58 +01:00
libeditframe.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
libeditframe.h EDA_TEXT object refactor. 2017-01-25 08:03:32 -05:00
libfield.cpp Eeschema: minor LIB_PART object changes. 2016-10-26 18:37:28 -04:00
load_one_schematic_file.cpp str[n]icmp -> str[n]casecmp 2016-08-11 14:41:06 +02:00
menubar.cpp Icons options menu: code rework 2017-03-03 14:18:25 +01:00
menubar_libedit.cpp Libedit: add "create new lib" in file menu (was only available from the main toolbar) 2017-02-13 09:53:47 +01:00
netform.cpp Eeschema: enhancement on Windows: adds a show console option for BOM plugin execution (needed for instance by python plugins which are run with pythonw) 2016-03-31 08:28:16 +02:00
netlist.cpp Add connection highlight to eeschema, step 1. 2016-11-16 11:07:02 +01:00
netlist.h Fixed Spice netlist export options and added a few new flags 2016-08-11 14:41:20 +02:00
onleftclick.cpp Add connection highlight to eeschema, step 2: Fixes, refinements, add hot key, cleanup code. 2016-11-16 13:09:34 +01:00
onrightclick.cpp Use library ID to store library symbol information in the schematic symbol. 2017-02-10 08:36:59 -05:00
operations_on_items_lists.cpp Removed unused EDA_ITEM::m_Image field. 2016-09-12 11:50:06 +02:00
pin_number.cpp Compress consecutive numbers in pin summary. 2016-01-13 14:18:05 -05:00
pin_number.h Add pin number summary 2016-01-13 14:17:54 -05:00
pin_shape.cpp Enum refactoring and shiny icons in dialog_lib_edit_pin_table 2016-02-28 18:33:29 +01:00
pin_shape.h Enum refactoring and shiny icons in dialog_lib_edit_pin_table 2016-02-28 18:33:29 +01:00
pin_type.cpp Enum refactoring and shiny icons in dialog_lib_edit_pin_table 2016-02-28 18:33:29 +01:00
pin_type.h Enum refactoring and shiny icons in dialog_lib_edit_pin_table 2016-02-28 18:33:29 +01:00
pinedit.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
plot_schematic_DXF.cpp Split IO_ERROR out of richio.* and store Problem() and Where() separately 2016-09-20 11:56:18 -04:00
plot_schematic_HPGL.cpp Split IO_ERROR out of richio.* and store Problem() and Where() separately 2016-09-20 11:56:18 -04:00
plot_schematic_PDF.cpp eeschema: set title of plotted pdf to sheet title 2017-01-20 17:11:12 -05:00
plot_schematic_PS.cpp Split IO_ERROR out of richio.* and store Problem() and Where() separately 2016-09-20 11:56:18 -04:00
plot_schematic_SVG.cpp Split IO_ERROR out of richio.* and store Problem() and Where() separately 2016-09-20 11:56:18 -04:00
project_rescue.cpp Remove excessive schematic symbol library re-linking. 2017-03-04 16:02:33 -05:00
project_rescue.h Fix bug in Eeschema component rescue library. (fixes lp:1485352) 2015-08-17 19:12:34 -04:00
protos.h Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
sch_base_frame.cpp Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
sch_base_frame.h Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
sch_bitmap.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_bitmap.h Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_bus_entry.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_bus_entry.h Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_collectors.cpp Correctly filter copyable objects for copy hotkey (Fixes lp:1571316) 2017-02-14 09:48:28 -05:00
sch_collectors.h Correctly filter copyable objects for copy hotkey (Fixes lp:1571316) 2017-02-14 09:48:28 -05:00
sch_component.cpp Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
sch_component.h Use component library symbol when looking for a pin in the schematic. 2017-03-04 15:16:44 -05:00
sch_field.cpp Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
sch_field.h Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_io_mgr.cpp Eeschema: add saving schematic files to schematic plugin. 2016-07-11 15:48:46 -04:00
sch_io_mgr.h Optimize SCH_PLUGIN enumeration for populating the component chooser 2017-02-24 11:47:27 -05:00
sch_item_struct.cpp Fix snprintf usage. 2015-02-22 18:56:38 -05:00
sch_item_struct.h Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_junction.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_junction.h Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_legacy_plugin.cpp Store information about buffering & caching in properties 2017-02-28 15:18:58 +01:00
sch_legacy_plugin.h Optimize SCH_PLUGIN enumeration for populating the component chooser 2017-02-24 11:47:27 -05:00
sch_line.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_line.h Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_marker.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_marker.h Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_no_connect.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_no_connect.h Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_plugin.cpp Optimize SCH_PLUGIN enumeration for populating the component chooser 2017-02-24 11:47:27 -05:00
sch_reference_list.h Use library ID to store library symbol information in the schematic symbol. 2017-02-10 08:36:59 -05:00
sch_screen.cpp Remove excessive schematic symbol library re-linking. 2017-03-04 16:02:33 -05:00
sch_sheet.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_sheet.h Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_sheet_path.cpp Use library ID to store library symbol information in the schematic symbol. 2017-02-10 08:36:59 -05:00
sch_sheet_path.h Add missing C++ stdlib headers 2016-05-28 12:46:29 -04:00
sch_sheet_pin.cpp Remove a printf clearly for debug, certainly a very old bug 2017-02-24 20:51:50 +01:00
sch_text.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_text.h Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
sch_validators.cpp Do not allow spaces in component name (value field) in component library editor, in dialogs (Edit field, Create component). 2016-08-19 18:42:39 +02:00
sch_validators.h Add more "override" markers. 2016-09-25 13:59:41 -04:00
schedit.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
schematic_undo_redo.cpp Removed unused EDA_ITEM::m_Image field. 2016-09-12 11:50:06 +02:00
schframe.cpp Use library ID to store library symbol information in the schematic symbol. 2017-02-10 08:36:59 -05:00
schframe.h Fix questionable code and memory leak. 2017-03-04 17:35:34 +01:00
selpart.cpp Eeschema: fix schematic I/O plugin symbol name issue. 2017-02-11 13:44:17 -05:00
sheet.cpp Eeschema: SCH_SHEET_LIST improvements. 2016-03-06 16:22:01 -05:00
sheetlab.cpp EDA_TEXT object refactor. 2017-01-25 08:03:32 -05:00
symbdraw.cpp Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
symbedit.cpp Make the schematic I/O plugin the only option. 2017-02-10 08:36:57 -05:00
symbol_lib_table.cpp Make the schematic I/O plugin the only option. 2017-02-10 08:36:57 -05:00
symbol_lib_table.h Make the schematic I/O plugin the only option. 2017-02-10 08:36:57 -05:00
template_fieldnames.cpp Eeschema: make footprint and datasheet initially invisible, when creating a component 2016-05-16 20:59:35 +02:00
template_fieldnames.h Eeschema: add missing rotate and mirror sheet in sheet context menu (these transforms were possible in block commands, but not from the sheet menu). 2015-04-26 18:32:16 +02:00
template_fieldnames.keywords *.lst -> *.keywords, rename input filenames to CMake script TokenList2DsnLexer.cmake 2010-06-18 11:12:15 -05:00
tool_lib.cpp Rearranged Part Editor Icon Positions 2017-02-22 13:24:49 -05:00
tool_sch.cpp Move bitmaps.h out of base_struct.h 2017-02-21 09:50:15 -05:00
tool_viewlib.cpp Add a specific bitmap for show electrical type option (component editor and component viewer) 2016-11-04 13:59:45 +01:00
transform.cpp Remove unnecessary TRANSFORM::operator= 2017-02-19 22:13:50 -05:00
transform.h Remove unnecessary TRANSFORM::operator= 2017-02-19 22:13:50 -05:00
viewlib_frame.cpp Move bitmaps.h out of base_struct.h 2017-02-21 09:50:15 -05:00
viewlib_frame.h Component Editor and Component viewer: add option to show the electrical pin type. 2016-11-04 12:13:22 +01:00
viewlibs.cpp Switch component chooser to wxDataViewCtrl, refactor 2017-03-06 09:50:48 -05:00