'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
A new PCell method cell_name/cell_name_impl that
delivers a cell name, which is used for "convert to
static cell" and as cell name in general.
Needs testing.
The complication is auto-load: in case one file changed and needs to
get merge, the whole library needs to be updated. Solution is to do
a rescan of the whole folder in case something has changed there.
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.
- On "via" (Key "O"), the application switches into path mode
- A selection menu pops up if multiple layers are possible starting
points below the cursor
As a side effect, "tap" will only display the layer selection menu
if there is more than one layer to be selected.
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.
- New virtual method "reload" for Library
- Implementing that for file-based libraries
- Integrating that into "refresh"
- GSI binding for Library#rename, Library#unregister
- Trigger changed event on Library#unregister
- Library#_destroy will unregister the library
- Typos fixed
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.