Commit Graph

939 Commits

Author SHA1 Message Date
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 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 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 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 Köfferlein 5c11f9201a
Merge pull request #2177 from KLayout/bugfix/issue-2173
Issue #2173 fixed
2025-10-18 13:51:13 +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 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 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 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 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 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 aa9d951cf7 Fixing build for old Qt versions 2025-09-07 21:43:23 +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 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 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 Koefferlein 1e570351fb Refactoring (GSI base class for EditorOptionsPage), preparations for 'focus_page' feature 2025-08-31 20:37:48 +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 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 7d2113ffe1 Some debugging, tests added 2025-08-30 00:34:35 +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 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
Matthias Koefferlein 39c8e0ca15 WIP: some refactoring, introducing cut layer in via definition 2025-08-18 22:53:45 +02:00
Matthias Koefferlein 61ee2305eb [consider merging] Fixed marker display - don't render error layers, that's more difficult because of font selection etc., use contour for text labels 2025-08-16 22:35: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 872eaabb75 Enhancement: 'relative' option of properties dialog is persisted now. 2025-08-15 15:24:00 +02:00
Matthias Koefferlein ef2b164e1a Bugfix: properly supporting Undo on 'apply technology' (layer properties were cleared) 2025-08-15 15:00:10 +02:00
Matthias Koefferlein 513f87c07f Reverted drawing of text strings to text plane for cell names as then 'hide texts' would disable them. 2025-08-12 23:38:33 +02:00
Matthias Koefferlein 55171859cf Fixed display under presence of layer transformations 2025-08-10 21:34:17 +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 7667932a00 Some adjustments:
* Fixed instance marker when the cell is made from empty ones only
* 'fit' will include empty instances
2025-08-10 16:49:51 +02:00
Matthias Koefferlein 0e263ff4d8 Implemented solution for #2110 (small cells and ghost cells)
The solution consists of a second path to bounding boxes of
cells - namely "bbox_with_empty". This bounding box is a
(0,0;0,0)-box if the cell is empty. Correspondingly, empty
and ghost cells are displayed as single points. Ghost cells
also behave like hidden cells now.
2025-08-10 15:33:50 +02:00
Matthias Koefferlein 2c873bcbce WIP 2025-08-10 15:15:50 +02:00
Matthias Koefferlein 0bc904515c WIP 2025-08-10 15:13:10 +02:00
Matthias Koefferlein 75125b7a85 WIP 2025-08-10 14:34:22 +02:00
Matthias Koefferlein 1c15d851ee WIP 2025-08-10 13:59:26 +02:00
Matthias Koefferlein 786d231acd WIP 2025-08-10 13:51:47 +02:00
Matthias Koefferlein 651fc8cbc7 WIP 2025-08-10 13:49:22 +02:00
Matthias Koefferlein b4bbc26d6a WIP 2025-08-10 13:43:19 +02:00
Matthias Koefferlein 29cc603466 WIP 2025-08-09 23:54: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 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 2bd82af6fe Provide a solution of feature request #2024
- There is a new configuration page entry called
  "Min spacing" for the grid. The default value is 4.
  The value specifies the grid min spacing in
  units of UI font height.
- A bugfix is included: the ruler now is drawn after
  the grid, hence is not hidden by it (specifically
  in checkerboard pattern mode)
- To allow bigger grid spacing, the ruler now
  is allowed to grow bigger than before.
2025-04-26 16:52:39 +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 87e7d8e493 Merge branch 'master' into devel 2025-03-06 19:35:32 +01:00
Matthias Koefferlein 2e150980d5 Bugfix: 'Save all' was not updating the dirty state in the panel tabs 2025-03-02 22:12:18 +01:00
Matthias Koefferlein 414a06c70f Bugfix: tab title was not updated when current cell is renamed 2025-03-02 20:54:00 +01:00
Matthias Koefferlein f3bed8d4f2 Merge branch 'master' into devel 2025-01-25 21:41:30 +01:00
Matthias Koefferlein 2b2eb2e524 Fixed issue #1976 (crash on cross mode, lw > 1 and oversampling) 2025-01-22 00:24:57 +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 e6ac66f8aa Providing a more efficient event for property ID changes 2024-12-26 23:11:59 +01:00
Matthias Koefferlein 34febff383 Added a test for property ID by name, value and name/value retrieval. 2024-12-25 21:04:07 +01:00
Matthias Koefferlein 9ea7e68576 WIP 2024-12-22 23:21:04 +01:00
Matthias Koefferlein 19e44e071c [consider merging] Bugfix: view was not refreshed if properties changed and property selectors were present 2024-12-22 15:17:10 +01:00
Matthias Koefferlein f095374455 WIP: switching prop id change notification to events 2024-12-22 15:16:35 +01:00
Matthias Koefferlein 58376b3391 Fixing issue #1948 (crash on dragging a cell) - problem was the popup which Qt does not like during drag-and-drop operations. 2024-12-08 19:36:37 +01:00
Matthias Koefferlein 998a780676 Fixing bug #1941 (crash with navigator open) 2024-12-02 21:44:18 +01:00
Matthias Koefferlein f53658ea4c Handling problem of redundant key bindings
For example, @toolbar.ruler and edit_menu.modes.ruler was
redundant in a sense that they point to the same action,
hence, each entry in the key_binding config was overriding
the other one.

To solve this, there now is a primary entry, which is the
edit_menu one. Only that entry is effective and listed
in key_bindings.
2024-12-02 21:29:05 +01:00
Matthias Koefferlein c25896ef40 Add-on: don't select texts if they are not shown 2024-11-30 21:54:01 +01:00
Matthias Koefferlein 2c6eca04d6 selecting shapes only if edges are visible too 2024-11-30 21:45:41 +01:00
Matthias Koefferlein d361030048 Clearing status bar message when nothing is selected 2024-11-30 21:36:43 +01:00
Matthias Koefferlein 692967921a Selecting instances only if one edge is visible
This is supposed to avoid that you select guard ring
cells for example and move them while working
on small details.
2024-11-30 21:35:06 +01:00
Matthias Koefferlein 6861b68964 Merge branch 'extended-transient-selection-config' 2024-11-30 08:27:01 +01:00
Matthias Köfferlein 637660ca69
Merge pull request #1933 from KLayout/wip
Wip
2024-11-30 08:23:35 +01:00
Matthias Koefferlein e533a34a08 Fixing the problem of (sometimes) slow transient selection (edit mode, top level selection only, large and interleaving arrays) 2024-11-25 23:23:48 +01:00
Matthias Koefferlein d5bebda6af Formatting key-bindings and menu visibility in klayoutrc differently (one entry per line), so they are easier to edit 2024-11-24 18:31:19 +01:00
Matthias Koefferlein 5578b01f03 Some refactoring with the goal to support "move by" with "clone interactive" 2024-11-23 23:38:53 +01:00
Matthias Koefferlein 1c23d77073 By default, layer properties are initialized when no .lyp file is specified in a technology
You can turn this feature off by disabling the "Initialize other layers with default properties"
option on the techology's "General" page.
2024-11-23 15:19:33 +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
Martin Köhler 7dcba4cebc Bugfix/issue 1930: Fixed type from char to int 2024-11-19 17:23:06 +00:00
Matthias Köfferlein 05c13e66b0
Merge pull request #1904 from KLayout/bugfix/issue-1902
Bugfix/issue 1902
2024-10-20 13:28:50 +02:00
Matthias Koefferlein c6a9a59247 Maybe fixing second part of issue #1902. 2024-10-19 17:20:49 +02:00
Matthias Koefferlein f25693373e Small doc update 2024-10-06 19:07:42 +02:00
Matthias Koefferlein 2e58421fb3 Fixed builds without Qt and without libpng 2024-09-22 01:40:03 +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 Köfferlein 857fbc873c
Merge pull request #1824 from KLayout/bugfix/issue-1823
Fixed bug #1823 (select_all not working)
2024-08-10 13:33:48 +02:00