Commit Graph

456 Commits

Author SHA1 Message Date
Matthias Koefferlein 02f84181f5 Merge remote-tracking branch 'origin/macos-build' into macos-build 2018-01-07 11:24:54 -08: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 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 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