Commit Graph

1100 Commits

Author SHA1 Message Date
Matthias Koefferlein 98ecc9e47b Fixed a typo, force update of unit tests on Jenkins. 2018-07-29 14:07:02 +02:00
Matthias Koefferlein 3fb568671d A little refactoring - central place for DLL/.so path detection 2018-07-29 10:20:48 +02:00
Matthias Koefferlein 3d7bd0f32d Cleaned up code
Moved current_utc_time out of the central tlUtils header where
it does not belong. It a time function, so tlTimer.h is the better
place. Plus it does not make sense to make this inline. This just
spoils build times on changes.
2018-07-29 10:06:11 +02:00
Matthias Koefferlein 11627486d6 More verbose messages on plugin loading. 2018-07-29 02:36:25 +02:00
Matthias Koefferlein 76db5d1714 Merge branch 'pymod' of https://github.com/klayoutmatthias/klayout into pymod 2018-07-29 01:59:50 +02:00
Matthias Koefferlein d378a632f3 Bugfix: a standalone LayoutView object made the application crash on exit
Reason: at the Qt will destroy all top level widgets.
Ruby/Python will now know of this, hence try to cleanup
the object inside it's GC.

There was an attempt to avoid this by deleting all
top-level widgets before the application exits. But
this failed for LayoutView objects because these will
create other, dependet top-level widgets for the plugins.
And the LayoutView wants to stay owner for them.
2018-07-29 01:02:39 +02:00
Matthias Koefferlein 082a91cf15 Fixed #148 (Wrong font is used) 2018-07-28 00:17:02 +02:00
Matthias Koefferlein e2f4c1874a Fixed a build issue on some compilers. 2018-07-24 22:29:45 +02:00
Matthias Koefferlein c9859b4f8f Fixed some issues with long int emulation. Using long int as substitute for __int128 2018-07-24 22:08:30 +02:00
Matthias Koefferlein 7191e4faa9 Added long int (N times a word) support for emulation of __int128 2018-07-24 21:01:54 +02:00
Matthias Koefferlein 8578918764 Updated PolygonTools test with recent edge processor update. 2018-07-23 20:28:01 +02:00
Matthias Koefferlein 6b48b2bb3d Fixed Edge unit tests. 2018-07-23 19:37:36 +02:00
Matthias Koefferlein f05b3249ca Fixed fast EdgeProcessor unit tests with recent update. 2018-07-23 19:36:00 +02:00
Matthias Koefferlein 2178b72704 Refined test for 74 issue for different orientations. 2018-07-23 19:12:12 +02:00
Matthias Koefferlein 5741a120e9 More precise point/edge interaction for scanner 2018-07-22 22:52:04 +02:00
Matthias Koefferlein efd9e47c1f Attempt to fix a scanline issue. 2018-07-22 18:49:17 +02:00
Daniel Wang c430c82744
Merge branch 'pymod' of https://github.com/klayoutmatthias/klayout into pymod 2018-07-19 19:23:00 -04:00
Matthias Koefferlein 5fe0aca9c7 Fixed a segfault on help(pya.Box)
Needed to refactor the class hierarchy of the Python classes.
Basically the module specific base class was removed as it does
not provide any benefit. The object layout of the PyObject
specialization was modified such that the payload is attached
to the end. This is compatible with the hidden extensions
which Python adds to normal objects.
2018-07-19 23:50:24 +02:00
Daniel Wang ad1ada9b23
Merge branch 'pymod' of https://github.com/klayoutmatthias/klayout into pymod 2018-07-19 13:40:57 -04:00
Matthias Koefferlein aca209c095 Using C.UTF-8 locale fallback for string tests for vanilla Linux installations. 2018-07-18 21:57:47 +02:00
Daniel Wang 5f6c265e4b
Moved current_utc_time to tlUtils and fixed tlTimer 2018-07-17 14:37:41 -04:00
Daniel Wang 106b57c676
Fixed unchanged functions 2018-07-17 14:14:47 -04:00
Daniel Wang 20db1e1f24
Added support for Mac OS X 10.11 and lower 2018-07-17 14:05:33 -04:00
Thomas Ferreira de Lima f26576099c missing stdlib.h import 2018-07-16 23:29:51 -04:00
Matthias Koefferlein 9dcfa140c3 Added __init__.py file to Python package. 2018-07-15 19:33:44 +00:00
Matthias Koefferlein 46b0f079cf Skipping HTTP tests rather than disabling them
With this commit, tests are logged as skipped and
not just omitted, if HTTP support is not enabled
(neighter Qt nor curl)
2018-07-15 20:58:54 +02:00
Matthias Koefferlein 5351922440 Enabled minimum build configuration
Minimum build configuration is without Qt, Ruby, curl and expat.
Only Python is required.

This commit also provides a functional (through polling) Qt-less HTTP
implementation through libcurl if enabled.
2018-07-15 19:59:45 +02:00
klayoutmatthias 6858190a20 Fixed Windows build and tests
* tl::is_same_file works with directories now too
* Unit tests added for this
* bridge_mod sample produces the proper DLL now
2018-07-15 18:03:42 +02:00
Matthias Koefferlein bbb88c5ca6 Merge branch 'pymod' of www.klayout.org:/home/matthias/klayout into pymod 2018-07-15 07:42:14 -07:00
Matthias Koefferlein d3b4bc7f87 Enabled pymod build via setup.py/distutils on MacOS 2018-07-15 07:42:01 -07:00
klayoutmatthias 1642129504 Fixed a typo that breaks the Win build. 2018-07-15 16:39:16 +02:00
Matthias Koefferlein cb33753e1c Fixed a FileUtils unit test on Windows. 2018-07-15 15:36:30 +02:00
Matthias Koefferlein a1d8913de9 Enhanced Qt-less FileUtils test, so they cover the full functionality without Qt 2018-07-15 15:27:39 +02:00
Matthias Koefferlein fc9783432b Bugfix: db_plugin modules were not loaded for python modules
* Added unit test for this
* Provided an option for easier debugging such issues:
  Setting env var KLAYOUT_VERBOSITY will enable debug levels on Python
  modules (and all other binaries). Plugin loading issues can
  be debugged by setting KLAYOUT_VERBOSITY=21.
2018-07-15 14:14:14 +02:00
Matthias Koefferlein 07f69dccd3 Merge branch 'pymod' of www.klayout.org:/home/matthias/klayout into pymod 2018-07-15 11:12:29 +02:00
Matthias Koefferlein 628219080a Some enhancements/bug fixes for Windows
* Enabled pipe: on outputs
* Don't die on file paths containing backslashes in DRC tests
2018-07-15 11:11:05 +02:00
Matthias Koefferlein 6a3914fcf6 Fixed pya.cc build with Py3/Linux 2018-07-14 20:32:13 +00:00
Matthias Koefferlein e709cad9c8 Fixed an include path for better compatibility with Python's distutil. 2018-07-14 20:24:28 +00:00
Matthias Koefferlein 49fd896e68 Another fix for Windows build. 2018-07-14 09:31:40 +02:00
Matthias Koefferlein 2f99a8a67d Another fix for Windows build. 2018-07-14 09:19:23 +02:00
Matthias Koefferlein 817ab9cd1c Fixed Windows build. 2018-07-14 08:55:46 +02:00
Matthias Koefferlein 5ea72893f3 Enabled build with Qt again. 2018-07-14 02:16:35 +02:00
Matthias Koefferlein 8f04fc5358 Removed some further Qt dependencies. For example, HTTPS access now is possible without Qt through Curl only. 2018-07-14 02:14:06 +02:00
Matthias Koefferlein 9ea24cb6a0 Explicitly set the locale for local string conversion test. 2018-07-13 18:35:49 +02:00
Matthias Koefferlein b10c64907a Made the threaded worker test a bit more reliable 2018-07-13 18:28:32 +02:00
Matthias Koefferlein f795aa84ec Avoid one more deadlock in gsi::Proxy. 2018-07-13 18:24:41 +02:00
Matthias Koefferlein cf3a6c2ce5 Fixed a deadlock. 2018-07-13 08:08:15 +02:00
Matthias Koefferlein 937fa96245 Some bug fixes
* Case folding table fixed: lowercase "i without dot" overlaps "i"
* Fixed build of bridge sample in non-Qt case
2018-07-13 08:03:00 +02:00
Matthias Koefferlein abdde4ba19 Corrected last commit (UTF-8 case conversion) and added more test coverage. 2018-07-13 01:13:41 +02:00
Matthias Koefferlein 70a4bd7aa2 Locale-independent implementation of UTF-8 string case conversion. 2018-07-13 01:07:46 +02:00
Matthias Koefferlein 4f326572d4 Fixed one .pro file for older Qt versions 2018-07-12 23:57:00 +02:00
Matthias Koefferlein 61a37fc3c3 Prevent a deadlock when destroying gsi objects. 2018-07-12 23:28:30 +02:00
Matthias Koefferlein 72c3288090 Disabled thread local storage test for Qt <4.7 because this class is broken with an int argument on Qt 4.6.2 2018-07-12 23:25:33 +02:00
Matthias Koefferlein ccc5be86d7 Fixed a typo - strange enough it compiled with this error on some platforms. 2018-07-12 23:24:46 +02:00
Matthias Koefferlein 1375bdcc9a Fixed XMLParser unit test 5 for Qt 2018-07-12 23:19:54 +02:00
Matthias Koefferlein 03ddd495d8 Disabled brute-force shutdown test for threads on Qt - QThread is not able to deal with this. 2018-07-12 22:11:57 +02:00
Matthias Koefferlein 05f8d223ac Added a way to specify the type of a macro on files
This feature is mainly useful for command line arguments.
If you run KLayout with

  klayout -b -r myscript

it will not be able to determine the type of macro without
a suffix. You can explicitly specify a certain type by
giving the suffix implicitly:

  klayout -b -r myscript[rb]

This will read "myscript" but pretend it was "myscript.rb"
and execute it as Ruby script.

This feature is handy if you need to run a file with a
specific interpreter but cannot modify the file name.
2018-07-12 21:51:51 +02:00
Matthias Koefferlein f8ffcd14f1 Fixed #141 (Issue with RBA::QHostAddress (ambiguous overload) on Qt5) 2018-07-12 21:33:19 +02:00
Matthias Koefferlein 20d1d0500f Fixed #142 (Issue with RBA::RecursiveShapeIterator#region=) 2018-07-12 21:16:14 +02:00
Matthias Koefferlein ca8f9fd904 Fixed Qt-based XML parser build. 2018-07-12 20:54:05 +02:00
klayoutmatthias 616c2942e1 WIP: made pymod functional on Windows (without Qt). Tests pass. 2018-07-10 23:34:30 +02:00
Matthias Koefferlein d2c890ab6d WIP: fixed unit tests for Qt-less build. 2018-07-10 01:17:35 +02:00
Matthias Koefferlein 58fd6ed143 WIP: bugfix on WaitCondition (deadlocked) 2018-07-10 00:13:06 +02:00
Matthias Koefferlein 5cfb98d9f2 WIP: pthread-based WaitCondition (simple) 2018-07-10 00:01:25 +02:00
Matthias Koefferlein ad49c9502b WIP: some work on the pthread-based alternative to Qt threads. 2018-07-09 22:58:16 +02:00
Matthias Koefferlein b0f69d46a9 WIP: one first basic Thread test. 2018-07-09 00:55:41 +02:00
Matthias Koefferlein 772062e33e WIP: fixed path generation in db::init in non-Qt case. 2018-07-09 00:43:49 +02:00
Matthias Koefferlein 18782666f7 WIP: made Qt build functional again. 2018-07-09 00:03:19 +02:00
Matthias Koefferlein 260243a6d9 WIP: Fixed PCB import for non-Qt builds, added missing file. 2018-07-08 23:44:36 +02:00
Matthias Koefferlein 3acb7b6920 Fixed documentation (XML parser error) of RBA::TextGenerator. 2018-07-06 00:58:26 +02:00
Matthias Koefferlein 2b64c4bf82 Bugfix: multithread-safety for gsi::Proxy (required for the tiling processor use case). 2018-07-06 00:56:34 +02:00
Matthias Koefferlein 803a29037a Added test for reproducing threading issue on TP 2018-07-06 00:09:22 +02:00
Matthias Koefferlein 221d5a4a38 Using enviornment locale with unit_tests. 2018-07-06 00:07:01 +02:00
Matthias Koefferlein e0a23adb66 Made XML parser and writer functional with expat 2018-07-05 23:40:39 +02:00
Matthias Koefferlein 43243ae162 Enabled Qt-less unit tests, some basic implementation of Qt-less threads based on pthread and an atomics library. A lot missing. 2018-07-05 00:33:34 +02:00
Matthias Koefferlein eec1843459 Less Qt in strmrun test 2018-07-04 20:30:34 +02:00
Matthias Koefferlein ad7a9836b0 Using pipes instead of QProcess for pymod tests, enable pipes on Windows (needs testing) 2018-07-04 20:26:34 +02:00
Matthias Koefferlein 642fb4270b Fixed rba::Technology test. Now all tests are passing with Qt. 2018-07-04 20:00:41 +02:00
Matthias Koefferlein 12e0db660c Finished file utils tests. 2018-07-04 19:33:39 +02:00
Matthias Koefferlein e9dcadb278 Fixed a linker issue. 2018-07-04 00:25:34 +02:00
Matthias Koefferlein 1f8afab417 Bugfixed the Qt-based XML implementation. 2018-07-04 00:21:06 +02:00
Matthias Koefferlein d1553d7586 Some more tests on tl::FileUtils 2018-07-03 23:51:10 +02:00
Matthias Koefferlein 17c7c8e1bb Some file utils tests added (file name decomposition, fake Windows/Linux tests) 2018-07-03 23:43:57 +02:00
Matthias Koefferlein 7ede06dca5 Build fixed, basic bugs fixed and made unit test framework work. Added tests for tlString. 2018-07-03 22:09:38 +02:00
Matthias Koefferlein bbfcd9cf9e Made normal build work again. 2018-07-03 01:49:06 +02:00
Matthias Koefferlein ab06ce3445 Made the code build without Qt. 2018-07-03 01:08:02 +02:00
Matthias Koefferlein a82adbbe83 Massive reduction of Qt dependencies, but also massive refactoring. 2018-07-03 00:51:36 +02:00
Matthias Koefferlein c532b75338 Provide an QtXml alternative through expat. 2018-07-02 22:19:36 +02:00
Matthias Koefferlein 7fca6f5f31 Non-Qt implementations of file utils - needs testing. 2018-07-02 20:29:34 +02:00
Matthias Koefferlein 239b7ca3ff First (major) steps towards a Qt-less basic build. 2018-07-02 18:20:20 +02:00
Matthias Koefferlein 5f8b258235 Feature: hide or show markers using the new View/Show Markers configuration option. 2018-06-28 23:52:47 +02:00
Matthias Köfferlein b64d14e02e
Merge pull request #138 from lightwave-lab/macos_embedding_python_pr
Macos embedding python and Qt5.11.1 bugfix
2018-06-28 21:08:41 +02:00
Matthias Koefferlein b47c0fc3a3 Fixed #139 (libraries not reassigned to GDS when loading file from command line). 2018-06-27 23:36:30 +02:00
Matthias Koefferlein ac2271b9d7 Fixed build on Qt5i (another part). 2018-06-27 00:13:56 +02:00
Matthias Koefferlein 7ba0138cfc Fixed build on Qt5. 2018-06-27 00:08:26 +02:00
Thomas Ferreira de Lima 73772cc6f8 bugfix instantiating Qt::blue not available in qt5.11 2018-06-26 02:53:02 -04:00
Matthias Koefferlein 94387529d6 Fixed #134
The issue was caused by an internal error in the edge processor.
Effectively the weak attractor scheme was causing this problem.
As the weak attractors are making things worse rather than
better I dropped them.

In theory, the weak attractors render an edge undisturbed by
neighboring intersection points, but in cases or parallel edges
this lead to problems: omitting cut points violates the output
edge configuration warranties the the polygon stitcher fails.

In addition, to maintain the solution for bug #74, the cut point
capture condition was relaxed, so that edge crossing the exact
corner of the snapping rectangle of a point are not considered
captured.
2018-06-26 01:04:20 +02:00
Matthias Koefferlein edbe0b2542 Attempt to make thread test more reproducible. 2018-06-24 15:16:49 +02:00
Matthias Koefferlein da65851ee2 Public declaration of path::to_string 2018-06-24 14:11:23 +02:00
Matthias Koefferlein f7843410a0 Public declaration of path template instantiation 2018-06-24 14:08:31 +02:00
Matthias Koefferlein 94a4c0df27 WIP: added force-link to rdb Python module so the rdb library is always linked 2018-06-22 00:02:27 +02:00
Matthias Koefferlein c2341ff213 WIP: speedup for CI development, fixed deb package (python needs to be part of dependency), fixed gcc build with Python3 2018-06-21 22:18:17 +02:00
Matthias Koefferlein 0d6da0e49d WIP: fixed unit test fails with python module import tests - what a hack ... 2018-06-20 23:19:26 +02:00
Matthias Koefferlein 087740d326 WIP: pass sub-process output through tl::Log in unit tests for proper XML escaping into JUnit files. 2018-06-20 22:25:03 +02:00
Matthias Koefferlein ec0fad0d75 WIP: Fixed a test issue with the PCellDeclarationHelper external class. 2018-06-20 16:26:54 +02:00
Matthias Koefferlein 436550868b WIP: fixed a initialization issue. 2018-06-20 15:58:46 +02:00
Matthias Koefferlein 4dc0065028 WIP: fixed installation target for pymod __init__.py file for older Qt versions. 2018-06-20 13:37:41 +02:00
Matthias Koefferlein e447c175d8 WIP: fixed pymod install targets for some Qt versions 2018-06-20 08:25:13 +02:00
Matthias Koefferlein dd9467d097 WIP: fixed streamer headers. 2018-06-20 01:13:31 +02:00
Matthias Koefferlein 0c766150b0 WIP: Fixed install targets for plugins. 2018-06-19 21:21:44 +02:00
Matthias Koefferlein f4dd012005 WIP: refactored GSI test classes so they are hard-linked into the ut_runner binary. Dynamic loading inside .ut files happens too late. 2018-06-19 21:12:53 +02:00
Matthias Koefferlein 361bc64870 WIP: fixed some build issues, removed some link dependencies which causes issues on Windows. 2018-06-19 20:31:55 +02:00
Matthias Koefferlein 33a9782f77 Proper installation target for klayout Python module. 2018-06-19 01:07:53 +02: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 4744c90557 WIP: futher fixes for Windows build. 2018-06-18 00:19:18 +02:00
Matthias Koefferlein 81a1e6fd1a WIP: futher fixes for Windows build. 2018-06-18 00:15:43 +02:00
Matthias Koefferlein 4f602bb394 WIP: fixes for Windows build. 2018-06-18 00:06:38 +02:00
Matthias Koefferlein e05c407d5e WIP: added shared object dependencies for Qt5 2018-06-17 22:59:04 +02:00
Matthias Koefferlein 741e9d73e3 WIP: fixed build 2018-06-17 19:09:54 +02:00
Matthias Koefferlein 750c85fecb WIP: fixed dependencies of projects. 2018-06-17 18:55:57 +02:00
Matthias Koefferlein 538f8f3d53 WIP: added missing files. 2018-06-17 16:51:01 +02:00
Matthias Koefferlein 4c90d98750 WIP: Fixed windows build. 2018-06-17 10:27:54 +02:00
Matthias Koefferlein 4097a5b361 WIP: turned ext module into plugins. 2018-06-17 09:43:25 +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 757c6af80f WIP: rdb module for Python, fixed unit tests for non-Qt bindings case 2018-06-15 22:49:01 +02:00
Matthias Koefferlein 147ee20b55 WIP: Class documentation shows module name and link now. 2018-06-15 01:11:35 +02:00
Matthias Koefferlein 381357bfcb WIP: correctly assigned db module to LEF/DEF reader GSI declaration 2018-06-15 01:04:42 +02:00
Matthias Koefferlein 9e972876fe WIP: correctly assigned db module to technology in GSI 2018-06-15 01:02:26 +02:00
Matthias Koefferlein 41cedf4b45 WIP: fixed the technology refactoring part 2018-06-15 00:59:38 +02:00
Matthias Koefferlein 10cfac3d42 WIP: fixed linker issues. 2018-06-15 00:31:46 +02:00
Matthias Koefferlein c360f6d4a7 WIP: first steps for making technology a db component. 2018-06-14 23:38:23 +02:00
Matthias Koefferlein 6bc1537bea WIP: remove vim swap file. 2018-06-14 00:02:41 +02:00
Matthias Koefferlein 8045989fa3 WIP: moved PCB and LEF/DEF import from ext to db/lay namespace 2018-06-13 23:59:39 +02:00
Matthias Koefferlein 4f63f5102b WIP: fixed PCB unit test .pro file. 2018-06-13 23:31:50 +02:00
Matthias Koefferlein 9ca011d138 WIP: turned Gerber and LEF/DEF import into plugins. 2018-06-13 23:27:16 +02:00
Matthias Koefferlein 5421f77e61 WIP: finished refactoring to plugins for CIF, DXF & OASIS too. 2018-06-13 22:23:27 +02:00
Matthias Koefferlein 9883ea5679 WIP: added streamers plugin structure (partially) 2018-06-13 21:39:39 +02:00
Matthias Koefferlein 77f0197f8a WIP: fixed test framework. 2018-06-13 00:43: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 acacdc3997 Included ext definitions in Python module (currently: lay) 2018-06-10 21:45:58 +02:00
Matthias Koefferlein e5aa55a25c Support for Qt-binding-less Python modules. 2018-06-09 17:01:52 +02:00
Matthias Koefferlein 7f2e740dd4 WIP: some refactoring of pya to reduce dependency on GSI for bridge applications. 2018-06-09 10:32:26 +02:00
Matthias Koefferlein d938bb999b WIP: modifications for Python 3 2018-06-09 09:42:13 +02:00
Matthias Koefferlein e1858973e2 Added unit test for briding sample lib. 2018-06-09 02:11:32 +02:00
Matthias Koefferlein 9418185771 WIP: added sample lib with bridging code 2018-06-09 01:52:13 +02:00
Matthias Koefferlein 2737e14b13 WIP: some refactoring of the GSI Python binding (less static objects, new conversion operators, preparations for external use) 2018-06-09 01:50:16 +02:00
Matthias Koefferlein eca8697398 WIP: some refactoring of pya binding and data keeping. Added more conversion functions for use in external code. Needs testing. 2018-06-07 01:05:36 +02:00
Matthias Koefferlein 17846d12dd WIP: fixed installation part for pykl module, robustness of build system. 2018-06-06 21:27:18 +02:00
Matthias Koefferlein a20c3259bf WIP: refactored mkqtdecl configuration (common part factored out), fixed .pro file dependencies 2018-06-05 23:21:15 +02:00
Matthias Koefferlein 4fda7b2a50 WIP: added gui argument to QApplication, fixed documentation of virtual methods. 2018-06-05 22:29:34 +02:00
Matthias Koefferlein 21bf382549 WIP: Fixed documentation, added QtCore.Qt.QT_VERSION(_STR) 2018-06-05 21:03:21 +02:00
Matthias Koefferlein 3b5e84a5b2 Fixed documentation of RBA::TextGenerator. 2018-06-04 23:11:02 +02:00
Matthias Koefferlein 98256ebc66 WIP: pymod tests work for Qt4 now too. 2018-06-04 00:32:02 +02:00
Matthias Koefferlein f3f6e2e7ba WIP: unit tests for pykl, some build errors fixed. 2018-06-03 23:36:06 +02:00
Matthias Koefferlein 655e59d11a WIP: Fixed build dependencies and code dependencies for Python modules (Qt5) 2018-06-03 19:54:18 +02:00
Matthias Koefferlein f093b305bf WIP: include __init__.py generation in .pro files. 2018-06-03 13:05:12 +02:00
Matthias Koefferlein d903c9f224 Use proper helper functions to activate help links - avoids warnings when there is no MainWindow. 2018-06-03 12:23:24 +02:00
Matthias Koefferlein 0ed898e3c2 WIP: proper dependencies to avoid build issues. 2018-06-03 12:16:52 +02:00
Matthias Koefferlein a522a14109 WIP: Fixed Python 2 build and import. 2018-06-03 02:44:56 +02:00
Matthias Koefferlein bfbd8732f3 WIP: basic availability of LayoutView as separate component
- The deferred method scheduler is now automatically created
  when required and when there is a QApplication
- QApplication and related have argv constructors
2018-06-03 00:54:58 +02:00
Matthias Koefferlein 40b2e9a1a5 WIP: usable constructors for QApplication and related. 2018-06-02 22:21:59 +02:00
Matthias Koefferlein ea31e5bcde WIP: removed old Qt5 binding code, fixed a segfault (static argc), enabled pya without interpreter 2018-06-02 02:03:14 +02:00
Matthias Koefferlein 3cabb23be1 WIP: more Qt Python modules and better build scheme. 2018-06-02 00:50:57 +02:00
Matthias Koefferlein 1840e74d0d WIP: avoid some warnings when using "import klayout.QtCore"
Reason: klayout_QtCore needs to be linked with QtGui so it's
GSI declarations become available. The reason is only
QSignalMapper which is in QtCore and has a QWidget argument.
2018-06-02 00:01:00 +02:00
Matthias Koefferlein 403840b109 WIP: some bug and performance fixes. 2018-06-01 23:36:01 +02:00
Matthias Koefferlein 3882f6a3b1 WIP: further generation of Python module (kind of slow currently + dependent modules need to be loaded manually) 2018-05-31 23:22:35 +02:00
Matthias Koefferlein b2f18c612a WIP: module names in help search available. 2018-05-31 21:27:10 +02:00
Matthias Koefferlein 07d9363ea7 WIP: more python modules, made gsi initialization safe against duplicate init. 2018-05-31 20:51:09 +02:00
Matthias Koefferlein 73297a3810 WIP: fixed some build issues. 2018-05-31 17:59:54 +02:00
Matthias Koefferlein ecc0520ffb WIP: Qt5 compatibility 2018-05-31 17:54:29 +02:00
Matthias Koefferlein b91a3b5cad WIP: added Qt5 support 2018-05-31 09:19:26 +02:00
Matthias Koefferlein 0e29c997f6 WIP: refactoring, fixed documentation and some mistakes. 2018-05-31 01:11:24 +02:00
Matthias Koefferlein 07b655d3bc WIP: removed debug output, resolved a consistency issue between QtGui and QtCore - QtGui was injecting an enum into QtGui. 2018-05-30 23:17:35 +02:00
Matthias Koefferlein 80d00378d3 WIP: further refactoring 2018-05-30 22:46:10 +02:00
Matthias Koefferlein f1f9132d48 WIP: further refactoring of Qt binding libs 2018-05-30 22:02:27 +02:00
Matthias Koefferlein 3b144259fd WIP: build works again at least on Qt4. 2018-05-30 01:22:33 +02:00
Matthias Koefferlein c30d52c801 WIP: fixed a lot of compiler issues after last refactoring. 2018-05-30 01:00:13 +02:00
Matthias Koefferlein 6468bb7ab9 WIP: refactoring of GSI structure for separated modules. 2018-05-30 00:39:58 +02:00
Matthias Koefferlein 0b0393ce56 First version of Python module. 2018-05-26 21:31:39 +02:00
Matthias Koefferlein 108f90e382 Small enhancements for package manager
- Progress on download
- Some icons did not get marked (8 bit indexed image format)
- Colors in installation status dialog

One internal enhancement: progress adaptors can be
instantiated temporarily now to catch progress events.
2018-05-19 00:22:15 +02:00
Matthias Koefferlein bb86970ac8 Bugfix: GIF (8 bit indexed) icons could not be marked in package manager. 2018-05-17 22:38:17 +02:00
Matthias Koefferlein 1b607474b8 Selection shows PCell display name of instances. 2018-05-17 22:31:05 +02:00
Matthias Koefferlein f74f2d3416 Fixed bug #121 (reopening of PCell's in GDS and - partially - in OASIS) 2018-05-17 22:24:32 +02:00
Matthias Koefferlein 887bcb3e04 Fixed version in Changelog 2018-05-04 21:21:14 +02:00
Matthias Koefferlein d075c37cb4 Windows build fixed, version incremented to 0.25.3, updated changelog. 2018-05-02 21:47:30 +02:00
Matthias Koefferlein 74cc8eea07 Compatibility with Ruby 1.8.7 (main app test), tests fixed for CentOS6 2018-05-02 07:32:20 +02:00
Matthias Koefferlein 9084a7f519 Fixed Windows build, changed tl::Clock documentation 2018-05-01 22:48:08 +02:00
Matthias Koefferlein 8596b0b9ea libcurl integration and HTTP support enhanced
Issue was: the asynch interface for HTTP access
wasn't entirely compatible between Curl and Qt
implementations.

Plus, the progress integration was messed up
because of the deleteLater scheme (progress was
visible even after the connection ended).

The deleteLater scheme was replaced by an
explicit close which does not require the
connection to be deleted immediately in the
receivers.
2018-05-01 21:24:05 +02:00
Matthias Koefferlein 6edb5b9f3e Build fixed. 2018-05-01 08:17:51 +02:00
Matthias Koefferlein 90c5ff4b12 Bugfix: progress response time was long sometimes
Reason: the timer involved measured CPU time. So if the
process wasn't CPU intensive (i.e. waiting for network
response), cancelling the operation wasn't possible.
2018-04-30 23:25:23 +02:00
Matthias Koefferlein 2454104346 Small bug fixes for Salt Package manager
Download URL's and documentation URL's have not
been shown properly in the package preview.
2018-04-30 23:24:32 +02:00
Matthias Koefferlein 080623ad15 libcurl substitute for Qt network.
Reasoning: on Qt <4.7, custom request are not available.
They are required however to implement WebDAV. libcurl
provides a substitute for QNetwork. This is important
for deployment on CentOS6 for example.
2018-04-30 23:23:07 +02:00
Matthias Koefferlein 4c4b079286 Second part for implementation of #113 (healing of XOR output) 2018-04-29 23:02:40 +02:00
Matthias Koefferlein 821aab3320 Implemented #113 (Heal option after tiled XOR) 2018-04-28 17:58:57 +02:00
Matthias Koefferlein ccfe6fa918 FEATURE: 'labels' method in DRC scripts allows copying labels to output layers. 2018-04-28 10:36:13 +02:00
Matthias Koefferlein 86aea962c9 Alignment of method signature in RDB API. 2018-04-28 10:35:50 +02:00
Matthias Koefferlein f538885fb3 Added some convenience methods for building RDB entries from shapes. 2018-04-28 09:46:42 +02:00
Matthias Koefferlein 89b4397aa4 Fixed some doc typos. 2018-04-28 00:32:23 +02:00
Matthias Koefferlein ff9be6219d Fixed some doc typos. 2018-04-28 00:31:41 +02:00
Matthias Koefferlein c94723bbce New RBA/pya methods
More Shapes#insert flavours with Shapes and RecursiveShapeIterator,
RecursiveShapeIterator#dtrans.
2018-04-28 00:21:36 +02:00
Matthias Koefferlein f989b961c1 Bugfix: show XOR progress after the particular job is done. 2018-04-24 21:49:51 +02:00
Matthias Koefferlein 43325cb861 Fixed Windows build. 2018-04-24 21:34:16 +02:00
Matthias Koefferlein 08bcd1e418 Fixed #117 (DTrans#itype broken) 2018-04-24 21:26:21 +02:00
Matthias Koefferlein a4b396535f Fixed #116 (polygon cutting issue)
Last step: polygon cut algorithm with fallback: merge before cut on invalid polygons.
2018-04-24 20:58:00 +02:00
Matthias Koefferlein 9622a2e669 WIP: added testcases for extreme polygon decomposition on GDS writing. 2018-04-24 19:28:45 +02:00
Matthias Koefferlein e183323d9a WIP: new version of polygon cut algorithm which is simpler and more stable. 2018-04-24 01:09:28 +02:00
Matthias Koefferlein ca9a6db8a5 Scanline polygon generator: avoid spikes
The implementation of the scanline polygon generator
will avoid spikes as hole cutlines. Helps
fixing #116.
2018-04-23 22:22:32 +02:00
Matthias Koefferlein e710b28a6d FEATURE: added RBA::Polygon#split, RBA::Polygon#split, RBA::DSimplePolygon#split, RBA::DSimplePolygon#split 2018-04-20 22:26:57 +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 34b534e8b4 Fixed memory statistics for polygons. 2018-04-19 00:13:28 +02:00
Matthias Koefferlein 067d52a269 FEATURE: DXF accuracy and "keep layer names" feature
* "keep layer name" will not try to modify layer names into
  GDS layer/datatypes. The feature is available in the DXF
  reader options and for the buddy scripts as "--keep-layer-names"
  It applies to CIF too.
* "contour accuracy": when merging lines into contours, this
  accuracy is applied to find neighbors. By default this value
  is 0. If set to a value >0, points with distances (square
  metrics) less than this value will be connected.
  The buddy script option is --dxf-contour-accuracy=value.
2018-04-18 23:34:59 +02:00
Matthias Koefferlein 65cfb2d4e4 WIP: consistent naming of some predicates in Ruby with ?, unit tests for reader option bindings. 2018-04-17 01:56:59 +02:00
Matthias Koefferlein 17e9e48831 Fixed #114 (Custom line styles not loaded by tech) 2018-04-17 01:23:21 +02:00
Matthias Koefferlein 8bc0063fe6 WIP: DXF reader options config page. 2018-04-17 00:57:14 +02:00
Matthias Koefferlein c7fcd18413 Fixed #115 (Reader options are not persisted). 2018-04-17 00:56:53 +02:00
Matthias Koefferlein 86a90571e6 WIP: DXF keep layer names option, refactoring, added tests, UI, XML serialization. 2018-04-16 19:47:12 +02:00
Matthias Koefferlein 085a2ee2b1 WIP: keep DXF and CIF layer names, DXF contour accuracy. 2018-04-16 00:55:57 +02:00
Matthias Koefferlein 1b0317c120 Memory statistics: demangle symbol names. 2018-04-15 01:19:28 +02:00
Matthias Koefferlein e1922da3b2 Better memory statistics. 2018-04-15 00:54:30 +02:00
Matthias Koefferlein 4acc336d69 Fixed DXF display issue (see https://www.klayout.de/forum/comments.php?DiscussionID=1053) 2018-04-11 22:53:55 +02:00
Matthias Koefferlein 256de9bc84 Small DXF bugfix: persist name of subcells of cell variants. 2018-04-11 21:52:23 +02:00
Matthias Koefferlein 1e2f8a0ce5 Fixed #112 (Salt package repo relative paths)
This patch also includes:
 * A segfault fixed that happend on some errors
 * package URL's are resolved relative to the
   salt mine URL if one is given.
2018-04-10 21:40:07 +02:00
Matthias Koefferlein 3495f9c698 Fixed #110 (ut_runner not working on MacOS) 2018-04-08 01:27:22 +02:00
Matthias Koefferlein d3227b5bda Merge branch 'master' of https://github.com/Kazzz-S/klayout 2018-04-07 16:02:39 -07:00
Matthias Koefferlein da1daae1d8 Fixed #107 (Undo not working with shapes) 2018-04-07 16:00:37 -07:00
Matthias Koefferlein 829966d9a1 Fixed #108 (Box#enlarge, Box#move on empty boxes) 2018-04-07 09:21:50 +02:00
Matthias Koefferlein 3d5780db2b Bugfix #109 (part 3): OASIS/GDS writer fixed + unit test added. 2018-04-06 23:27:29 +02:00
Matthias Koefferlein 655eb49afd Bugfix #109 (part 2): re-established compatibility with previous version. 2018-04-06 23:08:41 +02:00
Matthias Koefferlein ea3ebba470 Bugfix #109 (part 1): account for long != long long on Windows in tl::Variant 2018-04-06 14:53:40 +02:00
Matthias Koefferlein a7446dd0dc Fixed #106 (Search & replace help page enhancements) 2018-03-31 13:39:35 +02:00
Matthias Koefferlein 21e2af2a97 Fixed #102 (Potential issue while upgrading from .25.1 to .25.2)
The reason was that for 0.25.1 "macro-editor-font-size" was allowed
to be an empty string (the default). Which meant: take default application
font size. In 0.25.2 this now was required to be a number and 0 was
the default for "auto" font size.

Two changes:
 - The default is back to empty string ("0" is still allowed as default)
 - The application was made safe against broken configuration files: an
   error is printed to the log, but apart from that the application
   will work (the configuration value is ignored however).
2018-03-20 18:52:00 +01:00
Thomas Ferreira de Lima 1ed12d4715 Merge branch 'master' into macos_retina 2018-03-19 23:21:06 -04:00
Thomas Ferreira de Lima 73e84d4f8d qt5 compatible fontgen.cc 2018-03-19 23:08:50 -04:00
Matthias Koefferlein 59b1849c96 Fixed the font issue for Retina displays: there should be fixed fonts for all resolutions down to 1/6 (Retina display, 2x oversampling) 2018-03-20 02:25:49 +01:00
Matthias Koefferlein b04d9f38b9 Fixed the recent patch: mouse coordinates need to be scaled by devicePixelRatio too. 2018-03-20 01:03:33 +01:00
Matthias Koefferlein 0a01946202 A refactoring attempt for the Retina display issue (#94)
This is what's been done:
 - remove the old double and single buffering /w mask approach
 - modify the bitmap rendering so it's done in a offscreen
   image before subsampling
   (effect: rulers display smoothly in subsampling mode)
 - refactoring the "device pixel ratio" topic:
   Made the DPR a variable, viewport width is scaled up
   to reflect the true image size, inserted #ifdef's for Qt4.

DISCLAIMER: I don't know whether this still works - I don't
have a Retina display :-(
2018-03-19 22:22:24 +01:00
Matthias Koefferlein 415d52f35d Fixed some issues found by Coverity scan. 2018-03-19 18:24:09 +01:00
Matthias Koefferlein 13062292fe Modified solution for the segfault mentioned in ticket #85 (@thomaslima: thanks for the root cause analysis) 2018-03-16 10:05:09 +01:00
Thomas Ferreira de Lima a6738f5be4 better ruler rendering. Fails totally at 2x oversampling 2018-03-15 23:07:25 -04:00
Thomas Ferreira de Lima b6ec5b7c0d retina rendering of layout fine. rulers and other bitmap objects not obeying retina dpi 2018-03-15 14:37:38 -04:00
Thomas Ferreira de Lima 53bc8e97fe a little more stable.
still unstable for oversampling >1. also rulers do not render well
2018-03-15 03:55:47 -04:00
Thomas Ferreira de Lima a94ad6622a retina display working prototype. only works if oversample = 1. 2018-03-15 03:32:46 -04:00
Thomas Ferreira de Lima 8419ed0c6f fixing the bug mentioned in PR #85 2018-03-15 00:08:18 -04:00
Matthias Koefferlein 02c9c645ec Rephrase confusing option in 'save as' dialog. 2018-03-12 20:55:15 +01:00
Matthias Koefferlein 9fd169f183 Merge branch 'bug_89' 2018-03-12 20:47:38 +01:00
Matthias Koefferlein 3ae71d7e72 Bugfix: properly initialize new config value 2018-03-12 20:47:33 +01:00
Matthias Koefferlein 802237141b Fixed #90 (DRC issue with 'extended' and joined = true) 2018-03-12 00:47:04 +01:00
Matthias Koefferlein 8bec89611f Trying to fix alpha channel issue by providing upper 8 bits set in QImage. 2018-03-11 23:57:41 +01:00
Matthias Köfferlein 4ef4635e24
Merge pull request #86 from lightwave-lab/master
Building KLayout on macOS High Sierra with python3 from brew and Qt 5.9.4
2018-03-11 22:20:41 +01:00
Matthias Köfferlein dc5792d768
Merge pull request #87 from lightwave-lab/open-with-macos
Open with macos
2018-03-11 22:08:49 +01:00
Matthias Koefferlein 5fbc20702e Macro editor enhancements (stop on exceptions)
This commit tries to address #85 and provide these features:
 - dynamic configuration of the macro IDE behaviour
 - side effect: a new entry in the setup dialog for the
   IDE settings
 - "stop on exceptions" can be taught to ignore certain files
2018-03-11 21:58:59 +01:00
Alex Tait 9717612c93 allowed user defined literals. build and deploy passes with MacOsSierra version of Ruby. 2018-03-08 14:33:43 -05:00
Thomas Ferreira de Lima 8ec78a99a9 open with working properly in MacOS. 2018-03-07 12:54:01 -05:00
Thomas Ferreira de Lima c82bb445ac testing file open event 2018-03-07 11:07:29 -05:00
Matthias Koefferlein 51e40cc9ab Merge remote-tracking branch 'remotes/origin/master' 2018-03-03 00:22:10 +01:00
Matthias Koefferlein 7da3b0206a DRC as early autorun
This will finally enable DRC runsets started from an autorun macro.
2018-03-03 00:21:23 +01:00
klayoutmatthias 3d5fe871e2 Fixed #84 (Python modules: breakpoints not working on Windows) 2018-03-03 00:18:18 +01:00
Matthias Koefferlein 6f0ecd3d9c Show tip window once for non-standard background combination mode. 2018-02-27 21:59:52 +01:00
Matthias Koefferlein 2ffdbb4d91 Suppress repeated message in unit tests if not required. 2018-02-27 00:02:57 +01:00
Matthias Koefferlein d0cb17b386 ut_runner: Added -r option, fixed help text 2018-02-24 18:09:50 +01:00
Matthias Koefferlein eea53b3091 Fixed #79 (Macro Editor: Replace function enabled also for read-only macros) 2018-02-23 23:04:21 +01:00
Matthias Koefferlein 5f4e715dcf Fixed #77 (copy_tree should work in non-editable mode too) 2018-02-21 07:47:41 +01:00
Matthias Koefferlein a272ba39a7 Remove a debug output. 2018-02-21 07:47:02 +01:00
Matthias Koefferlein 2f46f0d1c6 Fixed some issues found with Coverity. 2018-02-21 00:21:19 +01:00
Matthias Koefferlein 6052a04429 A few enhancements and unit tests for PCells
This commit adds unit tests for implementation helper-based
PCells in Python and Ruby.
2018-02-17 01:26:25 +01:00
Matthias Koefferlein f6f75cd791 A small rework of the Python PCell helpers
The aim of this rework was to enable PCell implementations
that use the basic methods rather than the "_impl" variants.
For the latter, potential variable name clashes happen when
parameters are called "cell", "layout", "layer" or similar.

New methods enable implementation on the level of the
non-"impl" methods. For example:

  def produce(self, layout, layers, parameters, cell):
    self.init_values(parameters, layers)
    ...
    self.finish()
2018-02-13 00:59:11 +01:00
Matthias Koefferlein 12bb664a80 Fixed the default implementation of transformation_from_shape in Python 2018-02-13 00:09:54 +01:00
Matthias Koefferlein 4f3b205d93 Fixed #71 (target cell argument is required) 2018-02-12 22:46:54 +01:00
Matthias Koefferlein 5d59b890d3 Small bugfix: DRC error message on wrong '@' input/output was wrong. 2018-02-12 22:04:03 +01:00
Matthias Koefferlein 6d0fe85425 Fixed #75 (Python PCell issue when parameters are called 'layer')
This commit
- Ignores exceptions when checking for PCells that accept shapes.
  Hence a single rogue one does not break the feature.
- Prevents errors when parameters named "layer" are present
  by making the implementation safe against this case.
- In addition, guiding shape parameters of type "Path", "Box" etc.
  (i.e. integer types) are supported too although they are
  not recommended for portability.
2018-02-11 00:34:28 +01:00
Matthias Koefferlein 6a762db29b Reworked bookmark menu implementation to avoid MacOS menu issue
Without this commit, bookmark menus got grayed out
on MacOS with Qt5 sometimes. Now, the implementation
of recent file menu, bookmark menu, macro menu and
the static main menu use the same framewkork which
includes a workaround for the disabled menu issue.
2018-02-10 18:41:05 +01:00
Matthias Koefferlein 1e29b29c13 Merge remote-tracking branch 'remotes/origin/menu_issue' 2018-02-10 17:32:33 +01:00
Matthias Koefferlein d6adadcad4 Added file source to 'stream has unknown format' message. 2018-02-09 22:56:03 +01:00
Matthias Koefferlein 396d0263d4 Some changes to work around MacOS menu issues
- ID's are used instead of pointers to identify menu items
  vs. QAction's. This is a weak measure to enhance predictability.
- The file menu is built from abstract menu items instead with
  native Qt objects. This way the bug fix applies both to
  file menu items and the other menu entries

The main fix is:
- A menu sync is forced by emitting a focusWindowChanged event
  from the application object. This forces the QCocoaMenuBar
  implementation to update the system menu.
2018-02-08 16:33:54 -08:00
Matthias Koefferlein 6df645a917 Fixed #74 (small-corner boolean issue). Tests need update 2018-02-08 23:12:58 +01:00
Matthias Koefferlein 363c0c9fed Fixed #73 (allow 'change layers' on PCells which support a single layer parameter) 2018-02-06 22:51:06 +01:00
Matthias Koefferlein fb69dfd866 Fixed HTML version of class documentation - links to methods have not been working properly. 2018-02-04 19:07:33 +01:00
Matthias Koefferlein 808159bcab Fixed #72 (Edges/Region NOT issue) 2018-02-01 22:35:47 +01:00
Matthias Koefferlein 432a8dddb8 Bugfix: Ruby debugger breakpoints were disabled sometimes 2018-02-01 21:18:48 +01:00
Matthias Koefferlein 23c2ae7306 Fixed #69 (DRC: 'inside' does not merge shapes of second input) 2018-01-30 00:40:17 +01:00
Matthias Koefferlein ccb76a9f09 Merge remote-tracking branch 'remotes/origin/master' 2018-01-27 01:31:47 +01:00
Matthias Koefferlein 705056675a Fixed a potential crash in the package manager on computing dependencies 2018-01-26 16:28:25 -08:00
Matthias Koefferlein 475bf6eb83 Small bug fixes in the package manager
- Remove button wasn't enabled if multiple packages
  were selected
- A potential crash on removing packages was fixed
2018-01-27 01:05:25 +01:00
Matthias Koefferlein aab425a58c Fixed #66 (Authentication dialog should indicate retry) 2018-01-24 22:08:13 +01:00
Matthias Koefferlein 04b4c21e82 Fixed #68 (OASIS reader issue with degenerated shapes) 2018-01-24 21:21:02 +01:00
Matthias Koefferlein 53328d1767 Merge branch 'macos-build' from kazzz 2018-01-14 17:29:59 +01:00
Matthias Koefferlein 8b479bd20a Fixed #64 (crash on exit) 2018-01-14 00:15:16 +01:00
Matthias Koefferlein a2ba300bd7 More consistent 64bit coordinate support 2018-01-12 00:30:49 +01:00
Matthias Koefferlein 390a5c11a8 Using OASIS files for smaller size as DRC golden data 2018-01-12 00:06:24 +01:00
Matthias Koefferlein ed945a28d4 Fixed #63 (wrong output on DRC non_interacting with empty second input) 2018-01-10 23:20:34 +01:00
Matthias Koefferlein 2de6b691b4 64bit coordinate support enhanced
- int128 to string support for output
- unit tests
- some compiler issues fixed
2018-01-10 22:12:55 +01:00
Matthias Koefferlein d11e2ed8a6 Fixed #62 (QXmlSimpleReader#parse cannot be called) 2018-01-10 20:21:56 +01:00
Matthias Köfferlein 9a141a3fc8
Merge pull request #60 from klayoutmatthias/master
Fixed #53 by introducing a scroll area around the 'about' text.
2018-01-07 20:51:27 +01:00
Matthias Koefferlein a63ef901aa Fixed #53 by introducing a scroll area around the 'about' text. 2018-01-07 20:49:22 +01:00
Matthias Koefferlein 02f84181f5 Merge remote-tracking branch 'origin/macos-build' into macos-build 2018-01-07 11:24:54 -08:00
Matthias Koefferlein 8eb3f5e6ce Fixed #59 (async download of package index and details) 2018-01-07 10:22:47 +01:00
Matthias Koefferlein bf5f932ff1 HTTP access enhancments
Added the ability for asyn requests.
Fixed a memory lead issue in WebDAV access.
2018-01-07 08:56:06 +01:00
Matthias Koefferlein 55be7d78e7 Merge remote-tracking branch 'matthias-origin/async-reader' into macos-build-on-master 2018-01-06 17:10:35 -08:00
Matthias Koefferlein ef67790d2c Implemented #54 (more typeinfo visibility) 2018-01-02 16:24:31 -08:00
Matthias Koefferlein 8003d1bb47 Merge branch 'master' into macos-build-on-master 2018-01-02 23:37:45 +01:00
Matthias Koefferlein ae6485a0df Fixed #51: segmentation fault on return to main window and other opportunities 2018-01-02 14:19:35 -08:00
Matthias Koefferlein ffb56335fb Updated copyright note to 2018. 2018-01-01 21:08:06 +01:00
klayoutmatthias efa921c950 Removed visibility declaration which wasn't actually required. 2018-01-01 19:04:52 +01:00
klayoutmatthias 7e0f1522ac Windows build compatibility
The issue is with "dllexport": previously, dllexport was present on
exposed templates tool (= visibility(default) for gcc/clang). This
ensured MacOS compatibility since then the typeinfo is corretly
shared and dynamic_cast/typeid works.

For Windows, the "dllexport" equivalent requires the template
instantiations to be declared "external" which is a coding nightmare.

The solution is to provide separate macros for real (non-specialized,
not explicitly instantiated) templates (.._PUBLIC_TEMPLATE) which
is defined as empty for Windows and "visiblity(default)" for gcc/clang.
2018-01-01 18:55:11 +01:00
Matthias Koefferlein 111e1f12e0 WIP: Windows build compatibility 2018-01-01 14:44:25 +01:00
Matthias Koefferlein c8108dd038 WIP: Windows build compatibility 2018-01-01 14:34:49 +01:00
Matthias Koefferlein d670083111 Even more exported templates .. 2017-12-31 11:43:44 -08:00
Matthias Koefferlein c4cf394719 One more external visibility ... 2017-12-31 10:56:46 -08:00
Matthias Koefferlein 6b4d24b442 One more external visibility ... 2017-12-31 10:23:54 -08:00
Matthias Koefferlein b7a18b3278 Added method to derive application path for MacOS (/proc isn't there on MacOS) 2017-12-31 09:55:23 -08:00
Matthias Koefferlein 48a6b4b57a Exceptions have to be exported from DSO's too to make the recognized in catch statements. 2017-12-31 09:54:47 -08:00
Matthias Koefferlein 2084a7e85c Don't crash if no unit test libs are found in the unit test runner. 2017-12-31 09:52:54 -08:00
Matthias Koefferlein f5b7a037ad Turn the unit test runner into a ordinary binary too. 2017-12-31 09:51:38 -08:00
Matthias Koefferlein 93572a8f0b Fixed dbEdges iterator (ported fix of dbRegion iterator for MacOS/clang to dbEdges too) 2017-12-30 17:15:24 -08:00
Matthias Koefferlein 167df7eae6 Fixed a unit test bug - the dbCell test was working by coincidence on other systems. 2017-12-30 16:46:49 -08:00
matthias 063811edc4 Solved the clang/MacOS startup failure and menu issue
1.) Startup issue:

This is solved by making sure templates with virtual functions
are made visible in the DSO. This way, dynamic_cast is possible
across DSO's.

Scary: clang/MacOS wants the forward declarations be declared visible as well.

2.) Menu issue:

The best solution is to have only one QMenuBar. The navigator
now gets a synthetic menu bar composed of QToolButtons.
2017-12-30 15:22:16 -08:00
Matthias Koefferlein 6526625a67 Fixed Ruby-less build. 2017-12-29 20:35:34 +01:00
Matthias Koefferlein 7715d924ee Fixed #42 (headless mode support with Qt5/-zz) 2017-12-27 21:44:14 +01:00
Matthias Koefferlein 87531dadcc Fixed #48 (Cancel does not reset current tool) 2017-12-27 21:33:38 +01:00
Matthias Koefferlein 84cf46bcd2 Fixed an issue with the new process_events implementation: compiler resolution did not work well for the two types - one them them reimplemented and the other not. 2017-12-27 19:54:06 +01:00
Matthias Koefferlein 7a28389bf1 Fixed Windows build. 2017-12-27 18:27:18 +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 9906565013 Further refactoring - more functionality for GUI/non-GUI application classes. 2017-12-26 00:03:40 +01:00
Kazunari Sekigawa 1fe6280970 Buddy tools have to be built as ordinary command line tools; not as bundles (*.app)
This refs #10.
2017-12-26 06:58:03 +09:00
Matthias Koefferlein bbb1514184 WIP: some refactoring. 2017-12-25 22:35:16 +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 395643b427 Fixed #44 (Transformation constructor with x,y not working) 2017-12-23 19:42:39 +01:00
Matthias Koefferlein 692ae10fe2 Fixed #45 (Partial selection does not capture instance) 2017-12-22 21:01:40 +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 4855231342 Fixed #40 (Crash in Python binding)
Plus the same effect was observed for Ruby and fixed there as well.
2017-12-21 00:55:40 +01:00
Matthias Koefferlein 6f66e04c8e Fixed #41 (Polygon#touches? method) 2017-12-20 22:55:15 +01:00
Matthias Koefferlein 4f3c745790 Updated the wording of some documentation texts and fixed some errors there. 2017-12-20 22:11:42 +01:00
Kazunari Sekigawa 3f0152149e To try suggested patch "patch0.patch.txt" provided by Matthias.
I should have created a topic branch for this.

This refs #8. (reverted from commit e254f8a67e)
2017-12-19 21:30:01 +09:00
Kazunari Sekigawa e254f8a67e To try suggested patch "patch0.patch.txt" provided by Matthias.
I should have created a topic branch for this.

This refs #8.
2017-12-19 21:14:25 +09:00
Kazunari Sekigawa 74da54faf8 To try suggested patch "patch0.patch.txt" provided by Matthias.
This refs #8. (reverted from commit 0f14c13860)
2017-12-19 20:24:59 +09:00
Kazunari Sekigawa 0f14c13860 To try suggested patch "patch0.patch.txt" provided by Matthias.
This refs #8.
2017-12-19 19:36:54 +09:00
Matthias Koefferlein 21e42788e6 Fixed #39 (Action cannot be reassigned) 2017-12-17 22:38:48 +01:00
Matthias Koefferlein 28ff493de7 Replaced patch by generated code
The Qt4/5 bindings are generated automatically. Hence any manual
patches are bound to become lost on the next generation run.

This commit removes symbols which are not available on MacOS
by a code-generation solution.

These symbols are only required for WindowsCE so their
unavailability on other systems is not a big loss.
2017-12-17 15:30:37 +01:00
Matthias Koefferlein ad741d0eb7 Fixed #36: harding against destruction of object inside event handler
Plus: declare the form builder to return a new
widget object (the way it is).
2017-12-16 01:45:35 +01:00
Matthias Koefferlein 6e14460334 Ported enhancements for #33 fix (factory callbacks) to Ruby too. 2017-12-13 00:21:56 +01:00
Matthias Koefferlein 0c25e8cab1 Maybe fixed a linker issue (db::GDS2Writer vtable not found) 2017-12-12 23:23:13 +01:00
Kazunari Sekigawa bded8f9fa4 When KLayout 0.25 is built with Qt 5.8.0 or later, this workaround is not required.
This refs #1.
2017-12-12 20:50:23 +09:00
klayoutmatthias b49db04fb4 Fixed MacOS build
The LLVM STL implementation does not recognize "typedef void iterator_traits"
as dummy declaration. It will fall back to an empty traits struct.
Using the default "forward_iterator_tag" for the iterator_traits solves
this compile issue.
2017-12-12 00:21:16 +01:00
Matthias Koefferlein 1cea7dfd23 Fixed #33 (Plugin factory not working when using with Python)
The fix consisted of introducing "factory" type virtual
methods which ensure that a reference is held to the
returned object. This is important for implementing
factory methods in Python. Without this, the object
get destroyed before we have a chance to increment the
reference count.
2017-12-11 23:51:00 +01:00
Kazunari Sekigawa 14894e6ab7 Qt::WindowOkButtonHint and Qt::WindowCancelButtonHint are supported for Windows CE.
This refs #1.
2017-12-10 16:42:35 +09:00
Matthias Koefferlein 11c9d37e93 Fixed #32 (rounding issue with instance properties) 2017-12-09 23:00:41 +01:00
Pankaj Pandey f318cb2e30
Update tlString.h 2017-12-06 18:33:57 +05:30
Pankaj Pandey 58281695fb
Update tlString.cc 2017-12-06 18:32:17 +05:30
Pankaj Pandey ff74c466d5
Replace `m_m128` -> `m_int128` in tlVariant.cc
Typo in member variable name.
2017-12-06 16:11:28 +05:30
Matthias Koefferlein 2cd5d68db2 Build enhancements
Qt <4.7 is partially supported now:
 * Without Qt bindings (build.sh -without-qtbinding ...)
 * With reduced functionality (i.e. package manager won't work)

Build compatibility with STL-less Qt installations
2017-12-05 22:26:30 +01:00
Matthias Koefferlein fdb012aa2d Fixed #26 (Exceptions are reported every time they propagate up in the call chain in the ruby debugger) 2017-12-02 23:02:45 +01:00
Matthias Koefferlein 1bb662b9ed Fixed #21 (Autorun(-early) doesn't seem to run when lym files are inside a package) 2017-12-02 18:48:28 +01:00
Matthias Koefferlein 54a373572f Fixed #24 (Text insert dialog possible bug in 0.25 but not in 0.24) 2017-12-01 22:36:33 +01:00
Matthias Koefferlein 8e55a4171e Fixed #30: Writer options dialog non-functional on a fresh configuration 2017-11-29 23:23:28 +01:00
Matthias Koefferlein be80682853 Fixed #29 (permissive mode for OASIS writer on odd-width paths)
This commit adds "permissive" mode to OASIS writer to allow
odd-width paths (which are rounded).

This commit contains in addition:
 * The check for odd-width paths is done post-scaling, so
   reducing the DBU is a workaround
 * Unit tests for the RBA binding of SaveLayoutOptions
 * Documentation updates on some SaveLayoutOptions attributes
 * Using Ruby predicate notation for cif_blank_separator?
   (note question mark) for consistency. The old notation is
   still there but deprecated
 * --permissive option on buddies command lines where applicable
2017-11-29 22:34:41 +01:00
Matthias Koefferlein c1e501197c #28 fixed (CIF file format detection fails) 2017-11-28 23:24:38 +01:00
Matthias Koefferlein 11cb5eb998 Qt 5.8.0 compatibility 2017-11-26 22:51:36 +01:00
Matthias Koefferlein 4dbe28e9fa MacOS build fix. 2017-11-26 22:50:35 +01:00
Matthias Koefferlein 8378e59b41 Fixed a build issue with Ruby libraries. 2017-11-16 22:51:54 +01:00
Matthias Koefferlein 20a6c5ec6b Another fix for Ruby/Python-less builds. 2017-11-07 20:48:15 +01:00
Matthias Koefferlein 4a81e228cf Fixed non-Ruby/Python builds. 2017-11-06 21:14:02 +01:00
Matthias Koefferlein 08a662bcfd Reworked ruler initialization procedure. 2017-11-06 21:09:55 +01:00
Matthias Koefferlein 059c7ee37a Ruler setup enhanced
- Issue: on an entirely fresh installation the "Ruler"
  entry was not visible. Now, a new standard template
  called "Ruler" is present.
- Ruler templates with categories cannot be deleted
  any more and are shown with italic font. If they
  were deleted, they would show up again after restart.
2017-11-05 23:39:50 +01:00
Matthias Koefferlein 8cb36cdfe7 Added one more buddy tool: strmrun
strmrun allows running a Python or Ruby script
in the context of KLayout's API. A subset of the
API will be available - all classes connected with
the user interface are not available. Neither is
the DRC engine.
2017-11-05 18:03:17 +01:00
Matthias Koefferlein b5e6423c8d Added tooltips and filter to menu customization dialog 2017-11-05 09:23:24 +01:00
Matthias Koefferlein dbc5079bb4 More robustness for PCell declarations on mutable parameter declarations. 2017-11-02 07:37:05 +01:00
Matthias Koefferlein 0cfc43d297 Fixed DRC tests - need OASIS normalization 2017-11-01 22:48:33 +01:00
Matthias Koefferlein 4599d342ef Merge branch 'master' of www.klayout.org:/home/matthias/klayout 2017-11-01 22:14:33 +01:00
Matthias Koefferlein af1c5c9f66 Bugfix: avoid a segfault
Reason: PCellDeclaration::parameter_declaration is volatile when
the PCell does not want parameter declaration caching. In this
case, begin .. end iterators must not be taken from different
calls to parameter_declaration for example.
2017-11-01 22:12:49 +01:00
klayoutmatthias 4cbb98745d Merge branch 'master' of www.klayout.org:/home/matthias/klayout 2017-11-01 22:11:08 +01:00
klayoutmatthias ccf6570d46 Crash handler does not pop up window in batch mode now. 2017-11-01 22:10:23 +01:00
Matthias Koefferlein ea5920bda4 Fixed ut_runner
- Implict macros were not disabled as they should
- This revealed that DRC scripts could not run with -rx
2017-11-01 18:20:45 +01:00
Matthias Koefferlein 5d9513b6a5 Added some more GSI methods:
* LayoutView#zoom_fit_sel
* ObjectInstPath#layout, ObjectInstPath#dtrans and ObjectInstPath#source_dtrans
2017-10-31 23:54:07 +01:00
Matthias Koefferlein 226f39c920 Fixed build on older gcc versions. 2017-10-31 22:30:23 +01:00
Matthias Koefferlein 3c3c3a0b87 Apply custom hidden flags also to menu items created from macros. 2017-10-31 09:38:29 +01:00
Matthias Koefferlein 52e893ae17 Two method aliases in RBA::Vector/DVector to provide Point compatibility 2017-10-29 19:11:50 +01:00
Matthias Koefferlein b1e83e0bdb New feature: customizable menu items (hide/show)
In the setup dialog (Customize Menu page), there are check boxes
now by which menu entries and menus can be enabled or disabled.

CAUTION: don't disable the setup function :-)
2017-10-29 17:39:49 +01:00
Matthias Koefferlein 99552a5484 GSI binding for new Action features. 2017-10-29 13:59:44 +01:00
Matthias Koefferlein c4fe283c2d Changed wording of key binding string in macro properties form. 2017-10-29 13:44:29 +01:00
Matthias Koefferlein 26ecc6e1a6 Rework: custom/default key bindings
Issue: macro definitions had to be synchronized for
custom key bindings. That's not possible for readonly
macros and breaks the architecture.

Now, there is a default binding and a custom binding:
the macros provide a default binding only and the custom
key binding can override this. This scheme is implemented
consistently, so now the "reset" function of the key
binding editor simply clears the custom binding.

Side effect: reset of individual key bindings is possible.

Another side effect: removing a key binding from an
item with a default one is not possible. Instead, redefine
it.
2017-10-29 13:34:57 +01:00
Matthias Koefferlein 8a8fc18bb0 Use real macro names when generating the menu paths. 2017-10-29 10:47:01 +01:00
Matthias Koefferlein 998ea6df10 RBA::Macro#name and RBA::Action#menu 2017-10-29 09:58:30 +01:00
Matthias Koefferlein 9b7a887ad8 Added GSI support for Action#separator 2017-10-29 01:27:56 +02:00
Matthias Koefferlein c5017c811e Bugfix: avoid data loss in macro editor
The bug was this:
- A macro is opened and modified in the macro IDE
- The directory which the macro is kept in is touched
Effect: the macro was reloaded and the edits were discarded.
2017-10-28 22:37:52 +02:00
Matthias Koefferlein 6ee4ba6a90 Added a default constructor to LayoutView
The use cases for such an object are limited - mainly
for producing layer properties.
2017-10-28 21:14:35 +02:00
Matthias Koefferlein cb29a2d790 Fixed output of stdout to macro IDE log
No additional newlines are inserted on flush -
this enhances compatibility with unit test framework.
2017-10-28 21:13:46 +02:00
Matthias Koefferlein d90593df89 Added a convenience binding for vector+point
This way, the vector/point sum is commutable.
vector+point == point+vector.
2017-10-27 22:02:26 +02:00
Matthias Koefferlein 374816fe0e Tiny issue: border for OASIS writer options page. 2017-10-26 21:25:36 +02:00
Matthias Koefferlein 67b4fb33fc Bugfix: put the tech selector to the right position in the toolbar. 2017-10-24 23:49:16 +02:00
Matthias Koefferlein 6b65080738 Non-collapsing cell tree also for sorting order change. 2017-10-24 23:18:06 +02:00
Matthias Koefferlein 59b5c7d9df First attempt to implement non-collapsing cell trees. Still collapsing: on sorting change. 2017-10-24 21:36:54 +02:00
Matthias Koefferlein 6364530c69 Show native paths in macro IDE too
So far, only the macro paths (macros/pymacros/drc)
are shown. With this fix, also the native paths
like "ruby" and "python" are listed.
2017-10-23 21:45:58 +02:00
Matthias Koefferlein 1a97771c25 Bugfix: modal help dialogs properly show the text panel now. 2017-10-22 23:35:20 +02:00
Matthias Koefferlein 4cbfec9c35 New feature: allow group generation in menu paths. 2017-10-22 23:06:42 +02:00
Matthias Koefferlein ba7e9da5a6 Bugfix: package details were not updated. 2017-10-20 22:49:59 +02:00
Matthias Koefferlein 4ca24df814 Package manager enhancements
* marked icon
* multiple selection
* hidden flag for repository
* background color of package list black always
* consolidation of package list - identical packages are
  reduced to the latest one
2017-10-19 00:16:34 +02:00
Matthias Koefferlein 63e28be152 Establish a Ruby/Python path from packages also in -b mode. 2017-10-13 21:38:36 +02:00
Matthias Koefferlein 615ba36836 Bugfix: take download URL as source for packages also for relative URLs
Plus: diagnostics for HTTP access.
2017-10-12 21:08:19 +02:00
Matthias Koefferlein b3ffa23499 Relative paths for includes in package index files
Plus: inhibt some deferred methods during processEvent (i.e. progress reporting,
HTTP/HTTPS download).
2017-10-10 21:04:52 +02:00
Matthias Koefferlein 06a1002e25 Fixed build. 2017-10-09 23:49:41 +02:00