Commit Graph

5891 Commits

Author SHA1 Message Date
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
Matthias Koefferlein b523f05f80 Some typos fixed 2025-10-25 00:33:25 +02:00
Matthias Koefferlein e8e2858af3 Implemented a solution for #2195
A new PCell method cell_name/cell_name_impl that
delivers a cell name, which is used for "convert to
static cell" and as cell name in general.

Needs testing.
2025-10-25 00:21:04 +02:00
Matthias Koefferlein e6e85ab3b3 FIxing issue #2194 (can't attach key binding to 'forward'/'backward') 2025-10-23 21:49:24 +02:00
Matthias Koefferlein 564111af77 Merge branch 'master' of github.com:KLayout/klayout 2025-10-23 19:21:26 +02:00
Matthias Koefferlein b4371d14ca Fixing TextInfo bbox in case of oversampling 2025-10-23 19:19:06 +02:00
Matthias Koefferlein 4ee73b5f86 Added one more test 2025-10-23 18:50:44 +02:00
Matthias Koefferlein 853a7d7a13 Refinement of HM fix 2025-10-23 00:25:47 +02:00
Matthias Köfferlein e955e4e987
Merge pull request #2193 from KLayout/feature/issue-2147
Feature/issue 2147
2025-10-21 21:52:55 +02:00
Matthias Köfferlein df261559b0
Merge pull request #2189 from KLayout/feature/issue-2180
Feature/issue 2180
2025-10-21 21:52:41 +02:00
Matthias Köfferlein e3e96c97c7
Merge pull request #2188 from KLayout/feature/issue-2176
Implemented solution for issue #2176
2025-10-21 21:52:26 +02:00
Matthias Koefferlein a1d6ff9a3c Selectability follows visibility 2025-10-20 22:57:03 +02:00
Matthias Köfferlein 3183b707ea
Merge pull request #2190 from KLayout/bugfix/issue-2160
Applied suggested patch for #2160
2025-10-19 19:46:21 +02:00
Matthias Köfferlein 0ce335d8cf
Merge pull request #2192 from KLayout/bugfix/issue-2191
Implemented a fix for issue #2191 (LIBNAME not saved)
2025-10-19 19:45:37 +02:00
Matthias Köfferlein af667ef6bf
Merge pull request #2187 from KLayout/feature/issue-2175
Solution for issue #2175
2025-10-19 19:45:26 +02:00
Matthias Köfferlein 295ce2a340
Merge pull request #2186 from KLayout/feature/issue-2174
Fixed issue #2174 - two new events
2025-10-19 19:45:15 +02:00
Matthias Köfferlein 397bae03cf
Merge pull request #2185 from KLayout/feature/issue-2170
Moving the checkbox as requested
2025-10-19 19:45:00 +02:00
Matthias Köfferlein b885cf64e7
Merge pull request #2184 from KLayout/bugfix/issue-2169
Fixed issue #2169: adding path to 'python' and 'ruby' subfolders to i…
2025-10-19 19:44:50 +02:00
Matthias Koefferlein 6746dad08a Fixed display of markers for ghost cells in viewer mode 2025-10-19 19:39:46 +02:00
Matthias Koefferlein 48f6610457 Fixing Python module builds 2025-10-19 18:49:08 +02:00
Matthias Koefferlein 0d09ef6df7 Refinement: do not merge library cells that are already present 2025-10-19 18:34:54 +02:00
Matthias Koefferlein 6d234d4ea5 Merge branch 'master' into feature/issue-2147 2025-10-19 18:20:53 +02:00
Matthias Koefferlein 06aa0c48cd Commit local changes before merge 2025-10-19 18:00:43 +02:00
Matthias Koefferlein c9fde4c3cd Implemented solution for #2147 (merge multiple files into one library)
The complication is auto-load: in case one file changed and needs to
get merge, the whole library needs to be updated. Solution is to do
a rescan of the whole folder in case something has changed there.
2025-10-19 17:47:02 +02:00
Matthias Koefferlein 937e557564 Implemented a fix for issue #2191 (LIBNAME not saved)
The fix consists of moving that options into the case-specific
options like DBU, instead of having it in the format-specific,
default writer options. So they can be specified on a per-case
basis and taken from the current layout by default.

Specifically:
* SaveLayoutOptions#gds2_libname is deprecated and replaced
  by SaveLayoutOptions#libname
* -ol (buddy tools) is no longer format specific
* The GDS writer takes SaveLayoutOptions#libname, and
  if empty, substitutes by the current libname. As last
  resort, "LIB" is used, because LIBNAME cannot be an
  empty string.
* The libname got removed from the global writer options UI
* In the "Save As" options dialog, it now is part of the global
  options and initialized with the current layout's libname.
2025-10-19 13:36:07 +02:00
Matthias Koefferlein 13af65270a Applied suggested patch for #2160 2025-10-19 12:10:36 +02:00
Matthias Koefferlein 19dc5e8edb Implemented a solution for #2180
Implements a new option to show/hide unresolved references
(ghost cells). The option is found in "Display/Cells"
in the Setup dialog and also in the View menu.
2025-10-18 23:40:50 +02:00
Matthias Koefferlein 0016710573 Preparations: more planes, for ghost cells too 2025-10-18 23:06:23 +02:00
Matthias Koefferlein 780615ea9d Implemented solution for issue #2176
- On "via" (Key "O"), the application switches into path mode
- A selection menu pops up if multiple layers are possible starting
  points below the cursor

As a side effect, "tap" will only display the layer selection menu
if there is more than one layer to be selected.
2025-10-18 22:02:58 +02:00
Matthias Koefferlein c927ed121b Solution for issue #2175
The solution consists of a new object, namely "TextInfo"
which allows deriving the true label bounding box from a
Text or DText object. See class documentation for details.
2025-10-18 19:26:17 +02:00
Matthias Koefferlein 3ca88ebfcb Fixed issue #2174 - two new events
1.) LayoutView#on_current_layer_changed(iter)
"iter" is the iterator pointing to the new current layer
Is called after the current layer (the highlighted layer)
changed.

2.) LayoutView#on_selected_layers_changed
Is called after the selected layer set changed.
2025-10-18 15:46:10 +02:00
Matthias Koefferlein 3a352506a9 Moving the checkbox as requested 2025-10-18 15:13:03 +02:00
Matthias Koefferlein 84c76096cb Fixed issue #2169: adding path to 'python' and 'ruby' subfolders to interpreter search path also for technologies, not only for packages. 2025-10-18 15:01:44 +02:00
Matthias Köfferlein 8cc01ca814
Merge pull request #2178 from KLayout/feature/issue-2168
Feature/issue 2168
2025-10-18 13:51:25 +02:00
Matthias Köfferlein 5c11f9201a
Merge pull request #2177 from KLayout/bugfix/issue-2173
Issue #2173 fixed
2025-10-18 13:51:13 +02:00
Matthias Köfferlein 77cc0be2ef
Merge pull request #2164 from KLayout/bugfix/issue-2162
Bugfix/issue 2162
2025-10-18 13:50:47 +02:00
Matthias Koefferlein ce0d619470 Force update of cell tree after rename of library 2025-10-15 22:35:27 +02:00
Matthias Koefferlein bbd473ef47 Added 'Cell#change_ref' to modify the library reference of a cell 2025-10-14 23:50:08 +02:00
Matthias Koefferlein b3cc5d73fe Renaming a library will also change the references 2025-10-14 23:13:10 +02:00
Matthias Koefferlein 572fa7db18 Issue #2173 fixed
- on_selection_changed is issued on "del"
- it is also issued on "reduce selection to highlighted ones" in property dialog
2025-10-12 21:29:39 +02:00
Matthias Koefferlein d1e440d565 Doc updates 2025-10-11 21:23:58 +02:00
Matthias Koefferlein 67de518611 'Refresh Libraries' feature in File menu, new GSI method Library#refresh_all (static) 2025-10-11 21:14:56 +02:00
Matthias Koefferlein 5045287712 Bugfixes 2025-10-11 19:26:11 +02:00
Matthias Koefferlein ff2beaf32f Bugfix: cells were not replaced by defunc cold proxies after unregistering a lib 2025-10-11 17:54:26 +02:00
Matthias Koefferlein b3ec482eb8 WIP (also for other issue #2172)
- New virtual method "reload" for Library
- Implementing that for file-based libraries
- Integrating that into "refresh"
- GSI binding for Library#rename, Library#unregister
- Trigger changed event on Library#unregister
- Library#_destroy will unregister the library
- Typos fixed
2025-10-11 16:24:25 +02:00
Matthias Koefferlein 17f4397f1b Refining solution 2025-09-28 20:17:52 +02:00
Matthias Koefferlein 31ddbe24fa Fixed a potential crash on application exit that was discovered during debugging 2025-09-28 16:25:35 +02:00
Matthias Koefferlein 292f6f84c6 Fixing issue #2162 (crash on selection + query)
Problem was that changing the active cellview index by clicking
on a specific item in the properties dialog cause a "clear_selection".
That interfered with the code of the properties dialog that
expects a static selection.

Fixed by disabling the events that lead to "clear_selection".
Side effect is that under these circumstances the active_cellview_changed
event is not triggered which also prevents side effects due to
scripts hooking into that event.
2025-09-28 16:14:11 +02:00