Commit Graph

52 Commits

Author SHA1 Message Date
Matthias Koefferlein f76b6eda45 Added option -k for copying the log to a file 2023-10-19 21:02:48 +02:00
Matthias Koefferlein a85dbd3d31 Updating copyright notice to 2023 2023-01-01 22:27:22 +01:00
Matthias Koefferlein db37bdd5e7 Enabling high-DPI scaling in QApplication 2022-09-22 21:13:23 +02:00
Matthias Koefferlein 25c5b2f057 Refactoring of resources -> separate folders for doc and icons 2022-09-11 11:09:14 +02:00
Matthias Koefferlein f2b91997f0 Don't print Qt warnings for verbosity 0 - this will simplify the application tests 2022-05-29 17:36:54 +02:00
Matthias Koefferlein 12fd26663d Merge branch 'qt6' 2022-01-06 21:48:02 +01:00
Matthias Koefferlein 10456516db Updated copyright to 2022, preparations for 0.27.6 (was delayed due to code signing certificate issues) 2022-01-04 21:20:04 +01:00
Matthias Koefferlein 3ef28c8a9d WIP: fixed some string extractors 2021-12-04 23:57:24 +01:00
Matthias Koefferlein a17f89201f Updated Qt binding generation scripts and build fixes 2021-11-30 23:12:12 +01:00
Matthias Koefferlein a4d2e7891c WIP 2021-11-24 23:59:36 +01:00
Matthias Koefferlein ca15d9ec9d WIP 2021-10-18 00:12:46 +02:00
gatecat 93cf7869ce klayout_main: Don't abort on info messages
Signed-off-by: gatecat <gatecat@ds0.me>
2021-09-21 14:37:03 +01:00
Matthias Koefferlein 7a6364506d klayout -v and -h now work without a display 2021-04-18 14:27:00 +02:00
Matthias Koefferlein 687059525c Fine-grained Qt module selection for Qt binding and disabling of view_25d plugin without OpenGL 2021-03-02 23:28:35 +01:00
Matthias Koefferlein 33ae3b0239 Added a build system option to enable/disable uitools support as some distributions do not support that 2021-02-27 18:03:37 +01:00
Matthias Koefferlein 9350b33bcb 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:23 +01:00
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 d1e6845ae4 Replaced std::auto_ptr by std::unique_ptr because the latter is deprecated 2021-01-23 21:55:51 +01:00
Matthias Koefferlein 7d4310d343 Updated copyright to 2021 2021-01-05 22:57:48 +01:00
Matthias Koefferlein b8c82c4f8b Updated copyright notice to 2020 2020-01-05 00:59:43 +01:00
Matthias Koefferlein a179705a03 WIP: more refactoring. 2019-07-06 09:15:33 +02:00
Matthias Koefferlein b0d7f5f7f5 Updated copyright. 2019-01-08 00:58:45 +01:00
Matthias Koefferlein 741e9d73e3 WIP: fixed build 2018-06-17 19:09:54 +02:00
Matthias Koefferlein 409392d561 WIP: started refactoring the plugin structure. Goal: standalone db module with it's own plugins like LEF/DEF, Gerber, MEBES including GSI bindings. 2018-06-13 00:33:43 +02:00
Matthias Koefferlein e5aa55a25c Support for Qt-binding-less Python modules. 2018-06-09 17:01:52 +02:00
Matthias Koefferlein 73297a3810 WIP: fixed some build issues. 2018-05-31 17:59:54 +02:00
Matthias Koefferlein 0e29c997f6 WIP: refactoring, fixed documentation and some mistakes. 2018-05-31 01:11:24 +02:00
Matthias Koefferlein 5fbbccd9e2 ut_runner does not display dialog on crash but dumps the stack trace to stdout. 2018-04-20 00:18:42 +02:00
Matthias Koefferlein 3495f9c698 Fixed #110 (ut_runner not working on MacOS) 2018-04-08 01:27:22 +02:00
Matthias Koefferlein ffb56335fb Updated copyright note to 2018. 2018-01-01 21:08:06 +01:00
Matthias Koefferlein 6526625a67 Fixed Ruby-less build. 2017-12-29 20:35:34 +01:00
Matthias Koefferlein c63a47dd89 Added tests for klayout app
This commit also contains some important fixes:
 * Option -wd wasn't working
 * Relative layout file paths in session files are resolved as relative
   to the session file. On writing, absolute paths are used, so this
   change only affects session files build intentionally.

Plus:
 * Program version is available in unit tests too
 * Fixed a typo in the RBA::Expression documentation
2017-12-27 17:52:35 +01:00
Matthias Koefferlein 53d2557ba5 First steps towards fix. Needs review.
The patch is based on splitting the application class into
two incarnations - one for GUI capability and one without.

GSI binding happens dynamically based on the mode chosen.
We can do so because the application class is the first one
to become active and can decide the mode by itself.

In general, the application class carries too much functionality
and splitting is a task for the future. Right now, the functionality
is inside the base class and the derived classes basically only
configure the base class.

A better design would be to drop the QApplication inheritance in
the RBA::Application class hierarchy and provide access to the
QApplication object through qapp_gui getter.
2017-12-25 00:51:06 +01:00
Matthias Koefferlein b44f5ab156 Fixed #43 (crash when using Qt specific command line options) 2017-12-21 22:56:41 +01:00
Matthias Koefferlein 4f25f4c81c Fixed generation of .rc file. 2017-09-27 22:59:44 +02:00
Matthias Koefferlein 55ff0bcf99 Include version information in Windows exe file - patch for build. 2017-09-10 11:52:15 +02:00
Matthias Koefferlein dbf8e53621 Include version information in Windows exe file. 2017-09-10 11:42:19 +02:00
Matthias Koefferlein 9d5f54d51a Fixed non-Ruby build where DRC is not available. 2017-09-03 11:51:39 +02:00
Matthias Koefferlein 992307a915 More on build: proper library versioning, rc file used through RC_FILE, deployment on Linux. 2017-08-27 17:44:41 +02:00
Matthias Koefferlein c0afa4bf58 Refactoring of resources and modules. 2017-08-23 09:58:39 +02:00
Matthias Koefferlein cbc5697253 Refactored Macro and MacroCollection into lym library for better reuse. 2017-08-22 23:39:55 +02:00
Matthias Koefferlein 55e797ffaf Provide proper INSTALL targets for .pro files
Plus: reduce compiler warnings
2017-08-21 02:33:45 +02:00
Matthias Koefferlein 09033d834e Refactoring and enhancements of the cmd system
* Includes version and license info now
* New "bd" library for common features of the
  buddies scripts.
2017-08-16 23:48:59 +02:00
Matthias Koefferlein 5cfdc2fa64 Formal command line parser for buddies, first step. 2017-08-12 23:08:18 +02:00
Matthias Koefferlein 807b044731 Updated build scripts, fixed JUnit format emulation. 2017-08-10 23:31:32 +02:00
klayoutmatthias 2e4ca67a39 Added application icon on Windows. 2017-08-08 01:20:58 +02:00
klayoutmatthias 592fe08921 Updated build script for enhanced deployment automation. 2017-08-06 22:56:38 +02:00
klayoutmatthias e6642f41f6 Updated deployment scripts for Windows. 2017-08-06 22:19:31 +02:00
Matthias Koefferlein 47aa38421a Unique library named to avoid name conflicts
The libraries generated are called libklayout_x now
(instead of libx). This avoid name conflicts with
"libdb.so" on some systems for example.
2017-03-31 00:23:12 +02:00
Matthias Koefferlein 83f12382e8 Refactoring: there is one Qt binding lib. 2017-02-23 01:19:02 +01:00