Commit Graph

2903 Commits

Author SHA1 Message Date
Matthias Koefferlein 14e1c0d5bd Reverted snap implementation to use micrometer unit objects. 2017-07-05 00:18:50 +02:00
Matthias Koefferlein 8910828726 More consistent definition of precision for double types
The double types (DCoord, DPoint, DVector ...) support a
more consistent equivalence criterion now. This supports
micron-unit objects without loss of precision.

Before this fix, the precision used for 0.01 which was
basically implying a resolution of 10nm for micrometer-unit
double objects.
2017-07-04 23:50:30 +02:00
Matthias Koefferlein 18f79dde67 First fix - adjusted accuracy for micron units
But: floating points coordinates are used internally for
size - hence dbPolygon:20 test is failing.
2017-07-02 23:33:23 +02:00
Matthias Koefferlein 24b213df40 Fixed a potential segfault because of static initialization order. 2017-07-02 22:42:53 +02:00
Matthias Koefferlein 798425c564 OASIS reader bugfix (PROPVALUE forward refs in lists) 2017-07-02 19:45:02 +02:00
Matthias Koefferlein 9c33a73086 Some indication of selected state also for single-position rulers. 2017-07-02 19:21:38 +02:00
Matthias Koefferlein b6b604ff93 'goto position' now shows a single-cross ruler on the target place. 2017-07-02 19:21:04 +02:00
Matthias Koefferlein d83c420c0a Better support for delete-while-iterate on stable vectors 2017-07-02 19:19:55 +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 919de1af01 Ruler enhancements
* There is a ruler mode now
* Ruler templates can have categories
* Ruler templates can be defined from RBA/pya
* Single-click annotations are implemented already
2017-06-28 23:17:02 +02:00
Matthias Koefferlein e30f1b6a34 Added unit tests for RBA::Annotation. Plus fixed a bug in the compare function. 2017-06-28 21:39:06 +02:00
Matthias Koefferlein d0427184e4 Fixed a typo. 2017-06-27 23:30:03 +02:00
Matthias Koefferlein 1b3a49e043 Advanced rules now working. 2017-06-27 23:16:59 +02:00
Matthias Koefferlein 9398b5373a WIP: enhanced annotations - ellipses, text alignment etc. Some things aren't working yet! 2017-06-27 00:54:31 +02:00
Matthias Koefferlein 61ef30f9ad Enhanced layout statistics form
The form offers a detailed shape statistics page.
2017-06-25 22:10:12 +02:00
Matthias Koefferlein da07e51257 Bugfix: macro editor bracket detection failed
On Ruby, a syntax highlighter element could contain
duplicate brackets, so that such an expression

  ((a+1)+1)

was not handled correctly. The solution is to treat
each individual character inside the elements but
skip comment and string elements.
2017-06-25 11:30:24 +02:00
Matthias Koefferlein 93713d19e1 Ruby integration and debugger enhancements
- Massive performance improvement with debugger - trace was
  eventually clearing the file to id map.
- UI updates on debugger did not happen because delayed
  execution of functions got disabled.
2017-06-21 01:37:07 +02:00
Matthias Koefferlein 96c150a4ee Fixed #13 (OASIS reader performance on forward-ref PROPSTRING) 2017-06-20 22:05:22 +02:00
Matthias Koefferlein 88a3068a0b More abilities for native plugins
This commit is a preparation for native plugins. It adds
the ability to register for autorun and autorun-early
for native, binary extensions.

Plus, the search path for binary extensions was modified
so it does not need to be ABI specific (i.e. without -gcc).
This prepares for a plugin scheme which uses a C-only API
and does not impose ABI compatibility requirements.
2017-06-19 22:33:37 +02:00
Matthias Koefferlein 19777e5629 Provide a more elaborate interface for native plugins
With this interface, plugins will be able to specify
their version, register autorun functions and more.
2017-06-19 01:02:49 +02:00
Matthias Koefferlein 5ee781a93f Reactivated some from_xy methods for backward compatibility 2017-06-17 16:53:01 +02:00
Matthias Koefferlein 9ff1a76f94 Added some convenience methods for transformations
* Reactivated (deprecated) from_xtrans methods for backward
  compatibility
* Added more flavours of "trans" and "*" (like transformation of
  boxes)
2017-06-17 16:45:01 +02:00
Matthias Koefferlein 7e6dfdf5b4 Another tiny performance enhancement. 2017-06-17 16:01:09 +02:00
Matthias Koefferlein b0fbbadd83 A small performance improvement (by avoiding intermediate objects) 2017-06-17 00:32:00 +02:00
Matthias Koefferlein 07b973a312 RBA performance
Some small performance improvement by avoiding calls to "initialize"
where not required.
2017-06-16 22:28:36 +02:00
Matthias Koefferlein afcacf5b1f WIP: brought down the time for call variant determination by caching. 2017-06-12 23:23:13 +02:00
Matthias Koefferlein c891d06ac3 Some performance enhancement (~30%) of RBA/PYA
This was achieved by separating the methods into
constructors and callbacks, hence there are less iterations
required when lookup up the latter.
2017-06-12 00:31:00 +02:00
Matthias Koefferlein a5d9bbb3d1 WIP: fast replacement for rb_gc_register_address/rb_gc_unregister_address. 2017-06-05 23:26:10 +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 1b0dcb5bf9 Better installation feedback for package manager
Now the confirmation dialog stays open and will show a log with the
installation progress and results.

The "marked" icon has been changed to look a bit less painted.
2017-06-05 12:54:09 +02:00
Matthias Koefferlein 46fccb99bc WIP on Salt package manager
- made WebDAV implementation compatible with Git's SVN API
- bugfix: parallel requests were not supported on tl::HttpStream
2017-06-05 03:16:29 +02:00
Matthias Koefferlein 2f82a8d853 Bugfix: new package is selected after it is created 2017-06-04 00:24:55 +02:00
Matthias Koefferlein edf7caa2fb Enhanced Salt package capabilities
* Salt packages can host native Ruby and Python
  libraries now. The "ruby_lib" and "python_lib"
  templates provide such native libraries.
  This way we can basically wrap every native
  extension in such a package.
* Ability to supply binary plugins through
  Salt packages as well.
2017-05-27 22:32:55 +02:00
Matthias Koefferlein f41e849e2f A little refactoring and polishing of the Salt Manager dialog. 2017-05-26 23:47:36 +02:00
Matthias Koefferlein e08e3459af Set the default salt mine URL to the final one
+ fixed a WIN32 build error.
2017-05-17 22:22:27 +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 88e753e86f Fixed some typos and bugs in the Salt templates 2017-04-29 01:59:19 +02:00
Matthias Koefferlein eca08cbd99 Added many Salt templates. 2017-04-29 01:40:32 +02:00
Matthias Koefferlein f79b14d0e4 Salt: added font, macro and mymacro templates.
Fixed two small bugs in the properties dialog (accept
wasn't possible if the doc link could not be read)
and remove_from_collection (infinite loop).
2017-04-26 23:19:36 +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 01e5c607fc WIP: sort packages by their dependencies
This fix ensures that packages satisfying dependencies
for other packages come before these in the flat package order.
This is in particular important for macro packages where those
supplying libraries need to be executed before the ones
that use these.
2017-04-23 18:22:06 +02:00
Matthias Koefferlein 1a9b5ead09 WIP: documentation URL's of packages can be relative
If the documentation URL is relative it's either
taken relative to the package installation path or
to the download URL. This means that documentation
can be inside the package now.
2017-04-22 23:32:59 +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 561ce8797e WIP: some restyling of the salt manager dialog. 2017-04-22 22:03:40 +02:00
Matthias Koefferlein 1f92b89e16 WIP: Don't allow to edit downloaded packages. 2017-04-22 21:56:37 +02:00
Matthias Koefferlein 42756a76f6 WIP: API version of packages is checked now. 2017-04-22 21:45:49 +02:00
Matthias Koefferlein 38f60ad3fd WIP: package manager lists file details now, API version added 2017-04-22 21:30:39 +02:00
Matthias Koefferlein 7e1e75ebf0 Salt manager dialog: UI enhancements
* refresh function for salt mine
* Split "new" tab into "updates" and "new installations"
* A warning icon in the tab when updates are available
2017-04-22 18:09:12 +02:00
Matthias Koefferlein 6ba251cf2a WIP: Added font controller
This enables font packages: packages can now provide fonts by
featuring a "fonts" directory with the font layouts.

This commit also adds the capability to dynamically add fonts.
The Glyphs system is decoupled from the application's system
path and the BASIC.TEXT PCell parameters are non-cached to
enable dynamic updates.
2017-04-22 00:03:58 +02:00
Matthias Koefferlein 0078ee5334 Fixed a build issue on gcc 4.4.7 (improper use of typename) 2017-04-20 21:30:50 +02:00
Matthias Koefferlein a7038282ce WIP: Library controller plus a bugfix
The bug was that a crash happened when a package was deleted.

Essentially that was an effect of too many message boxes asking
to run autorun macros (also a bug - solved by deferred execution
of the macro update). This is solved by putting the salt model
into a "under construction" state while the model is not updated
yet.
2017-04-20 00:09:53 +02:00
Matthias Koefferlein 9c2c3301cf File watcher: ignore missing files/folders to prevent 'deleted' events later. 2017-04-20 00:09:03 +02:00
Matthias Koefferlein 2dd03c0e37 Removed some artifical styling. 2017-04-20 00:08:31 +02:00
Matthias Koefferlein d5bf24666f WIP: technologies now are synced with salt
- The technology list now is synched with the salt package
  manager so it's basically possible to include technologies
  into packages.

This checkin also contains:

- A "NoDeferredMethods" class that blocks execution of deferred
  methods in a region of code (preferably around message boxes).
  This prevents side effects when message boxes are shown and
  deferred methods are processed because of this.
  That prevention method is used in the macro controller when
  asking whether to execute autorun macros (that happens in
  slots and must not interfere with deferred methods).
  It's also used to protect the exception handlers.

- The tech manager dialog's refresh function used to crash
  because of an invalid tech pointer.
2017-04-18 23:58:24 +02:00
Matthias Koefferlein 4460819a6c Macro editor now acts on more file changes
- Adding/removing folders to packages now will
  make them appear/disappear automatically in the macro
  editor.
- Adding and removing files from folders will make
  them appear/disappear in the macro tree.
2017-04-18 01:07:10 +02:00
Matthias Koefferlein b3abb276a4 WIP: integration of salt controller for macros
This enables defintion of macros within salt packages
(this is probably the most important application).
2017-04-17 18:24:59 +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 88487a001f Integration of Salt with another controller 2017-04-16 23:03:33 +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 6b6b45714f WIP: controllers (tech + macro)
The tech controller now is indenpendent from the
macro controller. The macro controller is responsible for
pulling it's data from the tech controller. It's initialized
after the tech controller so it can do so.

The macro controller is also responsible to building the
menus.

The tech controller issues events that the macro controller
can listen to.
2017-04-15 23:07:40 +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 83b2c150d9 Fixed a segfault in batch mode. 2017-04-11 23:34:55 +02:00
Matthias Koefferlein 018516b0de Fixed #11 (Ruby 2.0.0 compatibility) 2017-04-10 19:27:29 +02:00
Matthias Koefferlein 7a5e7e8187 Fixed #10. 2017-04-09 23:08:26 +02:00
Matthias Koefferlein 9563d13bf3 WIP: introduced technology controller
The technology controller is a further abstraction and
is derived from the TechnologySelector. It will act
together with the MacroController and supply technology
specific information. Macros are part of that.
2017-04-08 22:32:08 +02:00
Matthias Koefferlein 683be55104 Fixed build without Ruby/Python 2017-04-07 22:18:47 +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 b3b0ce066e Fixed some issues around the help index
- Now the help index can be installed with the app
  Fallback is auto-generated index in app folder.
- The index can be generated by script with
  RBA::HelpSource#create_index_file
- The index is read only when the help dialog
  is opened (reduces start time)
2017-04-02 23:30:11 +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 a24e6d94a9 Fixed #9 (DEF reader issue: "Invalid orientation specification") 2017-03-29 23:37:06 +02:00
Matthias Koefferlein 3598898997 Fixed #7 (Support "is_dirty?" predicate for RBA::CellView) 2017-03-29 22:13:09 +02:00
Matthias Koefferlein 7228efc7bd WIP: various enhancements for salt manager
* double-click
* salt mine context menu
* bug fixes
* etc.
2017-03-27 23:55:26 +02:00
Matthias Koefferlein cb589dc2d3 WIP: downloading of packages
- Support for WebDAV
- Download manager implemented
- Apply button functionality implemented

(needs testing)
2017-03-27 15:46:01 +02:00
Matthias Koefferlein d98495c18a WIP: new features for HTTP streams. 2017-03-26 23:27:51 +02:00
Matthias Koefferlein a5d0461284 WIP: removed obsolete method. 2017-03-26 23:26:45 +02:00
Matthias Koefferlein 9e2c4cb927 WIP: marked mode, update required message 2017-03-26 01:02:40 +01:00
Matthias Koefferlein b72655c94b WIP: preview download and search feature in package manager 2017-03-25 23:33:07 +01:00
Matthias Koefferlein fee806704d WIP: combined installation and browser dialog 2017-03-25 10:15:24 +01:00
Matthias Koefferlein d160a5c27c WIP: delete function, installation dialog (first steps) 2017-03-25 00:08:17 +01:00
Matthias Koefferlein 10b09c3575 WIP: create packages from templates
Now, packages are actually created.
2017-03-23 23:46:25 +01:00
Matthias Koefferlein 4a90479187 WIP: package template selection dialog
Plus some initial package templates (without files).
2017-03-23 22:19:13 +01:00
Matthias Koefferlein 1353c9dfb0 WIP: download capabilities for salt grains. 2017-03-21 22:53:04 +01:00
Matthias Koefferlein 820c291623 WIP: salt package manager: features for installer
First steps towards installer support. Specifically:
- basic installation methods, basic framework
- file utilities for directory copy

Side effect: temp directories of unit tests are
now cleared prior to test run.
2017-03-21 22:20:24 +01:00
Matthias Koefferlein 10345eea73 Restyling of log viewer
Now the entries have icons telling the type of message.
This is more convenient when multi-line messages are
encountered.
2017-03-21 12:18:09 +01:00
Matthias Koefferlein 334fca3f76 WIP: checking of grain properties. 2017-03-21 11:24:45 +01:00
Matthias Koefferlein ec415d9251 WIP: functionality of package properties editor
Side effect: the log dialog now has an icon
indicating whether there are errors or warnings.

A new utility widget has been introduced to
attach log messages (warnings/errors) to
dialogs. This widget is a QToolButton that
is invisible initially. It provides warning
and errors channels and can be fed messages.
If errors or warnings are fed, the tool button
becomes visible. If (directly) embedded inside
a QFrame, the frame's background will turn
red to indicate the region of interest.

The button can be pushed to read the log.

The button is called lay::AlertLogButton
and is found in layLogViewerDialog.h.

TODO: move to layBasic.
2017-03-20 22:29:22 +01:00
Matthias Koefferlein faf8acb3d1 WIP: completer for name of dependency package 2017-03-20 17:53:47 +01:00
Matthias Koefferlein 5dab4b19ec WIP: some styling topics. 2017-03-20 10:07:39 +01:00
Matthias Koefferlein b34750f8cd WIP: salt package manager
New features like properties editor, proper
icon sizing, some styling etc.
2017-03-19 22:44:46 +01:00
Matthias Koefferlein 3f9f06a9b9 WIP: more information on packages 2017-03-19 00:42:09 +01:00
Matthias Koefferlein 3a6e4982c8 WIP: more functionality for Salt Package Manager 2017-03-18 22:36:33 +01:00
Matthias Koefferlein b8238a85f9 WIP: first steps towards package browser 2017-03-18 00:22:45 +01:00
Matthias Koefferlein 695a5d3169 WIP: Salt class and unit tests 2017-03-15 22:56:47 +01:00
Matthias Koefferlein c6833b2b67 Fixed a doc typo.
See https://www.klayout.de/forum/comments.php?DiscussionID=935&page=1#Comment_4292
2017-03-14 23:37:39 +01:00
Matthias Koefferlein 134534adca WIP: removal of grains/collections (needs unit tests). 2017-03-14 23:32:16 +01:00
Matthias Koefferlein 59dd36f692 WIP: grains collections for salt package manager. 2017-03-14 22:59:24 +01:00
Matthias Koefferlein 2953184b15 Fixed #6 (RVE DB reader and edges)
This solution will not only fix this issue but also turn
pairs of edges into "edge pair" objects. These objects
provide a somewhat better visualization for DRC violations
by connecting the edges with a filled region.

Single edges and clusters of more than two edges are
represented as individual edges.
2017-03-14 00:09:51 +01:00
Matthias Koefferlein b98afd5a8d WIP: next steps on package manager. 2017-03-13 23:55:57 +01:00
Matthias Koefferlein b16d8b9419 Completed unit tests for laySaltGrain.cc 2017-03-12 23:36:51 +01:00
Matthias Koefferlein e421026366 Started package manager development ('salt') 2017-03-12 23:26:04 +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 93024b4611 Qt binding build issues fixed
Split Qt namespace to enable build on WIN32
(no /bigobj on MinGW). Removed pseudo-constructors
with Qt::Initialization parameter.
2017-03-05 21:01:35 +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
klayoutmatthias af640086e6 Small fixes
- Qt5 binding was not properly including bindings for special types
- Macro editor: forward button wasn't autoRaise like the others
- DRC engine: gave deprecation warnings for Ruby 2.4 because Fixnum
  became deprecated. Now the implementation is more generic.
- Fixed some #includes for Qt5
2017-03-03 22:56:18 +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 08076de815 Merge branch 'master' of https://github.com/klayoutmatthias/klayout 2017-03-02 00:28:27 +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
klayoutmatthias 194a4cc4af Fixed #5 2017-02-28 23:26:47 +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 8e22d7bba8 Bugfix: stop in debugger left it in unusable state
This happened if the script was stopped in the debugger.
Afterwards breakpoints were ignored.
2017-02-26 23:23:20 +01:00
Matthias Koefferlein f18ca83575 WIP: fixed a typo. 2017-02-25 01:47:45 +01:00
Matthias Koefferlein ae986d3234 Implemented #2 ([Simple]Polygon#extract_rad feature for Ruby/Python) 2017-02-25 01:35: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 1f60e7729e Qt signals can be bound to functions with less args in Python
With this change it is possible to bind signals to functions
accepting less arguments. For example:

    def triggered():
      ...

    b = pya.QPushButton()
    b.clicked(triggered)
    b.emit_clicked(True)

wasn't working before since triggered() gets one parameter
(checked) and the call fails. Now, additional parameters are
ignored.
2017-02-24 23:48:47 +01:00
Matthias Koefferlein ede58ae728 Added a convenience method to RBA::Layout for creating a temp layer 2017-02-24 22:43:31 +01:00
Matthias Koefferlein 49be72e1a2 Fixed #3 (crash when dragging PCell dummy) 2017-02-23 23:59:16 +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 15babda953 Provide a proper solution for the bridge object
The bridge object (between QObject and gsi::ObjectBase)
needs to have Q_OBJECT. Otherwise findChild<T> won't
work for it.
2017-02-22 00:17:16 +01:00
Matthias Koefferlein 92fd33744d WIP: first solution for lost references issue
* The solution consists of attaching a bridge object
  to QObjects. If the host object is destroyed, the
  bridge object will notify the script client
* The bridge object attachment is optimized so it
  only happens if required (but still too often ...)
* The child object of QChildEvent gets a special
  handling since this object is almost dead in case
  of remove. This special handling consists of
  a special, stripped class which is used to
  only represent QObject in that particular case.
2017-02-21 23:47:48 +01:00
Matthias Koefferlein eea5da4ba6 Attempt to fix "GSI does not monitor lifetime of Qt objects" 2017-02-20 22:21:29 +01:00
Matthias Koefferlein bdcd76e9b5 Fixed #1 (https not supported) 2017-02-17 22:36:18 +01:00
Matthias Koefferlein 20f77d19d5 Enabled build on Ruby 2.2. 2017-02-17 22:32:43 +01:00
Matthias Koefferlein 8edaf8a62b Added more unit tests for recursive shape iter with complex regions. 2017-02-15 21:23:32 +01:00
Matthias Koefferlein 8c4013c500 Added some more unit tests. 2017-02-15 01:15:47 +01:00
Matthias Koefferlein 320e96f6da WIP complex regions for RecursiveShapeIterator
* Refactoring: no more "box+exclude" regions - they
  can be emulated using a NOT with the same result
* "confinement" of regions inside recursive shape
  iterators
* setters and getters for complex regions in GSI,
  confinement
* more unit tests, some bug fixes
2017-02-15 00:53:39 +01:00
Matthias Koefferlein fb6cf92b15 WIP on complex regions for RecursiveShapeIterator
- Added some tests
- Performance improvements for insert of
  regions into shapes
- Added LayoutLocker for that purpose
  (locks a layout against updates temporarily)
- Improved implementation on RecursiveShapeIterator
  with complex regions: will now check if a shape
  is really inside the region.
2017-02-14 00:13:57 +01:00
Matthias Koefferlein 282c6f70e2 Unit tests are passing again (no new tests yet). 2017-02-13 00:41:37 +01:00
Matthias Koefferlein 16b5e2f99c Added GSI support for complex search regions 2017-02-13 00:13:43 +01:00
Matthias Koefferlein f71fe1ff05 Initial implementation of complex regions for RecursiveShapeIterator. 2017-02-13 00:01:21 +01:00
Matthias Koefferlein 08676f0a01 Add private plugin data to .gitignore. 2017-02-12 16:54:05 +01:00
Matthias Koefferlein 6b9a41b269 Fixed XML output of test suite. 2017-02-12 16:42:15 +01:00
Matthias Koefferlein a1e8aaf6b8 Updated copyright note to 2017. 2017-02-12 15:28:14 +01:00
Matthias Koefferlein d38b1794d2 Tests with missing input data are skipped now 2017-02-12 15:27:12 +01:00
Matthias Koefferlein 7fa185a9b3 Added (empty) plugin directory, fixed main .pro file. 2017-02-12 14:17:18 +01:00
Matthias Koefferlein 1b98f9b0f9 Initialized repository with current sources. 2017-02-12 13:21:08 +01:00