Commit Graph

3705 Commits

Author SHA1 Message Date
Matthias Koefferlein 8e480a0236 Changed pixmaps to 2x versions for high-DPI support 2022-09-17 22:13:16 +02:00
Matthias Koefferlein cf50b38090 Corrected resource file paths 2022-09-17 21:00:36 +02:00
Matthias Koefferlein 3172c1c4bc More icons turned into SVG 2022-09-17 17:37:42 +02:00
Matthias Koefferlein 84061b8362 More icons turned into SVG 2022-09-17 16:53:05 +02:00
Matthias Koefferlein 708214fa0d More icons turned into SVG 2022-09-17 16:19:50 +02:00
Matthias Koefferlein f0e692f8ed More icons turned into SVG 2022-09-17 15:55:42 +02:00
Matthias Koefferlein 7fe16df8ef More icons turned into SVG 2022-09-17 15:33:29 +02:00
Matthias Koefferlein 2635ca06af More icons turned into SVG 2022-09-17 15:28:06 +02:00
Matthias Koefferlein 188ae060be More icons converted 2022-09-17 02:06:24 +02:00
Matthias Koefferlein 85af2d35e8 More images to SVG 2022-09-17 01:40:02 +02:00
Matthias Koefferlein f598348046 More images to SVG 2022-09-17 01:25:46 +02:00
Matthias Koefferlein 2ae82af73a More icons to SVG 2022-09-17 00:00:28 +02:00
Matthias Koefferlein 306c8b789c More icons turned into SVG 2022-09-16 23:47:40 +02:00
Matthias Koefferlein 5c8c918fb9 More icons as SVG 2022-09-14 23:42:08 +02:00
Matthias Koefferlein 4ebe51fb05 More icons as SVG; small fixes to image landmark editor. 2022-09-14 23:32:03 +02:00
Matthias Koefferlein c7006898a6 More icons as SVG 2022-09-14 22:47:39 +02:00
Matthias Koefferlein 164748be22 More icons as SVG 2022-09-14 22:35:55 +02:00
Matthias Koefferlein fdfacd8532 More icons as SVG 2022-09-14 22:29:29 +02:00
Matthias Koefferlein 9454d6289d New icons turned to SVG 2022-09-14 21:37:24 +02:00
Matthias Koefferlein 0a9c396ae3 More icons turned into SVG 2022-09-14 21:25:59 +02:00
Matthias Koefferlein 22bbb4b320 More icons translated to SVG 2022-09-13 23:53:11 +02:00
Matthias Koefferlein a5b34037ab New icons translated 2022-09-13 18:23:47 +02:00
Matthias Koefferlein 878389e858 More icons transferred to SVG 2022-09-13 01:12:09 +02:00
Matthias Koefferlein 438a3c50e3 One more icon translated to SVG 2022-09-13 00:40:30 +02:00
Matthias Koefferlein faed280289 More icons translated to SVG 2022-09-13 00:29:16 +02:00
Matthias Koefferlein 1b8bf1f76d More icons translated 2022-09-12 23:14:49 +02:00
Matthias Koefferlein a3fe8cc49d More icons translated 2022-09-12 22:51:29 +02:00
Matthias Koefferlein 50e64c9c65 More icons translated to SVG 2022-09-12 22:13:50 +02:00
Matthias Koefferlein d881933840 More icons converted to SVG 2022-09-12 21:55:35 +02:00
Matthias Koefferlein 55bfb0d118 More icons converted to SVG 2022-09-12 20:30:09 +02:00
Matthias Koefferlein 212d9d2d27 Removed unused PNGs 2022-09-12 01:00:31 +02:00
Matthias Koefferlein 0a67691b3a [CONSIDER MERGING] Bugfix - selection did not work in non-editable mode 2022-09-12 00:54:44 +02:00
Matthias Koefferlein 3c2092bdc2 [CONSIDER MERGING] Bugfix - selection did not work in non-editable mode 2022-09-12 00:53:50 +02:00
Matthias Koefferlein 13d11ac714 More icons switched to SVG 2022-09-12 00:39:55 +02:00
Matthias Koefferlein e460314090 Deploying more SVG based icons 2022-09-11 22:02:10 +02:00
Matthias Koefferlein 4a241cc36c Deploying first high-res icons, enabled high-dpi icon scaling 2022-09-11 21:07:48 +02:00
Matthias Koefferlein 4f125d3768 More SVG images 2022-09-11 18:30:06 +02:00
Matthias Koefferlein 92fc8bbafc First SVG versions of icons 2022-09-11 18:25:00 +02:00
Matthias Koefferlein 2d17d87063 Added an extra target for updating DRC/LVS doc 2022-09-11 11:34:56 +02:00
Matthias Koefferlein 3b2efddd28 Refreshing DRC+LVS doc 2022-09-11 11:13:29 +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 Köfferlein 390cac87d3
Issue 1097 (#1148)
* [CONSIDER MERGING] Clarification and typo fixed in DRC doc.

* Implemented #1097 (discourage file compression, use CBLOCK)

* A warning is printed if file compression is enabled on OASIS
* A hint is present in the writer options
* CBLOCK is default (with fresh config) and for buddy tools
  (use --cblock=false to disable it)

* Strict mode is default too.

* Updated tests
2022-09-05 23:34:53 +02:00
Matthias Köfferlein 9ebb923d83
Issue 1144 (#1150)
* [CONSIDER MERGING] Clarification and typo fixed in DRC doc.

* Avoids a segfault during drawing: make sure the cell bbox update is not triggered in the drawing thread before it is stopped

* Fixed #1144 (wrong layer taken on copy layer)
2022-09-05 20:31:13 +02:00
Matthias Köfferlein f6c5062c71
Issue 1143 (#1149)
* [CONSIDER MERGING] Clarification and typo fixed in DRC doc.

* Fixed issue #1143 (technology default DBU not taken)
2022-09-05 20:30:57 +02:00
Matthias Köfferlein 7a9e9989d3
Merge pull request #1147 from KLayout/wip
Wip
2022-09-04 09:08:08 +02:00
Matthias Köfferlein e343939aaf
Merge pull request #1139 from KLayout/issue-1138
Issue 1138 (switch to suppress warnings on DXF reader - and other readers)
2022-09-04 09:07:51 +02:00
Matthias Koefferlein 8bf251b0c9 Removed some unused code 2022-09-04 00:25:24 +02:00
Matthias Koefferlein fd30881ace Proper cleanup avoid segfaults on exit 2022-09-03 23:36:31 +02:00
Matthias Koefferlein 290cd39ad9 Bugfix: consider device pixel ratio for layout canvas 2022-09-03 23:27:07 +02:00
Matthias Koefferlein 070ef54c66 Avoid a segfault with layout views without manager 2022-09-03 23:05:08 +02:00
Matthias Koefferlein 8dd002bd0f More enhancements to support LayoutView as widget 2022-09-03 22:53:01 +02:00
Matthias Koefferlein a9ef337c3b Layer toolbox is a view component now - that means it changes with the view. 2022-09-03 18:28:17 +02:00
Matthias Koefferlein 81eab3f1db More safety against deleting view in view widget 2022-09-03 16:59:27 +02:00
Matthias Koefferlein 0bbf4ad81c Properly selecting toolbar actions (Qt 5.15?) 2022-09-03 16:59:17 +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 ec9f91b3d4 Fixed Qt binding build. 2022-09-02 00:56:59 +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 0248834afb Qt4 compatibility 2022-09-01 19:35:18 +02:00
Thomas Ferreira de Lima 4d4f4b643b Added python stubs with type hinting and documentation. (#1125)
* Added python stubs with type hinting and documentation.

The documentation was extracted by inspecting the docstrings within each class and methods.
This should enable type hinting and checking by IDEs like VSCode.
The stubs were automatically generated, and have not been manually curated. (TODO)

* created tl ArgType to python type translator

* Fixing a pyaModule.cc bug

* almost finished stubgen

* fixing little bug in classes defined within classes

* Release version of the stubgen script. Good enough for release.

* Adding notes

* Including stubs when installing from source

* typechecking bugfix: missed checking is_iter()

* Cleaning up unused code for merge review

* Including stubs when installing from source (part deux)

* Putting the GenericDeviceExtractor name setting into the right place.

* Updating python stubs

Co-authored-by: Matthias Koefferlein <matthias@koefferlein.de>
2022-09-01 00:41:42 +02:00
Matthias Koefferlein cb3369e9be Merge remote-tracking branch 'origin/master' into wip 2022-09-01 00:27:33 +02:00
Matthias Koefferlein 50f6a1c270 Employ Qt 5.15 to hide LVS tabs in netlist browser 2022-09-01 00:26:27 +02:00
Matthias Koefferlein a81bca43a6 Added cmath include as suggested for Slackware 2022-08-31 23:56:53 +02:00
Matthias Koefferlein c720e2d3eb New DRC features:
* inside, not_inside, outside, not_outside (edge/edge, edge/polygon)
* related select_*
* split_inside, split_outside (edge/edge, edge/polygon)
* andnot (edge/edge, edge/polygon)
* inside_outside_part (edge/polygon)
2022-08-31 23:38:23 +02:00
Matthias Koefferlein 81b605c197 DRC implementation + doc update 2022-08-31 22:39:05 +02:00
Matthias Koefferlein bb0d4a6ecc GSI binding of new Edges features 2022-08-30 23:03:43 +02:00
Matthias Koefferlein 32928b583c Bug fixes (border cases), tests 2022-08-30 22:12:30 +02:00
Matthias Koefferlein 34f6e7bdba Bug fixes, tests 2022-08-30 20:43:32 +02:00
Matthias Koefferlein 5662f962d2 Bug fixes, tests. 2022-08-30 00:53:14 +02:00
Matthias Koefferlein e591d205c7 Bug fixes, tests. 2022-08-30 00:23:22 +02:00
Matthias Koefferlein f92d86a1e1 Bug fixes 2022-08-29 23:47:24 +02:00
Matthias Koefferlein aa267744dc Exposed more functions for db::Edges, more tests, debugging 2022-08-29 22:48:17 +02:00
Matthias Koefferlein bf91938133 Bug fixes, tests. 2022-08-29 22:17:37 +02:00
Matthias Koefferlein 956a27ec69 First implementation 2022-08-29 19:51:19 +02:00
Matthias Koefferlein 4af9b8b01c WIP: predicates for Edges implementation 2022-08-28 23:35:45 +02:00
Matthias Koefferlein 0b59697189 First new test 2022-08-27 22:28:15 +02:00
Matthias Koefferlein 728d60a510 More generic 'join' function for string sequences 2022-08-27 22:27:59 +02:00
Matthias Koefferlein a6ad6c8866 Comment update 2022-08-27 22:12:22 +02:00
Matthias Koefferlein a47bb67fd4 Removed unused code 2022-08-27 22:11:40 +02:00
Matthias Koefferlein 318a462cb4 WIP: first code pieces 2022-08-27 21:31:40 +02:00
Matthias Koefferlein d2ab4fc743 Doc updates. 2022-08-27 18:02:56 +02:00
Matthias Koefferlein 69617e8006 bbox_with_layer -> bbox 2022-08-27 17:58:17 +02:00
Matthias Koefferlein 67d8518926 Shapes#cell and Shapes#layout 2022-08-27 17:51:14 +02:00
Matthias Koefferlein e7177261ad LayerMap#map and mmap with optional log layer 2022-08-27 17:38:48 +02:00
Matthias Koefferlein 1f954d8758 Cell#read 2022-08-27 17:23:11 +02:00
Matthias Koefferlein f590d39c19 CellMapping: documentation, some convenience bindings 2022-08-27 15:38:10 +02:00
Matthias Koefferlein 7c776779a6 Bugfix: D25 view background color synchronized with layout view now 2022-08-27 14:09:09 +02:00
Matthias Koefferlein 5613ef1089 Bugfix: ruler menu was not initialized properly when not having configure templates 2022-08-22 22:09:08 +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 9ee5730b60 WIP: small patch avoiding generation of freaky files with fake-windows paths on Linux 2022-08-16 22:15:21 +02:00
Matthias Koefferlein 46364c2420 [consider merging] Reader format error with details showing dump or text 2022-08-16 21:56:07 +02:00
Matthias Koefferlein 49fe816294 More elaborate doc for transformations 2022-08-16 20:42:10 +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 21b14706dd data: URLs for abstract paths 2022-08-15 16:58:44 +02:00
Matthias Koefferlein 1099a3d7bb Implemented warn_level for all readers so warnings can be turned off 2022-08-13 22:15:07 +02:00
Matthias Koefferlein 90df9451b6 WIP: reworked log enabling in LVS, added 'no_lvs_hints' feature, updated tests 2022-08-13 18:30:02 +02:00
Matthias Koefferlein fd008b3810 WIP: more LVS hints 2022-08-13 01:46:12 +02:00
Matthias Koefferlein 47ec9a706b WIP: enhanced and debugged LVS hints 2022-08-13 01:36:25 +02:00
Matthias Koefferlein 829f78de8b WIP: attempting to produce reasonable messages on LVS mismatch (short detection) 2022-08-12 00:09:50 +02:00
Matthias Koefferlein 526f1aeacc [Consider merging] provide an option to produce antenna DRC debug output 2022-08-11 01:02:45 +02:00
Matthias Koefferlein 1d88e65689 [Consider merging] Fixed file content of test data - .oas is OASIS, .gds is GDSII 2022-08-10 21:48:00 +02:00
Matthias Koefferlein 0b0e440781 [Consider merging] method name parser exception for *= method (not seen as protected '=') 2022-08-10 21:05:34 +02:00
Matthias Koefferlein 38d2b8378d Merge remote-tracking branch 'origin/master' into wip 2022-08-10 20:40:27 +02:00
Matthias Köfferlein 7ffdc211e5
Fixed issue-1135 (LVS mismatch on parallel devices) (#1136)
* Fixed issue-1135 (LVS mismatch on parallel devices)

The fix consists of a more elaborate device identity analysis
following the topological matching. In this step, the devices
are identified according to their connections and parameters.
It is important to properly identify devices taking their
parameters into account as well as their connections.

* Second part of issue fixed (inverter chain ambiguity)

* Added test

* Updated tests

* Updated golden test results

* Updated golden test data for Windows

Co-authored-by: klayoutmatthias <matthias@klayout.org>
2022-08-10 20:27:11 +02:00
Matthias Koefferlein d48792a942 Trying to establish first log abilities to LVS compare 2022-08-10 00:41:19 +02:00
Matthias Koefferlein b1cbafbac0 WIP: netlist browser log viewer 2022-08-09 01:11:28 +02:00
Matthias Koefferlein 83946620d9 [Consider merging] fixed a bug in netlist browser reload 2022-08-09 01:11:03 +02:00
Matthias Koefferlein 2569527c3c WIP: Schematic netlist participates in net highlighting if applicable 2022-08-08 23:27:22 +02:00
Matthias Koefferlein 1e3ce081d4 WIP: bugfixed schematic netlist view 2022-08-08 22:23:01 +02:00
Matthias Koefferlein 51b521f2b7 WIP: enabling schematic view of netlist - needs debugging 2022-08-07 23:41:29 +02:00
Matthias Koefferlein de026fac86 WIP: debugging 2022-08-07 23:10:09 +02:00
Matthias Koefferlein 16341bdd1b WIP: bug fixing 2022-08-07 22:29:02 +02:00
Matthias Koefferlein 8029302e08 WIP: started integrating log view in netlist browser 2022-08-07 22:02:22 +02:00
Matthias Koefferlein 2e7524a0fe WIP: added tree model for log view for netlist browser 2022-08-07 19:41:56 +02:00
Matthias Koefferlein e1882b0de7 WIP: refactoring of L2N/LVSDB writer 2022-08-07 17:38:06 +02:00
Matthias Koefferlein 0083021220 [Consider merging] Some refactoring of L2N and LVSDB readers for more future compatibility 2022-08-07 00:24:05 +02:00
Matthias Koefferlein 9d36b3c71a Merge branch 'master' into wip 2022-08-06 18:52:41 +02:00
Matthias Koefferlein 42ddd07bfe Introducing 'close all' and 'close all except' for macro editor tabs, avoid one additional entry on the edit trace stack when raising an exception 2022-08-02 22:51:32 +02:00
Matthias Koefferlein 5e3358d6b1 Fixed #1131 fix 2022-08-01 23:11:17 +02:00
Matthias Koefferlein bfeb60986c Merge remote-tracking branch 'origin/msvc-building-with-debug' 2022-08-01 19:02:31 +02:00
Matthias Koefferlein 40b4b22f02 Added variants for CellInstArray constructor that take a Cell reference 2022-08-01 19:01:41 +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 716369de63
Issue 1126 (#1128)
* First attempt to fix. Rather experimental.

* Debugging and bug fixing

The basic issue was a missing break
However, correct computation of cache results for instance-to-instance cluster
interaction is implemented
Plus: identical and overlapping instances are no longer ignored except in the
case of exact duplicates. Otherwise these instance generate dead nets which
are not connected elsewhere.

* Added tests, fixed duplicate cells test, added missing files.

* Code simplification (removed invariant from transformation in cluster-to-cluster interaction cache)

* Skipping cell instance duplicates as some real-world testcases mandate so

* Updated test data
2022-08-01 18:50:07 +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 Köfferlein e2f9015c26
Fixed issue #1132 by taking the first point of paths and polygons instead of center (center is still taken if the polygon is a rectangle) (#1134) 2022-08-01 18:47:20 +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
Matthias Koefferlein 3c5ca36081 [Consider merging] fixed a potential race condition with invalid Shapes container after clear 2022-07-31 00:10:36 +02:00
Matthias Koefferlein 43101ded7f More consistent handling of exceptions and their display in the Ruby debugger - without triggering too many breakpoints on rethrow and showing the reason for exceptions arising from argument errors 2022-07-30 19:28:14 +02:00
Matthias Koefferlein 590c4a6b31 Argument numbers/names for Ruby too 2022-07-30 01:32:27 +02:00
Matthias Koefferlein 7d078ed041 Express argument details in Python call errors 2022-07-29 23:58:19 +02:00
Matthias Koefferlein 82fe920ac9 Merge branch 'wip' 2022-07-29 22:31:42 +02:00
klayoutmatthias 1b728f1067 Removed duplicated method declarations in LayoutViewBase 2022-07-28 20:52:19 +02:00
klayoutmatthias bca7486082 [Consider merging] object lifetime problem with QLatin1String and GSI fixed 2022-07-26 21:02:48 +02:00
klayoutmatthias 5a9e3f9188 [Consider merging] One more iterator issue fixed 2022-07-26 21:02:17 +02:00
klayoutmatthias 0401f3b89c Fixed a non-problem that pops up with iterator assertions 2022-07-26 08:28:22 +02:00
klayoutmatthias 50a863bb26 [Consider merging] Fixed a potential memory corruption problem 2022-07-26 00:13:26 +02:00
klayoutmatthias da398e77fd [Consider merging] avoid a memory corruption issue in Netlist::flatten 2022-07-25 22:03:01 +02:00
klayoutmatthias 167bcbcc5f Enabling MSVC debug builds with iterator debugging on 2022-07-25 21:06:56 +02:00
Matthias Koefferlein 17f8a92a66 Fixed a memory corruption problem 2022-07-20 00:04:08 +02:00
Matthias Koefferlein 7999468bb9 Issue #1122 - avoid error messages which are confusing. 2022-07-18 00:18:10 +02:00
Matthias Koefferlein 24e8db996c Avoid a segfault on exit 2022-07-18 00:16:56 +02:00
Matthias Köfferlein 6ba372f1a9
Issue 1114 (#1121)
* Two patches to enable building on MSYS with gcc 12.1

1. Complete explicit instantiations in dbHierProcessor
2. Strict weak ordering is not present for std::type_info
   (using "before" on gcc 12.1). We need to work with plain
   pointers and use a translation table to associate pointers
   with classes.

* Fixed another place where std::type_info got important

Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2022-07-17 19:59:49 +02:00
Matthias Köfferlein b1661d3c5e
Issue 1106 (#1107)
* Help browser problem mitigation: on Qt6 (?), QTextBrowser appears to be reloading images relative to the new URL on a URL change. This caused 'missing resource' exceptions. As long as the root cause of this problem is not know, the exceptions are turned into log errors now.

* Fixed issue 1106
2022-07-17 19:59:29 +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 Koefferlein f7ef538f34 Merge branch 'master' of github.com:KLayout/klayout 2022-07-08 01:35:59 +02:00
Matthias Koefferlein 8cdf060159 Prevent segfaults with rulers when there is no manager object 2022-07-08 01:35:39 +02:00
Matthias Koefferlein 26901454c4 Fixed a doc typo 2022-07-04 13:41:30 +02:00
Matthias Koefferlein 75d686a63f Changing default "is_merged" status for Edges and Region to false.
This was a problem with universal DRC which does not specifically
set the merged status. Furthermore, the default for DeepRegion and
DeepEdges was "false" already and now is aligned.
2022-07-04 00:52:55 +02:00
Matthias Koefferlein c700d2ed97 Better LVS template - align needs to come before simplify 2022-07-03 09:40:17 +02:00
Matthias Köfferlein 2f8a7149d3
Fixed issue-1111 (#1112) 2022-07-03 09:35:40 +02:00