Commit Graph

898 Commits

Author SHA1 Message Date
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
Matthias Koefferlein aada3424a9 Fixed non-Qt builds 2024-08-09 17:45:24 +02:00
Matthias Koefferlein f218c009a0 Fixed bug #1823 (select_all not working)
1. Fixed "LayoutView#select_all"
2. Box selection now will select texts at their origin again:
   this way it is included in the bounding box. Point mode still
   takes the text's glyph area.
2024-08-08 23:26:05 +02:00
Matthias Koefferlein 7470023d38 Deploying font_resolution somewhat further, but not using it for now 2024-08-03 22:47:10 +02:00
Matthias Koefferlein 40e360e640 Fixed a potential segfault in the text renderer 2024-08-03 22:23:48 +02:00
Matthias Koefferlein 3290d0ab21 Introducing font resolution
With the subresolution mode, the "Default" fonts get very small.
Hence, a separate font resolution is provided which
applies to "Default" font rendering only.
2024-08-03 21:10:25 +02:00
Matthias Koefferlein a802cd0e91 Proper scaling with resolution
- stipple display in layer list now follows view resolution
- using DCoord for text default size for cases where default size < DBU
2024-08-03 18:41:55 +02:00
Matthias Koefferlein cd69f29508 Basic feature implemented. Needs improvement. 2024-08-03 09:55:59 +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 a49f907cfa Doc fixes 2024-06-30 00:07:52 +02:00
Matthias Koefferlein 7eadac527b Debugging and finalization 2024-06-29 23:55:02 +02:00
Matthias Koefferlein b92c7bf225 Refined solution 2024-06-29 23:22:32 +02:00
Matthias Koefferlein f9899efea3 First implementation 2024-06-29 23:02:29 +02:00
Matthias Koefferlein a3d226d99f Fixing the specific problem of issue #1709 2024-06-04 20:34:45 +02:00
Matthias Koefferlein 4b0a3dff64 Bug fixing. 2024-06-01 12:49:07 +02:00
Matthias Koefferlein 11139cd4da Trying to fix problem of deleted top-level menus 2024-06-01 12:16:21 +02:00
Matthias Koefferlein 2827bed6c2 Updating documentation, taking out test code 2024-05-31 17:49:35 +02:00
Matthias Koefferlein ad64f30033 Bugfixing the solution 2024-05-31 17:44:32 +02:00
Matthias Koefferlein c148f591b4 Proposing a fix for issue #1722: add a '...' menu to hold the dynamic parts 2024-05-31 11:25:14 +02:00
Matthias Koefferlein aef8161c82 [consider merging] cross-hair cursor should not use selection default line width and styles (halo etc.) 2024-02-05 21:22:47 +01:00
Matthias Koefferlein 9184bef6f8 Transient mode for auto-measure ruler 2024-01-28 18:25:02 +01:00
Matthias Koefferlein 9a52095dd0 Merge branch 'master' into wip 2024-01-07 17:25:11 +01:00
Matthias Koefferlein 88c3d30982 Implemented solution for issue #1583
- new attribute "title" for MainWindow to get and set title
  (includes extrapolation to add dynamic content)
- also added LayoutView#is_dirty for emulation of the
  standard behavior
- plus side effect: LayoutView#synchronous is now readable
2024-01-05 19:40:09 +01:00
Matthias Koefferlein 2b4a583f05 Update copyright year 2024-01-01 17:27:59 +01:00
Matthias Koefferlein d248bfddf3 Updating copyright to new year 2024-01-01 17:06:23 +01:00
Matthias Koefferlein 11fbad0104 eliminating some unnamed arguments 2023-12-28 21:35:14 +01:00
Matthias Koefferlein f685fe3adf WIP: keyword arguments for expressions 2023-12-28 01:03:21 +01:00
Matthias Koefferlein d1695b88af Merge branch 'wip' 2023-12-23 18:05:54 +01:00
Matthias Koefferlein 2a5b019730 Bonus track: 'visibility follows selection' 2023-12-14 23:11:16 +01:00
Matthias Koefferlein 6e589e2bb3 Fixed issue #1533 (KLayout crashing with two consecutive calls of the same LayoutView::show_layout command) 2023-11-19 21:14:32 +01:00
Matthias Koefferlein 261d0249e8 Merge branch 'wip' 2023-10-19 21:23:07 +02:00
Matthias Koefferlein 45f3216530 Fixed issue #1510 (cross hair cursor, with options to enable from menu, color and line style can be configured) 2023-10-19 02:00:31 +02:00
Matthias Koefferlein 67d934194f Added line style selection widget 2023-10-19 01:59:35 +02:00
Matthias Koefferlein 3c297a28d8 Fixed issue #1512 ('get_image' of LayoutView should also work on inactive views) 2023-10-18 21:21:05 +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 0a546ef41d WIP 2023-10-02 23:18:36 +02:00
Matthias Koefferlein b360df16e3 Fixed problem discussed in the form (#2365) - processEvents needed for LayoutView#get_image etc. 2023-09-11 23:04:56 +02:00
Matthias Koefferlein 10f3380023 Enhancement: 'copy interactive' will maintain selection 2023-09-03 16:14:44 +02:00
Matthias Koefferlein 695ec041af Enhancement: Allowing to select cells by error markers too (so that PCells with errors can be selected) 2023-08-27 11:27:46 +02:00
Matthias Koefferlein 254015617d Merge branch 'wip' into wip2 2023-08-11 19:17:01 +02:00
Matthias Koefferlein 4742e255fc Fixes issue #1453: fixed performance issue which was caused by a deep search for texts in transient selection 2023-08-07 18:23:05 +02:00
Matthias Koefferlein 3642cff120 Implemented relative mode for marker browser config. Can read existing config. 2023-08-05 23:20:46 +02:00
Matthias Koefferlein 3f80d7bbe1 Added lay::Margin object 2023-08-05 22:17:28 +02:00
Matthias Köfferlein 0cae7b0f93
Merge pull request #1442 from KLayout/issue-1438
Fixed issue #1438 (Provide a configuration option to switch back to o…
2023-08-05 21:09:51 +02:00
Matthias Koefferlein f583d5e3db Fixed a potential segfault of application exit 2023-08-03 19:22:11 +02:00
Matthias Koefferlein 6014ba9fed Fixed issue #1438 (Provide a configuration option to switch back to old-style text selection (at origin only) 2023-08-01 21:40:54 +02:00
Matthias Koefferlein 3736b59156 it's -> its 2023-07-30 14:46:58 +02:00
Matthias Koefferlein 2ae01a3e91 Do not duplicate cells+layers on "Duplicate"
See https://www.klayout.de/forum/discussion/2335 for the rationale
2023-07-30 13:50:49 +02:00
Matthias Koefferlein e53d432117 Better support for point-like handles
PCells have been featuring point-like handles but
they suffered some issues because they have been
mapped to degenerated boxes:

- hardly visible
- could be destroyed using partial editing

Now, the database offers points, hence it is
possible to store points explicitly, so no
tricks need to be played to make them visible.

Editing has been implemented to some extent,
so it is possible for example to configure
handles in the properties dialogs.
2023-07-29 01:01:50 +02:00
Matthias Koefferlein 6e4ac71442 WIP 2023-07-28 23:48:34 +02:00
Matthias Koefferlein e965f87f58 Merge branch 'master' into wip 2023-07-15 22:48:53 +02:00
Matthias Koefferlein c831ed15f8 Enhance the selection behavior of partial edit mode: allow selection of edge ends if edges overlap, graphical indicator for selected partial 2023-07-15 00:22:17 +02:00
Matthias Koefferlein ab9a1283b6 Inherit layout's editable mode from LayoutView instead of application (which is not there for Qt-less Python module) 2023-07-03 22:21:43 +02:00
Matthias Köfferlein 7169910607
Merge pull request #1362 from KLayout/issue-1360
Fixed issue #1360 (LayoutViewBase not promoted to LayoutView). Proble…
2023-05-12 23:31:41 +02:00
Matthias Koefferlein da52eeb7c3 Fixed text bbox computation under the presence of global view transformations and 'apply text transformation' false 2023-05-11 20:05:28 +02:00
Matthias Koefferlein 424c039b7e More precise testing of edges on mouse hit - without this patch, the selected objects in dense regions are not at the mouse pointer's tip, but somewhat away 2023-05-11 19:03:41 +02:00
Matthias Koefferlein 1422dfb93d Bugfix, text reference made the program assert 2023-05-11 18:57:24 +02:00
Matthias Koefferlein c45d1d70d4 Debugging 2023-05-09 23:16:03 +02:00
Matthias Koefferlein c6f159d720 Adding frame to text display, debugging 2023-05-09 22:36:56 +02:00
Matthias Koefferlein 45394b801a Debugging TextInfo, added tests 2023-05-09 21:37:15 +02:00
Matthias Koefferlein df7311ddf7 Fixed issue #1360 (LayoutViewBase not promoted to LayoutView). Problem was that GSI binding of LayoutView happened before LayoutView was fully constructed. 2023-05-09 20:06:34 +02:00
Matthias Koefferlein 0b0f62130c WIP: refactoring, debugging needed 2023-05-07 23:29:02 +02:00
Matthias Koefferlein e8048d6686 WIP: preparations - introducing TextInfo 2023-05-07 19:51:15 +02:00
Matthias Koefferlein 7b4ff5d823 Zoom in/out menu functions now use mouse position for zoom center instead of center (if mouse is inside window) 2023-05-06 21:40:36 +02:00
Matthias Koefferlein 541f9a377f Small refactoring, added persisted flag for meta info 2023-04-16 21:31:25 +02:00
Matthias Koefferlein dc689e52d1 Added a method 'widget' to LayoutView to deliver the QWidget object for the view 2023-04-13 22:50:58 +02:00
Matthias Koefferlein 0253c25b30 Avoids a Qt warning internally 2023-03-08 22:37:56 +01:00
Matthias Koefferlein 90b59ca14d Bugfix - properly removing plugins when they are unregistered (unlikely) 2023-02-23 17:07:22 +01:00
Matthias Koefferlein 432b542f3c Merge branch 'master' into wip 2023-02-19 20:30:49 +01:00
Matthias Koefferlein 79868c40cd Some enhancements for image editing (e.g. selection remains after moving handles) 2023-02-19 19:54:40 +01:00
Matthias Koefferlein df562f502a Avoid a segfault while editing a ruler. This happens is both a selection and a transient selection is active. 2023-02-19 19:00:02 +01:00
Matthias Koefferlein 8038acc236 Updated test data 2023-02-18 09:50:34 +01:00
Matthias Koefferlein f6edc9c802 Implemented solution for issue #1249 (persist layer properties in session) 2023-02-17 23:41:36 +01:00
Matthias Koefferlein 12693ed212 More steps to fully (hopefully) fix issue #1259 - basically it is important to issue enough active_view_changed and active_technology_change events 2023-01-26 20:31:43 +01:00
Matthias Koefferlein cfd21d98bf Merge branch 'issue-1259' 2023-01-26 12:52:23 +01:00
Matthias Köfferlein ab8cfee1ea
Merge pull request #1258 from KLayout/wip
Wip
2023-01-24 21:48:27 +01:00
Matthias Koefferlein 7600eac8a0 Fixed issue-1259 2023-01-24 21:14:36 +01:00
Matthias Koefferlein bc63a1cd40 Fixed isse #1253 2023-01-24 00:42:31 +01:00
Matthias Koefferlein 017ca1707b Small bugfix: 'clone panel' did not copy custom line styles 2023-01-13 22:01:18 +01:00
Matthias Koefferlein 33af2b8fcc Avoid a segfault after explicitly destroying a custom plugin factory object 2023-01-12 21:03:24 +01:00
Matthias Koefferlein 12e34f9282 Fixed issue #1247. Problem was missing cache clean on assignment of stipple pattern and line styles 2023-01-12 00:11:36 +01:00
Matthias Koefferlein ef6f3f182a Fixed issue #1242 (KLayout 0.28.2 crashes when registering a plugin if a layout exists)
Problem was twofold: first, events are triggered during
construction of the plugin which met an uninitialized
pointer. Second, the clearing of existing plugins failed
because of iterating a vector while destroying it's members
erased member of it.
2023-01-04 21:17:12 +01:00
Matthias Koefferlein a85dbd3d31 Updating copyright notice to 2023 2023-01-01 22:27:22 +01:00
Matthias Koefferlein 4429d4c8f7 Fixed #1234 (layer list empty after clone panel) 2022-12-27 20:10:39 +01:00
Matthias Koefferlein 24b8526361 Attempting to speed up layer list for many layers 2022-12-17 20:34:22 +01:00
Matthias Koefferlein ad27c9a51d WIP: trying to enhance layout layer lookup performance. 2022-12-13 23:41:34 +01:00
Matthias Koefferlein 43089f31e4 Doc updates 2022-12-09 23:53:41 +01:00
Matthias Koefferlein d82ff4d3f8 [consider merging] Fixed a problem with editing guiding shapes 2022-10-28 23:40:48 +02:00
Matthias Koefferlein 8f6603d88e Fixed unit test fails 2022-10-18 01:26:42 +02:00
Matthias Koefferlein dc927717c2 Multi-selection in properties dialog: bugfixing and finalization 2022-10-13 23:45:21 +02:00
Matthias Koefferlein 187aae2649 WIP: multi selection property dialog 2022-10-08 00:37:39 +02:00
Matthias Koefferlein 62e0d83b3a WIP: further development on selection tree on objects dialog 2022-10-07 00:44:12 +02:00
Matthias Koefferlein eb004e45e1 WIP: generalized interface of properties page 2022-10-06 21:31:16 +02:00
Matthias Koefferlein 3b6ef57ddc Cross size in marked mode now scales with resolution 2022-10-01 23:22:36 +02:00
Matthias Koefferlein 914ad98858 Ruler edge marker is now visible also for scaling > 1 2022-10-01 21:59:34 +02:00
Matthias Koefferlein 1bff5c1ac3 WIP: layer icons now follow oversampling and high-resolution mode, new GSI method to fetch layer icon: LayoutView#icon_for_layer 2022-10-01 19:20:06 +02:00
Matthias Koefferlein 00e78eb76c Highres mode config option - display utilizes full pixel density 2022-10-01 16:24:05 +02:00
Matthias Koefferlein 7b4b345cf4 Multiple stacks for net tracer - finished selection box in net tracer dialog 2022-09-25 19:10:30 +02:00
Matthias Koefferlein 4381f29945 Fixed builds 2022-09-19 01:05:45 +02:00
Matthias Koefferlein c9f4dac931 Fixed builds 2022-09-19 01:02:18 +02:00
Matthias Koefferlein ee3facfa13 Fixed printout 2022-09-18 21:53:38 +02:00
Matthias Koefferlein 029284f48a Some refactoring, layer icons are scaled for high DPI too now. 2022-09-18 20:56:37 +02:00
Matthias Koefferlein a6d4cdd254 More scaled pixmaps for dither pattern icons 2022-09-18 18:02:37 +02:00
Matthias Koefferlein e5fabb2b13 Using scaled dither pattern pixmaps in the UI elements 2022-09-18 17:37:49 +02:00
Matthias Koefferlein 48e3643a87 Attempting extrapolation of fill pattern 2022-09-18 16:09:11 +02:00
Matthias Koefferlein ef5cd11629 Properly scaling line width for high-DPI displays 2022-09-18 13:19:52 +02:00
Matthias Koefferlein f32da6aa87 Properly scaling line width for high-DPI displays 2022-09-18 12:19:06 +02:00
Matthias Koefferlein 188ae060be More icons converted 2022-09-17 02:06:24 +02:00
Matthias Koefferlein 25c5b2f057 Refactoring of resources -> separate folders for doc and icons 2022-09-11 11:09:14 +02:00
Matthias Köfferlein 769b16ea3f
Issue 1145 (#1151)
* [CONSIDER MERGING] Clarification and typo fixed in DRC doc.

* Enhanced Shapes::is_valid so it's more reliable in detecting invalid shape objects.

* ObjectInstPath now has a validity attribute

* First implementation of solution for edtService (partial service to follow)

* Validating selection also for Partial Edit mode
2022-09-05 23:35:21 +02:00
Matthias Koefferlein 290cd39ad9 Bugfix: consider device pixel ratio for layout canvas 2022-09-03 23:27:07 +02:00
Matthias Koefferlein 8dd002bd0f More enhancements to support LayoutView as widget 2022-09-03 22:53:01 +02:00
Matthias Koefferlein 81eab3f1db More safety against deleting view in view widget 2022-09-03 16:59:27 +02:00
Matthias Koefferlein f788818d12 Some more refactoring - further abstracting layout view from container widget 2022-09-03 01:48:50 +02:00
Matthias Koefferlein 3c53950eaa Rework needed for LayoutView management
The application got unstable on exit under various conditions
(e.g. LayoutView created in script). Reason was the ownership
management of LayoutView which interfered with Qt widget
lifetime management.

The solution now is based on a clean widget/view hierarchy
and a consistent plugin parent/child relationship.

In addition, a new class is enabled which allows creating
a true QWidget (rather QFrame) for a LayoutView again.
2022-09-02 00:47:21 +02:00
Matthias Koefferlein 5b40d86527 Bugfix: menu system wasn't working properly with menu tool buttons 2022-08-16 23:00:31 +02:00
Matthias Koefferlein e1552afcae Menu system: menu opening event, insert_menu variant with Action argument, clear_menu method, icon setter with QIcon 2022-08-15 23:43:45 +02:00
Matthias Koefferlein 9d36b3c71a Merge branch 'master' into wip 2022-08-06 18:52:41 +02:00
Matthias Koefferlein bfeb60986c Merge remote-tracking branch 'origin/msvc-building-with-debug' 2022-08-01 19:02:31 +02:00
Matthias Koefferlein 545ff11899 Merge branch 'master' of github.com:KLayout/klayout into wip 2022-08-01 18:50:48 +02:00
Matthias Köfferlein 801ef78990
Fixed issue-1131 (do not show non-existing files in MRU lists) (#1133)
* Fixed issue-1131 (do not show files in MRU lists which do no longer exist)

The solution consists of an extension of the Action system allowing to
dynamically hide or disable items. This currently works for menu items only.

This feature is used to dynamically *disable* (as of now, not hiding)
items from the four MRU lists corresponding to non-existing files.

In addition, a "clear list" menu has been added to the MRU lists.

* Small enhancement: file names can be URIs
2022-08-01 18:49:42 +02:00
Matthias Koefferlein 429e43fe37 Fixed Qt-less LayoutView (removed QWidget as base class which is no longer true) 2022-07-31 00:11:20 +02:00
klayoutmatthias 1b728f1067 Removed duplicated method declarations in LayoutViewBase 2022-07-28 20:52:19 +02:00
Matthias Koefferlein 682cc0e491 More safeguards against crashes in the absence of a Manager object 2022-07-09 20:13:40 +02:00
Matthias Köfferlein 7a5737d55f
Merge pull request #1087 from KLayout/qtless-canvas2
Qtless canvas2
2022-06-14 22:51:57 +02:00
Matthias Koefferlein 5aa9f5ba13 Fixed some unit tests 2022-06-12 14:00:06 +02:00
Matthias Koefferlein 51be84ebc1 Avoid segfaults in batch mode 2022-06-11 00:41:06 +02:00
Matthias Koefferlein a853ed904f API enhancements for annotation template management 2022-06-09 00:14:32 +02:00
Matthias Koefferlein 1020eb6e99 Basically enabling AbstractMenu in non-Qt mode
As a way to trigger actions inside the layout view
and plugins.

Right now, the layout view's menu is only a rudimentary one
as it lacks the top-level menus usually provided by the main window.
2022-06-07 23:28:10 +02:00
Matthias Koefferlein ac5c66400d Added ability to query modes and issue menu commands to LayoutView in non-Qt case. 2022-06-06 23:04:31 +02:00
Matthias Koefferlein 184c66b781 Provide a default configuration for LayoutView also in the non-Qt case 2022-06-02 23:55:40 +02:00
Matthias Koefferlein 91b642285d Decoupling tl, gsi and rdb libraries from Qt bindings to enable lean strmrun application 2022-06-01 22:42:55 +02:00
Matthias Köfferlein 17e643ce5b
Fixed #1086 (problems showing handle of a single circle) (#1089) 2022-05-31 00:22:42 +02:00
Matthias Koefferlein b95027a21b Refactoring: lay::PixelBuffer, BitmapBuffer -> tl, added image functions to RdbItem in GSI 2022-05-31 00:20:47 +02:00
Matthias Koefferlein 62bbef53ac Refactoring: layColor -> tlColor 2022-05-30 23:21:32 +02:00
Matthias Koefferlein a5d467b51e Dummy change to trigger builds 2022-05-29 14:47:22 +02:00
Matthias Koefferlein 6039340022 Fixed non-Qt build 2022-05-29 14:23:10 +02:00
Matthias Koefferlein 40eb3aaebe Enabling input files in batch mode, fixed a segfault during tests 2022-05-29 14:16:44 +02:00
Matthias Koefferlein ad87b22d91 Potential segfault fixed: skip invalid cell views 2022-05-27 19:20:37 +02:00
Matthias Koefferlein 7702d8c200 libpng option in build script 2022-05-27 18:10:01 +02:00
Matthias Koefferlein 2e10ef300b Fixed implementation of LayoutView#resize in non-Qt case 2022-05-27 08:31:13 +02:00
Matthias Koefferlein 5825b7d0c6 Build fixed for Qt4 2022-05-27 07:57:04 +02:00