- New: In DbU, extend the StringMode/getValueString() to support the physical
unit in addition of lambda & foundry grid. "setStringMode()" has now a
second parameter "UnitPower", only used when the mode is DbU::Physical.
* ./hurricane/src/hviewer:
- New: In CellWidget, the fitToContents now adds a margin of 5% to get border
clear of the bounding box.
- New: In CellWidget, ability to display lengths in nanometers & micrometers
in complement of symbolic and foundry grid. DisplayFilterWidget modificated
accordingly. New members:
void setPhysicalMode ( DbU::UnitPower );
bool physicalMode () const;
DbU::UnitPower getUnitPower () const;
In addition to:
bool gridMode () const;
bool symbolicMode () const;
void setGridMode ();
void setSymbolicMode ();
- Change: In CellWidget/Ruler, rulers are now unidirectionals (as in Cadence).
- New: In CellWidget, support for drawing components names. Includes correction
of badly computed coordinates in drawDisplayText.
Components names are drawed only for the top level of hierarchy and only
if the bounding box is large enought (currently hard-coded to 50x50 pixels).
- New: In Net, "Automatic" attributes to distinguish automatically generated
net names without string pattern matching. "Automatic" Net's names are not
drawn by the CellWidget to much cluttering the display. And testing a boolean
is way faster than a pattern matching on a hard-coded name.
- Change: In CellWidget, when loading a terminal Cell, draw it's internals.
- Change: In RulerCommand, allow the ruler to be on the cursor grid, not the
snap grid (usesul for the real mode where the snap grid is much bigger
than the cursor grid).
- New: In Occurrence, new method getBoundingBox(const BasicLayer*). Returns
a different value from getBoundingBox() only if the Entity is a Component.
Long awaited by the Solstice extractor.
- Change: In ExtensionSlice, keep track of the created ExtensionSlice by name
to avoid consuming a new bit each time an ExtensionGo slice is deallocated/
re-allocated (happens often in Solstice/Equinox).
- Backtrack: In SelectCommand, do not uses::boost regex as their library have
not been compiled for 32 bits support under OSX Snow Leopard ?!$#.
- Bug: In Command.h, include and uses std::string has in some rare case no one
has done it before.
Now a command is associated to one CellWidget exactly, the active flag
was shared among all CellWidget which was an error (do not show unless
we start to multithread).
- New: In SelectCommand/SelectionPopup/SelectionPopupModel now there are three
selection mode:
Mode 0: Select all Component under point.
Mode 1: Select whole nets whose at least one component is under point.
Mode 2: Same as 1, but hide all cluttering "*nymous*" nets.
Rotation through the mode is done by pressing repeadedly the 'N' key.
The various select modes are implemented through "sub" Collections.
- export MousePositionWidget.h so pharos can use it (displays the (x,y) mouse position in status bar)
ADDS
- add a getOnPhysicalGrid() in DbU
- add getPhysical and getOnPhysicalGrid functions in PyDbU and also defines useful CONSTANTS
- New: In DbU, create a "onCustomGrid(point,step,round)" method to place
a point on an arbitrary grid. That different from the real or symbolic
ones.
- Bug: In DbU, all the snap function where bugged when passed negatives
coordinates.
- New: In DbU, new conversion function, DbU::getPhysical() to translate into
physical (metric) system.
- New: In CellWidget, separate the "Snap Grid" (real or symbolic) from the
cursor position. The cursor position will now be displayed in half-lambda
(symbolic mode) or founder grid unit (real mode).
That can be changed trough the CellWidget::setCursorStep(DbU::Unit)
method.
- New: In CellViewer/ControllerWidget, the CTRL+I keys toggle the visibility
of the Controller instead of systematically showing it.
I rewrited everything like it was in Coriolis-1 (PyType_create) and reuse the precedent hierarchical system (PyTypeInheritedObjectDefinition)
With all these changes Pharos is able to run the same script several times without any error (and not only 7 times before crash)
Maybe there are still some bugs but it seems ok for the moment :D.
does not throw Error anymore but cerr and return
this way it is possible to execute python script more than one time
Adding trace information for DirectDeleteMethod
- Adds a CMAKE_POLICY CMP0003 has we've upgraded to cmake 2.6.
* ./hurricane/src/hurricane :
- Bug: In Interval, the merge method wasn't working if the "other"
Interval was empty (doing merge) instead of nothing. This was
a non-symetrical behavior.
* ./hurricane/src/hviewer :
- New: In CellViewer, adds an accessor to the ControlerWidget widget.
- Bug: In CellViewer::imageDisplay(), when using GtkStyle the file
dialog seems to core dump if the directory is not specified.
Now systematically starts with the current working directory.
- Change: In Technology::getViaBetween(Layer*,Layer*) if the two layers
are identicals, return the layer instead of NULL (mostly for mono-
metallic VIAs).
* ./hurricane/src/hviewer :
- Bug: In CellWidget::redrawSelection(), correct calculation of the
selected Instances abutment box. We must apply the occurrence path
transformation to the instance transformation and not the other way
around.
- Bug: In SelectorLess(), Instance must be *inferior* to Components as
they are drawed after in CellWidget::redrawSelection().
o added bool noScale to hide colorScale (only useful for congestionMap)
o respect the cellWidget aspect ratio when saving
- Adding 'Save to image' functino which call a QFileDialog to choose file name
- Highlight a masterCell's abutmentbox when it's selected (there is a bug in this)
- Bug: In CellWidget, the drawRulers was copying an enlarged redrawArea into
the Selection Plane causing the selection to deseapear gradually when
slowly shifting.
- New: In PaletteWidget: allow to select the number of rows of the grid
widget (up to "infinite", meaning one column). Allow to hide entire
groups in the widget.
- Change: Consistent encapsulation of "_active" in Command and all it's derived
classes.
- New: support for Rulers. Start drawing by pressing Shift+L.Button, finish
by pressing it again. To cancel a Ruler press Shift+R.Button.
Drawing style support also added : "text.ruler". Rulers are always
visibles (display threshold sets to zero), only the numbers of graduations
displayeds changes (at least 5 pixels between two graduations).
- Bug : In Timer.h, forgot to declare the specialized getString()
template, thus preventing the timer to be correctly display in
output streams.
- Bug : In CellWidget::_redraw(), uses "paintersBegin()" instead of
"painterBegin()" (whithout the "s"). The former open painters for
both normal & selection planes which are subsequently accessed by
"setPen()". The laters opens only the normal plane painter resulting
in warnings for the selection plane painter (shows only from Qt 4.5).
- New : In CellWidget, ability to support the physical grid (not only the
symbolic grid). Added selection symbolic/real in the DisplayFilter.
- Change : add to Technology and all the Layers sub-classes a
"_onDbuChange(float)" method.
This is due to the fact that the symbolic technology is loaded first
into the DataBase (needed for defining the BasicLayer ordering) along with
all the symbolic dimensions for the symbolic Layers. Only afterward, we
load the real technology (hcmos9 for instance) which will sets the
"grids per lambda" factor to it's true value, changing the meaning of
the already loaded symbolic values. Then, it is necessary to scale those
values so they are coherent with the new "GPL" factor, hence the
"_onDbuChange()" function.
NEVER USE THIS FUNCTION AFTER THE TECHNOLOGY HAS BEEN LOADED, it would
render all symbolic coordinates false...
- Bug: In the various Property sub-types dox file the Hurricane namespace
wasn't closed, resulting in the deseapearance of thoses classes in the
documentation (painful to diagnose).
Still, the doc for the derived Property mostly remains to be written.
- Bug: clearing some remnants of a merge conflict in DataBase.dox.
- Change: in CellWidget::DrawingPlane, complete replacement of hard-coded
numeric indexes by the PlaneId enum values.
- Change: in SelectionWidget, filter on the Occurrence name instead of the
path name. Todo: add a radio button to select on witch column we sort.
- Bug: in SelectionWidget, when the filter is active, remap the index
of the toggled occurrence through the filter.
* ./hurricane,
./coriolis/src/katabatic,
./coriolis/src/kite :
- Change: documentation building with doxygen is now optional and disabled
by default. To enable documentation generation run cmake with the
following argument :
-D "BUILD_DOC:STRING=ON"
Or edit the cmake cache variable "BUILD_DOC".
- Bug: destructor of Technology was destroying some Layers twice. Destruction
of Layer was done by a loop over a multimap<> that could contains more
than one entry of a Layer... Now using a loop over the IntrusiveMap.
- Change: Reorganization of NetExternalComponents property, all functions
are now static functions members as the property name.