Commit Graph

388 Commits

Author SHA1 Message Date
Matthias Koefferlein c77a732875 WIP: more features exposed for plugins (snapping) 2025-08-28 23:38:04 +02:00
Matthias Koefferlein 26682c1a38 Trying again to fix Windows builds 2025-08-24 21:54:42 +02:00
Matthias Koefferlein 626f5809bc Trying to fix Windows builds 2025-08-24 21:22:33 +02:00
Matthias Koefferlein d89aae6d97 Properly handling editor hooks on edit layer change - also on via 2025-08-23 16:08:42 +02:00
Matthias Koefferlein ee89bc43c4 Refactoring of edt services, bug fixes 2025-08-23 00:41:37 +02:00
Matthias Koefferlein ee0b5e3bd9 [consider merging] fixing a crash on 'show parameter names' in PCell dialog 2025-08-22 23:54:01 +02:00
Matthias Koefferlein 3068c1da29 WIP: introducing grids in vias 2025-08-22 23:46:24 +02:00
Matthias Koefferlein d77eb32db4 WIP: computation of via size, bug fixes 2025-08-22 23:21:53 +02:00
Matthias Koefferlein 3df715f078 WIP: some debugging 2025-08-21 22:32:22 +02:00
Matthias Koefferlein 59432fb6ed WIP: some rework, targetting proper use of recent attributes when entering an editor tool 2025-08-21 21:56:15 +02:00
Matthias Koefferlein 9137919894 WIP: Implementing initial via 2025-08-20 23:51:03 +02:00
Matthias Koefferlein d3d2eda54a WIP: undo, backspace implementation, bug fixes 2025-08-19 23:12:43 +02:00
Matthias Koefferlein 57cd512bf9 WIP: via up and via down 2025-08-18 23:33:44 +02:00
Matthias Koefferlein 331d16ab7c WIP: fixing undo, implement layout cleanup 2025-08-18 23:21:18 +02:00
Matthias Koefferlein 39c8e0ca15 WIP: some refactoring, introducing cut layer in via definition 2025-08-18 22:53:45 +02:00
Matthias Koefferlein 33ffa6367f WIP: updating via cell at the front of a path segment. 2025-08-17 22:54:11 +02:00
Matthias Koefferlein d8e271339e WIP: some refactoring, vias switch layers now. 2025-08-17 21:50:02 +02:00
Matthias Koefferlein 0da4f694ca WIP: cleanup of handling of multi-CV cases for editing (use and switch to active CV), reuse previous configuration on switch or use of layer in editor features. 2025-08-17 19:44:59 +02:00
Matthias Koefferlein a1feb676ee WIP 2025-08-16 23:01:12 +02:00
Matthias Koefferlein 6fdad4649a WIP 2025-08-16 21:44:41 +02:00
Matthias Koefferlein 5bd74b73bb Enhancement: 'select highlighted objects' from properties dialog (object tree context menu) 2025-08-15 17:06:33 +02:00
Matthias Koefferlein fdb28800f7 Introducing fallback transformation variants for empty layer lists. This allows editing layouts without any layers and only instances. 2025-08-10 21:29:53 +02:00
Matthias Koefferlein b4bbc26d6a WIP 2025-08-10 13:43:19 +02:00
Matthias Koefferlein 2d5778a860 'tap': do not consider texts as detecting them requires capturing a large area - which is against performance 2025-07-21 20:40:01 +02:00
Matthias Koefferlein e6fa072bee Fixing 'tap' feature
After introducing the "do not select shapes
or instances if they overlap the viewport entirely"
feature, 'tap' was not finding shapes which extended
beyond the view's borders.

This got fixed and for 'tap', such shapes are
considered again.
2025-07-18 23:00:23 +02:00
Matthias Koefferlein 67994a2f8a Introducing convenience method ObjectInstPath#cell 2025-07-13 21:27:26 +02:00
Matthias Koefferlein 5c7ac018a8 Not asking for copy mode for leaf cells isn't a bad idea in general, but it creates confusing behavior when pasting instances into a different layout where the target cell does not exist 2025-06-26 20:54:16 +02:00
Matthias Köfferlein ba640b6d04
Merge pull request #2039 from KLayout/feature/issue-2016
First attempt to implement a solution for issue #2016
2025-05-22 19:22:32 +02:00
Matthias Koefferlein d317dc2fe3 Fixed issue #2025 (brackets get added on PCell parameters) 2025-04-24 23:30:50 +02:00
Matthias Koefferlein aa12448747 First attempt to implement a solution for issue #2016
The implementation will not update the PCell on
property sheet edits of the guiding shape
if lazy evaluation is requested. Still, changes
are committed to the PCell on committing the
property page.
2025-04-05 20:35:11 +02:00
Matthias Koefferlein 561a760881 Updating doc, python stubs, fixed non-Qt builds 2025-03-22 17:51:07 +01:00
Matthias Koefferlein d6273f9bbb [consider merging] avoiding a crash due to recursion in PCell recomputation with macro editor open (IDE generated processEvent calls and these may issue mouse events during execution of a mouse event response code) 2025-03-13 00:01:28 +01:00
Matthias Koefferlein 87e7d8e493 Merge branch 'master' into devel 2025-03-06 19:35:32 +01:00
Matthias Koefferlein 5b4848ee50 Merge branch 'master' of github.com:KLayout/klayout 2025-03-02 22:22:05 +01:00
Matthias Koefferlein 1372a7d04e [consider merging] Bugfix: fixing a crash when editing PCell parameters (QR code PCell in this case) while the macro editor is open 2025-03-02 19:06:31 +01:00
Matthias Koefferlein 50ab169385 Default for lazy eval mode is 'as requested by PCell' for backward compatibility 2025-02-18 23:41:20 +01:00
Matthias Koefferlein b9079cdfdc First proposal for a feature to configure lazy PCell evaluation
- The PCell page gets an option menu instead of "show parameter names"
- That option goes into that menu
- In addition, there is a "lazy PCell evaluation" submenu with the
  modes:
  * As requested by PCell (like now)
  * Never
  * Always
2025-02-18 23:36:30 +01:00
Matthias Koefferlein 502346608f [consider merging] Bugfix: fixing a crash when editing PCell parameters (QR code PCell in this case) while the macro editor is open 2025-02-09 22:44:34 +01:00
Matthias Koefferlein 73dc31244a Merge branch 'master' into devel 2025-01-04 21:51:37 +01:00
Matthias Koefferlein 2d5ddd794c Merge branch 'master' of github.com:KLayout/klayout 2025-01-04 19:36:43 +01:00
Matthias Koefferlein 5d57cb5eed Updating copyright to 2025 2025-01-04 19:32:33 +01:00
Matthias Koefferlein c9da9dc6e0 Updating copyright to 2025 2025-01-04 19:28:56 +01:00
Matthias Koefferlein 233d70d085 Transformation of objects with properties, GSI binding, bug fixing, tests 2025-01-01 22:49:50 +01:00
Matthias Koefferlein 128a00896e WIP 2024-12-24 11:19:21 +01:00
Matthias Koefferlein dd7aa9b84f WIP: massive refactoring of properties repo and OASIS reader
Target is to reduce the properties repository to a singleton.
Hence, there is no need to translate property IDs and it
is possible to retrieve properties everywhere.

The OASIS reader is refactored to avoid property renaming
and change of property definitions per ID.
2024-12-24 00:00:43 +01:00
Matthias Koefferlein d9048f7976 Fixing bug #1953 (inconsistent behavior of callback) maybe
Problem was that the final callback coming (two times) from
"apply" was not updating the widget states (visibility etc.)
2024-12-18 22:13:04 +01:00
Matthias Koefferlein 2bc913140d Refined solution for partial mode snap, so grid does not have priority over edge or vertex snapping for 'snap to objects' 2024-12-02 19:42:12 +01:00
Matthias Koefferlein 6861b68964 Merge branch 'extended-transient-selection-config' 2024-11-30 08:27:01 +01:00
Matthias Koefferlein 84c4f31a9c Improve snapping in partial mode when snapping to objects 2024-11-23 20:33:15 +01:00
Matthias Koefferlein abe578562f Extended (transient) selection config
- Line style can be configured for selection + transient selection
- Transient selection has it's own styles
2024-11-21 23:10:59 +01:00
Matthias Koefferlein 10baec009c Bugfix for issue #1870: do not allow editing on invalid layers 2024-09-28 18:11:53 +02:00
Matthias Koefferlein 5ece4d74ae Fixing issue #1864 (Copy & paste allows creating a recursive hierarchy) 2024-09-20 23:07:09 +02:00
Matthias Koefferlein 7a7ee8492b Some enhancements to "Descend" and "Ascend"
- Ascend now ascends further up if a child cell is
  selected as top level cell
- Descend now looks into transiently selected shapes
  or instances too (mouse hover mode)
- New feature "Descend into" which combines "Descend"
  with "make new top".
- Fixed a compiler warning in layLayoutViewBase.cc
2024-08-10 14:58:02 +02:00
Matthias Koefferlein aeae234fb7 Fixed issue #1814 (application freezes on Ctrl+Select) 2024-08-01 23:12:20 +02:00
Matthias Köfferlein 8ab398dc58
Merge pull request #1811 from KLayout/wip
Wip
2024-07-30 18:59:09 +02:00
Matthias Koefferlein 258aaad29d Fixed issue #1804 (Instantation path highlight mismatch with view window)
In addition, the highlighting was fixed in the
presence of a context path (aka "edit in place").
2024-07-27 20:10:30 +02:00
Matthias Koefferlein fb83b9fbc9 Trying to improve "grab" behavior of partial selection
Problem was: with a partial selection, clicking
in the vicinity of a non-selected edge could
make this edge the selected one. So it was
not possible to drag the selection in some
cases.

With "move mode" it was. The difference was in
the detection logic that decides where a click
is on the selection or outside.

Now, the logic is aligned, and partial mode
clicks will check whether the mouse pointer
is inside the selection bbox (plus some
margin). In that case, the click applies to
the current selection.
2024-07-27 17:18:29 +02:00
Matthias Koefferlein 16abeb2bdc Merge branch 'master' into wip 2024-07-22 21:34:12 +02:00
Matthias Koefferlein 50a9f7004e Fixed a link issue 2024-07-20 00:42:38 +02:00
Matthias Koefferlein 915cc53195 Convenience: copy cells now has an option to mute the dialog (shallow/deep) and the dialog is only shown if there are subcells 2024-07-20 00:03:43 +02:00
Matthias Koefferlein 8b1930ef23 Fixing bug #1789 (Crash by add Text to hidden layer)
Problem was: after activating Text mode the edit
function showed the dock with the editor options.
This cause a mouse move event due to resizing
which in turn triggered the popup about invisible
layer. Apparently Qt's dock open animation does
not like popups during the animation phase which
caused the segfault.

Solution is to do the check upon activation,
not in the mouse move event.
2024-07-13 20:30:12 +02:00
Matthias Koefferlein 12d09687cd WIP: post-fix for #1780 - minimizing access to 'selection' which is mutable. 2024-07-08 23:51:36 +02:00
Matthias Koefferlein 3cf6ef2cec WIP 2024-07-08 23:28:19 +02:00
Matthias Koefferlein 6bca4a07b6 Code cleanup + fixing another bug (crash when doing 'change layer' on multiple selected shapes) 2024-07-08 22:43:56 +02:00
Matthias Koefferlein 930a5d7424 Bugfix issue #1780 2024-07-08 18:59:53 +02:00
Matthias Koefferlein a5b98f93ff Implemented solution for issue #1741 (Feature request: tooltip string for PCell parameter) 2024-06-29 22:10:43 +02:00
Matthias Koefferlein 9cec3f9431 Simplified solution of for the invalid selection problem
1.) transient selection does not need to be handled
2.) restored original behavior or set_selection/get_selection
    (should not modify the selection)
3.) only geometry changes will trigger a selection cleanup
2024-06-09 23:22:32 +02:00
Matthias Koefferlein 46936b5d56 Fixing issue #1733 (Instance selecion in object properties does not match with view port object highlight)
Plus: better implementation of fix for issue #1145
(Crash when clearing a Shapes container by script while a shape is selected)
The previous solution was based on deferred execution and between
execution of that cleanup and the use of the selection, invalid states
could be present.
2024-06-09 18:58:39 +02:00
Matthias Koefferlein 5ee1daf945 First draft of solution. Needs polishing. 2024-06-01 18:48:21 +02:00
Matthias Koefferlein 05c129dd81 Doc fixes 2024-04-30 17:45:56 +02:00
Matthias Koefferlein 7f16c7b597 Fixed doc 2024-04-01 20:24:43 +02:00
Matthias Koefferlein 2dc9df3f40 Updated documentation with example 2024-03-31 22:23:23 +02:00
Matthias Koefferlein 4809c06091 Implemented editor hooks for partial mode too. Integrated modification events into edit protocol 2024-03-31 22:10:24 +02:00
Matthias Koefferlein 1c284b0939 Editor hooks for move operations 2024-03-31 19:26:22 +02:00
Matthias Koefferlein 00bc208e3f Merge branch 'master' into editor-hooks 2024-03-31 10:39:00 +02:00
Matthias Koefferlein eb1ac4903e Refinement of solution for DRC hull generator, still not perfect. 2024-03-30 22:34:26 +01:00
Matthias Koefferlein f087a579af Refactoring of the editor hooks API 2024-03-30 20:53:43 +01:00
Matthias Koefferlein 2e5d395a59 Fixed a typo (thanks, Stefan) 2024-03-30 19:48:02 +01:00
Matthias Koefferlein b4d1a4a954 First draft 2024-03-30 19:11:15 +01:00
Matthias Koefferlein 1868dcc104 Copy ctor, swap and move for tl::shared_collection and tl::weak_collection 2024-03-30 09:36:20 +01:00
Matthias Koefferlein d1216b5891 WIP 2024-03-30 00:30:36 +01:00
Matthias Koefferlein 80d1aad90a WIP 2024-03-30 00:21:16 +01:00
Matthias Koefferlein 876215f6c7 WIP 2024-03-30 00:12:24 +01:00
Matthias Koefferlein b40a7f9575 WIP 2024-03-29 22:59:12 +01:00
Matthias Koefferlein bcfbd50ad6 Some polishing 2024-03-23 23:02:42 +01:00
Matthias Koefferlein add0ad4c39 Issue-1356: Reversed row/column order for arrays 2024-03-23 22:51:09 +01:00
Matthias Köfferlein fa14afbbf3
Pcell limits (#1654)
* Klayout PyCell integration
-added tl::optional as derivate of std::optional for c++17 and above, reduced
 implementation otherwise
-fixed missing include for c++17 and above
-added range constraints for PCell parameter

Signed-off-by: ThomasZecha <zecha@ihp-microelectronics.com>

* tl::optional now based on internal implementation, added tests and tl::to_string binding

* Refactoring the range into min_value and max_value attributes without action and resolution.

* Integration of feature into PCell framework

* Cleanup and fixed some compile issues

* Cleanup, added tests

* [consider merging] Added pymod distutil_src files to dependencies.

* Updated Python stubs

* User feedback: upon entering an invalid value string into an edit box, do not reset the field

---------

Signed-off-by: ThomasZecha <zecha@ihp-microelectronics.com>
Co-authored-by: ThomasZecha <zecha@ihp-microelectronics.com>
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-03-13 21:50:48 +01:00
Matthias Köfferlein 8d4da8b374
Fixed issue #1603 (weird layout of parameters) (#1612)
Also fixed a problem with icons that did not get hidden when visibility was changed.
This fix needed some rework of the layout scheme of PCell parameter pages.

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-02-11 10:35:36 +01:00
Antony Lee 65e41aa270 Fix tabbing order in "Editor Options / Instance / Array Instance" UI.
Currently, in the Array Instance sub-UI that appears when inserting a new
array instance, trying to use the "tab" key to move through the entry
widgets results in going through them in a strange order (column step x,
column step y, row step y, row step x, dimension columns, dimension
rows).  This patch declares the correct tabbing order for the widgets.
2024-02-04 15:58:37 +01:00
Matthias Koefferlein 2b4a583f05 Update copyright year 2024-01-01 17:27:59 +01:00
Matthias Koefferlein b128ffc70b Avoid macro IDE events during update of the recent properties list (that is a problem when script errors are present) 2023-12-23 21:44:06 +01:00
Matthias Koefferlein 86866e52d3 Fixed part of issue #1559 (not snapping to some diagonals) 2023-12-07 20:48:39 +01:00
Matthias Köfferlein 8d51124fd4
Merge pull request #1491 from KLayout/issue-885
Issue 885
2023-11-07 21:35:04 +01:00
Matthias Koefferlein 35832923fa Snapping to grid on partial edit 2023-10-05 23:14:10 +02:00
Matthias Koefferlein 3fbdb065fd Editor option for controlling snapping (snap to grid while moving), more consistent snap behavior, instance snapping 2023-10-05 22:25:30 +02:00
Matthias Koefferlein 99742581c2 WIP (cleanup) 2023-10-03 19:52:49 +02:00
Matthias Koefferlein cc346343fb [consider merging] Avoid a warning about open transaction while moving 2023-10-03 19:52:24 +02:00
Matthias Koefferlein 0a546ef41d WIP 2023-10-02 23:18:36 +02:00
Matthias Koefferlein 579f5ffca4 Doc updates 2023-09-25 23:33:15 +02:00
Matthias Koefferlein 109696a1e0 Preventing issues with debugger and PCell parameter dialog - callbacks were issued while a breakpoint was triggered 2023-09-10 23:36:54 +02:00