1. point-like selections use pan-to-selection instead of zoom-to-selection
2. Drawing texts on hidden layers: one warning less about drawing on a hidden layer
* Only check for layers in the selected stack - this
avoids problems with "masking" pin shapes for example
* Use shape transformation for shapes inside hierarchy
'save all' now behaves like 'save' on all layouts by respecting
the application-wide writer options.
In addition, a weird feature was fixed: when using 'save' for the
first time, old versions were freezing the writer options and changing the
application-wide options did not have an effect on views after
they were saved the first time.
Now, this behavior only applies to "save as" and a popup is shown
in the top of the layout view indicating that from now on the
special options apply. This way, special options can be picked
in "save as" and they will remain valid during the next "save".
1. Optimiziation - not more than one empty cell per pixel
This is not very efficient on the available test cases.
2. Introducing a virtual dimension for the empty cells
for the purpose of label scaling.
With this, the labels are scaled (if a scalable font
is selected) and not drawn when becoming very small.
The parameter is found in the setup pages under
Display/Cells.
- The mouse release event's button mask reflects the
keyboard modifiers at the time the button was released
- Same for click event
- Selection tool and partial selection uses the buttons
from the release event
- New bitmap mask constants are available to extract the
keyboard modifiers and mouse buttons from the button mask.
- Documentation was enhanced
* you can zoom in now to select the end point. Problem was
actually that zooming in was a problem when the start point
went out of the viewport
In addition:
* Messages are sticky now ("Click on second point")
* "Esc" will cancel path trace mode
* The cursor switches back to normal after tracing
The fix consists of moving that options into the case-specific
options like DBU, instead of having it in the format-specific,
default writer options. So they can be specified on a per-case
basis and taken from the current layout by default.
Specifically:
* SaveLayoutOptions#gds2_libname is deprecated and replaced
by SaveLayoutOptions#libname
* -ol (buddy tools) is no longer format specific
* The GDS writer takes SaveLayoutOptions#libname, and
if empty, substitutes by the current libname. As last
resort, "LIB" is used, because LIBNAME cannot be an
empty string.
* The libname got removed from the global writer options UI
* In the "Save As" options dialog, it now is part of the global
options and initialized with the current layout's libname.
Implements a new option to show/hide unresolved references
(ghost cells). The option is found in "Display/Cells"
in the Setup dialog and also in the View menu.
The solution consists of a new object, namely "TextInfo"
which allows deriving the true label bounding box from a
Text or DText object. See class documentation for details.
1.) LayoutView#on_current_layer_changed(iter)
"iter" is the iterator pointing to the new current layer
Is called after the current layer (the highlighted layer)
changed.
2.) LayoutView#on_selected_layers_changed
Is called after the selected layer set changed.
Problem was that changing the active cellview index by clicking
on a specific item in the properties dialog cause a "clear_selection".
That interfered with the code of the properties dialog that
expects a static selection.
Fixed by disabling the events that lead to "clear_selection".
Side effect is that under these circumstances the active_cellview_changed
event is not triggered which also prevents side effects due to
scripts hooking into that event.
- Make RBA::LayoutViewBase derived from Dispatcher, so we can pass LayoutView
to methods asking for a dispatcher
- For this, the Dispatcher needs to be the first base class of LayoutViewBase
and gsiDeclLayDispatcher is moved to laybasic
- API for editor options pages and message passing (callbacks)
This bug happened when a plugin package was installed. In
this case, the plugin was installed dynamically. The effect
was for example that the grid in a view became invisible.
Problem was, that the plugin registration re-generated all
plugins from the view, but did not reconfigure them. Hence
the grid had the default setting which was invisible grid.
This bug happened when a plugin package was installed. In
this case, the plugin was installed dynamically. The effect
was for example that the grid in a view became invisible.
Problem was, that the plugin registration re-generated all
plugins from the view, but did not reconfigure them. Hence
the grid had the default setting which was invisible grid.
The solution consists of a second path to bounding boxes of
cells - namely "bbox_with_empty". This bounding box is a
(0,0;0,0)-box if the cell is empty. Correspondingly, empty
and ghost cells are displayed as single points. Ghost cells
also behave like hidden cells now.
After introducing the "do not select shapes
or instances if they overlap the viewport entirely"
feature, 'tap' was not finding shapes which extended
beyond the view's borders.
This got fixed and for 'tap', such shapes are
considered again.
- There is a new configuration page entry called
"Min spacing" for the grid. The default value is 4.
The value specifies the grid min spacing in
units of UI font height.
- A bugfix is included: the ruler now is drawn after
the grid, hence is not hidden by it (specifically
in checkerboard pattern mode)
- To allow bigger grid spacing, the ruler now
is allowed to grow bigger than before.
The implementation will not update the PCell on
property sheet edits of the guiding shape
if lazy evaluation is requested. Still, changes
are committed to the PCell on committing the
property page.