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
Matthias Koefferlein
a93d514911
More sanity checks for cell index on various Layout methods
2025-09-28 14:46:30 +02:00
Matthias Koefferlein
de72b05334
Moving code around so that laybasic can again be host for Plugin class - this enables putting that into the Python module without having Qt.
2025-09-24 23:17:43 +02:00
Matthias Koefferlein
97b6d82358
Moving lay.ButtonState, KeyCode and Cursor to Qt-less space again
2025-09-24 22:28:07 +02:00
Matthias Koefferlein
8b0a8c7317
Regenerating DRC doc and stubs
2025-09-11 22:13:52 +02:00
Matthias Koefferlein
0daba4f5e0
Fixing 64 bit coordinate build and incorrect porting of fill tool code.
2025-09-10 23:39:28 +02:00
Matthias Koefferlein
8659e165d5
Adjusting one sample
2025-09-10 18:21:59 +02:00
Matthias Köfferlein
0f739bcbef
Merge pull request #2146 from KLayout/devel
...
Devel
2025-09-10 16:02:48 +02:00
Matthias Koefferlein
788dd2b1bc
Fixing non-Qt builds
2025-09-09 22:36:41 +02:00
Matthias Koefferlein
e4789f7f1b
Enhanced object snapping for box edit mode - other corners snap too second order
2025-09-09 21:52:40 +02:00
Matthias Koefferlein
879df5a85b
[consider merging] LayoutView#clear_layer_list preserves layer list name now
2025-09-09 19:38:18 +02:00
Matthias Koefferlein
712237e67b
Implemented solution for issue #2145 (default_text_size option for GDS2 writer)
2025-09-08 23:23:05 +02:00
Matthias Koefferlein
0ddc07392b
[consider merging] suppress normalization of orientation on GSI DPolygon#to_itype and Polygon#to_dtype
2025-09-08 21:16:05 +02:00
Matthias Koefferlein
e2b5c29131
Some refactoring, bug fix
2025-09-08 19:30:07 +02:00
Matthias Koefferlein
20a3dbeaf8
Some refactoring (generalizing edt:: functions, basing move tool on lay::EditorService and support for 'tab' key (calls 'move by')
2025-09-08 18:54:00 +02:00
Matthias Koefferlein
e9584c289a
Tab order of some dialogs
2025-09-08 00:11:24 +02:00
Matthias Koefferlein
7fd01a64f6
WIP: adding tab key to move tool (calls 'move by' menu), enhancing 'move_to' and 'move_by' dialogs.
2025-09-07 23:54:40 +02:00
Matthias Koefferlein
aba1f87b0d
Enhancement to layer binding for images: now saving as img::ObjectV2 if layer binding is present. This does not break old KLayout versions trying to read session files. But old KLayout version will still crash when trying to save such a session.
2025-09-07 22:51:31 +02:00
Matthias Koefferlein
aa9d951cf7
Fixing build for old Qt versions
2025-09-07 21:43:23 +02:00
Matthias Koefferlein
128b1e596c
[consider merging] MainWindow should be managed (derived from gsi::ObjectBase)
2025-09-07 21:40:07 +02:00
Matthias Koefferlein
3d5833d323
Updated doc
2025-09-07 18:49:14 +02:00
Matthias Koefferlein
eb6369f90f
Updated doc
2025-09-07 00:31:08 +02:00
Matthias Koefferlein
cd34125b0c
Bugfixing new implementation of fill tool, added tests for DRC implementation
2025-09-06 22:28:01 +02:00
Matthias Koefferlein
810f5fb8aa
Added basic fill tool tests for exclude_area
2025-09-06 21:25:47 +02:00
Matthias Koefferlein
feda8680ca
WIP: exclude area implemented. Needs optimization.
2025-09-06 19:15:12 +02:00
Matthias Koefferlein
ff6ab4267b
WIP: exclude area for fill functions
2025-09-06 17:58:44 +02:00
Matthias Koefferlein
6ada4cb6f9
[consider merging] fixed build without Qt bindings
2025-09-06 13:41:14 +02:00
Matthias Koefferlein
8901359957
Merge branch 'master' into devel
2025-09-06 13:26:11 +02:00
Matthias Köfferlein
71929bf2be
Merge pull request #2143 from KLayout/feature/issue-2141
...
Feature/issue 2141
2025-09-06 13:25:28 +02:00
Matthias Koefferlein
90ed8a2390
Excluding degenerated edges from polygons so we don't consider them corners, addressing duplicate corners with zero distance.
2025-09-05 23:48:49 +02:00
Matthias Koefferlein
a9d52b7a70
Fixing case of point vs. edge in projecting mode
2025-09-05 08:05:27 +02:00
Matthias Koefferlein
aed28098f2
First solution, needs more testing
2025-09-04 23:30:39 +02:00
Matthias Koefferlein
af6762b52d
Fixing issue #2134 ('merged' on edge layers not working in DRC)
2025-09-04 21:58:46 +02:00
Matthias Koefferlein
3b86448a0a
Fixed issue #2133 (crash in editor search&replace)
2025-09-04 21:36:54 +02:00
Matthias Koefferlein
50cad403b2
Doc updates (vias, paths)
2025-09-04 20:46:30 +02:00
Matthias Koefferlein
3d8eaf8dbf
Changed via key binding to 'O'
2025-09-04 20:27:43 +02:00
Matthias Koefferlein
e6692a2fd0
Added LayoutView#layer_list_name as read access for LayoutView#rename_layer_list
2025-09-04 19:59:57 +02:00
Matthias Koefferlein
128f92c427
Doc update
2025-09-04 19:53:36 +02:00
Matthias Koefferlein
7f29cf91df
Removing GSI methods which are no longer required as they are included in the base class now, added + fixed GSI unit tests for LayoutView
2025-09-04 19:50:51 +02:00
Matthias Koefferlein
b3123d385a
Updating samples to include focus pages
2025-09-04 19:24:49 +02:00
Matthias Koefferlein
b9115fc0a2
WIP: Enhancements to EditorOptionsPages API
...
- Make RBA::LayoutViewBase derived from Dispatcher, so we can pass LayoutView
to methods asking for a dispatcher
- For this, the Dispatcher needs to be the first base class of LayoutViewBase
and gsiDeclLayDispatcher is moved to laybasic
- API for editor options pages and message passing (callbacks)
2025-09-03 00:02:18 +02:00
Matthias Koefferlein
0447080d17
WIP: polishing geometry of modal editor options widget
2025-09-02 21:21:00 +02:00
Matthias Koefferlein
a24e2431a2
WIP: automatically calling ungrab_mouse on deactivation of plugin
2025-09-02 20:28:55 +02:00
Matthias Koefferlein
2b04ecb1f7
WIP: experimental - modal editor options pages
2025-09-02 00:45:42 +02:00
Matthias Koefferlein
53a7414757
Merge branch 'master' into devel
2025-08-31 21:53:43 +02:00
Matthias Köfferlein
70ba27c8f2
Merge pull request #2131 from KLayout/vias-development
...
Vias development
2025-08-31 21:53:12 +02:00
Matthias Koefferlein
1e570351fb
Refactoring (GSI base class for EditorOptionsPage), preparations for 'focus_page' feature
2025-08-31 20:37:48 +02:00
Matthias Koefferlein
a7518f5452
Fixing Python module builds
2025-08-31 19:38:22 +02:00
Matthias Koefferlein
84c518b057
Trying to fix Python module builds
2025-08-31 18:18:32 +02:00
Matthias Koefferlein
e21eb6aafc
Typo fixed
2025-08-31 17:52:04 +02:00
Matthias Koefferlein
4d9f924466
Refactoring: providing GSI binding to plugin base class, so the super implementation can be called.
2025-08-31 17:49:13 +02:00
Matthias Koefferlein
57a4984959
WIP: refactoring of heavy Plugin GSI binding functions
2025-08-31 15:50:26 +02:00
Matthias Koefferlein
43454962d4
Improving ruler snapping (after move_transform, snap to objects, visual snap details hint ...)
2025-08-30 23:30:51 +02:00
Matthias Koefferlein
53c173d01e
[consider merging] avoid a warning on writing cells/files in 'under_construction' mode when there is nothing to update
2025-08-30 21:49:27 +02:00
Matthias Koefferlein
6a9269a9ae
[consider merging] Bugfix: internal error when copying while move/copy operation of images and rulers
2025-08-30 21:30:15 +02:00
Matthias Koefferlein
0187abfafc
[consider merging] Bugfix: internal error when trying to replace a shape in a standalone Shapes collection while preserving properties
2025-08-30 19:37:12 +02:00
Matthias Koefferlein
7f7a5bd3ac
Bugfix: properly integrating newborn plugins
2025-08-30 18:55:16 +02:00
Matthias Koefferlein
340c1ef6e9
Some refactoring, editor options are shown more consistently now
...
Specifically, in move mode, now the editor options
are shown too. This makes sense as some of these
options there are also effective in move mode.
2025-08-30 18:39:41 +02:00
Matthias Koefferlein
f1c16a0242
Adding samples for new plugin features, doc update.
2025-08-30 14:53:46 +02:00
Matthias Koefferlein
e396b6ec29
WIP: bug fixes and more tests
2025-08-30 13:35:01 +02:00
Matthias Koefferlein
b133bde1c7
WIP: doc updates
2025-08-30 13:24:30 +02:00
Matthias Koefferlein
7d2113ffe1
Some debugging, tests added
2025-08-30 00:34:35 +02:00
Matthias Koefferlein
3eff75433c
WIP
2025-08-29 17:50:03 +02:00
Matthias Koefferlein
c77a732875
WIP: more features exposed for plugins (snapping)
2025-08-28 23:38:04 +02:00
Matthias Koefferlein
90e25a7b75
WIP: debugging and polishing editor options pages interface for plugins
2025-08-27 00:12:55 +02:00
Matthias Koefferlein
c5d5557072
WIP: debugging config page setup in plugins
2025-08-26 22:36:48 +02:00
Matthias Koefferlein
88178fabd9
[consider merging] Bugfix on Plugin registration
...
This bug happened when a plugin package was installed. In
this case, the plugin was installed dynamically. The effect
was for example that the grid in a view became invisible.
Problem was, that the plugin registration re-generated all
plugins from the view, but did not reconfigure them. Hence
the grid had the default setting which was invisible grid.
2025-08-26 21:06:25 +02:00
Matthias Koefferlein
9e0d1d7ea7
WIP: new GSI declarations
2025-08-25 23:06:18 +02:00
Matthias Koefferlein
acfc2aae09
WIP: preparing integration of editor options pages and config pages into plugin API
2025-08-25 00:04:56 +02:00
Matthias Koefferlein
ac9a589d6f
WIP: two convenience methods for plugin API
2025-08-24 22:29:47 +02:00
Matthias Koefferlein
26682c1a38
Trying again to fix Windows builds
2025-08-24 21:54:42 +02:00
Matthias Koefferlein
2806efd803
Trying again to fix Windows builds
2025-08-24 21:43:59 +02:00
Matthias Koefferlein
626f5809bc
Trying to fix Windows builds
2025-08-24 21:22:33 +02:00
Matthias Koefferlein
f55a4824b7
Disabling features that are not used currently.
2025-08-23 23:05:14 +02:00
Matthias Koefferlein
b079398b02
Added an editor hooks example for Ruby
2025-08-23 22:52:42 +02:00
Matthias Koefferlein
972514454b
Added a Python sample for editor hooks
2025-08-23 20:54:20 +02:00
Matthias Koefferlein
cad905eb63
Ruby via PCell sample
2025-08-23 20:45:08 +02:00
Matthias Koefferlein
e2e4c1a827
Via PCell samples
2025-08-23 20:37:35 +02:00
Matthias Koefferlein
91946165fd
Hardening: more consistent handling of current layer index in layer view (was deferred before and getter wasn't getting the latest value sometimes)
2025-08-23 20:36:49 +02:00
Matthias Koefferlein
e1c9de67d8
Adding sample via PCell for Python
2025-08-23 19:39:03 +02:00
Matthias Koefferlein
4821a5d71a
[consider merging] Bugfix on Plugin registration
...
This bug happened when a plugin package was installed. In
this case, the plugin was installed dynamically. The effect
was for example that the grid in a view became invisible.
Problem was, that the plugin registration re-generated all
plugins from the view, but did not reconfigure them. Hence
the grid had the default setting which was invisible grid.
2025-08-23 17:33:11 +02:00