Commit Graph

176 Commits

Author SHA1 Message Date
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