- Layer icons can be obtained now
- Icon dimension is arbitrary
- Scaling icons for layer list
- More robust event handling in case of pop-up menus
(selector)
- "Tap" will noe pop up a menu with all layers below the cursor.
When selected, the current layer is switched.
* First implementation.
* PORT BACK: fixed a few flaws (fixed-width side panel ..)
1. On "save as" the filename displayed in the cell view selection box
was not updated
2. The width of the library and cellview panel could not be reduced
below the width of the combo boxes in the headers. So the
panels might have become pretty wide without being able to reduce
them.
* Implemented #560 (multiple techs on libraries)
1.) Copy & Cut will now take the selection from
the transient selection if no real selection is present
2.) Hence, Copy & Cut are always enabled
3.) The same if true for duplicate
4.) Move interactive will also act immediately on the transient
selection.
The solution tries to be a bit more generic:
- four buttons are there to synchronize coordinates
- three buttons to snap p1, p2 and auto-measure from p1.
This fix adds a "amend" option to the rounded corners
dialog - disabling this option allows to skip the "undo rounding"
step in case the algorithm does not determine the rounding
properties of the input properly.
Without "amend" enabled, the rounding will always be
applied atop of any existing rounding.
1. Errors in coerce_parameters are now shown as
red label + warning icon in the parameters dialog
2. Errors during produce are always logged now
Plus: the scroll bars of the PCell parameters page
don't jump back on "Apply".
This commit
- Ignores exceptions when checking for PCells that accept shapes.
Hence a single rogue one does not break the feature.
- Prevents errors when parameters named "layer" are present
by making the implementation safe against this case.
- In addition, guiding shape parameters of type "Path", "Box" etc.
(i.e. integer types) are supported too although they are
not recommended for portability.
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.
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.
Reason: PCellDeclaration::parameter_declaration is volatile when
the PCell does not want parameter declaration caching. In this
case, begin .. end iterators must not be taken from different
calls to parameter_declaration for example.
- 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.
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
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.
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