- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Cleanup: In Slot.h, comment out print for debug.
- New: In CellViewer, adds a renameCell() method to "rename" the currently
loaded Cell "in place". Utility function for SaveCellDialog (see below).
- Bug: In Net.h, force expansion of SlotTemplate<Net*> with the line:
const SlotTemplate<Net*> dummyNetSlot ( string("dummyNetSlot"), NULL );
I've no satisfactory explanation, but in the cyclop Inspector the
Cell's NetMap is correctly created and in the cgt Inspector, Nets
entries of the NetMap appears as "unsupported", meaning that the
SlotTemplate<> has not been generated for Net. This correct the
problem.
- Bug: In CellWidget, correct the slightly off position of Labels references.
- New: In ControllerWidget, new TabSettings tab to hold the configuration
settings of the various Coriolis tools. The TabSettings is a tab itself.
- Bug: In PaletteWidget, do not derive from QScrollArea. Instead uses it
as a child widget. This solves the refreshing problem of the Palette.
As a rule now: never derives from anything other than QWidget.
- New: GotoWidget, not having this feature finally unverved me enough for
beeing implemented. You can specify an (x,y) on which the view will
be centered and an aperture which gives the size of the view smallest
side. It's a way of specifying the zoom level (as the zoom is not
meaningful for users). An aperture of "zero" disable that feature,
that is, zoom remains unchanged. The coordinates are integer which
are implicitly expressed in the current mode used by the viewer
(Symbolic, Grid, or Physical in micro-meters).
- Change: Big rewrite of how the Symbolic/Grid/Physical modes are sets
to/from the CellWidget. Impacted widgets are CellWidget &
DisplayFilterWidget.
Main changes are that there is no more "individual" setter/getter for
modes (setSymbolic(), setGrid(), setPhysical(DbU::UnitPower)) but one
with two arguments:
setDbuMode(int mode,DbU::UnitPower)
Signals & slots of the widgets also evolves into:
dbuModeChanged(int mode,DbU::UnitPower)
changeDbuMode (int mode,DbU::UnitPower)
- New: In Reference, adds a type to differentiate between "Labels" and
"Position". Labels are strings that we wants to display, and position
are specific points with a name attached to it.
- New: In CellWidget, specific display for the two kind of references
(Label & Display).
- New: In Query, add support for Markers, although they are Go's, are stored
in a separate QuadTree directly at Cell level. In a very similar fashion
to the ExtensionGos. Sometimes should look if thoses mecanism could be
unified.
* ./hurricane/src/viewer:
- New: In CellWidget, add support for displaying References. Uses the Marker
Query. For now labels are displayed centered on the reference point,
making that point hard to see. That behavior may be changed later if
needs to be.
- Bug: In InspectorWidget, the History::push() wasn't updating the ComboBox
index. The line was strangely commented out (?).
- Change: In Cyclop, now uses the GtkStyle when not under OSX and Qt is
newer or equal to Qt 4.5.0.
- Change: In the various Qt Model Table, do the rowHeigh bug correction.
- Bug: In InspectorWidget/NetlistModel, when browsing through the records
tree, the records were generated twice at each slot change. This
was due to the History ComboBox sending a index change signal then
the InspectorWidget setting the slot *again*.
When trying to explore a Slot, but this Slot is empty (like an
empty vector, for instance) do not gut the RecordModel. Because
as we find out that the new Slot is empty we go back and restore
the previous contents. Potentially slow if we comes from a Slot
with lots of records. Now we dump the contents only if there is
something to explore.
* ./hurricane/src/hurricane:
- Bug: In Record, the slots where stored in a list container, which was
making indexed accesses very very slow. This slowdown was also
affecting the destructor of Record (this is the explanation why
the RecordWidget was slow, even when *leaving* the net IntrusiveSet).
Now implemented in term of STL vector.
- Bug: In Slot/Common, still some adjustements to make the Inspection
mechanism work with all types. Correct the "IntrusiveMap<>" not
working with the NetMap. Related to templates not using the same
constness.
- Change: In Entity/DBo/Cell, Some more adjustements on Slot/Records.
- Bug: In NetlistWidget/NetlistModel, suppress the "forceRowHeight()"
method which was terribly slowing down the table display. Instead
uses the "setDefaultSectionSize()" of the vertical header to setup
the row height (much more compact display).
- Bug: In NetlistModel, strangely, although we have a "data()" and a
"headerData()" method, the "data()" is also called for the headers
potentially erasing any previous setting done with "headerData()".
This was occuring for the fonts settings. Don't known if it is
a bug or a feature of Qt...
- Thoses changes has to be ported to the others widgets some times...
- Change: <PROJECT>_SEARCH_PATH are put back into the *first* tool of
a project.
- Bug: In HURRICANE_CHECK_MACRO(), the quiet flag was not correctly
implemented. User ARGV instead of argv (case sensitivity!).
- Change: New structure for the installation & CMake system.
* Tools are now grouped in "projects". There are three projects:
1. - IO: Standalones parsers/drivers (IO_USER_TOP, IO_TOP).
2. - Coriolis: Base & digital tools (CORIOLIS_USER_TOP, CORIOLIS_TOP).
3. - Chams: Analogic tools (CHAMS_USER_TOP, CHAMS_TOP).
Each *project* has a two "TOP" environement variables, for
example: IO_TOP and IO_USER_TOP. Thoses variables are the only
ones useds to locate the tool (CMake modules, headers & libraries).
The local path always takes precedence over the global one.
The localisation process occurs in each tool top CMakeLists.txt
where the macro SETUP_PROJECT_PATH is to be defined. There is no
way to put it in a shared includes file as it's the macro precisely
used to locates the includes... You have to call the macro once for
each project you wants to uses:
SETUP_PROJECT_PATHS(IO)
SETUP_PROJECT_PATHS(CORIOLIS)
* In FindTOOL.cmake, supress the <TOOL>_DIR_SEARCH and uses the
<PROJECT>_DIR_SEARCH instead (example: CORIOLIS_DIR_SEARCH).
* buildCoriolis.py modificated according to the new "TOP" scheme.
- Bug: In DebugSession, bad stacking/unstacking of debug levels (unapaired),
and wrong value stacked sometimes.
* All Hurricane/Coriolis tools:
- Change: Simplify the CMakeLists,
- Bug: In DbU, "micro" symbol is "u", not "m".
- Change: In DbU, uses different precisions on differents units.
* ./hurricane/src/hviewer:
- Change: In CellWidget, when drawing a Ruler, display the current Unit
mode on first & last tick.
- 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.