Seth Hillbrand
9482730559
Eeschema: share SCH_SCREEN across top-level sheets referencing same file
...
When multiple top-level sheets in a multi-root schematic reference the
same sub-sheet file, each sub-sheet must share a single SCH_SCREEN
object. Previously, loadHierarchy() only searched the current root
sheet's hierarchy for an existing screen, so screens loaded by earlier
top-level sheets were never found. This caused each top-level sheet to
create its own copy of the shared sub-sheet's screen, leading to data
loss on save as later writes would overwrite earlier ones.
Add m_loadedRootSheets to SCH_IO_KICAD_SEXPR to track root sheets from
prior LoadSchematicFile() calls within the same IO instance. During
loadHierarchy(), after the existing search fails, also search through
previously loaded root sheets. The cache is cleared when the SCHEMATIC
pointer changes, preventing stale references when the IO object is
reused for unrelated loads.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/23403
2026-03-11 11:23:02 -07:00
..
2026-02-11 11:20:41 -08:00
2026-01-28 17:42:10 -08:00
2023-01-21 19:32:25 +00:00
2026-01-28 14:44:04 -08:00
2025-12-30 12:47:30 -08:00
2024-12-10 15:54:47 -08:00
2026-01-01 19:48:26 -08:00
2026-01-02 12:14:38 -08:00
2025-12-30 15:47:11 -08:00
2026-01-08 09:08:34 -08:00
2026-01-02 14:13:13 -08:00
2025-12-31 15:30:33 -08:00
2026-01-14 11:09:15 -08:00
2026-01-26 16:28:27 -08:00
2026-01-27 14:36:33 -08:00
2026-01-30 11:06:12 -08:00
2026-01-30 10:28:01 -08:00
2026-02-04 16:47:05 -08:00
2026-02-16 20:15:54 -08:00
2026-03-06 11:53:09 -08:00
2026-03-11 11:23:02 -07:00
2025-10-14 16:07:44 -07:00
2026-01-02 19:59:21 -08:00
2026-02-23 12:07:49 -08:00
2026-03-05 09:04:36 -08:00
2024-09-27 13:09:50 -04:00
2026-01-04 08:11:19 -08:00
2025-12-05 17:22:33 -08:00
2025-12-30 11:11:33 -05:00
2026-01-05 17:45:04 -08:00
2023-01-21 19:32:25 +00:00
2024-11-20 18:11:05 +00:00
2023-11-12 14:33:47 +00:00
2023-11-12 14:33:47 +00:00
2025-07-18 16:47:25 -07:00
2024-11-22 23:26:31 +00:00
2024-11-22 23:26:31 +00:00
2022-09-09 17:21:57 -07:00
2023-11-12 14:33:47 +00:00
2024-07-22 23:16:08 +01:00
2025-08-07 15:42:56 -07:00
2025-08-07 15:42:56 -07:00
2025-08-07 15:42:56 -07:00
2025-08-07 15:42:56 -07:00
2025-08-07 15:42:56 -07:00
2025-08-07 15:42:56 -07:00
2025-08-07 15:42:56 -07:00
2025-08-07 15:42:56 -07:00
2025-04-15 10:19:40 -04:00
2025-04-15 10:19:40 -04:00
2023-11-30 09:16:38 -08:00
2025-11-29 22:22:02 -08:00
2024-04-10 17:25:58 -07:00
2022-09-09 17:21:57 -07:00
2022-09-09 17:21:57 -07:00
2022-12-09 02:14:05 +00:00
2022-09-09 17:21:57 -07:00
2023-01-24 14:11:01 +00:00
2023-01-24 14:11:01 +00:00
2023-01-24 14:11:01 +00:00
2022-09-09 17:21:57 -07:00
2023-03-06 10:26:59 +00:00
2023-03-06 10:26:59 +00:00
2023-11-09 06:20:52 -08:00
2023-11-09 06:20:52 -08:00
2023-11-09 06:20:52 -08:00
2023-11-09 06:20:52 -08:00
2023-01-21 19:32:25 +00:00
2023-01-21 19:32:25 +00:00
2023-01-21 19:32:25 +00:00
2023-12-29 13:18:46 -05:00
2023-12-29 13:18:46 -05:00
2023-12-29 13:18:46 -05:00
2024-03-17 23:24:43 +00:00
2024-03-17 23:24:43 +00:00
2024-03-17 23:24:43 +00:00
2023-01-21 19:32:25 +00:00
2023-01-21 19:32:25 +00:00
2023-01-21 19:32:25 +00:00
2024-04-10 17:25:58 -07:00
2023-01-21 19:32:25 +00:00
2023-01-21 19:32:25 +00:00
2023-11-30 09:16:38 -08:00
2024-07-11 18:45:35 +00:00
2024-05-03 12:06:24 -07:00
2024-07-09 10:06:27 -07:00
2022-12-09 02:14:05 +00:00
2022-12-09 02:14:05 +00:00
2022-12-09 02:14:05 +00:00
2022-12-09 02:14:05 +00:00
2022-12-09 02:14:05 +00:00
2022-12-09 02:14:05 +00:00
2022-12-09 02:14:05 +00:00
2024-07-21 23:45:02 +01:00
2024-07-21 23:45:02 +01:00
2025-09-07 14:59:51 -07:00
2023-01-31 14:57:52 +00:00
2023-01-31 14:57:52 +00:00
2025-01-03 18:13:30 +00:00
2023-01-21 19:32:25 +00:00