Commit Graph

2048 Commits

Author SHA1 Message Date
Matthias Köfferlein e724dcdb45 Fixed issue #750 (#752) 2021-03-30 12:40:57 +02:00
Matthias Koefferlein 853535b8b3 Fixed a build error for QtBinding-less builds 2021-02-28 23:30:12 +01:00
Matthias Koefferlein 8d6a43b6d2 More unit test stability 2021-02-28 10:55:29 +01:00
Matthias Koefferlein 5a31d243ff Added a build system option to enable/disable uitools support as some distributions do not support that 2021-02-27 19:10:12 +01:00
Matthias Koefferlein 889f31835b Stupid typo fixed 2021-02-27 00:02:28 +01:00
Matthias Koefferlein d7b557175e Squashed commit of the following:
commit 2a8a2d228d
Author: Matthias Koefferlein <matthias@koefferlein.de>
Date:   Fri Feb 26 23:54:08 2021 +0100

    One more fix.

commit 8c4d76505c
Author: Matthias Koefferlein <matthias@koefferlein.de>
Date:   Fri Feb 26 23:03:07 2021 +0100

    More patches for uitools-less build for CentOS 8

commit 2ac28292b8
Author: Matthias Koefferlein <matthias@koefferlein.de>
Date:   Fri Feb 26 22:52:27 2021 +0100

    First steps for fixing build on CentOS 8 without uitools
2021-02-26 23:59:53 +01:00
Matthias Koefferlein 25d5eae965 Fixed a merge issue. 2021-02-25 23:28:46 +01:00
Matthias Koefferlein 96386383d0 Fixed a linker issue 2021-02-25 23:07:23 +01:00
Matthias Koefferlein 5aec4cf2cb Fixed #728 2021-02-25 22:04:39 +01:00
Matthias Köfferlein c55020601c * #730: providing a new Qt module named QtUiTools for QUiLoader class support.
* Fixed a compile error on Mac

* Added QtUiTools to some more places

* Fixed a linker issue in the QtUiTools Python lib

* On occasion fixed a infinite recursion problem in the debugger

The recursion happened because by mistake I instantiated a
QApplication inside an in-application Python script. This
crashed the debugger due to infinite recursion. This is not
a real use case but to prevent similar issues, a recursion
sentinel was added.

* Removed QCoreApplication#notify from script bindings

Reasoning: "notify" made standalone scripts using QApplication and
QUiLoader virtually impossible.

Problem description:
- When a QApplication object is instantiated, e.g. in Python, the Qt binding
  will install reimplementation hooks as the object may be dynamically
  extended.
- A notify is virtual this means the *every* "notify" call in the application
  is routed through the interpreter.
- For one thing this will slow down the application
- But as "notify" is called a zillion times this has more than this side effect.
- Specifically "notify" is called from within the QWidget constructor to
  indicate a new widget. Then, if a QDialog for example is instatiated, it's
  base class constructor will call "notify" when the object isn't ready yet.
- This has another severe side effect: as the object isn't ready yet, it gets
  registered in the Python space with the wrong class and QDialog is not visible
  as such.

To mitigate these problems, the most efficient solution is to disable "notify"
in general. There is hardly any use case in a script environment (in C++,
apart from hacking the only reasonable use case is exception handling, but
this does not apply to scripts). For providing the call functionality of
"notify" you should better use "postEvent" or "sendEvent" anyway.

So farewell QCoreApplication.notify ...

* Fixed python test for QtUiTools module

* Fixed UiTools test on Qt4 - QUiLoader needs an application object

Co-authored-by: Kazunari Sekigawa <kazunari.sekigawa@gmail.com>
2021-02-25 21:36:34 +01:00
Matthias Köfferlein 915ef7c630 Fixed issue by providing a compatibility bridge between tl::Stream (abstract paths) and tl::URI (#734) 2021-02-25 21:32:08 +01:00
Matthias Koefferlein 99280481fe Fixed #726. 2021-02-06 22:46:18 +01:00
Matthias Koefferlein ac1cf0880d Fixed #723 2021-02-04 21:25:18 +01:00
Matthias Köfferlein a0cc5fa52a Issue 720 (#721)
* Implemented a backup scheme for the file writer.

* Also consider backup files when the writer fails.

* Removed test exception

* Added config option for number of backups.
2021-02-02 22:50:59 +01:00
Matthias Koefferlein 0bedc4edac Removed inclusion of APPDATA into search path on Windows - this was pulling DLLs from other installations. 2021-02-02 22:45:07 +01:00
Matthias ab7db78ee8 Fixed crash in WebDAV access test observed on MacOS, but probably also relevant for other platforms. 2021-02-02 10:53:03 -08:00
Matthias Koefferlein c3c8f20e36 Fixed some merge issues 2021-02-01 10:13:44 +01:00
Matthias Köfferlein 47d9001ba6 Issue 718 (#719)
* WIP: first part of fix - generation of hole cutlines

First problem was that hole cutlines got extended
over the whole length and sometimes lead to coincident
edges which are difficult to resolve for the polygon
cutter.

* Refined solution, fixed #718

- disabled elaborate hole insertion procedure for now as the
  performance impact has to be assessed yet and the new scheme
  will break many tests
- stricter rejection of ambiguous configurations in the polygon cutter
- fallback is boolean AND now since there is no need to re-invoke the
  polygon cutter (we can't do so as we made it more strict).
  Performance-wise we replace a merge by an AND step which may even be
  faster the output is smaller and the polygon cutter does not need
  to be re-invoked.

* Compatibility with other STLs
2021-01-31 19:23:36 +01:00
Matthias Köfferlein bed82733e6 Fixed #709. (#714) 2021-01-31 19:21:54 +01:00
Matthias Koefferlein f3923f5875 Fixed Qt-less builds. 2021-01-27 12:42:15 +01:00
Matthias Koefferlein 0c8e38893b Fixed Qt-less builds. 2021-01-27 12:42:09 +01:00
Matthias Koefferlein c324a21649 Fixed merge and build issues. 2021-01-25 21:46:18 +01:00
Matthias Koefferlein 77f6327940 Some issues with the byte array binding fixed, less ambiguitites with Qt bindings, tests added. 2021-01-25 12:54:24 +01:00
Matthias Koefferlein 405445a427 Mapping QByteArray (and std::vector<char>) to Python 'bytes' now. 2021-01-25 12:52:29 +01:00
Matthias Köfferlein 233bff538b Fixed #704 (DXF reader: rational splines not supported) (#705)
* Fixed issue #704. TODO: replace algorithm by De Boor, check if accuracy is still maintained.

* Switch spline interpolation algorithm to De Boor for better numerical stability.

* Updated tests with DXF accuracy test, provide a warning for unsupported SPLINE types.
2021-01-25 12:49:39 +01:00
Matthias Köfferlein 46712e8866 Fixed #646 (crash on delete of library) (#685)
* Fixed a compiler warning

* Fixed #646 (crash on PCell Library "delete")

The issue was mainly caused by a "cleanup" call on
the library. Cleanup is supposed to remove excess
top level PCell variants. For libraries this is not
possible, as the library does not know which variants
are used and which are not.

In addition, some hardening against segfaults in
case of defect layouts has been applied.
2020-11-27 18:37:16 +01:00
Matthias Köfferlein 2c5e90c323 Fixed #647 (text orientation not working on search & replace) (#684)
* Fixed a compiler warning

* Fixed #647 (search & replace not working for text rotation)
2020-11-25 21:33:33 +01:00
Matthias Koefferlein aa97d4abe1 Fixed display bug happening when child cells are instantiated with a small magnification factor. 2020-11-21 23:39:53 +01:00
Matthias Köfferlein 63291aea92
Fixed (hopefully) #658 - needs some testing (#665)
This patch introduces a slightly more elaborate scheme for building
menus on MacOS. Under normal circumstances, this scheme should maintain
the menu item order as far as possible when Qt is trying to sync with
Mac's menu bar.

Co-authored-by: Matthias <klayoutmatthias>
2020-11-13 01:52:53 +01:00
Thomas Ferreira de Lima a452853c45 Adding clarification on GDS properties in cell, instance, shape and layout. 2020-11-11 22:38:07 -05:00
Matthias Köfferlein 4dbb4e72ca Fixed #652 (M scaling not working sometimes for Spice), provided test… (#653)
* Fixed #652 (M scaling not working sometimes for Spice), provided testcases

* One more patch (bugfix, Spice reader)
2020-10-10 23:22:48 +02:00
Matthias Köfferlein 9d3d3e8df6 Fixed #651 (DRC "select" feature issues) (#654)
* WIP: added test case, fixed dup problem and '-' shortcut

* WIP: updated DRC doc and could not resist the temptation to fix 'it's' vs. 'its'

* Deep mode also working with select now. Updated tests.
2020-10-10 23:22:15 +02:00
Matthias Köfferlein a5d13c25ae Fixed #629 (timeout event of QTimer not present on Qt5) (#631)
In addition, the "destroyed" and "objectNameChanged" signals
were added (specifically to QObject).

The API binding for Qt5 was updated which adds some events.
2020-09-14 20:29:15 +02:00
Matthias Koefferlein 4371df61cd Updated fix version in RBA::Layout documentation. 2020-09-14 18:47:53 +02:00
Matthias Koefferlein c816f91fb0 Provide multi-cell copy/move of shapes (GSI binding) 2020-09-14 18:47:48 +02:00
Matthias Koefferlein 72b12ffe1a Added multi-cell mapping for transferring multiple cells from one layout to another while including their hierarchy without duplicating cells. 2020-09-14 18:47:43 +02:00
Matthias Köfferlein 336c90a727 Fixed #637 (Points are not selected properly for mirrored subcells) (#638) 2020-09-14 18:43:26 +02:00
Matthias Köfferlein cb6e8760d3 Fixed issue #617 (constness problem in netlist) (#622) 2020-09-14 18:43:05 +02:00
Matthias Köfferlein ac609c9376 Issue 615 (#621)
* Password encoding to UTF-8 for Basic HTTP authentication - this is basically a hack. Needs to be reverted as soon as Qt switches to UTF-8 encoding.

* Workaround for issue #615
2020-09-14 18:42:54 +02:00
Matthias Köfferlein 2576d0a8af Fixed #609 (internal error on netlist extract) (#610)
Reason was: when caching instance-to-instance interactions,
the array descriptions need to be normalized too.
2020-07-07 18:25:53 +02:00
Matthias Koefferlein c47532e340 Fixed a porting issue. 2020-07-05 22:02:52 +02:00
Matthias Köfferlein 3dbd50627e Implemented #603 (Coordinates for adjust origin) (#604) 2020-07-05 18:43:35 +02:00
Matthias Köfferlein 1d5275d22f Implemented #586 (issues with duplicate cell names) (#605)
As discussed in the ticket, the implementation will
check for unique cell names upon *writing* of a layout
file.
2020-07-05 18:43:04 +02:00
Matthias c6798c090b Fixed another porting issue. 2020-07-05 05:53:12 -07:00
Matthias af34116b81 Fixed compile issue happend during porting of Cell#transform from master to 0.26 2020-07-05 05:36:51 -07:00
Matthias Koefferlein 5d70a5ade6 Candidate for fix. 2020-07-05 14:10:39 +02:00
Matthias Köfferlein 0507d72d57 Fixed #591 (two topics for macro editor) (#595)
* Fixed #591 (crash on Macro/Add Location)

The main reason was that the QSortFilterProxyModel is very sensitive
to the order of signals it receives from the proxy model.

In this case, dataChanged() must not be send between layoutAboutToBeChanged()
and layoutChanged(). This happened implicitly during load() of a macro while
scanning the freshly added folder.

* Fixed another part of #591: ability to disable template selection pop-up in macro editor. Tied to the tip window now - if this is dismissed, no template selection dialog will be shown.
2020-07-03 23:43:49 +02:00
Matthias Köfferlein 3d20290499 Fixed #596 (crash on library _destroy) (#597) 2020-07-03 23:43:45 +02:00
Matthias Köfferlein ec4fefdfbe Implemented issue #598 (Cell#transform) (#600) 2020-07-03 23:43:39 +02:00
Matthias Köfferlein c416c7faf9 Fixed #592 (layer mapping issue) (#601) 2020-07-03 23:43:24 +02:00