Commit Graph

516 Commits

Author SHA1 Message Date
Matthias Koefferlein f4939a6efc [BUGFIX] crash when setting the line style/width > 1 2019-05-28 00:04:32 +02:00
Matthias Koefferlein 2bf3f3d5c9 Fixed unit tests, bug fixes in netlist DB model. 2019-05-26 18:28:35 +02:00
Matthias Koefferlein 89cbe930ae WIP: GSI binding of LVS framework, tests and debugging 2019-05-26 01:37:45 +02:00
Matthias Koefferlein 14bc72039e WIP: integration of LVSDB into LayoutView (GSI) 2019-05-25 23:22:24 +02:00
Matthias Koefferlein 01f7939918 LVSDB browser: filter based on status ('show all') 2019-05-25 10:12:35 +02:00
Matthias Koefferlein 895b17b1c7 WIP: LVSDB browser styling 2019-05-25 01:19:19 +02:00
Matthias Koefferlein 33b836d243 LVSDB browser: styling. 2019-05-24 23:30:55 +02:00
Matthias Koefferlein 875609ffb1 Styling of LVSDB browser 2019-05-23 23:54:51 +02:00
Matthias Koefferlein 57f9efa611 WIP: debugged cross-reference model 2019-05-22 23:47:38 +02:00
Matthias Koefferlein f1fc16d55f WIP: LVS DB model 2019-05-22 00:46:15 +02:00
Matthias Koefferlein 252622e3f8 Fixed unit tests, support floating pins for netlist compare 2019-05-20 23:48:07 +02:00
Matthias Koefferlein 924daa65b7 WIP: tests for netlist cross ref. 2019-05-16 00:09:06 +02:00
Matthias Koefferlein a46d991c6f WIP: netlist cross-reference 2019-05-15 23:00:02 +02:00
Matthias Koefferlein 67e68e9e4f WIP: fixed net colorizer 2019-05-13 23:56:49 +02:00
Matthias Koefferlein 829e337462 WIP: prepared dual mode for netlist browser. 2019-05-13 23:50:16 +02:00
Matthias Koefferlein a433361c53 WIP: prepared dual mode for netlist browser. 2019-05-13 23:36:59 +02:00
Matthias Koefferlein 6b7e4c2713 Netlist browser: tree items are sorted now. 2019-05-12 10:13:00 +02:00
Matthias Koefferlein cd34eb19f1 WIP: some refactoring. 2019-05-12 08:52:47 +02:00
Matthias Koefferlein 6f689863b6 Fixed MSVC build, fixed unit tests. 2019-05-10 21:09:19 +02:00
Matthias Koefferlein 0f0dd42b4d Refactoring and GSI binding for combined device interface. 2019-05-10 18:32:05 +02:00
Matthias Koefferlein 9a361ee234 WIP: Support for combined devices 2019-05-08 00:14:08 +02:00
Matthias Koefferlein 2302036d6f Fixed a compiler warning, build compatibility with Qt5 2019-05-06 19:06:06 +02:00
Matthias Koefferlein 1dbb25b2e8 Some refactoring (reuse cell context cache) 2019-05-06 01:54:10 +02:00
Matthias Koefferlein a3da8231a2 Netlist browser fixes
- Reverted sorting of circuits top-down because the solution
  was inconsistent -> needs to be solved by proxy
- Provide a sample transformation for subcircuits without connections
  (potential for refactoring!)
2019-05-06 01:20:00 +02:00
Matthias Koefferlein 99b47f732a Netlist browser enhancements
- better performance when changing layer properties (by deferred
  execution of the callback)
- coloring of nets (net color has precedence)
- sorting of circuits top-down
2019-05-06 00:09:31 +02:00
Matthias Koefferlein 30fdb0089b Integration of netlist extractor with net tracer plugin (-> "trace all nets") 2019-05-05 22:30:07 +02:00
Matthias Koefferlein 20eb53d626 Netlist browser: Esc now clears the selection rather than closing the browser window. 2019-05-04 22:09:23 +02:00
Matthias Koefferlein 6cf4df1cb1 BUGFIX (general): closing a cellview did not adjust the hidden cell flags properly. 2019-05-04 21:54:06 +02:00
Matthias Koefferlein 4c31d5ed1b Netlist browser: some refactoring, fixed unit tests. 2019-05-04 21:46:25 +02:00
Matthias Koefferlein 00bd297e3b WIP: netlist browser - highlighting of devices, subcircuits 2019-05-04 20:43:21 +02:00
Matthias Koefferlein ceb3d39ddb WIP: netlist browser - device links 2019-05-04 19:39:58 +02:00
Matthias Koefferlein 7e9e0dd5e6 WIP: netlist browser 2019-05-04 19:24:17 +02:00
Matthias Koefferlein bc26e32a68 WIP: netlist browser 2019-05-04 18:48:57 +02:00
Matthias Koefferlein 548f16f1df WIP: tried to provide a more consistent net building feature (here: building hierarchical nets with properties as net annotation - needs cell variants if properties are assigned to subcells too) 2019-05-04 00:37:38 +02:00
Matthias Koefferlein 2aaec56adb WIP: netlist browser - extended the net export scheme of build_net to support net annotation and flattening. 2019-05-03 23:33:37 +02:00
Matthias Koefferlein 062b74aad7 WIP: net export feature, first part 2019-05-02 23:30:44 +02:00
Matthias Koefferlein 18bbc24484 Netlist browser: allow different database units between storage layout and original layout 2019-05-01 23:17:01 +02:00
Matthias Koefferlein 71d1f4567c Netlist browser: net icons for connections. 2019-05-01 22:26:05 +02:00
Matthias Koefferlein 086ddeace7 Netlist browser bugfix: show subcircuit nets in coordinate system of subcircuit 2019-05-01 21:42:10 +02:00
Matthias Koefferlein 60216ee3f6 Netlist browser: some bug fixes in search, probe net feature. 2019-05-01 00:24:43 +02:00
Matthias Koefferlein 4e15b3df92 Netlist browser: detailed info box. 2019-04-30 00:18:11 +02:00
Matthias Koefferlein e661bac0a7 Netlist browser: fixed a segfault on 'unload all' 2019-04-28 22:57:06 +02:00
Matthias Koefferlein 0983ebc854 Fixed unit tests. 2019-04-28 21:19:08 +02:00
Matthias Koefferlein c4b5c648b7 Netlist browser: warning if not all shapes are highlighted. 2019-04-28 19:40:55 +02:00
Matthias Koefferlein d68c61394a Netlist browser: find text feature. 2019-04-28 19:22:39 +02:00
Matthias Koefferlein bfea3fdc2f Netlist browser - some bugfixes, multiple selection of nets, colorizing 2019-04-28 16:28:39 +02:00
Matthias Koefferlein f8d09a642b WIP: netlist browser - coloring 2019-04-28 00:41:47 +02:00
Matthias Koefferlein dc3f200119 Aligned net browser config with net tracer. 2019-04-27 00:30:45 +02:00
Matthias Koefferlein c613ddb633 WIP: netlist browser: context menu. 2019-04-26 23:32:26 +02:00
Matthias Koefferlein 97fb852579 WIP: some refactoring. 2019-04-26 23:27:16 +02:00
Matthias Koefferlein b4d5fcbf16 Netlist browser: full information display for single netlist. 2019-04-26 21:51:52 +02:00
Matthias Koefferlein c19dc41506 WIP: netlist browser 2019-04-25 01:47:16 +02:00
Matthias Koefferlein 9ee58b161f WIP: netlist browser 2019-04-25 01:23:36 +02:00
Matthias Koefferlein 5500ca45d8 Icons for netlist browser 2019-04-23 23:34:07 +02:00
Matthias Koefferlein 13cd80376a Fixed a segfault when closing the netlist browser. 2019-04-23 19:52:22 +02:00
Matthias Koefferlein 46b47ff0d9 WIP: netlist browser - removed self test, is unit test now. 2019-04-22 22:00:47 +02:00
Matthias Koefferlein 0410ae765e WIP: netlist browser - some debugging 2019-04-22 21:53:53 +02:00
Matthias Koefferlein 611cf9eb7b WIP: some refactoring 2019-04-22 21:28:19 +02:00
Matthias Koefferlein 969d4e80cd WIP: netlist browser. 2019-04-22 09:28:26 +02:00
Matthias Koefferlein 5b8a9cf49c WIP: netlist browser 2019-04-22 01:25:48 +02:00
Matthias Koefferlein 59aa5758f5 WIP: netlist browser. 2019-04-21 10:54:25 +02:00
Matthias Koefferlein ae9064021c WIP: netlist browser. 2019-04-21 10:41:20 +02:00
Matthias Koefferlein 20b984cc50 Naming of layers isn't required anymore for connect et al: names are given automatically now. 2019-04-20 20:30:12 +02:00
Matthias Koefferlein 767f6a7c48 WIP: first code pieces 2019-04-20 10:33:56 +02:00
Matthias Koefferlein eacd5fc19d Fixed some spelling errors (allow to, allows to) 2019-04-03 19:15:09 +02:00
Ruben Undheim 5d26cf4c77 Spelling errors in code and comments fixed 2019-03-31 15:25:18 +00:00
Matthias Koefferlein 566746823c Merge remote-tracking branch 'origin/dvb' 2019-03-10 23:08:46 +01:00
Matthias Koefferlein 15040101ec Fixed a small issue in the adjust cell origin dialog. 2019-03-10 22:38:27 +01:00
Matthias Koefferlein 50c73dbae8 Merge branch 'issue-234' 2019-02-23 18:16:01 +01:00
Matthias Koefferlein 60a2ce6037 Another fix for issue-234: linewidth parameter of save_image_with_options did not have any effect. 2019-02-23 18:13:49 +01:00
Matthias Koefferlein fc486062d8 Fixed issue-234 by enhancing the drawing algorithm. 2019-02-23 10:23:47 +01:00
Matthias Koefferlein f40d437a96 Fixed #232 by limiting the allowed number of string to the maximum supported stipple height (32). 2019-02-23 09:52:14 +01:00
Matthias Koefferlein b6eeb4bef3 Fixed #225 by fixing the READER. 2019-01-16 23:12:47 +01:00
Matthias Koefferlein b0d7f5f7f5 Updated copyright. 2019-01-08 00:58:45 +01:00
Matthias Koefferlein db3b1d8eee Ported #209 fix to master. 2018-12-16 23:44:26 +01:00
Matthias Koefferlein edae71b0a8 0.25.5 to 0.25.6 delta ported to pymod
- Bugfix for klayoutmatthias/issue-191
- Consistent configuration for layout views
2018-11-18 23:54:41 +01:00
Matthias Koefferlein d67a50bd1d Fixed #176 by introducing a separate bitmap for text drawing optimization. 2018-10-20 09:53:25 +02:00
Matthias Koefferlein dc9267d61e WIP: updated solution
* Reverted first solution partially because it lead to drawing errors.
* Redraw thread will fire workers only for layers that really need
  to be drawn
2018-10-20 09:53:07 +02:00
Matthias Koefferlein 46116f4828 Basic performance improvement in the bitmap to image area
Empty bitmaps are skipped now
2018-10-20 09:52:35 +02:00
Matthias Köfferlein 28f8a1ee7d Merge branch 'pymod' into pymod-msvc 2018-09-07 22:56:22 +02:00
Matthias Köfferlein 356a468d66 A couple of changes to make MSVC work - not done yet. 2018-09-02 00:40:35 +02:00
Matthias Koefferlein c4c1630a38 Tiny enhancement of LayoutView#insert_layer
* returns a non-const reference now which can be modified
* the node parameter is optional and initialized with a default node
2018-09-01 11:39:20 +02:00
Matthias Koefferlein c9771f54eb Merge branch 'master' into pymod 2018-09-01 09:37:08 +02:00
Matthias Koefferlein 753e170a68 Fixed #162 (GDS2 libname not maintained) 2018-08-31 23:25:19 +02:00
Matthias Köfferlein f0f3025f9f More reduction of warnings on MSVC 2018-08-29 07:28:51 +02:00
Matthias Köfferlein af50c0f0c3 Many warnings fixed for MSVC 2018-08-29 01:46:18 +02:00
Matthias Köfferlein 860014e3ae MSVC builds for the first time - still a lot of patches required
Some suspicious compiler warnings remain.
2018-08-28 23:19:58 +02:00
Matthias Koefferlein 3c4ca7597e Fixed #158 (repaint issue with context) 2018-08-25 23:11:26 +02:00
Matthias Koefferlein 04545e435b Fixed #157 (Replace cell with ... from cell tree context menu does not accept decorated cell names) 2018-08-13 20:59:04 +02:00
Matthias Koefferlein a8ad415fac Fixed a typo and build compatibility with Qt4. 2018-08-13 01:33:07 +02:00
Matthias Köfferlein 03c1a74d16
Update layLayoutViewConfigPages.cc
Removed commented section - it's actually no longer required.
2018-08-12 23:22:39 +02:00
Matthias Köfferlein 376e4ea0ae WIP: MSVC compatibility for pymod module. 2018-08-04 18:13:49 +02:00
Matthias Köfferlein 23d715001b First steps towards enablement of MSVC2017 for pymod. A lot of things to TODO yet ... 2018-08-04 18:02:39 +02:00
Thomas Ferreira de Lima f7836de39d
placeholder code for hiDPI display of conf pages. 2018-08-03 10:28:27 -04:00
Thomas Ferreira de Lima 8dbdbe0388
hiDPI Retina display for Stipple and Linesyles 2018-08-02 16:40:28 -04: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 bbfcd9cf9e Made normal build work again. 2018-07-03 01:49:06 +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 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 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 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 655e59d11a WIP: Fixed build dependencies and code dependencies for Python modules (Qt5) 2018-06-03 19:54:18 +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 ecc0520ffb WIP: Qt5 compatibility 2018-05-31 17:54:29 +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 6468bb7ab9 WIP: refactoring of GSI structure for separated modules. 2018-05-30 00:39:58 +02:00
Matthias Koefferlein 1b607474b8 Selection shows PCell display name of instances. 2018-05-17 22:31:05 +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 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 e1922da3b2 Better memory statistics. 2018-04-15 00:54:30 +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
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
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
Matthias Koefferlein 02c9c645ec Rephrase confusing option in 'save as' dialog. 2018-03-12 20:55:15 +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 Koefferlein 2f46f0d1c6 Fixed some issues found with Coverity. 2018-02-21 00:21:19 +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 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 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 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 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 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
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
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 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 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 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 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 9b7a887ad8 Added GSI support for Action#separator 2017-10-29 01:27:56 +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 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 4cbfec9c35 New feature: allow group generation in menu paths. 2017-10-22 23:06:42 +02:00
Matthias Koefferlein c50fe8cb57 Some bug fixes and doc updates
* LEF/DEF: bugfix - the tech options were not
  visible
* Doc update: new main window snapshot
* LEF/DEF import: doc update
2017-10-08 22:43:07 +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 1d29a00bb9 Cross style is propagated down groups properly now. 2017-09-20 23:00:37 +02:00
Matthias Koefferlein b024e0ffd6 Clear layer is applied to all selected layers now. 2017-09-10 01:05:27 +02:00
Matthias Koefferlein 468c3f4952 Assistant has a left-side content panel now. 2017-09-08 00:25:17 +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 5221027b3a Added RBA::LayoutView#selected_cells_paths 2017-09-06 22:10:13 +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 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 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 56ca1899b5 Finished refactoring of unit tests. Now they are modularized. 2017-08-27 08:33:02 +02:00
Matthias Koefferlein 016bb865ee Fixed a few build issues. 2017-08-27 00:16:46 +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 55e797ffaf Provide proper INSTALL targets for .pro files
Plus: reduce compiler warnings
2017-08-21 02:33:45 +02:00
Matthias Koefferlein 986cb7f0c2 Fixed an uninitialized memory issue (thanks, Stefan!) 2017-07-10 20:49:52 +02:00
Matthias Koefferlein 14e1c0d5bd Reverted snap implementation to use micrometer unit objects. 2017-07-05 00:18:50 +02:00
Matthias Koefferlein 78cdec4d68 WIP: rulers
- some refactoring
- auto-registration of cross and measure rulers
2017-07-02 02:19:38 +02:00
Matthias Koefferlein 86e2b8cad1 WIP: auto-measurement rulers
- More tests on the snapping functions
- Bugfixes and enhancements for ruler features
2017-07-01 23:07:33 +02:00
Matthias Koefferlein 4ebfb24fca Ruler's auto-measure function improved
Already a very useful feature.
First tests added for snap feature.
2017-07-01 10:03:47 +02:00
Matthias Koefferlein c263878a4b WIP: rulers and auto measure
* Fixed snapping - don't use double objects with micron units
* Implemented first version of auto measure - needs improvement.
2017-06-30 00:03:21 +02:00
Matthias Koefferlein 1bc0243c0a Unit tests fixed
The "active_cellview_changed" event was issued multiple times.
This fix avoids this redundancy.
2017-06-05 22:27:49 +02:00
Matthias Koefferlein dbdb46c5cb A small optimization for instance marker drawing. 2017-06-05 19:07:18 +02:00
Matthias Koefferlein cb296a802e Bugfix: instance selection cycling wasn't working
When instanced overlay, it wasn't possible to select
the "other" instances. This is fixed. (reference: Trac 1015).

In addition:
- The instance selection now shows the label
- Bugfix: the transient selection now really is disabled
  (it was popping up once after selection happened)
- RBA::Marker#line_style has been added
2017-06-05 18:58:24 +02:00
Matthias Koefferlein 60cfbd9c6f Merge branch 'salt' 2017-05-07 23:55:22 +02:00
Matthias Koefferlein 9b42049abe clang compatibility
Fixed some compile issues with clang and
some warnings.
2017-05-07 23:52:20 +02:00
Matthias Koefferlein b3e823ca28 Fixed the timers for measuring read sorting times (out of band fix) 2017-04-25 23:41:36 +02:00
Matthias Koefferlein 1091ea6d5b Technology specific libraries
Libraries now carry a technology association and
only libraries associated with the current technology
can be selected.

To enforce proper update, cancel() will be used upon
change of technology. This avoids side effects when
changing the technology without notifying the library
selection widgets.

The MainWindow::cancel method has been generalized to
cover the functionality of cm_cancel without the
exception handling.
2017-04-23 19:30:55 +02:00
Matthias Koefferlein 0b7beee12d WIP: indicating of packages in tech and macros
Technologies and macros that come from packages
are indicated as such in their description texts
in the tech and macro editor.

Technologies and macros that come from packages
which are downloaded are readonly now. This will
prevent editing of downloaded packages.
2017-04-22 22:47:08 +02:00
Matthias Koefferlein 59dadcdd38 WIP: small bug fixes
- LayoutView should accept technology names that are valid only
- CellView now also sends an "active cellview changed" event when
  loading a layout in "replace layout" mode.
2017-04-17 18:22:36 +02:00
Matthias Koefferlein 209b16f3ea Merge branch 'salt' into controllers 2017-04-16 21:05:06 +02:00
Matthias Koefferlein 516c3ff925 WIP: tech controller and tech setup dialog
Some bug fixes (description was not updated in tree,
base path of new tech was not set, dirs were not reused
for new tech).

Some enhancements (tech setup dialog's window state
is persisted etc.)
2017-04-16 00:27:28 +02:00
Matthias Koefferlein 430d140016 WIP: some bug fixes. 2017-04-15 18:50:51 +02:00
Matthias Koefferlein e6f696b8dc WIP: bugfixed tech controller, more refactoring
Resolved the dependencies between MainWindow, TechController
and MacroController somewhat more.

* The macro controller now listens to the tech controller
  for the active technology
* The tech controller has more responsibility now
* Some functionality has been taken out of the MainWindow
  and put into the controller's implementation
2017-04-15 17:51:04 +02:00
Matthias Koefferlein 5b422440a1 WIP: technologies are file based by default now
* Introduced "refresh" method of tech setup dialog
* Some refactoring -> tech management is part of
  tech controller
* Macro category management moved to macro controller
2017-04-15 01:03:24 +02:00
Matthias Koefferlein abb5424ece WIP: introducing MacroController
The MacroController is the central facility for managing
macros and their views. The plugin framework has been
extended to support such a design.

In addition, some small bugs have been fixed related to
macro interpreters (specifically the DRC).
2017-04-05 00:20:32 +02:00
Matthias Koefferlein 90693f9f67 Some enhancements on cell and layer search
- Shortcuts are honored and have priority over
  search initiation. This is in particular important
  for "*".
- "/" initiates search without yielding a "/" in the
  text edit box.
2017-04-03 00:01:32 +02:00
Matthias Koefferlein dd4b873d64 Fixed some compiler warnings and some small refactoring 2017-04-01 23:18:04 +02:00
Matthias Koefferlein 50df9e5b21 Provide Ruby/Python binding for technology definitions
The respective new classes are RBA::Technology and
RBA::TechnologyComponent. This interface will replace
the current way of doing tech management from scripts
by using the "technology-data" configuration parameter.
2017-04-01 00:45:55 +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 e35e9fe8f7 Tech data accessible as "technology-data" config value
Previously, the "technology-data" complex configuration
value was stored in the configuration file, but not
accessible from scripts through Application#set_config
and Applicatiob#get_config. It was as pseudo parameter
that wasn't dynamically connected to the application
state.

Now it's handled separately as if it was a normal
parameter. This is just an intermediate solution
required because this interface is the only one
through which tech data is accessible from scripts.
2017-03-30 00:11:09 +02:00
Matthias Koefferlein 3598898997 Fixed #7 (Support "is_dirty?" predicate for RBA::CellView) 2017-03-29 22:13:09 +02:00
Matthias Koefferlein b8238a85f9 WIP: first steps towards package browser 2017-03-18 00:22:45 +01:00
klayoutmatthias fea965a321 Enhanced styling of expander icon in tree view
Now it's compatible with the different selection styles
(some include the decoration, some don't)
2017-03-07 21:41:47 +01:00
klayoutmatthias e06224e00d Build fixed - one deleted header was still included. 2017-03-05 23:17:56 +01:00
Matthias Koefferlein 5f6c6a3264 Advanced search features for the cell selection form too
* Case sensitive/insensitive (persistent)
* Expressions yes/no (persistent)
* Clear button
* Tab keys to navigate between found cells
2017-03-05 00:57:51 +01:00
Matthias Koefferlein 7ddc6bf9df Bugfix: crash on exit
This crash started to happen with the bugfix
for the black-on-black tree expander icon.
It was caused by the styling that was attached
to the widgets in order to fix this. Apparently
Qt does not like to attach proxy styles dyna-
mically.

Now, the styling is applied globally and this
issue is fixed.
2017-03-05 00:56:45 +01:00
Matthias Koefferlein 5c414ef0be Search feature for layer list
To enable the search feature just type into the layer list.

This change set also contains some more fixes:
 * Tab/Backtab now is functional also before the
   Display menu has been used the first time
 * Arrow keys work from the cell list again
2017-03-02 23:45:37 +01:00
Matthias Koefferlein 29727f597d Fixed the issue of dark tree expansion icons
Prior to this bug fix, the expansion icons were
not visible with a dark background on some platforms
(i.e. Gtk style, native Windows style).
2017-03-02 00:26:16 +01:00
Matthias Koefferlein bf15e46c10 "Find cell" feature: just type into the cell list
This feature includes:
 * Enhancements to tl::GlobPattern
   (exact mode, case insensitive)
   TODO: UTF8 support
 * Enhancements to DecoratedLineEdit
   (ESC key handling, Tab key handling)
2017-02-28 22:24:14 +01:00
Matthias Koefferlein 85f048dd6d Bugfix: "save as" indicated "file was updated"
After "save as", the file was considered outdated
and KLayout offered to reload it. Now, KLayout is
silent.
2017-02-25 00:08:37 +01:00
Matthias Koefferlein 55bac69a4a Drawing optimization: only redraw changed layers
The effect was: when drawing a shape on a single layer, all
layers have been redrawn. This was changed such that only
the affected layer is actually redrawn.
2017-02-23 23:33:07 +01:00
Matthias Koefferlein 83f12382e8 Refactoring: there is one Qt binding lib. 2017-02-23 01:19:02 +01:00
Matthias Koefferlein d66291af5b Fixed new implementation of Qt bindings for Qt5 2017-02-22 22:34:26 +01:00
Matthias Koefferlein a1e8aaf6b8 Updated copyright note to 2017. 2017-02-12 15:28:14 +01:00
Matthias Koefferlein 1b98f9b0f9 Initialized repository with current sources. 2017-02-12 13:21:08 +01:00