Commit Graph

16 Commits

Author SHA1 Message Date
Matthias Köfferlein b968f2b47f
#730: providing a new Qt module named QtUiTools for QUiLoader class s… (#735)
* #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:29:21 +01:00
Matthias Koefferlein 6a1a6b972c Added vim swap files to .gitignore 2020-12-31 00:40:59 +01:00
Thomas Ferreira de Lima b37ce4e130 WIP: Parametrizing macbuild to make custom installations easier (#680)
* Changing indentation to 4 spaces

* squash

* removing more global variables (squash)

* | tee always exits with 0

* parameter is a dictionary now

* Changing default Makefile to HB38 and adding -rbinc2 option for Catalina

* Catalina building...

* macQAT fixed

* run_build_command depends on parameteres dict alone

* Adding options to macbuild/makeDMG4mac.py

In particular, we can now specify a -u (unsafe) option, and
specify the target dmg file with -t target.dmg
2020-11-21 22:09:03 +01:00
Matthias Köfferlein b97efcc75f Updated .gitignore. 2018-09-09 18:31:27 +02:00
Matthias Köfferlein 1bf4d95388 Further MSVC compatibility
String assertions fixed, numerical issue with dbTrans fixed, iterator 
assertions fixed.
2018-09-02 19:18:42 +02:00
Thomas Ferreira de Lima 7540da8c32 changing to setuptools and fixing macOS linking 2018-07-16 01:12:11 -04:00
Matthias Koefferlein 8845d18c74 Renamed pykl to klayout - because of name clash with the klayout binary, the python module now sits inside 'pymod' 2018-06-19 00:50:27 +02:00
Matthias Koefferlein 538f8f3d53 WIP: added missing files. 2018-06-17 16:51:01 +02:00
Matthias Koefferlein 7e56ce23e5 WIP: Moved net tracer into plugin, GSI is now in db module. 2018-06-16 00:56:35 +02:00
Matthias Koefferlein 9883ea5679 WIP: added streamers plugin structure (partially) 2018-06-13 21:39:39 +02:00
Matthias Koefferlein 4e299d45f2 Provisions for self-contained plugin tests
Plugin tests are not placed into a "*.klp_ut" shared object
and are executed by the unit test runner.
2017-08-12 18:03:45 +02:00
Matthias Koefferlein eea5da4ba6 Attempt to fix "GSI does not monitor lifetime of Qt objects" 2017-02-20 22:21:29 +01:00
Matthias Koefferlein 08676f0a01 Add private plugin data to .gitignore. 2017-02-12 16:54:05 +01:00
Matthias Koefferlein d10f76c880 Updated .gitignore. 2017-02-12 16:44:29 +01:00
Matthias Koefferlein e8e661e3e0 Updated .gitignore. 2017-02-12 13:55:25 +01:00
klayoutmatthias 9919949403 Initial commit 2017-02-12 12:54:21 +01:00