kicad/common
Seth Hillbrand 683abd2029 Add ability to update subgraphs based on changeset
Previously, almost all connectivity updates were full updates, meaning
that the entire connectivity graph would be rebuilt each time a change
was made to the schematic.  This update modifies the update to only
correct the subgraphs that are directly affected by the change.

It uses the existing connection graph to find all affected subgraphs as
well as connections to the changes based on the visible schematic.
These elements are removed from the existing connectivity graph and
marked dirty.  They then have a new connectivity graph built only around
their changes.  The resulting graph is merged into the original.

Currently, this ability is behind an advanced config flag
`IncrementalConnectivity` while testing.

Fixes https://gitlab.com/kicad/code/kicad/issues/10846

Fixes https://gitlab.com/kicad/code/kicad/issues/1794

(cherry picked from commit a154571438)
2023-04-25 11:32:04 -07:00
..
database Coverity fixes and code cleaning. 2023-03-04 13:14:59 -05:00
dialog_about Update translator contributions 2023-04-03 13:07:33 -07:00
dialogs Retire the lib-tree scoring algorithm. 2023-04-15 00:09:34 +01:00
drawing_sheet pagelayout_editor: fix some minor issues: 2023-02-09 14:16:26 +01:00
font Markup fixes. 2023-04-17 17:52:11 +01:00
gal OPENGL_GAL: draw BITMAP_BASE: fix incorrect rendering of mirrored bitmaps 2023-04-23 16:12:14 +02:00
jobs kicad-cli, pcbnew pàlot: honor the color options when ploting pdf files 2023-02-07 20:20:45 +01:00
kicad_curl Init curl in InitPgm for thread safety 2023-04-15 13:19:32 +00:00
libeval If we don't recognize a var then it's an error, not 0.0. 2022-12-27 13:50:44 +00:00
libeval_compiler Coverity fixes and code cleaning. 2023-03-10 11:21:19 -05:00
plotters Gerber plotter: fix incorrect arcs in regions when using a plot offset. 2023-03-24 11:37:26 +01:00
plugins Eagle template footprints don't actually belong to board. 2023-04-04 14:21:19 +01:00
preview_items Clear loop points when resetting polygon/zone draw. 2022-12-15 19:02:22 +03:00
project Retire the lib-tree scoring algorithm. 2023-04-15 00:09:34 +01:00
properties Properties: introduce validators; re-enable zone hatch settings 2023-02-14 21:10:42 -05:00
settings GTK: Fix settings import paths showing up twice. 2023-03-21 09:57:28 +00:00
swig Add vector3 to swig 2023-03-06 11:23:09 -08:00
tool Don't crash when canceling initial setup in Manage Footprint Libraries 2023-04-15 16:25:12 +00:00
view Amend overly aggressive assert. 2023-04-17 17:52:28 +01:00
widgets Performance improvement for GetShownColumns. 2023-04-13 13:47:21 +01:00
CMakeLists.txt Move Spacemouse to advanced config 2023-04-25 11:30:36 -07:00
advanced_config.cpp Add ability to update subgraphs based on changeset 2023-04-25 11:32:04 -07:00
array_axis.cpp Some more wxS 2023-01-15 21:32:23 -05:00
array_options.cpp More EDA_ANGLE changes. 2022-01-14 16:08:19 +00:00
asset_archive.cpp Some more wxS 2023-01-16 19:07:50 -05:00
base64.cpp
base_screen.cpp Some more wxS 2023-01-16 19:07:50 -05:00
bin_mod.cpp Include optimization: move some things from common.h to point-of-use 2021-03-20 12:09:18 -04:00
bitmap.cpp Improve HiDPI handling of appearance/layer controls 2023-03-07 08:49:06 -05:00
bitmap_base.cpp OPENGL_GAL: draw BITMAP_BASE: fix incorrect rendering of mirrored bitmaps 2023-04-23 16:12:14 +02:00
bitmap_info.cpp Schematic: re-enable old break wire functionality, add slice 2022-12-19 15:55:59 -05:00
bitmap_store.cpp Utilize our combine_hash routine for multiple hash 2022-08-26 08:45:13 -07:00
board_printout.cpp Pcb printing: fix incorrect pos. of the board when printed without worksheet. 2023-02-08 11:05:31 +01:00
build_version.cpp Make version info work without lsb-release installed 2023-04-12 16:13:51 +01:00
callback_gal.cpp Remove convert_to_biu.h, merge contents to base_units.h 2022-09-16 21:09:28 -04:00
commit.cpp More tightening of group parent lifecycles. 2022-11-16 00:42:38 +00:00
common.cpp Allow variable recursion 2023-01-20 16:44:48 -08:00
config_params.cpp Fix some warnings detected by PVS-STUDIO (most are not used vars) 2022-07-25 18:23:52 +02:00
confirm.cpp Fix cli crash due to dialogs buried in the pcb parser... 2023-03-24 23:53:15 +00:00
dialog_shim.cpp More wxS ugh 2023-01-17 07:43:04 -05:00
draw_panel_gal.cpp Prevent VIEW::UpdateItems and onShowTimer from firing repaints if GAL did not complete init 2023-04-12 02:10:34 +00:00
drc_rules.keywords Move connection width testing to rule system. 2022-08-01 13:09:51 +01:00
dsnlexer.cpp Suppress signedness warning 2022-11-03 15:08:45 -07:00
eda_base_frame.cpp Pull fix back from master. 2023-04-16 23:06:36 +01:00
eda_dde.cpp Fix comment placement 2022-09-28 21:19:19 -04:00
eda_doc.cpp Fix eda_doc not looking for schematic locally 2022-05-10 21:28:48 -04:00
eda_draw_frame.cpp Small improvements to lifecycle safety. 2023-04-16 18:49:53 +01:00
eda_item.cpp Properties: Rename methods to better reflect their purposes 2023-03-26 19:48:46 -04:00
eda_pattern_match.cpp Retire the lib-tree scoring algorithm. 2023-04-15 00:09:34 +01:00
eda_shape.cpp EDA_SHAPE_DESC(): catch a std::runtime_error when emitted by 2023-03-20 16:21:54 +01:00
eda_text.cpp Markup fixes. 2023-04-17 17:52:11 +01:00
eda_tools.cpp Fix shadowed definition of EAGLE constant 2022-09-24 01:37:57 +01:00
eda_units.cpp When importing legacy PCB dimension: Use automatic dimension when Unit couldn't be determined 2023-02-28 14:21:12 +00:00
env_paths.cpp More wxS ugh 2023-01-17 07:43:04 -05:00
env_vars.cpp Update KICAD6->KICAD7 2023-01-23 22:21:12 +00:00
eseries.cpp Calculator eseries, remove trailing spaces from 3R and 4R 2023-01-16 17:18:21 +00:00
exceptions.cpp More wxS ugh 2023-01-17 07:43:04 -05:00
executable_names.cpp wxS more things 2023-01-22 09:41:42 -05:00
file_history.cpp Class name <-> file name sync. 2022-12-29 18:05:57 +00:00
filename_resolver.cpp Update KICAD6->KICAD7 2023-01-23 22:21:12 +00:00
filter_reader.cpp Start expunging NULL. 2021-07-15 15:44:45 -04:00
footprint_filter.cpp Retire the lib-tree scoring algorithm. 2023-04-15 00:09:34 +01:00
footprint_info.cpp Some more wxS 2023-01-16 19:07:50 -05:00
fp_lib_table.cpp PCM: auto reload global libs after dialog is run 2023-02-28 16:48:28 -05:00
gbr_metadata.cpp Some more wxS 2023-01-16 19:07:50 -05:00
gestfich.cpp Revert "cmake: adding KICAD_MACOSX_APP_BUNDLE option" 2022-01-31 15:57:56 -08:00
getrunningmicrosecs.cpp
gl_context_mgr.cpp wxS more things 2023-01-22 09:41:42 -05:00
gr_basic.cpp Workaround wxWidgets enforced min pen width by using transparent pen. 2023-02-14 14:45:24 +00:00
gr_text.cpp Separate text-thickness clamping into strict and lenient modes. 2022-09-08 00:28:30 +01:00
grid_tricks.cpp Hook up AddField handler to GRID_TRICKS for SCH dialogs. 2023-03-02 18:16:02 +00:00
hash_eda.cpp Utilize our combine_hash routine for multiple hash 2022-08-26 08:45:13 -07:00
hotkey_store.cpp Gerber Viewer: gerbview -> Gerber Viewer in Settings 2022-07-26 18:42:55 +00:00
hotkeys_basic.cpp Some more wxS 2023-01-16 19:07:50 -05:00
html_window.cpp Formatting. 2021-10-15 12:45:43 +01:00
kiface_base.cpp Fix paths for Copy default global library table. 2023-01-27 09:24:52 +03:00
kiid.cpp Sheet instance handling improvements. 2022-12-26 08:30:03 -05:00
kiway.cpp Fix clashing error dialogs when can't load dynamic library. 2023-03-21 09:57:46 +00:00
kiway_express.cpp We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
kiway_holder.cpp We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
kiway_player.cpp Ensure the socket server is killed during destruction of the kiway player 2022-09-28 21:37:19 -04:00
languages_menu.cpp Cleanup some pgm_base.h includes 2021-06-08 21:56:00 -04:00
launch_ext.cpp Fix opening files with spaces on Linux 2021-11-07 14:31:14 +00:00
layer_id.cpp Move courtyard collision setting to preferences. 2022-10-19 11:33:11 +01:00
lib_id.cpp Support sub-libraries in symbol library browser 2023-01-22 19:25:15 -05:00
lib_table.keywords Add versioning to lib tables 2023-01-23 22:21:12 +00:00
lib_table_base.cpp Fix crash by using a shared_mutex to read/write lock the nickIndex 2023-02-18 13:02:25 -05:00
lib_table_grid_tricks.cpp LIB_TABLE_GRID_TRICKS, popup context menu: fix minor issues: 2023-04-12 11:20:11 +02:00
lib_tree_model.cpp Retire the lib-tree scoring algorithm. 2023-04-15 00:09:34 +01:00
lib_tree_model_adapter.cpp Retire the lib-tree scoring algorithm. 2023-04-15 00:09:34 +01:00
locale_io.cpp Fix various typos 2022-07-21 16:31:41 +00:00
lockfile.cpp Formatting. 2022-10-16 18:39:37 +01:00
lset.cpp Treat internal copper layers as side-specific. 2022-10-25 12:08:57 +01:00
marker_base.cpp Remove a few EDA_RECT instances. 2022-08-31 01:22:49 +01:00
markup_parser.cpp Remove unused vars 2022-09-18 08:49:07 -04:00
netclass.cpp pcbnew: Change some of the default settings in board setup and netclasses 2023-01-29 23:20:40 +00:00
netlist.keywords Transmit pin electrical types through to pads. 2021-01-23 00:10:01 +00:00
newstroke_font.cpp Add "Letter-like character" Omega for Unicode x2126 2022-10-01 16:39:00 -07:00
observable.cpp
origin_transforms.cpp
origin_viewitem.cpp More EDA_RECE yeetage. 2022-08-31 17:19:50 +01:00
page_info.cpp Move 5 helpers to EDA_UNIT_UTILS since they aren't iu specific 2022-08-29 20:11:03 -04:00
painter.cpp Only apply B&W printer fixes when printing. 2021-02-02 15:37:30 +00:00
paths.cpp Get 3d plugins working for running from build dir 2022-09-08 21:49:10 -04:00
pcb.keywords Overhaul of remove-unconnected's zone filling and drawing strategies. 2022-10-18 13:05:42 +01:00
pcb_plot_params.keywords Pcbnew: add plot on all layers feature. 2022-04-02 14:33:40 -04:00
pgm_base.cpp Init curl in InitPgm for thread safety 2023-04-15 13:19:32 +00:00
printout.cpp
project.cpp wxS more things 2023-01-22 09:41:42 -05:00
ptree.cpp We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
rc_item.cpp Suppress newlines in RC_ITEM messages. 2023-04-19 12:38:46 +01:00
refdes_utils.cpp More wxS ugh 2023-01-17 07:43:04 -05:00
render_settings.cpp Move show-bounding-boxes to a tool on the toolbars. 2022-01-17 11:56:40 +00:00
reporter.cpp More wxS ugh 2023-01-17 07:43:04 -05:00
richio.cpp More robust file reading for simulator files. 2023-04-24 13:53:22 +01:00
scintilla_tricks.cpp Fix typo. 2022-09-22 10:53:42 +01:00
search_stack.cpp We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
searchhelpfilefullpath.cpp Don't use SystemDirsAppend on windows for finding the docs 2023-01-29 20:50:16 -05:00
single_top.cpp Stop treating OpenProjectFiles failure like a fatal error 2023-01-22 22:48:31 -05:00
status_popup.cpp Start expunging NULL. 2021-07-15 15:44:45 -04:00
streamwrapper.cpp Start expunging NULL. 2021-07-15 15:44:45 -04:00
string_utf8_map.cpp Rename PROPERTIES to STRING_UTF8_MAP for clarity 2022-11-06 11:51:52 -05:00
string_utils.cpp Markup fixes. 2023-04-17 17:52:11 +01:00
stroke_params.cpp Push UNITS_PROVIDER down into a low-level mixin. 2022-09-19 17:10:59 +01:00
stroke_params.keywords Shapes for schematic. 2021-12-23 20:36:07 +00:00
strtok_r.c
systemdirsappend.cpp Fix paths for Copy default global library table. 2023-01-27 09:24:52 +03:00
template_fieldnames.cpp Ignore empty field-name-templates. 2023-04-18 13:46:08 +01:00
template_fieldnames.keywords
textentry_tricks.cpp Evict the last bits of wx.h 2021-06-07 20:23:27 -04:00
thread_pool.cpp Debugging aid. 2022-10-20 18:37:48 +01:00
title_block.cpp add CURRENT_DATE to text var autocomplete 2023-02-03 00:10:55 +00:00
trace_helpers.cpp More wxSing 2023-01-16 23:14:38 -05:00
transform.cpp Move DefaultTransform definition to transform.cpp, so it can be shared 2023-01-15 19:17:51 +01:00
undo_redo_container.cpp More tightening of group parent lifecycles. 2022-11-16 00:42:38 +00:00
utf8.cpp More wxSing 2023-01-16 23:14:38 -05:00
validators.cpp More wxSing 2023-01-16 23:14:38 -05:00
wildcards_and_files_ext.cpp More wxSing 2023-01-16 23:14:38 -05:00
wx_filename.cpp Implement output targeting of symlib/fplib upgrade per request 2022-12-06 21:20:27 -05:00
wx_stl_compat.cpp Blacklist hashes for 2d integer elements 2022-08-26 08:43:37 -07:00
wxdataviewctrl_helpers.cpp Formatting. 2022-10-16 18:39:37 +01:00
xnode.cpp