Commit Graph

428 Commits

Author SHA1 Message Date
Matthias Koefferlein 2c023a7041 Fixed build on gcc's not supporting zero-length arrays. 2017-09-26 00:59:18 +02:00
Matthias Koefferlein 2fd33a289a Variable path widths for DXF reader 2017-09-26 00:28:47 +02:00
Matthias Koefferlein 59dd9896e0 Bugfix: second exit was ignored after not committing the first. 2017-09-23 13:20:58 +02:00
Matthias Koefferlein 8b1e76ed0b Bugfix: XOR was segfaulting when the window was closed during run
This fix consists of multiple parts:
 * Actual closing of the window is deferred until excecution is over
 * weak pointers in XOR for view so the view can be destroyed with
   out not knowing
 * The "keep data" message is not shown when the application window
   was closed.
2017-09-23 13:17:26 +02:00
Matthias Koefferlein f1cfe207ff Don't show break exceptions 2017-09-23 13:16:55 +02:00
Matthias Koefferlein 9f8b81eaf4 Don't decorate 'break' exceptions in Gerber reader. 2017-09-23 13:16:30 +02:00
Matthias Koefferlein 7d2bf2d969 tl::DeferredMethod: allow new method calls from inside
This change will allow issuing the same method from inside
itself (postpone execution by re-issuing).
2017-09-23 13:14:36 +02:00
Matthias Koefferlein 5a1a89b665 Reworked the XOR progress UI - now it's rows instead of a single column. 2017-09-21 23:52:24 +02:00
Matthias Koefferlein cadb9c555a A few bug fixed in the XOR progress reporter. 2017-09-21 22:07:58 +02:00
Matthias Koefferlein 8cd612ba36 Don't show file changed notifications while an operation is ongoing
Reloading a file during operations is usually fatal.

+ Enhanced the "show all hierarchy levels tip window."
2017-09-21 22:07:37 +02:00
Matthias Koefferlein daacd9ea6f Added a hint about 'show all hierarchy levels off', so that new users have a chance to change this setting. 2017-09-20 23:18:09 +02:00
Matthias Koefferlein 1d29a00bb9 Cross style is propagated down groups properly now. 2017-09-20 23:00:37 +02:00
Matthias Koefferlein d64a427180 Fixed layout of layout statistics form. 2017-09-20 22:57:16 +02:00
Matthias Koefferlein 62b59fe71c Reworked the XOR progress UI for better performance. 2017-09-20 22:52:52 +02:00
Matthias Koefferlein 083e1d75e9 Finished defailed XOR progress. 2017-09-20 21:39:24 +02:00
Matthias Koefferlein 3e37c0bf7b First version of XOR progress visualization. 2017-09-20 01:22:25 +02:00
Matthias Koefferlein 4381ebfe7f Do not automatically set RPATH to installation target (for building packages). 2017-09-10 15:51:19 +02:00
Matthias Koefferlein 0cb58fc354 Fixed dependencies 2017-09-10 13:26:42 +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 501dfc25d0 Direct table access for RBA::CellMapping and RBA::LayerMapping. 2017-09-10 01:21:10 +02:00
Matthias Koefferlein b024e0ffd6 Clear layer is applied to all selected layers now. 2017-09-10 01:05:27 +02:00
Matthias Koefferlein ff4e99f2a2 Gerber X2: metadata and project initialization from the latter (at least in free mode) 2017-09-10 00:24:59 +02:00
Matthias Koefferlein 55c7b66160 Fixed Layout unit tests. 2017-09-09 19:02:37 +02:00
Matthias Koefferlein 98b7d0e9a1 Small bugfix and tests added to Gerber reader. 2017-09-09 10:27:09 +02:00
Matthias Koefferlein 17327ce19c Gerber X2 support basically implemented. Needs testing. 2017-09-09 02:07:09 +02:00
Matthias Koefferlein 468c3f4952 Assistant has a left-side content panel now. 2017-09-08 00:25:17 +02:00
Matthias Koefferlein fd36ee37d9 Some convenience methods for RBA/RDB methods. 2017-09-07 21:40:51 +02:00
Matthias Koefferlein c541cdcbd6 Bugfix: redrawing issues when multiple layers are affected
This is how to reproduce the bug: have a layout with two
layers. Select two shapes of different layers and delete them.
One layer is not updated and only after zooming/panning the
shape will disappear on this layer.
2017-09-07 01:04:40 +02:00
Matthias Koefferlein e52c96b0bc Fast panning with Shift pressed. 2017-09-06 23:38:46 +02:00
Matthias Koefferlein 41e8c58869 A function to reset the window state (View menu) 2017-09-06 23:36:04 +02:00
Matthias Koefferlein 692b1e6c31 A new function to separate inside/outside
- This feature is found in Edit/Selection/Separate
  The first selection is separated into parts inside and
  outside the secondary selection

In addition, shapes are not deleted on the boolean
(selection-based) functions if they come from a different
layer than the primary selection.
2017-09-06 23:33:50 +02:00
Matthias Koefferlein 5221027b3a Added RBA::LayoutView#selected_cells_paths 2017-09-06 22:10:13 +02:00
Matthias Koefferlein febd20f606 Updated LEF/DEF testdata. 2017-09-05 21:58:11 +02:00
Matthias Koefferlein 0ecc8ee093 First version of DEF reader with GROUPS/REGIONS - needs feedback. 2017-09-04 23:05:46 +02:00
Matthias Koefferlein 56b9c73015 GDS2 reader/writer: paths can now use the Multi-XY extension. 2017-09-03 23:24:50 +02:00
Matthias Koefferlein 0f0be1b0bc Bugfix: unit test timer now works correctly. 2017-09-03 23:24:24 +02:00
Matthias Koefferlein 31084d83ce Bugfix for key bindings
Now, aliases are taken into account: when a path points
to the same function than another path, the key bindings
are synchronized.
2017-09-03 22:34:34 +02:00
Matthias Koefferlein dfbe0b3122 Enhanced crash handler on Linux
* Override Ruby's crash handler to stop blaming Ruby for
  KLayout segfaults ...
* Using addr2line on Linux to obtain DWARF debug info
  if available
* A more elaborate crash handler dialog
2017-09-03 19:26:52 +02:00
Matthias Koefferlein 80226e8c1c Provide proper input for linker for rba/pya unit tests. 2017-09-03 18:44:22 +02:00
Matthias Koefferlein 65ec67ca3c Test classes for GSI unit tests must not be exported. 2017-09-03 14:51:41 +02:00
Matthias Koefferlein 696e84b6f1 Fixed a dependency 2017-09-03 14:29:54 +02:00
Matthias Koefferlein 388da45703 Fixed gsi::ClassBase::has_class(name) 2017-09-03 12:45:34 +02:00
Matthias Koefferlein 6c26b2a251 Speeding up the startup initialization by using proper type maps for GSI. 2017-09-03 11:52:06 +02:00
Matthias Koefferlein 9d5f54d51a Fixed non-Ruby build where DRC is not available. 2017-09-03 11:51:39 +02:00
Matthias Koefferlein b9c302229f No DRC module when Ruby is not available. 2017-09-03 10:37:08 +02:00
Matthias Koefferlein 196d3a60e7 Fixed the build with less dependencies. 2017-09-03 10:29:14 +02:00
Matthias Koefferlein cfe8375be0 Unit test refactoring
Move ut framework to tl, so there are less complex
dependencies.
2017-09-03 01:54:11 +02:00
Matthias Koefferlein be6bf6a259 Display state navigation enhanced
* Some bug fixes (for example, drag moves were resolved
  into many tiny state changes)
* New buttons for navigation in toolbar (like web browser)
* Hierarchy level changes are included in navigation states
  too
2017-09-02 20:51:07 +02:00
Matthias Koefferlein b28317fb69 Some enhancements to layer and cell mapping
* Modification of the mapping is possible now
  (#map used to ignore mappings if there was one
  already)
* Added DropCell mapping (also for RBA)
* Added unit tests for cell mapping, layer mapping
  db::merge_layouts, db::copy_shapes and db::move_shapes
2017-08-30 01:11:38 +02:00
Matthias Koefferlein 3499c3856a Show more info in tab and window titles
* Indicates whether layout has been manipulated (leading [+])
* Indicates current cell
* Tooltip in tab shows file path
* Tab title switches to active cellview
2017-08-29 01:13:49 +02:00
Matthias Koefferlein 74ad89cf43 Two tiny fixes for Windows build. 2017-08-29 00:30:23 +02:00
Matthias Koefferlein e657453b1d Fixed JUnit XML message escaping, include drc module by forced linking. 2017-08-28 23:25:44 +02:00
Matthias Koefferlein 749382b1a4 Fixed the output of unit tests
* XML format wasn't correct because of trailing info output
* Error messages did not get printed
2017-08-28 22:22:01 +02:00
Matthias Koefferlein 23fdcec7c6 Don't install GSI test library. 2017-08-27 19:40:32 +02:00
Matthias Koefferlein 46a09aaf05 Fixed installation target for .exe's 2017-08-27 19:34:16 +02:00
Matthias Koefferlein 6120d20398 Even more dependencies :-( 2017-08-27 19:16:54 +02:00
Matthias Koefferlein 6f51d9dc74 More dependencies :-( 2017-08-27 18:32:53 +02:00
Matthias Koefferlein 6b08680ee7 Proper naming of DLL's. 2017-08-27 18:17:00 +02:00
Matthias Koefferlein 04f1a61bc5 Using qmake properly for the installation target. 2017-08-27 18:03:38 +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 bbac8fe19e Fixed build without python/ruby. 2017-08-27 15:22:13 +02:00
Matthias Koefferlein 082699bebb Another build dependency added. 2017-08-27 12:18:10 +02:00
Matthias Koefferlein e14234e082 More build dependency fixes. 2017-08-27 11:51:52 +02:00
Matthias Koefferlein 1ed0837f06 Fixed build dependencies for magic qmake 2017-08-27 11:42:14 +02:00
Matthias Koefferlein e3be3477c8 Enhanced build dependencies 2017-08-27 11:32:27 +02:00
Matthias Koefferlein d080b55c5b Bugfix: tiling processor's _rec method wasn't delivering virtual methods. 2017-08-27 10:41:32 +02:00
Matthias Koefferlein 362aa0ea23 Marked two more tests as long runners. 2017-08-27 10:41:07 +02:00
Matthias Koefferlein 56ca1899b5 Finished refactoring of unit tests. Now they are modularized. 2017-08-27 08:33:02 +02:00
Matthias Koefferlein 34089ca96b Turned laySnap unit tests into a pure test for laybasic. 2017-08-27 00:59:08 +02:00
Matthias Koefferlein c8f4272ebb Moved rba and pya unit tests to module. 2017-08-27 00:47:40 +02:00
Matthias Koefferlein 016bb865ee Fixed a few build issues. 2017-08-27 00:16:46 +02:00
Matthias Koefferlein 79811994f6 Refactoring: moved unit tests to libraries for some other libs 2017-08-26 23:43:40 +02:00
Matthias Koefferlein 000917d2c9 Refactoring: moved unit tests to libraries for some libs (ut modularization) 2017-08-26 22:44:31 +02:00
Matthias Koefferlein be1b007f2f DRC tests integrated now + refactoring
Refactoring:
* more consistent behavior of output redirection
* ut library was refactored and split into several
  .h/.cc
* concept of long runners introduced
* long runners can be skipped with "test_is_long_runner()"
* same for editable/non-editable mode tests
2017-08-23 23:19:36 +02:00
Matthias Koefferlein e5c6bd9e29 Added DRC unit tests. 2017-08-23 11:53:44 +02:00
Matthias Koefferlein a0d864f3b6 Fixed build. 2017-08-23 11:14:29 +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 9633a1b9af Buddies: progress with -d >= 10 and XOR: enhanced report 2017-08-22 21:38:56 +02:00
Matthias Koefferlein f53a3be51a strmxor enhancements: summary, bug fixes. 2017-08-21 23:41:52 +02:00
Matthias Koefferlein 487545bbaa Avoid memory corruption
The tiling processor now holds it's receivers
in tl::shared_ptr. This prevents memory corruption and
allows managing receiver lifetime externally.
2017-08-21 23:40:18 +02:00
Matthias Koefferlein 5130950f14 Fixed .pro files for bd unit tests. 2017-08-21 23:39:38 +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 edae27b9aa Added missing dependency and compatibility with -pedantic 2017-08-21 01:01:47 +02:00
Matthias Koefferlein 97412b1adb Merge branch 'master' into buddies 2017-08-21 00:22:57 +02:00
Matthias Koefferlein 9585922659 Some enhancements in the command line parser
* Cancel exceptions are handled properly and -h does
  no longer produce an error
* Help text is more readable now
* Some typos fixed
2017-08-21 00:20:18 +02:00
Matthias Koefferlein f013f1541e For strmxor unit tests: gsi initialization fixed
Now the gsi::initialize_expressions includes gsi::initialize.
Both can be called multiple times (the second time they are
ignored).
2017-08-21 00:01:10 +02:00
Matthias Koefferlein 1baddd3632 strmxor: fixes and basic functionality tests. 2017-08-21 00:00:27 +02:00
Matthias Koefferlein 394947df72 Segfault fixed in RecursiveShapeIterator
The RSI does no longer segfault when the default one
gets reset.
2017-08-20 23:59:06 +02:00
Matthias Koefferlein 4d06a7617c Some ut enhancements
* CaptureChannel becomes a main feature and is easier to
  use now.
* EXPECT_EQ/NE no longer does a double evaluation of the
  arguments on fail (to print the result that wasn't
  matching)
2017-08-20 23:57:03 +02:00
Matthias Koefferlein a7e4c7aadc Added unit tests for expressions (required for strmxor) 2017-08-20 21:36:09 +02:00
Matthias Koefferlein 6e3bf68da9 Added more tests for strmcmp, first version of better strmxor 2017-08-20 01:14:49 +02:00
Matthias Koefferlein 2a6c2ee735 Tests and bug fixes for strmcmp and strmclip
* ut framework now has a text file compare
* Added tests for strm2txt, strmclip and strmcmp
* Fixed the output of the PrintingDiffReceiver in some cases
* Cell renaming does not give a difference in smart cell mapping mode
2017-08-19 23:28:03 +02:00
Matthias Koefferlein 5a846ae9c7 Basic tests for the converters 2017-08-19 20:27:12 +02:00
Matthias Koefferlein 44472f84b7 Basic tests for the converters 2017-08-19 19:57:47 +02:00
Matthias Koefferlein c7edc9e7a0 More basic bd tests (reader) and some bug fixes 2017-08-19 19:25:21 +02:00
Matthias Koefferlein a9b64d1e57 Refactoring and first bd tests
The goal of the refactoring is to support unit tests
for the db library.

For this, a distributed unit test concept has been
introduced (later to be extended to other libs).
Unit tests are shared objects called ".ut" and are
automatically loaded by the ut runner. The bd library
now has two folders - one for sources and one for the
unit tests. The sources are separated into lib and apps.

First unit tests for the writer options have been
provided.
2017-08-19 18:47:52 +02:00
Matthias Koefferlein b296cdd915 Heavy refactoring of buddy sources
* To reduce the redundancy
* To enable testing of the bd library including the apps

The apps are entirely configured through their names.
Their .pro files are identical and the app implementation
is inside the bd lib (partially generic too). Hence the
apps can be tested by bd library unit tests.
2017-08-19 10:23:19 +02:00
Matthias Koefferlein 681c255e50 Equipped strmclip with the new command line parser
Plus: added repeated arguments (in addition to the array
arguments that have been there before).
2017-08-19 00:36:45 +02:00
Matthias Koefferlein e54cadef99 Functionality if strmcmp is complete now 2017-08-18 22:54:23 +02:00
Matthias Koefferlein b4a1143588 Some refactoring of buddy bodies and first strmcmp implementation
* Missing: functionaliy for strmcmp
2017-08-18 09:46:28 +02:00
Matthias Koefferlein bd5c7decce Fixed a doc typo 2017-08-17 23:36:49 +02:00
Matthias Koefferlein c571ae732d Add converter tools have reader options now. 2017-08-17 23:35:05 +02:00
Matthias Koefferlein aa3caeca07 More options for buddies
* Generic writer options
* Generic reader options
* All converter tools are equipped with writer options
* strm2gds is equipped with reader options already
2017-08-17 23:31:05 +02:00
Matthias Koefferlein dede3afe1b Enhancements on command line parser
* Advanced options
* Groups
* strm2gds uses the new features already.
2017-08-17 09:26:15 +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 9f8144a254 Refined documentation of command line parser and buddies. 2017-08-15 00:13:57 +02:00
Matthias Koefferlein 639eef069c Introducing a tolerance to reduce the number of test fails 2017-08-14 23:28:02 +02:00
Matthias Koefferlein 492351519e Added more options for strm2cif and strm2gds. 2017-08-14 22:42:12 +02:00
Matthias Koefferlein 0accc84367 Bugfix: package installation wasn't working from scratch
* Create the "salt" package directory as well - not just the
  package folder
* Include the package folder in the error message
* A better indication of what to do in the Apply button message
2017-08-14 21:29:10 +02:00
Matthias Koefferlein 7280a56ee9 Added command line parser to tl. 2017-08-13 23:05:40 +02:00
Matthias Koefferlein bd05fae9aa Enhanced error handling for unit test runner. 2017-08-13 00:49:39 +02:00
Matthias Koefferlein 5cfdc2fa64 Formal command line parser for buddies, first step. 2017-08-12 23:08:18 +02:00
Matthias Koefferlein 16852a0ea0 And another round of windows build fix ... 2017-08-12 21:55:58 +02:00
Matthias Koefferlein d777508755 One more round of windows build fix ... 2017-08-12 21:36:59 +02:00
Matthias Koefferlein f43592916e Hopefully fixed the build script version for all platforms .. 2017-08-12 19:05:59 +02:00
Matthias Koefferlein ac2b10eca5 Avoid multi-config builds to simplify build scripts. 2017-08-12 18:48:06 +02:00
Matthias Koefferlein c479dfa7c6 Modified plugin targets for Windows compatibility. 2017-08-12 18:25:56 +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 0e5a2afdf9 Added an icon 2017-08-12 15:40:52 +02:00
Matthias Koefferlein e9dd19ad0b Relaxed test conditions for cell hull generator test. 2017-08-12 10:11:28 +02:00
Matthias Koefferlein a6723a8155 Some test updates
* Generalized Polygon to edge interaction into db::Polygon tools
* Added tests for this
* Equipped region to edges interaction with this feature to
  reduce random test fails
* Multiple (reproducible) seeds for Region tests
* More tolerances for TilingProcessor tests
* ICplxTrans is_unity? implementation is using proper
  double tolerances now
* File watcher tests wait longer to allow for slow
  response on loaded Windows build server
2017-08-11 22:00:07 +02:00
Matthias Koefferlein 4ec8a838d5 Removed mode from test case name 2017-08-11 20:27:20 +02:00
Matthias Koefferlein 807b044731 Updated build scripts, fixed JUnit format emulation. 2017-08-10 23:31:32 +02:00
Matthias Koefferlein 7c59235889 Fixed a potential issue when using the db::Shape edge iterator on a non-existing hull in SimplePolygon. 2017-08-10 01:53:35 +02:00
Matthias Koefferlein 4dea5b40f2 Added buddies to build. 2017-08-09 22:37:58 +02:00
Matthias Koefferlein 5514aa8355 Aligned test suite XML output with JUnit format. 2017-08-08 23:35:40 +02:00
Matthias Koefferlein 36ccea8242 Fixed a doc typo. 2017-08-08 01:27:55 +02:00
klayoutmatthias 2e4ca67a39 Added application icon on Windows. 2017-08-08 01:20:58 +02:00
Matthias Koefferlein a2d690ba63 Generalized exe name in version string. 2017-08-06 23:12:01 +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 7ddc0d6b39 Added missing file 2017-08-06 18:32:04 +02:00
Matthias Koefferlein 8d6547291b Fixed Linux build. 2017-08-06 18:30:21 +02:00
klayoutmatthias ab98cd7678 Merge branch 'master' of https://github.com/klayoutmatthias/klayout 2017-08-06 18:22:13 +02:00
klayoutmatthias f8b3c92191 Windows and Ruby/Python for deploymenu
This commit deals with the deployment issue on Windows
where there is no global Ruby/Python installation and
the installer needs to package all required files.

The solution is to read the Ruby/Python path from a
file that is evaluated upon startup. The installer will
install these files together with the executable for
Windows. This feature is only enabled on Windows.

A specific issue occured: since the location of the
file needs to be determined, the path of the executable
needs to be known. The Ruby initialization requires the
path to be set very early, before QCoreApplication is
instantiated. But Qt complains in QCoreApplication::applicationDirPath
so that this approach cannot be used for this purpose.
2017-08-06 18:18:34 +02:00
Matthias Koefferlein f940c00a24 Updated documentation. 2017-08-06 16:45:52 +02:00
Matthias Koefferlein a8ac6aafe7 Updated doc and some images. 2017-08-06 00:38:45 +02:00
Matthias Koefferlein 287deaa574 Fixed some documentation typos. 2017-08-05 22:20:25 +02:00
Matthias Koefferlein 5b6b800e9d Updated documentation. 2017-08-05 22:13:00 +02:00
Matthias Koefferlein d6ca13f220 Updated documentation 2017-08-04 23:13:07 +02:00
Matthias Koefferlein cf48b39b89 Updated documentation 2017-08-03 21:57:48 +02:00
Matthias Koefferlein 6660c3f7d0 Updated documentation. 2017-08-03 21:43:53 +02:00
Matthias Koefferlein 4f48cd5dab Updated documentation 2017-08-03 21:21:59 +02:00
Matthias Koefferlein 9539de9fec Updated documentation 2017-08-02 23:11:13 +02:00
Matthias Koefferlein 824a7f9eb5 Bugfix: multiple message boxes on file change
The effect was: while a message box was open
to indicate a change of a file, new file changes
accumulated new message boxes. Now, the message
boxes won't accumulate and new file changes
are recognized after the message box is closed
and files were reloaded. Changes not acknowledged
by reloaded are presented again if changes were
seen while the message box was open.
2017-07-31 23:43:10 +02:00
Matthias Koefferlein ffeacd4630 Small bugfix: save options on tech setup page
The effect was: when not having save options in the technology
setup (for example, when migrating from 0.24 to 0.25), it was
not possible to edit the save options page in the technology
manager because the data slot of the save options wasn't
initialized.
2017-07-31 23:13:36 +02:00
Matthias Koefferlein 919d2d56fa Ported oasis-fix to GDS2 reader too (reduction of zero-distance axes in AREF's) 2017-07-29 19:05:52 +02:00
Matthias Koefferlein 1b6c25513a Merge branch 'oasis-fix' 2017-07-29 18:39:41 +02:00