Commit Graph

376 Commits

Author SHA1 Message Date
Damien Dupuis 297e58d535 CHANGES
- 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
2009-10-15 13:46:29 +00:00
Jean-Paul Chaput fee6e4c593 * ./hurricane/src/hurricane :
- 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.
2009-10-14 08:20:08 +00:00
Damien Dupuis 4365b6cefb Don't ask me why but the simple test : "^10\\.[012345]*" believes that 10.6.1 is < 10.6
I changed the test to : "^10\\.[012345]\\.?" and tested it with 10.5 10.5.8 10.6 10.6.1 everything is ok
2009-10-01 09:42:04 +00:00
Jean-Manuel Caba 093a51ddb3 Wrapping SET(CMAKE_OSX_ARCHITECTURES "i386;ppc") to compile on older version than Snow Leopard 2009-09-30 21:49:33 +00:00
Damien Dupuis 3b9f8cbd7b I did suppress the constructor (new) system christophe build since it seemed bugged.
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.
2009-09-30 15:11:49 +00:00
Damien Dupuis 689b8cd722 In case of multiple addType with same type :
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
2009-09-25 13:51:09 +00:00
Damien Dupuis 98df102f5d Adding SET(CMAKE_OSX_ARCHITECTURES "i386;ppc") to compile with QT4.5 on Snow Leopard 2009-09-25 13:45:49 +00:00
Jean-Paul Chaput bfe6228828 * In All top level CMakeList :
- Adds a CMAKE_POLICY CMP0003 has we've upgraded to cmake 2.6.
2009-08-23 20:24:14 +00:00
Jean-Paul Chaput dbe871fe7e * In All top level CMakeList :
- 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.
2009-08-11 10:43:55 +00:00
Jean-Paul Chaput cc98bd541d * ./hurricane/src/hurricane :
- 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().
2009-07-25 15:10:46 +00:00
Damien Dupuis 54219843d6 - Modified 'copy to image' :
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)
2009-07-24 10:32:14 +00:00
Jean-Paul Chaput 66cbe976c3 * ./hurricane/src/hviewer :
- Change: Small size adjustments on the cartouche.
2009-06-04 18:28:46 +00:00
Jean-Paul Chaput 46ab139ef9 * ./hurricane/src/hviewer :
- New: Adds a nice cartouche on printed snapshots.
2009-05-14 11:39:31 +00:00
Jean-Paul Chaput 0c3c37066d * ./hurricane/src/hurricane :
- New: Utility functions to manage float rounding errors.
2009-05-13 14:58:53 +00:00
Jean-Paul Chaput e0c9f0ba3f * ./hurricane/src/hviewer :
- Bug: In CellWidget, the drawRulers was copying an enlarged redrawArea into
        the Selection Plane causing the selection to deseapear gradually when
        slowly shifting.
2009-05-06 13:11:03 +00:00
Jean-Paul Chaput 609772dcc3 * ./hurricane/src/hviewer :
- 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.
2009-04-21 11:41:10 +00:00
Jean-Paul Chaput 4b8f79bc29 * ./hurricane/src/hurricane :
- Putting LGPL headers.
2009-04-17 16:36:02 +00:00
Jean-Paul Chaput ee828cb19f * ./hurricane/src/viewer :
- 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).
2009-04-15 16:09:18 +00:00
Jean-Paul Chaput a404498be5 * ./hurricane :
- 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...
2009-04-12 21:05:51 +00:00
Christophe Alexandre 617e5db177 export PaletteWidget 2009-04-10 09:53:47 +00:00
Jean-Paul Chaput d1ce1ce975 * ./hurricane :
- New: ability to shrink bounds of an Interval.
2009-04-07 15:22:04 +00:00
Jean-Paul Chaput f2fa2bf4c1 * ./hurricane/doc/hurricane :
- 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.
2009-04-03 14:21:04 +00:00
Jean-Paul Chaput 57a0035247 * ./hurricane/src/hurricane :
- Bug: strange interraction between template, const Data and getString().
        Must const_cast<> to const datas before calling getString().
2009-03-30 21:26:37 +00:00
Jean-Paul Chaput abbc94ea90 * ./hurricane/src/hviewer :
- Change: more ergonomic selection mode commands. Now clicking on "nothing"
        automatically switch off selection displaying.
2009-03-18 15:33:08 +00:00
Jean-Paul Chaput f102af2832 * ./hurricane :
- Cleanup debug messages.
    - New: in NetExternalComponents, adds a static method "isExternal(Component*)",
        used in AP driver.
2009-03-09 09:59:13 +00:00
Jean-Paul Chaput 634af2196f * ./hurricane :
- 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".
2009-03-03 22:27:03 +00:00
Jean-Paul Chaput b8e5f9073a * ./hurricane :
- 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.
2009-02-23 16:07:09 +00:00
Damien Dupuis d877893e75 - adding export of colorScale as a legend of the image 2009-02-23 16:18:21 +00:00
Damien Dupuis 79b14361c5 - adding copyToImage function to generate jpg file (thanks to JPC) 2009-02-23 13:43:36 +00:00
Jean-Paul Chaput c3f4af9cbf * ./hurricane/src/hviewer :
- Bug: corrected memory leak in RedrawManager, events weren't freed.
    - Bug: various attributes reordering in constructors.
2009-02-13 16:30:27 +00:00
Forgotten Author (labiadh) cb3d9cb835 tests in progress 2009-02-12 15:02:35 +00:00
Damien Dupuis b8a763d69a - Add Temperature ColorScale from dark blue to red (mid color is at 80% of the scale)
the goal was to test it with edge in global routing

      But fireScale is better -_-
2009-02-11 12:48:42 +00:00
Damien Dupuis 035bf7bc44 - Minor corrections for g++ 4.3 2009-02-09 12:57:38 +00:00
Damien Dupuis b3aeaa5a6f - report imageOnly boolean in copyToPrinter function as an optional argument
- adding the RainbowColorScale
2009-02-04 16:11:53 +00:00
Jean-Paul Chaput 00e01d50c8 * ./hurricane/src/hviewer :
- Feature: ability to hide/show layer of the palette from the code, needs
        the CellWidget to be bound to a palette to work.
2009-02-04 13:30:39 +00:00
Jean-Paul Chaput ecc9c5402f * ./hurricane/src/hviewer :
- Bug: in CellViewer::setCell(), do not try to get the name of the cell if
        it's a NULL pointer... Solve the cyclop "empty cell" coredump problem.
    - New feature : dbo_destroy<> a shared_ptr<> that calls the destroy method
        of an object, specially tailored for DBo. Application in Cyclop.
2009-02-03 17:58:06 +00:00
Jean-Paul Chaput 78be633226 * ./hurricane/src/hviewer :
- Change: modifie GraphicsWidget, PaletteWidget, NetlistWidget &
        SelectionWidget to comply to the "star" model.
2009-02-03 15:05:05 +00:00
Christophe Alexandre 35e8d30026 bug in last commit
tests directory is at the root
2009-02-02 16:51:23 +00:00
Jean-Paul Chaput 4067a363dc * ./hurricane/src/hviewer :
- Bug: correction of the bad keyPress event handling in InspectorWidget
        (had to press twice the key for the action to be transmitted).
          Uses an eventFilter() at InspectorWidget instead of a keyPressEvent()
        overload. The keyPress event is first received by the QTableView then
        transmitted to the upper level. The eventFilter allows the InspectorWidget
        to catch the event *before* it gets to QTableView (but let pass thoses
        it don't want).
    - Bug: idem for SeletionWidget.
    - Change: do not draw the rectangular area of AreaCommand until it is bigger
        than a given threshold (programmable). Affect ZoomCommand and
        SelectCommand. ZoomCommand no longer issue a warning when the zoom is
        to small.
    - New feature: fit to net in the NetlistWidget. Uses simple contextual menu,
        another way to avoid overloading keyPressEvent().
    - Change: in Query, the filter has now it's own subtype: Query::Mask.
    - Change: enhancement for the "start" model of signal propagation, used to
        re-implement the DisplayFilterWidget.
    - Change: more clear policy for signal emission: a signal must be emitted
        by any "setter" method (setStartLevel(), setStopLevel(), ...). Has to
        be enforced for all setter (work in progress).
    - Change: re-implemenation of the delayed refresh mechanism. No more flags
        propaged througout the functions calls but a session mechanism instead.
        See CellWidget::openRefreshSession() & CellWidget::closeRefreshSession().
        Nothing is actually drawn until the last session is closed.
          Session mechanism can be invoked by signals/slots, see NetlistWidget.
    - Change: less dangerous key mapping:
        'z'          : zoom in.
        'm'          : zoom out.
        'CTRL+z'     : previous zoom level.
        'CTRL+m'     : next zoom level.
        'CTRL+Up'    : back in hierarchy.
        'CTRL+Down'  : go down in hierarchy.
        'SHIFT+Up'   : back in hierarchy stack.
        'SHIFT+Down' : go down in hierarchy stack.
2009-02-02 14:45:48 +00:00
The Coriolis Project a2e1fd4d97 HTest library testing part 2009-02-02 11:14:03 +00:00
The Coriolis Project 42dfa164c7 Initiating Hurricane Tests 2009-02-02 10:20:29 +00:00
Christophe Alexandre 78140e5feb new doxyfile 2009-01-30 16:19:55 +00:00
Jean-Paul Chaput 3d6ebdda92 * ./hurricane/src/hviewer :
- Change: simpler implementation of the occurence selection mechanims
        between SelectionPopup, SelectCommand, SelectionWidget & CellWidget.
        Consistent (identical) names of signal/slots : selectionToggled() and
        toggleSelection().
    - Change: disable QApplication::processEvent() has it seems to slow down
        display refreshment on Mac OS. This may be a side effect of another
        problem not yet diagnosed.
    - New feature: CellWidget internal state enhancement : now manage an
        history of scales (through 'u' & 'd').
    - New feature: hierarchical exploration through 'CTRL+u' & 'CTRL+d'.
        On second though, what a bad key mapping. To be corrected soon...
2009-01-30 14:52:05 +00:00
Jean-Paul Chaput 8961968b8b * ./hurricane/src/hviewer :
- New feature: CellWidget now store it's internal state in a separate
        nested object CellWidgetState. The State is work in progress, currently
        is store the Cell*, showSelection, cumulativeSelection, selection
        criterions and showBoundaries. showBoundaries may evolve to be stored
        as part of the Palette's state.
    - Change: implement the "start" propagation model signal/slot for
        showSelection, cumulativeSelection & showBoundaries. The main concern
        is to avoid signals loop. See SelectionWidget::setShowSelection(bool)
        for an example.
    - Change: supress the minimumSize of the SelectionWidget (200 pixels is a
        waste of space when the Path is empty).
2009-01-27 10:14:46 +00:00
Jean-Paul Chaput e58c397360 * ./hurricane/src/hviewer :
- Optimization: rework the display speed and display policies. Now redraw
        requests no longer interrupt themselves, provoking a lagging effect but
        a more fluid display (Events interruption is working nonetheless).
          Small rework on RedrawManger: more meaningful attributes names and
        code simplification.
          The previous behavior can be re-enabled with the ALLOW_REQUEST_INTERRUPT
        define.
          Try to reduce to the min the number of pixmap copy, less calls to
        DrawingPlanes & repaint.
          The hurricaneAMS transview so regain it's previous fluidity when
        parameters are changed.
    - Change: the _stripWidth can now be adjusted.
    - Note on profiling: sysprof, or rusage do not take account for operations
        outside the processus, so for example, when a pixmap copy is done, it
        doesn't show any cost in the processus but it's paid in Xorg.
          The operation seems to be fast while it's slower instead.
2009-01-24 11:14:38 +00:00
Christophe Alexandre 996c1d1c93 compile the X11 QApplication constructor only on X11 platforms 2009-01-22 11:37:42 +00:00
Jean-Paul Chaput f62dcb53b6 * ./hurricane/src/hviewer :
- Bug: do not redraw the grid with each paintEvent(). This is a terrific
        cpu eater. Grid is now drawn into the same plane as the layers.
2009-01-21 16:42:58 +00:00
Jean-Paul Chaput 259ae70943 * ./coriolis/src/crlcore/src/ccore/Banner.cpp
./coriolis/src/crlcore/src/ccore/crlcore/Banner.h
   - Moved "CBanner" to "Banner", cleaned up, relooked, renamed functions, reorganised. 

 * ./coriolis/src/crlcore/src/ccore/ToolEngine.cpp
   ./coriolis/src/crlcore/src/ccore/crlcore/ToolEngine.h
   ./coriolis/src/crlcore/src/ccore/crlcore/ToolEngines.h
   - Renamed CEngine to ToolEngine, cleaned up, relooked. All fonctions as static
       members.

 * ./coriolis/src/crlcore/src/ccore/Memory.cpp
   ./coriolis/src/crlcore/src/ccore/crlcore/Memory.h
   - Renamed CMemory to Memory (as for Timer), minimal cleanup.

 * ./coriolis/src/crlcore/src/ccore/crlcore/*.h
   - Change anti-double inclusion constants from __XX_H__ to __CRL_XX_H__
       (that is: include namespace) to avoid potential constant clashes with
       other pieces of software.

 * ./coriolis/src/crlcore/src/ccore/Utilities.cpp
   ./coriolis/src/crlcore/src/ccore/crlcore/Utilities.h
   - Finish porting of all features from CUtils. Simplificated mstream using
       member templates. Speedup mstream by using static_cast instead of
       dynamic_cast.

 * ./coriolis/src/crlcore/src/ccore/Environment.cpp
   - Now read CORIOLIS_TOP from UNIX environment instead of hard-coded
       directory (to my personnal installation...). See new method
       "loadFromShell()", needs to be extended to all other variables.

 _____________________________________________________________________________


 * ./hurricane/src/hurricane/BasicLayer.{h,cpp}
   - Suppress all graphics related members from Layer.
   - Adding realName member for symbolic to real transformation.

 * ./hurricane/src/hviewer/CellWidget.cpp
   Bug: Now uses display threshold from Graphics (DisplayStyle) instead
     of layer. Now layers appears/diseapears while zooming/unzooming.

 * ./coriolis/src/crlcore :
   - Separating clearly symbolic technology form real technology.
   - Various file renaming.

 _____________________________________________________________________________


 * ./hurricane/src :
   - Complete include re-organisation.
       include/hurricane/*.h            : kernel.
       include/hurricane/viewer/*.h     : hviewer.
       include/hurricane/inspector/*.h  : hinspector.
     Includes have been moved into subdirectories of .cpp files (as in
       crlcore).
   - Now you must include files like this :
       #include  <hurricane/Layer.h>
       #include  <hurricane/viewer/CellViewer.h>
       #include  <hurricane/inspector/HInspector.h>  
   - Suppressed viewer specific include path in FindHURRICANE.cmake.
   - Re-enabled documentation, with dot disabled as it seems to slow down
      doxygen.

 * ./crlcore/src/crlcore :
   - Adapted to new Hurricane include scheme. Corrected bugs in it's own
       include files (noticeably "Utilities.h").

 _____________________________________________________________________________


 * ./hurricane/doc/hurricane :
   - Added (empty) directories "html" & "latex". Those directories are
       created by doxygen, but as they are used in the CMakeList.txt, they
       must be present even before the fisrt run of cmake (otherwise cmake
       choke on them).
   - Doxygen sets to only generate html & pdf (through LaTeX) documentation.
   - All ".dox" files corrected to suit the new function members naming
       scheme (some work may remains in code examples).

 _____________________________________________________________________________


 * ./hurricane/doc/hurricane/src/hurricane/Layer.{h.cpp}
   ./hurricane/doc/hurricane/src/hurricane/BasicLayer.{h.cpp}
   - Changed "Type" to "Material" to fit better the OpenAccess semantic.
       Introduce Material meanings : pWell, nWell, pImplant, nImplant
       active, metal, cut, obstacle & other.

 * ./coriolis/src/crlcore :
   - Switched to the generic layer model. Updated technology XML configuration
       files, technology parser & AP parser/driver.
   - Note that the representation of transistors visually changes as it's now
       modelled with Implant + Active.

 _____________________________________________________________________________


 * ./hurricane/src/hurricane :
   - CompositeLayer replaced by 5 kind of symbolic layers :
       RegularLayer     (1 BasicLayer)
       DiffusionLayer   (2 or 3 BasicLayers: active+implant,well)
       TransistorLayer  (3 or 4 BasicLayers: poly+active+implant,well)
       ContactLayer     (4 or 5 BasicLayers: metal+cut+active+implant,well)
       ViaLayer         (3 BasicLayers: metal0+cut0+metal1)
   - To better follow the OpenAccess semantic, the "obstacle" Material type
       is renommed to "blockage".
   - NB: doxygen documentation is not up-to-date and issue warnings.

 * ./coriolis/src/crlcore :
   - Migrate from CompositeLayer to the various SymbolicLayers.
   - Symbolic rules are now closer to the reality so that a Cell displayed
       with Hurricane should look identical to the Graal one.
   - Complete rewrite of the AP parser. Much simplificated, do not try to
       merge/articulates segments. This ensure a true rendering of the
       Cell. Especially do not create contact to anchor diffusion segments,
       which leads to very strange randering (DRC error as well).

 _____________________________________________________________________________


 * ./hurricane :
   - Unit evolution to allow Symbolic (lamda) and Real (grid founder) mixing.
       All functions related to Unit translations are now grouped under
       the "DbU" class (another tribute to OpenAccess). "DbU" contains
       only static attributes (constants) and methods. Unit itself becomes
       a typedef inside this class, hence the file renaming from Unit.{h,cpp}
       to DbU.{h.cpp}. Have to replace all instances of "Unit" by "DbU::Unit".
   - Doc will be updated shortly.

 _____________________________________________________________________________


 * ./coriolis/src/crlcore :
   - New AP parser : simplificated, no longer try to re-articulates segments.
       More accurate representation of standart cell innards.
   - More accurate symbolic extentions rules.
   - Propagated changes from Hurricane about Unit/DbU.

 _____________________________________________________________________________


 * ./hurricane/src :
   - Rename "pyext" to "isobar".


 _____________________________________________________________________________


 * ./hurricane/doc/hurricane :
   - Documentation of DbU, replacing documentation of Unit.

 * ./hurricane/src/hurricane/hurricane/DBo.h :
   - Property set is now a mutable member, allowing const DBo to changes
       their properties. Strange side effect on SlotAdapter in which we
       need to declare two separate templates, one for const type and
       another for non-const type.
   - _getTypeName() defined to prevents noisy error message when a
       derived class (from DBo) do not want to implement support for
       the inspector.


 _____________________________________________________________________________


 Derrick Release !!

 * ./hurricane/src
   - Simplification of the Inspector internal mechanism. Simple, but with
       more templates, means a slower compilation.
   - The DbU::Unit problem : DbU::Unit are only typedef over long type,
       so we cannot create a specific overload for them. Uses "getValueRecord()"
       instead of "getRecord()"
   - For HInspectorWidget add a "getClone()" method. Also add a global
       object counter (for Record too) to track down memory leaks.
   - Big rewrite of the HInspectorWidget : now do not leak memory like hell,
       and only kept allocated the current Record and not the full stack
       of them (instead, we stack Slots which are ligthweigh objects).
   - Rename of "real" unit to "grid" unit.
   - New conversion function "getPhysicalsPerGrid()" and associated
       mechanism.

 * ./coriolis/src/crlcore :
   - Synchronise with the Hurricane modifications.


 _____________________________________________________________________________


 * ./hurricane/src/hurricane/DbU.{h,cpp} :
   - Add forgotten converter function physicalToGrid(), physical units to
       founder grid units.

 * ./hurricane/src/hinspector :
   - Added history support, and ability to move through the history stack.
   - Fork support : by typing 'O' (capitalized 'o' letter)  you can open
       a new inspector on the current record.


 _____________________________________________________________________________


 * ./hurricane/src/hinspector :cla
   - No more extra arguments in HInspectorWidget & RecordModel constructors.
       Valid values have to be sets through setRootRecord() & setSlot().
   - Key for forking sub-inspector is now *minus* 'o'.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - Bug: very tricky one. Do not emit "layoutAboutToChange()" signal
       after destroying the Record used by the RecordModel but before
       setting a new one and not setting the _record field to NULL.
       Now setRootRecord() should work more than once.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - API : in CellWidget & CellViewer constructors now only takes the
       parent QWidget.
   - Renaming coordinates translation functions for more clarity.
   - Adding a StatusBar showing mouse coordinates.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - Grid & Spot support (adjusted display threshold).
   - Added new copyToScreen() functions for _drawingBuffer to screen refreshment
       or partial copy (useful for Spot).


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - New Widget policy : a widget do not generate other widget : applied to
       CellWidget which no longer supplies Palette & StatusBar.
         API note: to associate a HPalette to a CellWidget (that is be able
       to select layer) you have to call "bindToPalette()" on the CellWidget.
   - Hurricane reusable widget names prefixed by 'H' : HMousePosition and
       HPalette.


 _____________________________________________________________________________
   

 * ./hurricane/src/hviewer :
   - New feature : support for highlighted selection with decent refresh time.
       To active selection mode, use the 's' key or the "View" menu.
   - New feature : HNetlist to browse a Cell's Netlist. HNetlist can be used
       with any NetInformations derived class, allowing the user to enrich
       the HNetlist displayed fields. For an example, have a look at
       SimpleNetlistWidget.
   - Added proper licence header to all file.


 _____________________________________________________________________________


 * ./hurricane/src/hurricane :
   - New feature : geometrical Query with callback fonctions "a la" OpenAccess.

 * ./hurricane/src/hviewer :
   - Uses Query to draw display.
   - Bug : when drawing segments as lines (width inferior to 1 pixel)
       uses an alternate Pen which is one pixel wide and SolidLine styled,
       avoiding strange orange lines... Mechanism implemented in sub-class
       DrawingPlanes.
   - Make selection always visible regardless the zoom level.
   - CellWidget names it's most importants childs QWidget (mostly menus)
       for later retrieval in customized sub-classes.

 * ./coriolis/src/crlcore/src/cyclop :
   - Created a simple derived class from CellViewer. Example of customisation
       of CellWidget.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - Bug : now CellViewer can start with a NULL Cell, note that in this
       case all displacement/zooming function of CellWidget became uneffective.
       (display only a black screen)
   - New widget : HGraphics to select the layout graphic's theme.
   - New widget : HDisplayFilter to select displayed hierarchical levels.
   - Distinguish between Close (one viewer) & Exit (all viewers).
   - Small enhancments of DisplayStyle (Description & darkening).

 * ./coriolis/src/crlcore/src/ccore :
   - Xml display parser takes account of DisplayStyle description & darkening.

 * ./coriolis/src/crlcore/src/cyclop :
   - Enhanced COpenCellDialog : ability to open in a new Viewer.
   - Bug : now Cyclop can start on a NULL Cell.
   - Half Bug : when a Cell is loaded at start, call show() *before* setCell()
       so all internal widget resizing due to the insertion of the toolbar,
       menbar palette ... takes places before the Cell fit. Now the loaded
       cell appears correctly fitted.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - New feature : Command support. Move command is now implemenented as a
       Command and no longer built into the CellWidget. ZoomCommand implemented.
   - New feature : SelectCommand support along with new HSelection widget to
       browse the current selection. Selection is automatically kept up to
       date.
   - Note : Selection Browser & Netlist Browser pointer in the CellViewer are
       resets to NULL on widget destruction by closing. We do not want to keep
       big widget hiden. The are allocateds on demand.
   - New feature : progessive grid. First display 5x5 then 5x5 + 1x1.


 _____________________________________________________________________________
       

 * ./hurricane/src/hviewer :
   - Bug : default argument to setWeight() sould be QFont::Normal and not "-1".
       Shows in Qt debug mode (catched by an assert).
   - Bug : SelectCommand now keep the Selection check button in sync.
   - Change : Palette doesn't show at start.

 * ./hurricane :
   - Now choice between static and dynamic linking. Note that thoses options are
       mutually exclusives.

 * ./coriolis/src/crlcore :
   - New choice between static and dynamic linking.
   - New feature : XmlParser optional warning when file not found (default is
       to warn).
   - New feature : now read environment from user's optional configuration file :
       ~/.environment.alliance.xml
   - Potential bug : when loading/parsing file, the XmlReader hangs if the opened
       file is a directory, and QFile allows directory opening :-(


 _____________________________________________________________________________


 * ./hurricane/src/viewer :
   - New features : advanced selection widget/commands. Communications between
       CellWidget, HSelectionPopup, HSelection & SelectCommand mostly done
       through signal/slots (better undersdanding of the possibilities).
   - Change : debug menu is hidden by default.
   - Change : in all the QTableView rows are now correctly resized, even when
       filtering is active (new forceRowHeight() slot). I'm pretty sure there's
       a better way to handle this, but I haven't found it for now.
   - Change : small naming normalisation in all those TableView.


 _____________________________________________________________________________


 * ./hurricane/src/viewer :
   - New feature : display instances names (vertical on bottom left corner
       of the AB). New CellWidget capability : drawText(). Small modification
       of styles & display.xml to distinguish between different kind of texts.
       (instances name, master cell names, ...).
   - New feature : do not create color, pen & brush at start in Graphics/
       DisplayStyles. Now for the graphics to be used it must be enabled with
       a call to "Graphics::enable()" *AFTER* allocating the QApplication.

 * ./coriolis/src/crlcore/src/cyclop :
   - New argument "--text" to check pure text mode.


 _____________________________________________________________________________


 * ./hurricane/src/hurricane/Name.h
   ./hurricane/src/hurricane/Name.cpp :
   - New feature : Allocate a static member "_emptyName" which could be used
       to manage effeciently empty Name (for functions returning reference on
       Name, by example).

 * ./hurricane/src/hurricane/Property.h
   ./hurricane/src/hurricane/Property.cpp :
   - Change : Now StandardPrivateProperty & StandardSharedProperty templates
       systematically uses static member for the property's name. This leads
       to suppress the "const Name&" argument when creating a property, and
       the _name member is no longer present in each object instance.
   - Change : Property must now be created/get through static methods :
               StandardPrivateProperty<Value>::get ( DBo* );
               StandardPrivateProperty<Value>::create ( DBo* );
               StandardPrivateProperty<Value>::create ( DBo*, const Value& );
       Note that, as before, the Value type must provide a default constructor
       and a copy constructor.

  * ./hurricane/src/hviewer/DisplayStyle.cpp :
    Bug : early Graphics::enable() no longer makes application crash.

  * ./coriolis/src/crlcore/properties :
    - Complete redesign of properties managment. Individual properties relateds
        to the same concept and DBo* are now grouped together into an
        "ExtensionDatas" which is nested into a specific "Extension" Property.
        The various datas can be accessed through static methods of the Extention
        object. Two Extension have been created :
        a. LefDefExtensionDatas / LefDefExtension (on Cell*) : holds convert
             factors & Ioc orders (if any).
        b. NetExtensionDatas/NetExtension (on Net*) : holds various Port names,
             currently only one Name at the same time is managed.

  * ./coriolis/src/crlcore/lefdef :
    - Change : re-enable and big cleanup of the LEF/DEF parsers drivers. Currently
        only the DEF parser is enabled.

  * ./coriolis/src/crlcore/src/AllianceFramework.cpp :
    - New : Ability to pre-load all cells from a library.
       
  * ./coriolis/src/crlcore/src/cyclop :
    - New : Ability to choose the input format "on the fly".

 _____________________________________________________________________________


 * ./hurricane/src/hurricane/ExtensionSlice.h
   ./hurricane/src/hurricane/ExtensionSlice.cpp
   ./hurricane/src/hurricane/ExtensionGo.h
   ./hurricane/src/hurricane/ExtensionGo.cpp :
   - New : support for user-based Gos & Slices. A normal slice is a couple
      (Layer,QuadTree) while a ExtensionSlice is a couple (Name,Quadtree).
      Note that for efficiency ExtensionSlices also uses a mask bitmap.
        This new feature implies modifications of the Cell QuadTrees and
      the Query callback/class. CellWidget & Palette also updated to allow
      the drawing of thoses new slices.

  * ./coriolis/src/crlcore/src/cyclop/DemoGo.{h,cpp} :
    - Example : how to construct & uses an ExtensionGo (draw a thick red
        box around the Cell's abutment box).

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - New : Mask object to manage masks.
    - New : BasicLayer ordering & connectivity is managed.

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - New : DebugSession for a selective trace activation, based on "symbols",
        that is, void pointers to objects.
    - New : ExtensionGos are now selectables (integrated to the
        Cell_OccurrencesUnder collection). Note that they are manageds as Gos
        and *not* ExtensionGos.
    - New : Bug flavor of Exception (sibling of Error & Warning).

  * ./hurricane/src/hviewer :
    - Change : ExtensionGos are now hidden by default.

  * ./coriolis/src/crlcore :
    - Technology directly avalaible in RoutingGauge.
    - _viaLayers table in RoutingGauge to manage METAL/METAL connexity.
        Can contains NULL in case of non-contiguous metals.
    - Contants are moved into a Constant top-level namespace named
        "Constant"...
    - RoutingLayerGauge no longer checks for BasicLayer (could be
        RegularLayer).

  * ./coriolis/src/nimbus :
    - Uses Constant namespace.

  * ./coriolis/src/knik :
    - Edges are now drawed as true colored edges between two vertexes,
        and not as sides of the GCell.

  * ./coriolis/src/katabatic :
    - Initial portage from Coriolis 1. AutoContacts resizing is still to be
        activated.

  * ./coriolis/src/unicorn :
    - Bug : bad libraries depndencies in CMakeList.txt.
    - Added Katabatic tool.

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - Bug : double deletion of ExtensionSlice, one in Cell and one in
        ExtensionGo::unmaterialize() when the last ExtensionGo is removed.
        Keep the one in unmaterialize.
    - Bug : missing "_preDestroy()" in ExtensionGo (not really a bug but may
        be useful in the future).
    - Modification : begin to uses "ltrace(level)" instead of "trace()".
        Levels affecteds to Hurricane are 0-10 (the lowest).

  * ./coriolis/src/katabatic :
    - New : create a Configuration object to group all that's related to
        configuration (RoutingGauge ...).
    - Finished porting :
      a. - AutoContact resizing.
      b. - Structure stripping to get back to Hurricane.
    - Todo : AutoContact removal from the GCell lists whenever destructed.
        In combination with "engineDelete" to speedup the destruction
        process. Not a priority as we never destruct AutoContacts for now.

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - Bug : memory leak in Query.h. When we do try a levelDown() remove the
        Instance locator that have been created (and is not valid).
    - To trace the numbers of Instances Locator add a counter inside the
        QuadTree. The code is commented but could be useful in case of
        another memory leak...

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - New feature : first try at a more ergonomic interface. The "Controller",
        a simple Tabbed window for managing all settings.
          Reorganize the way things are selected (Nets, Area, single), aglomerated
        selection.
          Use a "logical" progression Netlist -> Selection -> Inspector.
    - In CellWiddget, new Selection managment mecanism to ensure persistent
        Selection across cell modifications.
          New signals/slots to manage Cell modification :
          a. - cellPreModificated() : must be launched *before* the Cell modification
               by the tool about to modify it.
          b. - cellPostModificated() : must be lauched *after* the Cell modification
          This mecanism may be amended to automatically fit with the UpdateSessions.  
    - Cleanup (part 1) : more consistent name for widgets, replace the 'H' prefix by
        a "Widget" suffix. Objects are modified by not filenames yet (due to svn not
        liking file renaming and modications at the same time).
    - Improved support for static building in CMakeList.txt.

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - Bug : InspectorWidget was using Record from Occurrences in the SelectionWidget.
        but those Occurences were created on the fly by the CellWidget/Selectors.
        So, whenever the selection changes the Occurrence may diseapear leaving a
        bad Record in the InspectorWidget (core dump).
          Now, the TabInspector keep a copy of the Inspected occurrence, so it
        can go through any selection change.
          In addition, the InspectorWidget could be passed Occurrence that it keeps
        local copy along with Record*.
    - New Feature : internal, first step toward an extensible ControllerWidget :
        now all Tab are derived classes of ControllerTab.

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - New feature : full uses of SelectionModel in NetlistWidget, allow multiple
        selection. New option to automatically select Nets from the Netlist
        browser into the SelectionWidget (temporarily set up in cumulative
        mode).
    - Rename : SelectorCommand into SelectorCriterion (file name renaming in
        next commit).
    - Reorganisazion : in CellWidget, SelectorCommand/SelectorCriterions operations
        are gathered in a single object : SelectionCriterions.

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - Rename : SelectorCommand into SelectorCriterion (file part).

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - Bug: Bad detection of libraries in HURRICANE_CHECK_LIBRARY macro.
    - New feature : add a "selectable" characteric on drawable objects. Allows
        to selectively select objects through dragging. Note that it's implemented
        in term of BasicLayer & ExtensionGo. If an object (Component) has a Layer
        composed of more than one BasicLayer it will become selectable as soon as
        one of it's BasicLayer is selectable.

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - New feature : remove Hurricane's original basic Timer and replace it with
        the one from Coriolis/crlcore. Added ability to get the elapsed time
        without stopping the timer.
  * ./hurricane/src/hviewer :
    - New feature : complete redesign of the drawing refreshment loop. Now there's
        a "secondary" loop managed by the "RedrawManager" object which bufferize
        the redraw requests. The "_redraw()" function has been made interruptible
        at coarse level (between layer).
          Important note about the redrawing design : the QApplication::processEvents()
        function cannot be called inside the paintEvent() functions/sub-functions.
        So the drawing is separated from the paintEvent. The paintEvent() performs
        only quick pixmap buffer copy. The _redraw() is triggered by the move/refresh
        events bufferized by the RedrawManager, flush periodically the loop event 
        and send direct (not posted) paint events (repaint() call).
          Another constraint is that the displayed Widget can only be painted during
        the paintEvent(). Otherwise the painter refuses to initialize.
    - Ergonomy : adopt more standard key/mouse bindings. No more CTRL key for zooming
        (too small zooms are rejecteds, thresold at 10x10 pixels). Continuous move
        is enabled with SPACE+mouse.

  * ./coriolis/src/unicorn :
    - Reorganisation : Unicorn is now supplied as a separate library. Due to a limitation
        of cmake the binary can no longer be named "unicorn" as it conflicts with the
        library name. So it's been renamed into unimain (better candidates?)

 _____________________________________________________________________________


  * Merry Christmas & Fuck Numericable.
  * ./hurricane/src/hurricane :
    - New feature: Display support for Rubber, three modes of representation : centric,
        barycentric and (pseudo) steiner.
    - New feature: ability to generate pdf/ps snapshot using QPrinter. Can perform
        an exact snapshot or print a synthetic A4 (choice hard-wired for now).
    - Change: display styles reorganisation, recreation of the "Alliance Graal" look.
    - New feature: darkening managment at CellWidget level, to allow Extension to
        darken when unselecteds.
    - New feature: ExtentionGo are now managed by the selection redraw function.
    - New feature: Selector set is now sorted by object type, this allow to speedup
        the redraw function which will now perform only one loop.

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - Bug : Timer.h/.cpp, friend overload of the operator<<(ostream&) introduce
        a ostream<<() function in the Hurricane namespace which prevent the
        overload to resolve correctly under MacOS X (gcc 4.0).

 _____________________________________________________________________________


  * ./hurricane/src/hurricane :
    - New feature: support for breakpoints with a selectable stop level.
        See Breakpoint.h. Graphical popup automatically when Graphics is
        enabled.
          User can select what to do when a breakpoint is reached and valid
        through a callback mechanism.
          A disabled example is avalaible in GraphicKatabaticEngine.cpp.
    - Ergonomy : reverse the zooming direction of the mouse weel (some said
        it's like in MS Word...).
    - Bug: accept zoom when bottom right is below lower left (absolute value).

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - Bug: redraw the palette layer samples whenever the style changes. Uses a
        new, more clear model to transmit signals. A star model where the
        CellWidget is the center, signals propagate a void pointer which tells
        the emitter to avoid looping. First a slave emit the signal to the
        CellWidget. When the CellWidget receive the signal it's transmitted to
        all slave widgets.
    - New feature: ExceptionWidget (derived from QDialog) to display properly
        catched exceptions. The Abort button of the Dialog forces the program
        to core-dump with a SIGSEGV. The "Try to Continue" resumes the program,
        which is higtly to crash anyway...
    - New feature: a HApplication in replacement of the QApplication to catch
        exceptions in the notify() function, that is exceptions that could be
        throwed inside event handlers.

  * ./coriolis/src/unicorn :
    - New feature: making uses of HApplication.

 _____________________________________________________________________________


  * ./coriolis/src/crlcore :
    - New feature: users can select it's preferred display style through the
        environment.

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - Change: BreakpointWidget is no longer modal, need to replace the ::exec()
        by a custom made one.

 _____________________________________________________________________________


  * ./coriolis/src/katabatic :
    - Supress the last remnants of Nimbus (used to build the GCell grid),
        now read the grid cut lines from Katabatic.

  * ./coriolis/src/unicorn :
    - No more linking with Nimbus library.

 _____________________________________________________________________________


  * ./coriolis/src/katabatic :
    - Bug: correctly build the GCell grid from Knik.

 _____________________________________________________________________________


  * ./hurricane/src/hviewer :
    - Change: make ExceptionWidget & BreakpointWidget non-resizables.
2009-01-19 17:01:07 +00:00
Jean-Paul Chaput e507335c01 * ./hurricane/src/hviewer :
- Change: BreakpointWidget is no longer modal, need to replace the ::exec()
        by a custom made one.
2009-01-19 12:48:53 +00:00
Jean-Paul Chaput 3d486767eb Forgotten files. 2009-01-18 21:21:38 +00:00
Jean-Paul Chaput 8a2d46e21e * ./hurricane/src/hviewer :
- Bug: redraw the palette layer samples whenever the style changes. Uses a
        new, more clear model to transmit signals. A star model where the
        CellWidget is the center, signals propagate a void pointer which tells
        the emitter to avoid looping. First a slave emit the signal to the
        CellWidget. When the CellWidget receive the signal it's transmitted to
        all slave widgets.
    - New feature: ExceptionWidget (derived from QDialog) to display properly
        catched exceptions. The Abort button of the Dialog forces the program
        to core-dump with a SIGSEGV. The "Try to Continue" resumes the program,
        which is higtly to crash anyway...
    - New feature: a HApplication in replacement of the QApplication to catch
        exceptions in the notify() function, that is exceptions that could be
        throwed inside event handlers.
2009-01-18 21:17:43 +00:00
Jean-Paul Chaput a042ed5f86 Forgot the mushroom. 2009-01-09 15:25:07 +00:00
Jean-Paul Chaput 529594618e * ./hurricane/src/hurricane :
- New feature: support for breakpoints with a selectable stop level.
        See Breakpoint.h. Graphical popup automatically when Graphics is
        enabled.
          User can select what to do when a breakpoint is reached and valid
        through a callback mechanism.
          A disabled example is avalaible in GraphicKatabaticEngine.cpp.
    - Ergonomy : reverse the zooming direction of the mouse weel (some said
        it's like in MS Word...).
    - Bug: accept zoom when bottom right is below lower left (absolute value).
2009-01-09 15:18:26 +00:00
Damien Dupuis ddc3e541f1 - Adding function to correctly display routingGraph in knik
The dbuToDisplayRect function now has a boolean argument which is true by default and define the way the rectangle is passed to display.
    If true, it's like we pass 2 corners to define the rectangle
    If false, it's like we pass the bottom left corner, width and height (directly QT compliant)
2009-01-08 14:09:46 +00:00
Jean-Paul Chaput 5afca323b2 * ./hurricane/src/hurricane :
- Bug : Timer.h/.cpp, friend overload of the operator<<(ostream&) introduce
        a ostream<<() function in the Hurricane namespace which prevent the
        overload to resolve correctly under MacOS X (gcc 4.0).
2009-01-05 20:47:13 +00:00
Jean-Paul Chaput 9edbed80ae * Merry Christmas & Fuck Numericable.
* ./hurricane/src/hurricane :
    - New feature: Display support for Rubber, three modes of representation : centric,
        barycentric and (pseudo) steiner.
    - New feature: ability to generate pdf/ps snapshot using QPrinter. Can perform
        an exact snapshot or print a synthetic A4 (choice hard-wired for now).
    - Change: display styles reorganisation, recreation of the "Alliance Graal" look.
    - New feature: darkening managment at CellWidget level, to allow Extension to
        darken when unselecteds.
    - New feature: ExtentionGo are now managed by the selection redraw function.
    - New feature: Selector set is now sorted by object type, this allow to speedup
        the redraw function which will now perform only one loop.
2008-12-25 10:27:58 +00:00
Jean-Paul Chaput b725e49732 * ./hurricane/src/hurricane :
- New feature : remove Hurricane's original basic Timer and replace it with
        the one from Coriolis/crlcore. Added ability to get the elapsed time
        without stopping the timer.
  * ./hurricane/src/hviewer :
    - New feature : complete redesign of the drawing refreshment loop. Now there's
        a "secondary" loop managed by the "RedrawManager" object which bufferize
        the redraw requests. The "_redraw()" function has been made interruptible
        at coarse level (between layer).
          Important note about the redrawing design : the QApplication::processEvents()
        function cannot be called inside the paintEvent() functions/sub-functions.
        So the drawing is separated from the paintEvent. The paintEvent() performs
        only quick pixmap buffer copy. The _redraw() is triggered by the move/refresh
        events bufferized by the RedrawManager, flush periodically the loop event 
        and send direct (not posted) paint events (repaint() call).
          Another constraint is that the displayed Widget can only be painted during
        the paintEvent(). Otherwise the painter refuses to initialize.
    - Ergonomy : adopt more standard key/mouse bindings. No more CTRL key for zooming
        (too small zooms are rejecteds, thresold at 10x10 pixels). Continuous move
        is enabled with SPACE+mouse.

  * ./coriolis/src/unicorn :
    - Reorganisation : Unicorn is now supplied as a separate library. Due to a limitation
        of cmake the binary can no longer be named "unicorn" as it conflicts with the
        library name. So it's been renamed into unimain (better candidates?)
2008-12-20 16:56:05 +00:00
Christophe Alexandre 38807d7985 More and more cleaning in Isobar 2008-12-12 18:49:17 +00:00
Jean-Paul Chaput 8845533c25 * ./hurricane/src/hviewer :
- Bug: Bad detection of libraries in HURRICANE_CHECK_LIBRARY macro.
    - New feature : add a "selectable" characteric on drawable objects. Allows
        to selectively select objects through dragging. Note that it's implemented
        in term of BasicLayer & ExtensionGo. If an object (Component) has a Layer
        composed of more than one BasicLayer it will become selectable as soon as
        one of it's BasicLayer is selectable.
2008-12-12 13:28:19 +00:00
Christophe Alexandre a23a682c64 Return to the future for some parts...
PyParse_Tuple raises an exception on failure so it must be used only one time when
testing arguments
2008-12-12 13:16:47 +00:00
Christophe Alexandre 96c031c224 Box and contact are cleaned : no direct use of converter 2008-12-11 15:25:17 +00:00
Christophe Alexandre 61a58ff3d6 * no more PyNames, in the Python part, names are replaced by simple strings
and transformed in Names in the wrapper.
 * get rid of Converter in progress
2008-12-11 12:25:02 +00:00
Christophe Alexandre 452a52ee9e more cleaning in isobar :
- new arguments parsing method
 - get rid of PyNames...
Still lot to do ;)
2008-12-10 18:37:32 +00:00
Christophe Alexandre 69a2f10906 new argument parsing 2008-12-10 17:24:23 +00:00
Jean-Paul Chaput 9bd457393e * ./hurricane/src/hviewer :
Bug : make the Netlist Browser filter to work again. Have to ignore
     the keyPressEvent in NetlistWidget (a bit counter-intuitive:
     ignore event in NetlistWidget to have them accounteds in the
     SortFilter children widget).
2008-12-03 13:52:37 +00:00
Christophe Alexandre d5d17466d4 small modifications in isobar 2008-11-30 20:33:42 +00:00
Jean-Paul Chaput fc63d5dd6c * ./hurricane/src/hviewer :
- Rename : SelectorCommand into SelectorCriterion (file part).
2008-11-28 23:20:07 +00:00
Jean-Paul Chaput 4bc6940b39 * ./hurricane/src/hviewer :
- New feature : full uses of SelectionModel in NetlistWidget, allow multiple
        selection. New option to automatically select Nets from the Netlist
        browser into the SelectionWidget (temporarily set up in cumulative
        mode).
    - Rename : SelectorCommand into SelectorCriterion (file name renaming in
        next commit).
    - Reorganisazion : in CellWidget, SelectorCommand/SelectorCriterions operations
        are gathered in a single object : SelectionCriterions.
2008-11-28 23:10:39 +00:00
Jean-Paul Chaput e5f5ce3592 * ./hurricane/src/hviewer :
- Bug : InspectorWidget was using Record from Occurrences in the SelectionWidget.
        but those Occurences were created on the fly by the CellWidget/Selectors.
        So, whenever the selection changes the Occurrence may diseapear leaving a
        bad Record in the InspectorWidget (core dump).
          Now, the TabInspector keep a copy of the Inspected occurrence, so it
        can go through any selection change.
          In addition, the InspectorWidget could be passed Occurrence that it keeps
        local copy along with Record*.
    - New Feature : internal, first step toward an extensible ControllerWidget :
        now all Tab are derived classes of ControllerTab.
2008-11-27 15:09:04 +00:00
Jean-Paul Chaput 9c4d322de1 * ./hurricane/src/hviewer :
- A whole bunch of forgotten files.
2008-11-27 08:14:50 +00:00
Jean-Paul Chaput 88c2d138ad * ./hurricane/src/hviewer :
- Cleanup (part 2) : changing file names.
2008-11-26 10:13:31 +00:00
Jean-Paul Chaput 01ddcf4279 * ./hurricane/src/hviewer :
- New feature : first try at a more ergonomic interface. The "Controller",
        a simple Tabbed window for managing all settings.
          Reorganize the way things are selected (Nets, Area, single), aglomerated
        selection.
          Use a "logical" progression Netlist -> Selection -> Inspector.
    - In CellWiddget, new Selection managment mecanism to ensure persistent
        Selection across cell modifications.
          New signals/slots to manage Cell modification :
          a. - cellPreModificated() : must be launched *before* the Cell modification
               by the tool about to modify it.
          b. - cellPostModificated() : must be lauched *after* the Cell modification
          This mecanism may be amended to automatically fit with the UpdateSessions.  
    - Cleanup (part 1) : more consistent name for widgets, replace the 'H' prefix by
        a "Widget" suffix. Objects are modified by not filenames yet (due to svn not
        liking file renaming and modications at the same time).
    - Improved support for static building in CMakeList.txt.
2008-11-26 09:35:07 +00:00
Christophe Alexandre 92b3938f15 setBoundingBox for Pad 2008-11-20 14:26:42 +00:00
Christophe Alexandre 77e0872072 Introducing Pad as Python object 2008-11-20 10:56:11 +00:00
Christophe Alexandre e35c5ef8e5 wring function signatures 2008-11-19 17:36:30 +00:00
Christophe Alexandre 40e00bd4de get rid of annoying warning :
deprecated conversion from string constant to char*
still one occurrence of this warning, but I don't know how to treat
it between C++ and Python C API.
2008-11-18 11:54:01 +00:00
Jean-Paul Chaput 6d3904c0e2 * ./hurricane/src/hurricane :
- Bug : memory leak in Query.h. When we do try a levelDown() remove the
        Instance locator that have been created (and is not valid).
    - To trace the numbers of Instances Locator add a counter inside the
        QuadTree. The code is commented but could be useful in case of
        another memory leak...
2008-11-17 23:06:30 +00:00
The Coriolis Project 7068f0c092 Init -> init 2008-11-17 21:55:03 +00:00
Jean-Paul Chaput a9191bb93f * ./hurricane/src/hurricane :
- Bug : double deletion of ExtensionSlice, one in Cell and one in
        ExtensionGo::unmaterialize() when the last ExtensionGo is removed.
        Keep the one in unmaterialize.
    - Bug : missing "_preDestroy()" in ExtensionGo (not really a bug but may
        be useful in the future).
    - Modification : begin to uses "ltrace(level)" instead of "trace()".
        Levels affecteds to Hurricane are 0-10 (the lowest).
2008-11-16 22:11:40 +00:00
The Coriolis Project 6101ba0b3a delete old file 2008-11-14 11:48:39 +00:00
Jean-Paul Chaput f2c60cf6c9 * ./hurricane/src/hurricane :
- New : DebugSession for a selective trace activation, based on "symbols",
        that is, void pointers to objects.
    - New : ExtensionGos are now selectables (integrated to the
        Cell_OccurrencesUnder collection). Note that they are manageds as Gos
        and *not* ExtensionGos.
    - New : Bug flavor of Exception (sibling of Error & Warning).

  * ./hurricane/src/hviewer :
    - Change : ExtensionGos are now hidden by default.
2008-11-12 12:18:24 +00:00
Christophe Alexandre e370e8ac1c cmake FindHURRICANE macro now finds isobar library 2008-10-24 09:11:47 +00:00
Jean-Paul Chaput fcf01a1418 Remove forgotten trace messages. 2008-10-21 14:38:42 +00:00
Jean-Paul Chaput 26d07794ca * ./hurricane/src/hurricane :
- New : Mask object to manage masks.
    - New : BasicLayer ordering & connectivity is managed.
2008-10-21 13:49:48 +00:00
Christophe Alexandre 8397e7dccd PyCollections implementation 2008-10-19 22:07:32 +00:00
The Coriolis Project 07a1213ad8 collections still in progress 2008-10-17 17:51:31 +00:00
The Coriolis Project e7df77f51d new collections in progress 2008-10-17 17:27:20 +00:00
The Coriolis Project cd1c194268 cleaning in error message if bad arguments
net collections in progress
2008-10-14 18:44:20 +00:00
Christophe Alexandre 0f46cfdb7f net collections in progress 2008-10-14 10:48:53 +00:00
The Coriolis Project a102abdb8e wrong commit on CMakeLists.txt 2008-10-13 12:49:43 +00:00
Christophe Alexandre 5faaf81b59 simplifications and improvments in Isobar 2008-10-12 13:37:33 +00:00
Jean-Paul Chaput 48b0e4c3c6 * ./hurricane/src/hurricane/ExtensionSlice.h
./hurricane/src/hurricane/ExtensionSlice.cpp
   ./hurricane/src/hurricane/ExtensionGo.h
   ./hurricane/src/hurricane/ExtensionGo.cpp :
   - New : support for user-based Gos & Slices. A normal slice is a couple
      (Layer,QuadTree) while a ExtensionSlice is a couple (Name,Quadtree).
      Note that for efficiency ExtensionSlices also uses a mask bitmap.
        This new feature implies modifications of the Cell QuadTrees and
      the Query callback/class. CellWidget & Palette also updated to allow
      the drawing of thoses new slices.

  * ./coriolis/src/crlcore/src/cyclop/DemoGo.{h,cpp} :
    - Example : how to construct & uses an ExtensionGo (draw a thick red
        box around the Cell's abutment box).
2008-10-07 15:01:32 +00:00
Jean-Paul Chaput e32a20b23f * ./hurricane/src/hurricane/Name.h
./hurricane/src/hurricane/Name.cpp :
   - New feature : Allocate a static member "_emptyName" which could be used
       to manage effeciently empty Name (for functions returning reference on
       Name, by example).

 * ./hurricane/src/hurricane/Property.h
   ./hurricane/src/hurricane/Property.cpp :
   - Change : Now StandardPrivateProperty & StandardSharedProperty templates
       systematically uses static member for the property's name. This leads
       to suppress the "const Name&" argument when creating a property, and
       the _name member is no longer present in each object instance.
   - Change : Property must now be created/get through static methods :
               StandardPrivateProperty<Value>::get ( DBo* );
               StandardPrivateProperty<Value>::create ( DBo* );
               StandardPrivateProperty<Value>::create ( DBo*, const Value& );
       Note that, as before, the Value type must provide a default constructor
       and a copy constructor.

  * ./hurricane/src/hviewer/DisplayStyle.cpp :
    Bug : early Graphics::enable() no longer makes application crash.
2008-10-04 15:44:15 +00:00
Christophe Alexandre 8fe480ea30 getExternalComponents(Net* net) -> NetExternalComponents::get(Net* net) 2008-09-29 13:58:35 +00:00
Christophe Alexandre b0b5c18058 Orientation documentation 2008-09-26 14:07:10 +00:00
The Coriolis Project 8d41038cdc add orientation images 2008-09-26 13:15:51 +00:00
The Coriolis Project 11a7cfabff Orientation doc in progress 2008-09-26 13:15:13 +00:00
Jean-Paul Chaput d320dee76b Moved to Coriolis. 2008-09-23 15:13:39 +00:00
Jean-Paul Chaput 4c998aed83 Access to free'd memory correction inside CellWidget::unselectAll().
Do not iterate over a STL set while erasing (all) elements...
The set is stable over erasure, but if the iterator is pointing
to the erased element we cannot do a "++". Increment first, erase
after.
2008-09-21 10:48:08 +00:00
Jean-Paul Chaput a54d86924f * ./hurricane/src/viewer :
- New feature : display instances names (vertical on bottom left corner
       of the AB). New CellWidget capability : drawText(). Small modification
       of styles & display.xml to distinguish between different kind of texts.
       (instances name, master cell names, ...).
   - New feature : do not create color, pen & brush at start in Graphics/
       DisplayStyles. Now for the graphics to be used it must be enabled with
       a call to "Graphics::enable()" *AFTER* allocating the QApplication.

 * ./coriolis/src/crlcore/src/cyclop :
   - New argument "--text" to check pure text mode.
2008-09-17 11:45:38 +00:00
Jean-Paul Chaput d669774d84 * ./coriolis/src/crlcore/src/ccore/Banner.cpp
./coriolis/src/crlcore/src/ccore/crlcore/Banner.h
   - Moved "CBanner" to "Banner", cleaned up, relooked, renamed functions, reorganised. 

 * ./coriolis/src/crlcore/src/ccore/ToolEngine.cpp
   ./coriolis/src/crlcore/src/ccore/crlcore/ToolEngine.h
   ./coriolis/src/crlcore/src/ccore/crlcore/ToolEngines.h
   - Renamed CEngine to ToolEngine, cleaned up, relooked. All fonctions as static
       members.

 * ./coriolis/src/crlcore/src/ccore/Memory.cpp
   ./coriolis/src/crlcore/src/ccore/crlcore/Memory.h
   - Renamed CMemory to Memory (as for Timer), minimal cleanup.

 * ./coriolis/src/crlcore/src/ccore/crlcore/*.h
   - Change anti-double inclusion constants from __XX_H__ to __CRL_XX_H__
       (that is: include namespace) to avoid potential constant clashes with
       other pieces of software.

 * ./coriolis/src/crlcore/src/ccore/Utilities.cpp
   ./coriolis/src/crlcore/src/ccore/crlcore/Utilities.h
   - Finish porting of all features from CUtils. Simplificated mstream using
       member templates. Speedup mstream by using static_cast instead of
       dynamic_cast.

 * ./coriolis/src/crlcore/src/ccore/Environment.cpp
   - Now read CORIOLIS_TOP from UNIX environment instead of hard-coded
       directory (to my personnal installation...). See new method
       "loadFromShell()", needs to be extended to all other variables.

 _____________________________________________________________________________


 * ./hurricane/src/hurricane/BasicLayer.{h,cpp}
   - Suppress all graphics related members from Layer.
   - Adding realName member for symbolic to real transformation.

 * ./hurricane/src/hviewer/CellWidget.cpp
   Bug: Now uses display threshold from Graphics (DisplayStyle) instead
     of layer. Now layers appears/diseapears while zooming/unzooming.

 * ./coriolis/src/crlcore :
   - Separating clearly symbolic technology form real technology.
   - Various file renaming.

 _____________________________________________________________________________


 * ./hurricane/src :
   - Complete include re-organisation.
       include/hurricane/*.h            : kernel.
       include/hurricane/viewer/*.h     : hviewer.
       include/hurricane/inspector/*.h  : hinspector.
     Includes have been moved into subdirectories of .cpp files (as in
       crlcore).
   - Now you must include files like this :
       #include  <hurricane/Layer.h>
       #include  <hurricane/viewer/CellViewer.h>
       #include  <hurricane/inspector/HInspector.h>  
   - Suppressed viewer specific include path in FindHURRICANE.cmake.
   - Re-enabled documentation, with dot disabled as it seems to slow down
      doxygen.

 * ./crlcore/src/crlcore :
   - Adapted to new Hurricane include scheme. Corrected bugs in it's own
       include files (noticeably "Utilities.h").

 _____________________________________________________________________________


 * ./hurricane/doc/hurricane :
   - Added (empty) directories "html" & "latex". Those directories are
       created by doxygen, but as they are used in the CMakeList.txt, they
       must be present even before the fisrt run of cmake (otherwise cmake
       choke on them).
   - Doxygen sets to only generate html & pdf (through LaTeX) documentation.
   - All ".dox" files corrected to suit the new function members naming
       scheme (some work may remains in code examples).

 _____________________________________________________________________________


 * ./hurricane/doc/hurricane/src/hurricane/Layer.{h.cpp}
   ./hurricane/doc/hurricane/src/hurricane/BasicLayer.{h.cpp}
   - Changed "Type" to "Material" to fit better the OpenAccess semantic.
       Introduce Material meanings : pWell, nWell, pImplant, nImplant
       active, metal, cut, obstacle & other.

 * ./coriolis/src/crlcore :
   - Switched to the generic layer model. Updated technology XML configuration
       files, technology parser & AP parser/driver.
   - Note that the representation of transistors visually changes as it's now
       modelled with Implant + Active.

 _____________________________________________________________________________


 * ./hurricane/src/hurricane :
   - CompositeLayer replaced by 5 kind of symbolic layers :
       RegularLayer     (1 BasicLayer)
       DiffusionLayer   (2 or 3 BasicLayers: active+implant,well)
       TransistorLayer  (3 or 4 BasicLayers: poly+active+implant,well)
       ContactLayer     (4 or 5 BasicLayers: metal+cut+active+implant,well)
       ViaLayer         (3 BasicLayers: metal0+cut0+metal1)
   - To better follow the OpenAccess semantic, the "obstacle" Material type
       is renommed to "blockage".
   - NB: doxygen documentation is not up-to-date and issue warnings.

 * ./coriolis/src/crlcore :
   - Migrate from CompositeLayer to the various SymbolicLayers.
   - Symbolic rules are now closer to the reality so that a Cell displayed
       with Hurricane should look identical to the Graal one.
   - Complete rewrite of the AP parser. Much simplificated, do not try to
       merge/articulates segments. This ensure a true rendering of the
       Cell. Especially do not create contact to anchor diffusion segments,
       which leads to very strange randering (DRC error as well).

 _____________________________________________________________________________


 * ./hurricane :
   - Unit evolution to allow Symbolic (lamda) and Real (grid founder) mixing.
       All functions related to Unit translations are now grouped under
       the "DbU" class (another tribute to OpenAccess). "DbU" contains
       only static attributes (constants) and methods. Unit itself becomes
       a typedef inside this class, hence the file renaming from Unit.{h,cpp}
       to DbU.{h.cpp}. Have to replace all instances of "Unit" by "DbU::Unit".
   - Doc will be updated shortly.

 _____________________________________________________________________________


 * ./coriolis/src/crlcore :
   - New AP parser : simplificated, no longer try to re-articulates segments.
       More accurate representation of standart cell innards.
   - More accurate symbolic extentions rules.
   - Propagated changes from Hurricane about Unit/DbU.

 _____________________________________________________________________________


 * ./hurricane/src :
   - Rename "pyext" to "isobar".


 _____________________________________________________________________________


 * ./hurricane/doc/hurricane :
   - Documentation of DbU, replacing documentation of Unit.

 * ./hurricane/src/hurricane/hurricane/DBo.h :
   - Property set is now a mutable member, allowing const DBo to changes
       their properties. Strange side effect on SlotAdapter in which we
       need to declare two separate templates, one for const type and
       another for non-const type.
   - _getTypeName() defined to prevents noisy error message when a
       derived class (from DBo) do not want to implement support for
       the inspector.


 _____________________________________________________________________________


 Derrick Release !!

 * ./hurricane/src
   - Simplification of the Inspector internal mechanism. Simple, but with
       more templates, means a slower compilation.
   - The DbU::Unit problem : DbU::Unit are only typedef over long type,
       so we cannot create a specific overload for them. Uses "getValueRecord()"
       instead of "getRecord()"
   - For HInspectorWidget add a "getClone()" method. Also add a global
       object counter (for Record too) to track down memory leaks.
   - Big rewrite of the HInspectorWidget : now do not leak memory like hell,
       and only kept allocated the current Record and not the full stack
       of them (instead, we stack Slots which are ligthweigh objects).
   - Rename of "real" unit to "grid" unit.
   - New conversion function "getPhysicalsPerGrid()" and associated
       mechanism.

 * ./coriolis/src/crlcore :
   - Synchronise with the Hurricane modifications.


 _____________________________________________________________________________


 * ./hurricane/src/hurricane/DbU.{h,cpp} :
   - Add forgotten converter function physicalToGrid(), physical units to
       founder grid units.

 * ./hurricane/src/hinspector :
   - Added history support, and ability to move through the history stack.
   - Fork support : by typing 'O' (capitalized 'o' letter)  you can open
       a new inspector on the current record.


 _____________________________________________________________________________


 * ./hurricane/src/hinspector :cla
   - No more extra arguments in HInspectorWidget & RecordModel constructors.
       Valid values have to be sets through setRootRecord() & setSlot().
   - Key for forking sub-inspector is now *minus* 'o'.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - Bug: very tricky one. Do not emit "layoutAboutToChange()" signal
       after destroying the Record used by the RecordModel but before
       setting a new one and not setting the _record field to NULL.
       Now setRootRecord() should work more than once.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - API : in CellWidget & CellViewer constructors now only takes the
       parent QWidget.
   - Renaming coordinates translation functions for more clarity.
   - Adding a StatusBar showing mouse coordinates.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - Grid & Spot support (adjusted display threshold).
   - Added new copyToScreen() functions for _drawingBuffer to screen refreshment
       or partial copy (useful for Spot).


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - New Widget policy : a widget do not generate other widget : applied to
       CellWidget which no longer supplies Palette & StatusBar.
         API note: to associate a HPalette to a CellWidget (that is be able
       to select layer) you have to call "bindToPalette()" on the CellWidget.
   - Hurricane reusable widget names prefixed by 'H' : HMousePosition and
       HPalette.


 _____________________________________________________________________________
   

 * ./hurricane/src/hviewer :
   - New feature : support for highlighted selection with decent refresh time.
       To active selection mode, use the 's' key or the "View" menu.
   - New feature : HNetlist to browse a Cell's Netlist. HNetlist can be used
       with any NetInformations derived class, allowing the user to enrich
       the HNetlist displayed fields. For an example, have a look at
       SimpleNetlistWidget.
   - Added proper licence header to all file.


 _____________________________________________________________________________


 * ./hurricane/src/hurricane :
   - New feature : geometrical Query with callback fonctions "a la" OpenAccess.

 * ./hurricane/src/hviewer :
   - Uses Query to draw display.
   - Bug : when drawing segments as lines (width inferior to 1 pixel)
       uses an alternate Pen which is one pixel wide and SolidLine styled,
       avoiding strange orange lines... Mechanism implemented in sub-class
       DrawingPlanes.
   - Make selection always visible regardless the zoom level.
   - CellWidget names it's most importants childs QWidget (mostly menus)
       for later retrieval in customized sub-classes.

 * ./coriolis/src/crlcore/src/cyclop :
   - Created a simple derived class from CellViewer. Example of customisation
       of CellWidget.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - Bug : now CellViewer can start with a NULL Cell, note that in this
       case all displacement/zooming function of CellWidget became uneffective.
       (display only a black screen)
   - New widget : HGraphics to select the layout graphic's theme.
   - New widget : HDisplayFilter to select displayed hierarchical levels.
   - Distinguish between Close (one viewer) & Exit (all viewers).
   - Small enhancments of DisplayStyle (Description & darkening).

 * ./coriolis/src/crlcore/src/ccore :
   - Xml display parser takes account of DisplayStyle description & darkening.

 * ./coriolis/src/crlcore/src/cyclop :
   - Enhanced COpenCellDialog : ability to open in a new Viewer.
   - Bug : now Cyclop can start on a NULL Cell.
   - Half Bug : when a Cell is loaded at start, call show() *before* setCell()
       so all internal widget resizing due to the insertion of the toolbar,
       menbar palette ... takes places before the Cell fit. Now the loaded
       cell appears correctly fitted.


 _____________________________________________________________________________


 * ./hurricane/src/hviewer :
   - New feature : Command support. Move command is now implemenented as a
       Command and no longer built into the CellWidget. ZoomCommand implemented.
   - New feature : SelectCommand support along with new HSelection widget to
       browse the current selection. Selection is automatically kept up to
       date.
   - Note : Selection Browser & Netlist Browser pointer in the CellViewer are
       resets to NULL on widget destruction by closing. We do not want to keep
       big widget hiden. The are allocateds on demand.
   - New feature : progessive grid. First display 5x5 then 5x5 + 1x1.


 _____________________________________________________________________________
       

 * ./hurricane/src/hviewer :
   - Bug : default argument to setWeight() sould be QFont::Normal and not "-1".
       Shows in Qt debug mode (catched by an assert).
   - Bug : SelectCommand now keep the Selection check button in sync.
   - Change : Palette doesn't show at start.

 * ./hurricane :
   - Now choice between static and dynamic linking. Note that thoses options are
       mutually exclusives.

 * ./coriolis/src/crlcore :
   - New choice between static and dynamic linking.
   - New feature : XmlParser optional warning when file not found (default is
       to warn).
   - New feature : now read environment from user's optional configuration file :
       ~/.environment.alliance.xml
   - Potential bug : when loading/parsing file, the XmlReader hangs if the opened
       file is a directory, and QFile allows directory opening :-(


 _____________________________________________________________________________


 * ./hurricane/src/viewer :
   - New features : advanced selection widget/commands. Communications between
       CellWidget, HSelectionPopup, HSelection & SelectCommand mostly done
       through signal/slots (better undersdanding of the possibilities).
   - Change : debug menu is hidden by default.
   - Change : in all the QTableView rows are now correctly resized, even when
       filtering is active (new forceRowHeight() slot). I'm pretty sure there's
       a better way to handle this, but I haven't found it for now.
   - Change : small naming normalisation in all those TableView.
2008-09-14 15:48:37 +00:00
Jean-Paul Chaput 7bce78379c * ./hurricane/src/hviewer :
- Bug : default argument to setWeight() sould be QFont::Normal and not "-1".
       Shows in Qt debug mode (catched by an assert).
   - Bug : SelectCommand now keep the Selection check button in sync.
   - Change : Palette doesn't show at start.

 * ./hurricane :
   - Now choice between static and dynamic linking. Note that thoses options are
       mutually exclusives.

 * ./coriolis/src/crlcore :
   - New choice between static and dynamic linking.
   - New feature : XmlParser optional warning when file not found (default is
       to warn).
   - New feature : now read environment from user's optional configuration file :
       ~/.environment.alliance.xml
   - Potential bug : when loading/parsing file, the XmlReader hangs if the opened
       file is a directory, and QFile allows directory opening :-(
2008-09-08 08:46:18 +00:00
Jean-Paul Chaput f6eee66fcb * ./hurricane/src/hviewer :
- New feature : Command support. Move command is now implemenented as a
       Command and no longer built into the CellWidget. ZoomCommand implemented.
   - New feature : SelectCommand support along with new HSelection widget to
       browse the current selection. Selection is automatically kept up to
       date.
   - Note : Selection Browser & Netlist Browser pointer in the CellViewer are
       resets to NULL on widget destruction by closing. We do not want to keep
       big widget hiden. The are allocateds on demand.
   - New feature : progessive grid. First display 5x5 then 5x5 + 1x1.
2008-09-01 14:47:50 +00:00
The Coriolis Project 865d1bde2a OpenAccess env in progress 2008-08-31 11:29:55 +00:00
Christophe Alexandre a387532310 size_t -> int ... this time 2008-08-29 14:48:23 +00:00
Jean-Paul Chaput 7752e70a05 * ./hurricane/src/hviewer :
- Bug : now CellViewer can start with a NULL Cell, note that in this
       case all displacement/zooming function of CellWidget became uneffective.
       (display only a black screen)
   - New widget : HGraphics to select the layout graphic's theme.
   - New widget : HDisplayFilter to select displayed hierarchical levels.
   - Distinguish between Close (one viewer) & Exit (all viewers).
   - Small enhancments of DisplayStyle (Description & darkening).
2008-08-29 09:32:52 +00:00
Christophe Alexandre e39e6f714a size_t -> unsigned, Qt QVariant has not constructor with size_t, at least
on OSX. I guess there is a typedef size_t unsigned somewhere on Linux...
2008-08-27 19:48:22 +00:00
Jean-Paul Chaput d42cf11ec6 Small adjustements. 2008-08-27 16:27:46 +00:00
Jean-Paul Chaput dfdb2ec2d5 * ./hurricane/src/hurricane :
- New feature : geometrical Query with callback fonctions "a la" OpenAccess.

 * ./hurricane/src/hviewer :
   - Uses Query to draw display.
   - Bug : when drawing segments as lines (width inferior to 1 pixel)
       uses an alternate Pen which is one pixel wide and SolidLine styled,
       avoiding strange orange lines... Mechanism implemented in sub-class
       DrawingPlanes.
   - Make selection always visible regardless the zoom level.
   - CellWidget names it's most importants childs QWidget (mostly menus)
       for later retrieval in customized sub-classes.
2008-08-27 14:06:06 +00:00
Christophe Alexandre 0e6f383a8c more explicit error message 2008-08-21 16:44:51 +00:00
The Coriolis Project 90242e3680 OPENACCESS macro 2008-08-21 16:42:09 +00:00
The Coriolis Project 231554bf04 OpenAccess CMake macro 2008-08-20 15:41:49 +00:00
The Coriolis Project 423fc9ea6e cmake macro for finding OpenAccess 2008-07-28 16:33:34 +00:00
Christophe Alexandre 0968118cd3 remove annoying comment 2008-07-25 14:45:20 +00:00
Jean-Paul Chaput 7857044814 Correct some broken links. 2008-07-25 13:29:26 +00:00
Christophe Alexandre bc3000ecb6 some fixes in the documentation 2008-07-25 12:47:08 +00:00
Christophe Alexandre 34cc9b0e71 print Net Type 2008-07-10 19:48:40 +00:00
Jean-Paul Chaput 1bad129f16 uses unsigned int instead of size_t for MacOS. 2008-07-10 11:15:35 +00:00
Jean-Paul Chaput 9637ebc58b * ./hurricane/src/hviewer :
- New feature : support for highlighted selection with decent refresh time.
       To active selection mode, use the 's' key or the "View" menu.
   - New feature : HNetlist to browse a Cell's Netlist. HNetlist can be used
       with any NetInformations derived class, allowing the user to enrich
       the HNetlist displayed fields. For an example, have a look at
       SimpleNetlistWidget.
   - Added proper licence header to all file.
2008-07-10 09:22:36 +00:00
Jean-Paul Chaput 3bb9ddf157 Forgotten 2008-07-07 14:56:32 +00:00
Jean-Paul Chaput 204758bf37 Forgotten. 2008-07-07 14:53:12 +00:00
Jean-Paul Chaput 2607d8d94c * ./hurricane/src/hviewer :
- New Widget policy : a widget do not generate other widget : applied to
       CellWidget which no longer supplies Palette & StatusBar.
         API note: to associate a HPalette to a CellWidget (that is be able
       to select layer) you have to call "bindToPalette()" on the CellWidget.
   - Hurricane reusable widget names prefixed by 'H' : HMousePosition and
       HPalette.
2008-07-04 15:33:11 +00:00
Christophe Alexandre 287145f3c0 setLayer on Pad 2008-07-04 07:48:18 +00:00
Jean-Paul Chaput a743cf53a3 * ./hurricane/src/hviewer :
- Grid & Spot support (adjusted display threshold).
   - Added new copyToScreen() functions for _drawingBuffer to screen refreshment
       or partial copy (useful for Spot).
2008-07-03 14:31:20 +00:00
Christophe Alexandre af659752dc export CellWidget.h 2008-07-02 15:25:46 +00:00
Jean-Paul Chaput 1a2bfba3d4 * ./hurricane/doc/hviewer :
- Embryo of documentation for the hviewer widget.
2008-07-02 15:13:40 +00:00
Jean-Paul Chaput 3c7d1b2e62 * ./hurricane/src/hviewer :
- API : in CellWidget & CellViewer constructors now only takes the
       parent QWidget.
   - Renaming coordinates translation functions for more clarity.
   - Adding a StatusBar showing mouse coordinates.
2008-07-02 13:31:50 +00:00
Jean-Paul Chaput b3fa237ea7 Small typos. 2008-06-30 14:37:52 +00:00
Christophe Alexandre acd1ccdd66 IsEmpty -> isEmpty 2008-06-29 09:55:38 +00:00
Christophe Alexandre c66f206b93 Inspector Support for Net::Type and Net::Direction as value 2008-06-27 13:45:09 +00:00
Christophe Alexandre cec61f96cb Inspector support for const set<>& 2008-06-24 11:09:30 +00:00
Christophe Alexandre b3ec92835f export Inspector include 2008-06-21 10:27:06 +00:00
Jean-Paul Chaput 5328240c21 * ./hurricane/src/hviewer :
- Bug: very tricky one. Do not emit "layoutAboutToChange()" signal
       after destroying the Record used by the RecordModel but before
       setting a new one and not setting the _record field to NULL.
       Now setRootRecord() should work more than once.
2008-06-20 15:36:36 +00:00
Jean-Paul Chaput fd0051802b Remove debug information... 2008-06-19 16:53:21 +00:00
Jean-Paul Chaput 0066a1fa5e * ./hurricane/src/hinspector :
- No more extra arguments in HInspectorWidget & RecordModel constructors.
       Valid values have to be sets through setRootRecord() & setSlot().
   - Key for forking sub-inspector is now *minus* 'o'.
2008-06-19 16:51:11 +00:00
The Coriolis Project d17ecda179 move hinspector to hviewer
to avoid cycles between libraries
2008-06-18 15:51:45 +00:00
Jean-Paul Chaput 62d5b757fb * ./hurricane/src/hurricane/DbU.{h,cpp} :
- Add forgotten converter function physicalToGrid(), physical units to
       founder grid units.

 * ./hurricane/src/hinspector :
   - Added history support, and ability to move through the history stack.
   - Fork support : by typing 'O' (capitalized 'o' letter)  you can open
       a new inspector on the current record.
2008-06-18 12:14:19 +00:00
The Coriolis Project 98ece39fab remove debug prints 2008-06-17 16:49:24 +00:00
Jean-Paul Chaput a8b40f3b5c Derrick Release !!
* ./hurricane/src
   - Simplification of the Inspector internal mechanism. Simple, but with
       more templates, means a slower compilation.
   - The DbU::Unit problem : DbU::Unit are only typedef over long type,
       so we cannot create a specific overload for them. Uses "getValueRecord()"
       instead of "getRecord()"
   - For HInspectorWidget add a "getClone()" method. Also add a global
       object counter (for Record too) to track down memory leaks.
   - Big rewrite of the HInspectorWidget : now do not leak memory like hell,
       and only kept allocated the current Record and not the full stack
       of them (instead, we stack Slots which are ligthweigh objects).
   - Rename of "real" unit to "grid" unit.
   - New conversion function "getPhysicalsPerGrid()" and associated
       mechanism.

 * ./coriolis/src/crlcore :
   - Synchronise with the Hurricane modifications.
2008-06-17 15:30:00 +00:00
Christophe Alexandre 4deb80c3c7 String Mode in DbU can now be set
There was no drawing for pads in CellWidget
2008-06-15 17:04:50 +00:00
Christophe Alexandre f47f6b92e5 get rid of global functions :
getDataBase() -> DataBase::getDB()
2008-06-13 15:58:55 +00:00
Jean-Paul Chaput 59e8d945d6 * ./hurricane/doc/hurricane :
- Documentation of DbU, replacing documentation of Unit.

 * ./hurricane/src/hurricane/hurricane/DBo.h :
   - Property set is now a mutable member, allowing const DBo to changes
       their properties. Strange side effect on SlotAdapter in which we
       need to declare two separate templates, one for const type and
       another for non-const type.
   - _getTypeName() defined to prevents noisy error message when a
       derived class (from DBo) do not want to implement support for
       the inspector.
2008-06-10 17:08:37 +00:00
The Coriolis Project 4c4c8d3553 get rid of is_a, dynamic_cast is far more powerful then #define... 2008-06-10 17:04:48 +00:00
Jean-Paul Chaput 23407710ee * ./hurricane/src :
- Rename "pyext" to "isobar".
2008-06-09 16:56:48 +00:00
Jean-Paul Chaput 5a7ddb8188 * ./hurricane :
- Unit evolution to allow Symbolic (lamda) and Real (grid founder) mixing.
       All functions related to Unit translations are now grouped under
       the "DbU" class (another tribute to OpenAccess). "DbU" contains
       only static attributes (constants) and methods. Unit itself becomes
       a typedef inside this class, hence the file renaming from Unit.{h,cpp}
       to DbU.{h.cpp}. Have to replace all instances of "Unit" by "DbU::Unit".
   - Doc will be updated shortly.
2008-06-09 16:41:46 +00:00
Christophe Alexandre 0e1e4e2573 Pad constructor with const Layer 2008-06-05 17:08:28 +00:00
Jean-Paul Chaput a2bb796e6f * ./hurricane/src/hurricane :
- CompositeLayer replaced by 5 kind of symbolic layers :
       RegularLayer     (1 BasicLayer)
       DiffusionLayer   (2 or 3 BasicLayers: active+implant,well)
       TransistorLayer  (3 or 4 BasicLayers: poly+active+implant,well)
       ContactLayer     (4 or 5 BasicLayers: metal+cut+active+implant,well)
       ViaLayer         (3 BasicLayers: metal0+cut0+metal1)
   - To better follow the OpenAccess semantic, the "obstacle" Material type
       is renommed to "blockage".
   - NB: doxygen documentation is not up-to-date and issue warnings.

 * ./coriolis/src/crlcore :
   - Migrate from CompositeLayer to the various SymbolicLayers.
   - Symbolic rules are now closer to the reality so that a Cell displayed
       with Hurricane should look identical to the Graal one.
   - Complete rewrite of the AP parser. Much simplificated, do not try to
       merge/articulates segments. This ensure a true rendering of the
       Cell. Especially do not create contact to anchor diffusion segments,
       which leads to very strange randering (DRC error as well).
2008-06-05 16:11:52 +00:00
Christophe Alexandre 6746723a9f Fix in doc 2008-06-02 11:23:28 +00:00
Jean-Paul Chaput c2b9798777 * ./hurricane/doc/hurricane/src/hurricane/Layer.{h.cpp}
./hurricane/doc/hurricane/src/hurricane/BasicLayer.{h.cpp}
   - Changed "Type" to "Material" to fit better the OpenAccess semantic.
       Introduce Material meanings : pWell, nWell, pImplant, nImplant
       active, metal, cut, obstacle & other.

 * ./coriolis/src/crlcore :
   - Switched to the generic layer model. Updated technology XML configuration
       files, technology parser & AP parser/driver.
   - Note that the representation of transistors visually changes as it's now
       modelled with Implant + Active.
2008-05-28 11:24:53 +00:00
Jean-Paul Chaput 4fb6f4c886 * ./hurricane/doc/hurricane :
- Added (empty) directories "html" & "latex". Those directories are
       created by doxygen, but as they are used in the CMakeList.txt, they
       must be present even before the fisrt run of cmake (otherwise cmake
       choke on them).
   - Doxygen sets to only generate html & pdf (through LaTeX) documentation.
   - All ".dox" files corrected to suit the new function members naming
       scheme (some work may remains in code examples).
2008-05-26 15:15:59 +00:00
The Coriolis Project 4fceb74ea3 remove doc compilation for the moment (not functionnal)
FindHURRICANE.cmake seems to work (finds hurricane includes and hviewer includes)
2008-05-22 11:41:35 +00:00
Christophe Alexandre e61c1264d7 return to previous version to search for graphical libraries 2008-05-22 11:36:13 +00:00
Jean-Paul Chaput f88a38af51 * ./hurricane/src :
- Complete include re-organisation.
       include/hurricane/*.h            : kernel.
       include/hurricane/viewer/*.h     : hviewer.
       include/hurricane/inspector/*.h  : hinspector.
     Includes have been moved into subdirectories of .cpp files (as in
       crlcore).
   - Now you must include files like this :
       #include  <hurricane/Layer.h>
       #include  <hurricane/viewer/CellViewer.h>
       #include  <hurricane/inspector/HInspector.h>  
   - Suppressed viewer specific include path in FindHURRICANE.cmake.
   - Re-enabled documentation, with dot disabled as it seems to slow down
      doxygen.

 * ./crlcore/src/crlcore :
   - Adapted to new Hurricane include scheme. Corrected bugs in it's own
       include files (noticeably "Utilities.h").
2008-05-21 22:32:40 +00:00
Jean-Paul Chaput 60fb4ab7d6 * ./hurricane/src :
- Complete include re-organisation.
       include/hurricane/*.h            : kernel.
       include/hurricane/viewer/*.h     : hviewer.
       include/hurricane/inspector/*.h  : hinspector.
     Includes have been moved into subdirectories of .cpp files (as in
       crlcore).
   - Now you must include files like this :
       #include  <hurricane/Layer.h>
       #include  <hurricane/viewer/CellViewer.h>
       #include  <hurricane/inspector/HInspector.h>  
   - Suppressed viewer specific include path in FindHURRICANE.cmake.
   - Re-enabled documentation, with dot disabled as it seems to slow down
      doxygen.

 * ./crlcore/src/crlcore :
   - Adapted to new Hurricane include scheme. Corrected bugs in it's own
       include files (noticeably "Utilities.h").
2008-05-21 22:46:29 +00:00
Jean-Paul Chaput 2d757752a9 * ./hurricane/src :
- Complete include re-organisation.
       include/hurricane/*.h            : kernel.
       include/hurricane/viewer/*.h     : hviewer.
       include/hurricane/inspector/*.h  : hinspector.
     Includes have been moved into subdirectories of .cpp files (as in
       crlcore).
   - Now you must include files like this :
       #include  <hurricane/Layer.h>
       #include  <hurricane/viewer/CellViewer.h>
       #include  <hurricane/inspector/HInspector.h>  
   - Suppressed viewer specific include path in FindHURRICANE.cmake.
   - Re-enabled documentation, with dot disabled as it seems to slow down
      doxygen.

 * ./crlcore/src/crlcore :
   - Adapted to new Hurricane include scheme. Corrected bugs in it's own
       include files (noticeably "Utilities.h").
2008-05-21 22:45:47 +00:00
Jean-Paul Chaput 0d9443144b * ./hurricane/src :
- Complete include re-organisation.
       include/hurricane/*.h            : kernel.
       include/hurricane/viewer/*.h     : hviewer.
       include/hurricane/inspector/*.h  : hinspector.
     Includes have been moved into subdirectories of .cpp files (as in
       crlcore).
   - Now you must include files like this :
       #include  <hurricane/Layer.h>
       #include  <hurricane/viewer/CellViewer.h>
       #include  <hurricane/inspector/HInspector.h>  
   - Suppressed viewer specific include path in FindHURRICANE.cmake.
   - Re-enabled documentation, with dot disabled as it seems to slow down
      doxygen.

 * ./crlcore/src/crlcore :
   - Adapted to new Hurricane include scheme. Corrected bugs in it's own
       include files (noticeably "Utilities.h").
2008-05-21 22:45:16 +00:00
Jean-Paul Chaput d788d1c559 * ./hurricane/src :
- Complete include re-organisation.
       include/hurricane/*.h            : kernel.
       include/hurricane/viewer/*.h     : hviewer.
       include/hurricane/inspector/*.h  : hinspector.
     Includes have been moved into subdirectories of .cpp files (as in
       crlcore).
   - Now you must include files like this :
       #include  <hurricane/Layer.h>
       #include  <hurricane/viewer/CellViewer.h>
       #include  <hurricane/inspector/HInspector.h>  
   - Suppressed viewer specific include path in FindHURRICANE.cmake.
   - Re-enabled documentation, with dot disabled as it seems to slow down
      doxygen.

 * ./crlcore/src/crlcore :
   - Adapted to new Hurricane include scheme. Corrected bugs in it's own
       include files (noticeably "Utilities.h").
2008-05-21 22:44:35 +00:00
Jean-Paul Chaput 9a49082767 * ./hurricane/src :
- Complete include re-organisation.
       include/hurricane/*.h            : kernel.
       include/hurricane/viewer/*.h     : hviewer.
       include/hurricane/inspector/*.h  : hinspector.
     Includes have been moved into subdirectories of .cpp files (as in
       crlcore).
   - Now you must include files like this :
       #include  <hurricane/Layer.h>
       #include  <hurricane/viewer/CellViewer.h>
       #include  <hurricane/inspector/HInspector.h>  
   - Suppressed viewer specific include path in FindHURRICANE.cmake.
   - Re-enabled documentation, with dot disabled as it seems to slow down
      doxygen.

 * ./crlcore/src/crlcore :
   - Adapted to new Hurricane include scheme. Corrected bugs in it's own
       include files (noticeably "Utilities.h").
2008-05-21 22:43:52 +00:00
Jean-Paul Chaput 9bdf529dc2 * ./hurricane/src :
- Complete include re-organisation.
       include/hurricane/*.h            : kernel.
       include/hurricane/viewer/*.h     : hviewer.
       include/hurricane/inspector/*.h  : hinspector.
     Includes have been moved into subdirectories of .cpp files (as in
       crlcore).
   - Now you must include files like this :
       #include  <hurricane/Layer.h>
       #include  <hurricane/viewer/CellViewer.h>
       #include  <hurricane/inspector/HInspector.h>  
   - Suppressed viewer specific include path in FindHURRICANE.cmake.

 * ./crlcore/src/crlcore :
   - Adapted to new Hurricane include scheme. Corrected bugs in it's own
       include files (noticeably "Utilities.h").
2008-05-21 22:42:11 +00:00
Jean-Paul Chaput 46cff23d7a * ./hurricane/src/hurricane/BasicLayer.{h,cpp}
- Suppress all graphics related members from Layer.
   - Adding realName member for symbolic to real transformation.

 * ./hurricane/src/hviewer/CellWidget.cpp
   Bug: Now uses display threshold from Graphics (DisplayStyle) instead
     of layer. Now layers appears/diseapears while zooming/unzooming.
2008-05-19 22:24:23 +00:00
The Coriolis Project 53af9ae3b1 small correction in cmake module 2008-05-16 16:26:56 +00:00
The Coriolis Project b6d0f68b61 remove obsolete 2008-05-16 15:33:39 +00:00
Jean-Paul Chaput f34b13a292 The new Viewer (h). 2008-05-16 15:28:39 +00:00
Jean-Paul Chaput 26b932683c Prior to new hviewer 2008-05-16 15:27:43 +00:00
Christophe Alexandre 5d092e27c0 mapping correction 2008-05-06 23:20:10 +00:00
The Coriolis Project 59751be544 remove Hurricane.h 2008-05-05 16:43:11 +00:00
Christophe Alexandre 7ceb8530f2 corrections on hinspector 2008-05-02 14:59:37 +00:00
Christophe Alexandre a96df9116e beginning cleaning of includes in hurricane
-> reduction of dependendy tree.
2008-04-30 18:39:44 +00:00
Christophe Alexandre a5bc1de1fa filter in inspector 2008-04-29 12:53:59 +00:00
The Coriolis Project 357e9b4961 Hurricane inspector in progress (sorting) 2008-04-28 16:35:51 +00:00
Christophe Alexandre b2329afd3d inspector in progress 2008-04-25 15:39:33 +00:00
Christophe Alexandre 4e645a28aa introducing hinspector widget 2008-04-25 14:15:42 +00:00
Christophe Alexandre a2d9ab4087 bug in Library creation,
still a problem in Python object management
2008-04-23 14:37:45 +00:00
Christophe Alexandre ebe8b9bb13 compilation of python extension 2008-04-23 13:47:52 +00:00
The Coriolis Project b774770407 OpenUpdateSession() -> UpdateSession::open()
remove hurricane editor (QGraphicsView framework)
2008-04-14 14:31:33 +00:00
Christophe Alexandre e019677605 Hurricane cleaning 2008-04-13 10:12:19 +00:00
The Coriolis Project acdaa2e4f5 still cleaning 2008-04-09 17:14:17 +00:00
Jean-Paul Chaput 8d46981a42 * viewer :
- No more flickering. Was due to a one pixel moving of a two
       pixel periodic pattern, which obviously result in a complete
       pattern inversion. Now shift by two pixels, hoping there is
       no "3 pixels periodic" patterns...
   - As a side effect, it introduce a "multiplicator effect" on
       mouse movement, but it could be useful (avoid big displacement
       of the mouse).
2008-04-07 10:04:13 +00:00
The Coriolis Project 9d48b67296 ged rid of H namespace 2008-04-03 15:21:18 +00:00
Jean-Paul Chaput 8544dc5116 Old viewer by xtof. To be deleted sometime. 2008-04-03 15:13:57 +00:00
Jean-Paul Chaput 97916fd05b Complete replacement of xtof viewer by jpc'one.
Still in early stage. Many features missings.
2008-04-03 15:07:41 +00:00
The Coriolis Project b647b87b18 cleaning again 2008-04-03 11:55:51 +00:00
The Coriolis Project 6a98b38248 light modifications 2008-04-02 20:15:02 +00:00
Christophe Alexandre c59d99e99f still some cleaning 2008-04-02 12:11:31 +00:00
Christophe Alexandre 68760f612d cleaning in namespaces 2008-03-28 09:48:47 +00:00
Christophe Alexandre eb54b6238e some cleaning again 2008-03-25 11:06:05 +00:00
Christophe Alexandre 98778c4dbd some cleaning again 2008-03-22 13:18:26 +00:00
Christophe Alexandre c00fb4b2ef small cleaning 2008-03-20 18:07:05 +00:00
Christophe Alexandre 9a6415ae4d still cleaning 2008-03-19 10:02:56 +00:00
The Coriolis Project 7fb2d3222d hurricane cleaning still in progress 2008-03-18 09:42:44 +00:00
Christophe Alexandre af0c4a4609 cleaning in progress in Hurricane 2008-03-17 13:54:33 +00:00
Christophe Alexandre 001c6323f5 remove unused Tag class 2008-03-14 16:44:45 +00:00
Christophe Alexandre 0eb89cad32 Cleaning in progress in Hurricane 2008-03-14 16:31:18 +00:00
The Coriolis Project 9e9ad197d5 export cmake macros 2008-03-07 13:51:45 +00:00
The Coriolis Project bf59d5b2c4 move analogic features in separate package 2008-03-07 11:42:41 +00:00
The Coriolis Project 5cf6b33727 synchro with modifications from the cvs root 2008-03-06 17:56:58 +00:00
Christophe Alexandre 4222306aa1 compilation on OSX 2008-03-06 17:13:34 +00:00
The Coriolis Project 6a517225a6 missing file 2008-03-06 16:47:55 +00:00
The Coriolis Project 1f0f9de3ad first version of the Python extension 2008-03-06 16:46:43 +00:00
The Coriolis Project 898f7dfb81 documentation in progress 2008-02-05 21:26:22 +00:00