Commit Graph

6038 Commits

Author SHA1 Message Date
Matthias Koefferlein b685f89639 C++20 readiness 2026-02-16 23:49:23 +01:00
Matthias Koefferlein 3df88ae279 A small, but sometimes effective optimization of DRC check functions: if a feature is entirely covered (with interaction distance) by a box, it is enough to check against the box 2026-02-15 19:17:21 +01:00
Matthias Koefferlein 199cf1edfa Small enhancement: DRC 'profile' accepts 'true' as argument too 2026-02-15 15:17:13 +01:00
Matthias Koefferlein c3989f63e3 [consider merging] Performance improvement of netlist step (see https://www.klayout.de/forum/discussion/2839/drc-scripts-reports-and-parallelism#latest) 2026-02-14 23:39:00 +01:00
Matthias Koefferlein c1b4f97f33 Some fill tool enhancements
* It's possible to specify the fill cell origin now
  (this is the point where the first cell's lower left is placed)
* margin is taken into account when no step vectors are specified
* "No exclude" is default
2026-02-14 22:03:17 +01:00
Matthias Koefferlein ca43a6e9ce Overloaded base class methods also need to transfer ownership of arguments 2026-02-14 19:41:20 +01:00
Matthias Koefferlein cc7f049799 Fixing the Qt binding definitions to include addItem and for better alignment of Qt API 2026-02-12 23:05:08 +01:00
Matthias Koefferlein 5da83e670d Restoring drawing performance 2026-02-08 08:43:03 +01:00
Matthias Koefferlein 4a8a75f350 Updating doc. 2026-02-07 20:38:53 +01:00
Matthias Koefferlein 56fdbca1f5 Updating copyright to 2026 2026-02-07 17:12:53 +01:00
Matthias Köfferlein 31b7a5327b
Merge pull request #2271 from KLayout/bugfix/issue-2267
Bugfix/issue 2267
2026-02-07 09:46:52 +01:00
Matthias Köfferlein 887914944b
Merge pull request #2264 from KLayout/wip
Wip
2026-02-07 09:46:38 +01:00
Matthias Koefferlein 5298a99250 Fixing Python builds 2026-02-07 09:45:56 +01:00
Matthias Köfferlein 3f9d8906f9
Merge pull request #2266 from KLayout/bugfix/issue-2262
Bugfix/issue 2262
2026-02-07 09:18:03 +01:00
Matthias Koefferlein c15e24025e Experimental: do not list cells starting with underscore in library view 2026-02-06 23:24:05 +01:00
Matthias Koefferlein 2221efd96e Trying to fix Windows builds 2026-02-06 17:45:05 +01:00
Matthias Koefferlein ce877eed17 Fixed a unit test 2026-02-05 23:31:14 +01:00
Matthias Koefferlein 65fd3f3e50 Providing a fix for issue #2267
1. The script API "map_file" attribute has been changed
   to accept and supply nil (for no file), a string (for
   a file, empty is equivalent to "no file") and a list
   for multiple files which are merged. The split at "+"
   or "," has been dropped.
2. The strm* tools option ("--lefdef-map") has been changed
   to allow multiple occurances instead of split at "+" or ",".
2026-02-05 23:21:04 +01:00
Matthias Koefferlein 4e0befd8cd Trying to fix Windows builds 2026-02-05 22:16:58 +01:00
Matthias Koefferlein f68d02c6f3 Merge branch 'master' into wip 2026-02-05 22:05:24 +01:00
Matthias Koefferlein 22a197169d Trying to fix Windows builds 2026-02-05 22:04:10 +01:00
Matthias Köfferlein f53c6b8543
Merge pull request #2265 from KLayout/issue-2263
Following up on a number of Magic reader issues found in the course o…
2026-02-05 21:54:36 +01:00
Matthias Köfferlein 01d2ccbdc5
Merge pull request #2257 from KLayout/evaluate_net-enhancements
Evaluate net enhancements
2026-02-05 21:53:39 +01:00
Matthias Koefferlein 73b078003d Expression objects 'is_a' method now considers derivation 2026-02-02 23:17:15 +01:00
Matthias Koefferlein f0f2ffd714 Fixed keyword syntax in doc 2026-02-02 22:32:21 +01:00
Matthias Koefferlein 91ab72e8e5 Toolkit widget solution enhanced
- Bring text and path options to front when changing mode
- Path width and text string can be configure in toolkit widget
- Enter key finishes move and partial move
2026-02-02 22:05:45 +01:00
Matthias Koefferlein a6eb598abd Some refactoring: global editor option pages are requested from the plugins explicitly. So the generic editor options are not added automatically. 2026-02-02 00:09:29 +01:00
Matthias Koefferlein f0de3013cb Typo fixed 2026-02-01 22:56:56 +01:00
Matthias Koefferlein 0067d46541 Providing a (maybe faster, sometimes) backup implementation for cell mapping - to be used later maybe 2026-02-01 20:27:49 +01:00
Matthias Koefferlein f7870338cf [consider merging] Fixed a MT problem that can be fixed by avoiding recursive calls of Layout::update 2026-01-31 23:02:26 +01:00
Matthias Koefferlein c12942c5bc [consider merging] Fixed a MT problem that can be fixed by avoiding recursive calls of Layout::update 2026-01-31 21:53:28 +01:00
Matthias Koefferlein 6661f5b5dd WIP 2026-01-27 20:54:24 +01:00
Matthias Koefferlein 94a425da0d WIP 2026-01-26 23:55:55 +01:00
Matthias Koefferlein d326df2424 Updating shape count output format and tests 2026-01-25 21:58:44 +01:00
Matthias Koefferlein 9e0572b863 Delayed generation of outputs
In the multi-threaded case this saves some time. Still for
the sample from the issue that is a dominant runtime
component and makes a 8-core run slower than the single-core
one.
2026-01-25 19:37:13 +01:00
Matthias Koefferlein 5278b27683 Following up on a number of Magic reader issues found in the course of issue #2263
* The original issue ("sw" etc for "tri")
* Implementing "magscale"
* Interpolation of environment variables on paths
* Warnings include file positions now
* Ignoring "<< properties >>" pseudo-layer
* MAG writer uses zero-area boxes for empty ones
* New test
2026-01-25 19:30:08 +01:00
Matthias Koefferlein 23b3143451 Report flat count in deep mode, optimize hierarchy handling
1. In deep mode, the count report column will report
   hierarchical and flat counts
2. XOR is shortcut evaluated with one empty input. The
   default implementation does that internally, but at
   the cost of mapping to the internal working layout
   which spoils hierarchy.
2026-01-25 13:36:22 +01:00
Matthias Koefferlein 9e79942bb9 Proposing one part of fix 2026-01-25 10:06:58 +01:00
Matthias Koefferlein 2c65bf85e4 [consider merging] Bugfix: do not stop finder iterations when there are too many founds during text search 2026-01-24 19:32:10 +01:00
Matthias Koefferlein 11701a300e 'Apply' buttons and persistency of values for Layout+Selection 'move to', 'scale' and 'rotate by angle' 2026-01-24 16:19:11 +01:00
Matthias Koefferlein 86ddeb5970 Updating documentation 2026-01-24 14:29:19 +01:00
Matthias Koefferlein de70025316 Finish rulers by pressing the Enter key 2026-01-24 14:29:11 +01:00
Matthias Koefferlein ccd9952d49 Providing numerical move entries also for partial (handle) image and ruler moves 2026-01-22 22:34:34 +01:00
Matthias Koefferlein 8300e2ee57 Added Enter to finish shape edits, added numerical entries for paths and polygons 2026-01-19 22:41:52 +01:00
Matthias Koefferlein 280d79a02d Bug fixing the other rulers 2026-01-18 22:27:43 +01:00
Matthias Koefferlein 659feb468c Fixing a small glitch when notifications and toolbox widgets interact 2026-01-18 22:12:47 +01:00
Matthias Koefferlein ddee74ab78 Rulers: confine box/ellipse to square/circle with Ctrl, center box/ellipse with Ctrl - same as for drawing boxes 2026-01-18 21:12:26 +01:00
Matthias Koefferlein 18c2f5dfa4 [consider merging] incremental value placeholders for rulers 2026-01-18 18:27:54 +01:00
Matthias Koefferlein c2c941078d Enabling toolkit widgets for rulers 2026-01-17 01:05:56 +01:00
Matthias Koefferlein 6b5dbb1442 Enabling toolbox widgets for box service. Plus add-on: pressing Shift while dragging a box makes it centered. 2026-01-16 01:03:36 +01:00
Matthias Koefferlein 900ac4bc0f Refactoring, displaying move vector also in partial mode 2026-01-15 13:34:52 +01:00
Matthias Koefferlein 9fe22869ed Enabling Qt-less builds 2026-01-15 01:41:09 +01:00
Matthias Koefferlein 49f608c7eb Improving Qt binding solution for RBA::EditorOptionsPage 2026-01-14 23:23:15 +01:00
Matthias Koefferlein 2dd804a70f [consider merging] Bugfix: selecting a recent configuration in the editor options did not select the layer if it was freshly created 2026-01-14 14:31:55 +01:00
Matthias Koefferlein ca9a3198f5 WIP: some refactoring 2026-01-14 12:48:51 +01:00
Matthias Koefferlein 6666b2b68c Implementing 'diagonal only' for rulers 2026-01-14 02:37:26 +01:00
Matthias Koefferlein cca73a8ebb WIP, some refactoring and bug fixing. Move toolkit widget works 2026-01-14 00:27:53 +01:00
Matthias Koefferlein e058c47c02 WIP 2026-01-13 18:29:32 +01:00
Matthias Koefferlein c2aa597022 WIP 2026-01-13 16:21:59 +01:00
Matthias Koefferlein ee622fc104 WIP 2026-01-13 12:54:10 +01:00
Matthias Koefferlein cabcde3bf5 [consider merging] Fixing strange snapping behavior on partial move at 45 degree directions 2026-01-13 10:08:57 +01:00
Matthias Koefferlein 18ef4a12e2 Allowing use of arrow keys for move 2026-01-13 09:21:41 +01:00
Matthias Koefferlein 15a5f7f7c2 WIP 2026-01-13 02:13:13 +01:00
Matthias Koefferlein 8add404adc WIP 2026-01-12 21:00:24 +01:00
Matthias Koefferlein 67790c0ce7 WIP 2026-01-12 19:32:29 +01:00
Matthias Koefferlein 0b9a0c3af1 WIP, e.g. avoiding sticky selection when aborting 'move' by chosing a different mode 2026-01-12 17:05:42 +01:00
Matthias Koefferlein c738cf7255 WIP 2026-01-12 15:45:17 +01:00
Matthias Koefferlein 160cceb7b5 Pressing Ctrl key while drawing a box forces it into a square 2026-01-11 23:46:11 +01:00
Matthias Koefferlein c6faa3e628 'extent_refs' DRC function: enabling for edge pairs and edges, clarification of documentation 2026-01-11 22:34:52 +01:00
Matthias Koefferlein 80f78bffc9 Improving solution for net cluster renaming for join_nets 2026-01-11 20:53:18 +01:00
Matthias Koefferlein b324f3f5cc Bugfix/enhancement: keeping clusters and nets in sync when joining nets. This will enhance robustness under presence of soft connection errors 2026-01-11 17:45:44 +01:00
Matthias Koefferlein b409ed8b44 Include hidden classes in documentation to avoid confusion. 2026-01-11 01:30:25 +01:00
Matthias Koefferlein c3b6476176 [consider merging] Bugfix: DRC collect_xyz is available now also for edge pair layers 2026-01-11 00:32:03 +01:00
Matthias Koefferlein 38ddffc645 L2N log entries with net references
* Log entries on the L2N object can now have net references
  (by expanded name) and the nets will be highlighted
  when the log entry is selected in the netlist browser
  For an application see drcSimpleTests:147.
* New function ("db") in evaluate_nets
* BUGFIX: proper computation of transformations for multiple
  selections of nets in netlist browser
2026-01-04 22:48:35 +01:00
Matthias Koefferlein b44bab9943 Making net name mandatory (using expanded_name) for L2N format, so that we can refer to net name in log entries later 2026-01-04 17:10:35 +01:00
Matthias Koefferlein c50b56f868 Shortcutting evalute_nets if there is nothing to do. 2026-01-04 17:10:08 +01:00
Matthias Koefferlein 60a5dc1b8a Bugfix of 'evaluate_nets' function, added tests 2026-01-04 17:07:38 +01:00
Matthias Koefferlein 17a525f39f Fixed a typo 2026-01-04 15:34:48 +01:00
Matthias Koefferlein 407bbbcf62 More options on 'evaluate_nets' expressions, i.e. 'copy'. See documentation for details. 2026-01-03 01:21:30 +01:00
Matthias Koefferlein 5b0e9f146f Fixing issue #2252 (internal error on netlist compare) 2025-12-23 18:46:08 +01:00
Matthias Koefferlein c0059959b8 Two small improvements
1. point-like selections use pan-to-selection instead of zoom-to-selection
2. Drawing texts on hidden layers: one warning less about drawing on a hidden layer
2025-12-22 23:09:38 +01:00
Matthias Koefferlein 989f80e1a6 Using floats for Polygon::smooth distance checks, so that precise measurements are taken 2025-12-22 21:02:22 +01:00
Matthias Koefferlein fc7011d8fd Use image copy instead of reference for icons. I hope that fixes the problem. 2025-12-10 21:36:46 +01:00
Matthias Koefferlein ec2c160792 Maybe fixing icon issue on MacOS 2025-12-09 22:30:58 +01:00
Matthias Koefferlein 1e8321d8fb Merge branch 'master' into issue-2224 2025-12-07 22:30:37 +01:00
Matthias Köfferlein b7bda218b6
Merge pull request #2228 from KLayout/bugfix/issue-2220
Fixing issue #2220 (select fails to select from 2nd layout when two a…
2025-12-07 22:29:08 +01:00
Matthias Köfferlein 4f30ad36db
Merge pull request #2242 from KLayout/bugfix/issue-2234
Bugfix/issue 2234
2025-12-07 22:28:51 +01:00
Matthias Köfferlein 9fbaf8fb14
Merge pull request #2232 from KLayout/bugfix/issue-2221
Bugfix/issue 2221
2025-12-07 22:27:37 +01:00
Matthias Köfferlein 590bc91359
Merge pull request #2226 from KLayout/bugfix/issue-2219
Issue #2219 (drawing of empty cells)
2025-12-07 22:27:24 +01:00
Matthias Köfferlein b8ff75d6a4
Merge pull request #2225 from KLayout/feature/issue-2214
Implemented a solution for issue #2214
2025-12-07 22:27:08 +01:00
Matthias Koefferlein 652b596164 Reworked implementation to include user feedback 2025-12-04 22:39:46 +01:00
Matthias Koefferlein 389a0996fd Messages can have priorities now. The net tracer uses higher-priority messages to make the 'click on second/first point' message more persistent. The have infinite lifetime now. 2025-12-03 22:11:54 +01:00
Matthias Koefferlein fc4a8b92b0 First bug fixes
* Only check for layers in the selected stack - this
  avoids problems with "masking" pin shapes for example
* Use shape transformation for shapes inside hierarchy
2025-12-02 23:00:07 +01:00
Matthias Koefferlein 7c81a8e954 Small bugfix 2025-12-02 00:26:39 +01:00
Matthias Koefferlein cdaf34cd77 Implementing change of layer accross all shape types
Plus: simplify behavior of "change all" button, so it
is not turned on or off.
2025-12-02 00:05:42 +01:00
Matthias Koefferlein 78b62e13d1 Handling of guiding shape layers - prevent the properties dialogs from changing it 2025-12-01 18:26:22 +01:00
Matthias Koefferlein 4b6cd3f6f5 Layer selection widget now has layer icons 2025-12-01 18:02:48 +01:00
Matthias Koefferlein 0bb0cb4a12 WIP 2025-12-01 00:28:43 +01:00
Matthias Koefferlein bc835adf64 Fixed issue #2221 (restoring 'save' behavior on 'save all')
'save all' now behaves like 'save' on all layouts by respecting
the application-wide writer options.

In addition, a weird feature was fixed: when using 'save' for the
first time, old versions were freezing the writer options and changing the
application-wide options did not have an effect on views after
they were saved the first time.

Now, this behavior only applies to "save as" and a popup is shown
in the top of the layout view indicating that from now on the
special options apply. This way, special options can be picked
in "save as" and they will remain valid during the next "save".
2025-11-27 21:57:13 +01:00
Matthias Köfferlein a957386291
Merge pull request #2230 from KLayout/bugfix/issue-2229
Fixed build problem with 64bit coordinates and without Qt
2025-11-25 22:23:48 +01:00
Matthias Koefferlein a35304912f Fixed build problem with 64bit coordinates and without Qt 2025-11-25 22:22:52 +01:00
Matthias Koefferlein bbaaa14b2c Bringing 'save all' on the same level than 'same'
- Taking the technology's settings for save options
- Deploying "libname", e.g. for GDS2
2025-11-22 23:57:40 +01:00
Matthias Koefferlein 7026cad2c1 Fixing issue #2220 (select fails to select from 2nd layout when two are loaded in same panel) 2025-11-22 22:35:16 +01:00
Matthias Koefferlein 12b74517a6 Issue #2219 (drawing of empty cells)
1. Optimiziation - not more than one empty cell per pixel
   This is not very efficient on the available test cases.
2. Introducing a virtual dimension for the empty cells
   for the purpose of label scaling.
   With this, the labels are scaled (if a scalable font
   is selected) and not drawn when becoming very small.
   The parameter is found in the setup pages under
   Display/Cells.
2025-11-20 23:05:35 +01:00
Matthias Koefferlein dd8cc8973f Implemented a solution for issue #2214
- The mouse release event's button mask reflects the
  keyboard modifiers at the time the button was released
- Same for click event
- Selection tool and partial selection uses the buttons
  from the release event
- New bitmap mask constants are available to extract the
  keyboard modifiers and mouse buttons from the button mask.
- Documentation was enhanced
2025-11-20 20:36:48 +01:00
Matthias Köfferlein 56ff29f516
Merge pull request #2213 from KLayout/bugfix/issue-2210
Fixing issue #2210 (snap behavior for auto-measure)
2025-11-18 19:24:38 +01:00
Matthias Koefferlein 131a7bdf6e Fixing issue #2210 (snap behavior for auto-measure) 2025-11-16 15:05:55 +01:00
Kazunari Sekigawa 68ebbe4abc Fix compile errors on (macOS Sonoma) x (Qt5 MacPorts) 2025-11-14 18:42:58 +09:00
Matthias Koefferlein 7e25b6b986 Fixed LStream writer under the presence of iterated arrays 2025-11-11 23:35:08 +01:00
Matthias Koefferlein 25d396023a Refinement of snap, fixed tests 2025-11-11 00:21:28 +01:00
Matthias Koefferlein ea3e1e98b7 Better snapping to vertexes - important for center point snapping 2025-11-10 23:21:28 +01:00
Matthias Koefferlein b51b15ac63 Updating stubs 2025-11-09 22:59:21 +01:00
Matthias Koefferlein d8d53fb328 Merge remote-tracking branch 'origin/devel' 2025-11-09 21:14:39 +01:00
Matthias Koefferlein dd9b38a92f Refactoring of Python module build system, now based on configuration files mostly. 2025-11-09 17:46:25 +01:00
Matthias Koefferlein 9a65cd252c Don't use gcc options on MSVC 2025-11-09 13:51:05 +01:00
Matthias Koefferlein 8da655df43 Fixing DXF tests 2025-11-09 11:36:15 +01:00
Matthias Koefferlein bd6f62013e Importing latest version of LStream package, bug fixes (mag instances, layer were duplicated) 2025-11-09 11:30:00 +01:00
Matthias Koefferlein f2928e94a8 LStream writer options page, updated LStream sources, strm2lstr writer options 2025-11-09 10:17:58 +01:00
Matthias Koefferlein be62abd646 Added strm2lstr buddy tool 2025-11-09 09:10:31 +01:00
Matthias Koefferlein 89cc79cbbc Fixing issue #2208
Problem was rounding that lead to incorrect distance measurements
between parallel edges when one edge was very short.
2025-11-08 23:45:09 +01:00
Matthias Koefferlein 3809e44777 Added smoke tests for streams in Python module 2025-11-08 20:25:06 +01:00
Matthias Koefferlein ef5f8953aa Enabling lstream for Python module builds - that needs some refactoring later 2025-11-08 17:55:51 +01:00
Matthias Koefferlein 93522bc134 Also renaming suffix of generated files to .cc 2025-11-08 16:12:31 +01:00
Matthias Koefferlein 47f4ca5224 Switching kj and capnp to static libs, maybe solves Windows build issues 2025-11-08 15:55:41 +01:00
Matthias Koefferlein 5add5c3df2 [consider merging] Library rename now removes an existing library 2025-11-08 15:55:25 +01:00
Matthias Koefferlein da0558e7b4 Fixed two memory sanity issues found with valgrind 2025-11-08 14:04:07 +01:00
Matthias Koefferlein 448ebcc8c6 Trying to fix builds 2025-11-08 13:52:01 +01:00
Matthias Koefferlein 6aa66830e8 Trying to fix builds 2025-11-08 10:24:10 +01:00
Matthias Koefferlein 59ef8e7106 Trying to fix builds 2025-11-08 10:16:32 +01:00
Matthias Koefferlein f5f8e6edba Trying to fix builds 2025-11-08 10:12:59 +01:00
Matthias Koefferlein ce44efe9ad Trying to fix builds 2025-11-08 10:08:58 +01:00
Matthias Koefferlein 076ed98358 Trying to fix builds 2025-11-08 10:07:20 +01:00
Matthias Koefferlein ea086b8cbf Trying to fix builds 2025-11-08 10:03:19 +01:00
Matthias Koefferlein f375dd0907 Trying to fix builds 2025-11-08 10:00:36 +01:00
Matthias Koefferlein 5e823337b3 Trying to fix builds 2025-11-08 09:56:59 +01:00
Matthias Koefferlein e6ec9a54aa LStream bugfix integrated: points have not been written correctly 2025-11-08 01:23:06 +01:00
Matthias Koefferlein e8d5499598 WIP: LStream samples+test, OASIS writer
Current version of LStream code, samples and reader tests.
OASIS Writer: now writing points (to degenerated edges)
and edge pairs without asserting.
2025-11-08 00:35:18 +01:00
Matthias Koefferlein 115b6d5716 LStream: Establishing C++ 14 by default for building without Qt6 2025-11-07 23:15:43 +01:00
Matthias Koefferlein 642fe435cf Include a build script option to disable lstream 2025-11-07 01:02:40 +01:00
Matthias Koefferlein cc3bda51a5 Providing a script to sync sources 2025-11-07 00:46:59 +01:00
Matthias Koefferlein d2e5393d0c Integration of LStream sources 2025-11-07 00:44:08 +01:00
Matthias Koefferlein 7d0912db17 Fixing unit tests after change of snap behavior 2025-11-02 00:00:11 +01:00
Matthias Koefferlein ddc847ac1f Object snapping: now snapping to edge centers for polygons and boxes, snapping to box centers 2025-11-01 16:44:40 +01:00
Matthias Koefferlein 289facd5ee Merge branch 'master' into devel 2025-10-26 16:36:03 +01:00
Matthias Köfferlein 3a069427cd
Merge pull request #2202 from KLayout/bugfix/issue-2201
Fixed issue #2201 (trace path)
2025-10-26 16:35:43 +01:00
Matthias Köfferlein fdeab5d104
Merge pull request #2200 from KLayout/issue/issue-2183
Implementing request from issue #2183
2025-10-26 16:35:29 +01:00
Matthias Köfferlein ff49a81723
Merge pull request #2199 from KLayout/feature/issue-2195
Feature/issue 2195
2025-10-26 16:35:14 +01:00
Matthias Koefferlein b454d2ae42 Fixed issue #2201 (trace path)
* you can zoom in now to select the end point. Problem was
  actually that zooming in was a problem when the start point
  went out of the viewport

In addition:
* Messages are sticky now ("Click on second point")
* "Esc" will cancel path trace mode
* The cursor switches back to normal after tracing
2025-10-25 23:12:22 +02:00
Matthias Koefferlein b9906180e8 Implementing request from issue #2183
For strmxor, --drop-empty-cells now is default.
To explicitly turn it OFF, use

strmxor --drop-empty-cells=false ...
2025-10-25 17:54:26 +02:00
Matthias Koefferlein fc3185165f Added some tests 2025-10-25 17:16:13 +02:00