From 88c2d138ade5a908ecc400a2eda3827ce6bb012f Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Wed, 26 Nov 2008 10:13:31 +0000 Subject: [PATCH] * ./hurricane/src/hviewer : - Cleanup (part 2) : changing file names. --- ...nspectorWidget.dox => InspectorWidget.dox} | 0 hurricane/doc/hviewer/doxyfile | 4 +- hurricane/src/hviewer/CMakeLists.txt | 56 ++++++++--------- hurricane/src/hviewer/CellViewer.cpp | 3 +- ...playFilter.cpp => DisplayFilterWidget.cpp} | 3 +- .../{HGraphics.cpp => GraphicsWidget.cpp} | 3 +- ...nspectorWidget.cpp => InspectorWidget.cpp} | 3 +- ...sePosition.cpp => MousePositionWidget.cpp} | 5 +- .../{HNetlistModel.cpp => NetlistModel.cpp} | 2 +- .../{HNetlist.cpp => NetlistWidget.cpp} | 6 +- hurricane/src/hviewer/SelectCommand.cpp | 4 +- ...HSelectionModel.cpp => SelectionModel.cpp} | 6 +- ...HSelectionPopup.cpp => SelectionPopup.cpp} | 57 +++++------------- ...PopupModel.cpp => SelectionPopupModel.cpp} | 55 +++++------------ .../{HSelection.cpp => SelectionWidget.cpp} | 6 +- ...HDisplayFilter.h => DisplayFilterWidget.h} | 0 .../viewer/{HGraphics.h => GraphicsWidget.h} | 0 .../{HInspectorWidget.h => InspectorWidget.h} | 0 ...HMousePosition.h => MousePositionWidget.h} | 0 .../{HNetlistModel.h => NetlistModel.h} | 0 .../viewer/{HNetlist.h => NetlistWidget.h} | 8 +-- .../hviewer/hurricane/viewer/SelectCommand.h | 53 ++++------------ .../{HSelectionModel.h => SelectionModel.h} | 0 .../{HSelectionPopup.h => SelectionPopup.h} | 41 +++---------- ...tionPopupModel.h => SelectionPopupModel.h} | 39 ++---------- .../{HSelection.h => SelectionWidget.h} | 3 +- hurricane/src/hviewer/images/swiss-knife.png | Bin 0 -> 53113 bytes 27 files changed, 105 insertions(+), 252 deletions(-) rename hurricane/doc/hviewer/{HInspectorWidget.dox => InspectorWidget.dox} (100%) rename hurricane/src/hviewer/{HDisplayFilter.cpp => DisplayFilterWidget.cpp} (98%) rename hurricane/src/hviewer/{HGraphics.cpp => GraphicsWidget.cpp} (97%) rename hurricane/src/hviewer/{HInspectorWidget.cpp => InspectorWidget.cpp} (98%) rename hurricane/src/hviewer/{HMousePosition.cpp => MousePositionWidget.cpp} (94%) rename hurricane/src/hviewer/{HNetlistModel.cpp => NetlistModel.cpp} (98%) rename hurricane/src/hviewer/{HNetlist.cpp => NetlistWidget.cpp} (96%) rename hurricane/src/hviewer/{HSelectionModel.cpp => SelectionModel.cpp} (96%) rename hurricane/src/hviewer/{HSelectionPopup.cpp => SelectionPopup.cpp} (63%) rename hurricane/src/hviewer/{HSelectionPopupModel.cpp => SelectionPopupModel.cpp} (60%) rename hurricane/src/hviewer/{HSelection.cpp => SelectionWidget.cpp} (97%) rename hurricane/src/hviewer/hurricane/viewer/{HDisplayFilter.h => DisplayFilterWidget.h} (100%) rename hurricane/src/hviewer/hurricane/viewer/{HGraphics.h => GraphicsWidget.h} (100%) rename hurricane/src/hviewer/hurricane/viewer/{HInspectorWidget.h => InspectorWidget.h} (100%) rename hurricane/src/hviewer/hurricane/viewer/{HMousePosition.h => MousePositionWidget.h} (100%) rename hurricane/src/hviewer/hurricane/viewer/{HNetlistModel.h => NetlistModel.h} (100%) rename hurricane/src/hviewer/hurricane/viewer/{HNetlist.h => NetlistWidget.h} (96%) rename hurricane/src/hviewer/hurricane/viewer/{HSelectionModel.h => SelectionModel.h} (100%) rename hurricane/src/hviewer/hurricane/viewer/{HSelectionPopup.h => SelectionPopup.h} (57%) rename hurricane/src/hviewer/hurricane/viewer/{HSelectionPopupModel.h => SelectionPopupModel.h} (57%) rename hurricane/src/hviewer/hurricane/viewer/{HSelection.h => SelectionWidget.h} (97%) create mode 100644 hurricane/src/hviewer/images/swiss-knife.png diff --git a/hurricane/doc/hviewer/HInspectorWidget.dox b/hurricane/doc/hviewer/InspectorWidget.dox similarity index 100% rename from hurricane/doc/hviewer/HInspectorWidget.dox rename to hurricane/doc/hviewer/InspectorWidget.dox diff --git a/hurricane/doc/hviewer/doxyfile b/hurricane/doc/hviewer/doxyfile index 6e080ef4..c95104d1 100644 --- a/hurricane/doc/hviewer/doxyfile +++ b/hurricane/doc/hviewer/doxyfile @@ -105,8 +105,8 @@ INPUT = \ ../../src/hviewer/hurricane/viewer/CellWidget.h \ ../../src/hviewer/hurricane/viewer/CellViewer.h \ CellViewer.dox \ - ../../src/hviewer/hurricane/viewer/HInspectorWidget.h \ - HInspectorWidget.dox + ../../src/hviewer/hurricane/viewer/InspectorWidget.h \ + InspectorWidget.dox FILE_PATTERNS = *.h \ diff --git a/hurricane/src/hviewer/CMakeLists.txt b/hurricane/src/hviewer/CMakeLists.txt index 8c4d6b12..a06151ea 100644 --- a/hurricane/src/hviewer/CMakeLists.txt +++ b/hurricane/src/hviewer/CMakeLists.txt @@ -8,30 +8,30 @@ hurricane/viewer/PaletteNamedItem.h hurricane/viewer/PaletteLayerItem.h hurricane/viewer/PaletteWidget.h - hurricane/viewer/HGraphics.h + hurricane/viewer/GraphicsWidget.h hurricane/viewer/DynamicLabel.h - hurricane/viewer/HMousePosition.h + hurricane/viewer/MousePositionWidget.h hurricane/viewer/Selector.h hurricane/viewer/SelectCommand.h hurricane/viewer/CellWidget.h hurricane/viewer/CellWidgets.h hurricane/viewer/CellViewer.h hurricane/viewer/RecordModel.h - hurricane/viewer/HInspectorWidget.h - hurricane/viewer/HSelectionPopupModel.h - hurricane/viewer/HSelectionPopup.h - hurricane/viewer/HSelectionModel.h - hurricane/viewer/HSelection.h - hurricane/viewer/HNetlistModel.h - hurricane/viewer/HNetlist.h - hurricane/viewer/HDisplayFilter.h + hurricane/viewer/InspectorWidget.h + hurricane/viewer/SelectionPopupModel.h + hurricane/viewer/SelectionPopup.h + hurricane/viewer/SelectionModel.h + hurricane/viewer/SelectionWidget.h + hurricane/viewer/NetlistModel.h + hurricane/viewer/NetlistWidget.h + hurricane/viewer/DisplayFilterWidget.h hurricane/viewer/ControllerWidget.h ) set ( exports hurricane/viewer/ScreenUtilities.h hurricane/viewer/DisplayStyle.h hurricane/viewer/ColorScale.h hurricane/viewer/Graphics.h - hurricane/viewer/HGraphics.h + hurricane/viewer/GraphicsWidget.h hurricane/viewer/Selector.h hurricane/viewer/Command.h hurricane/viewer/AreaCommand.h @@ -42,27 +42,27 @@ hurricane/viewer/CellWidget.h hurricane/viewer/CellWidgets.h hurricane/viewer/CellViewer.h - hurricane/viewer/HInspectorWidget.h - hurricane/viewer/HSelectionPopupModel.h - hurricane/viewer/HSelectionPopup.h - hurricane/viewer/HSelectionModel.h - hurricane/viewer/HSelection.h + hurricane/viewer/InspectorWidget.h + hurricane/viewer/SelectionPopupModel.h + hurricane/viewer/SelectionPopup.h + hurricane/viewer/SelectionModel.h + hurricane/viewer/SelectionWidget.h hurricane/viewer/NetInformations.h - hurricane/viewer/HNetlist.h - hurricane/viewer/HDisplayFilter.h + hurricane/viewer/NetlistWidget.h + hurricane/viewer/DisplayFilterWidget.h hurricane/viewer/ControllerWidget.h ) set ( cpps ScreenUtilities.cpp DisplayStyle.cpp ColorScale.cpp Graphics.cpp - HGraphics.cpp + GraphicsWidget.cpp PaletteItem.cpp PaletteNamedItem.cpp PaletteLayerItem.cpp PaletteWidget.cpp DynamicLabel.cpp - HMousePosition.cpp + MousePositionWidget.cpp Selector.cpp Command.cpp AreaCommand.cpp @@ -73,15 +73,15 @@ CellWidget.cpp CellViewer.cpp RecordModel.cpp - HInspectorWidget.cpp - HSelectionPopupModel.cpp - HSelectionPopup.cpp - HSelectionModel.cpp - HSelection.cpp + InspectorWidget.cpp + SelectionPopupModel.cpp + SelectionPopup.cpp + SelectionModel.cpp + SelectionWidget.cpp NetInformations.cpp - HNetlistModel.cpp - HNetlist.cpp - HDisplayFilter.cpp + NetlistModel.cpp + NetlistWidget.cpp + DisplayFilterWidget.cpp ControllerWidget.cpp ) diff --git a/hurricane/src/hviewer/CellViewer.cpp b/hurricane/src/hviewer/CellViewer.cpp index b1122151..3b793bc2 100644 --- a/hurricane/src/hviewer/CellViewer.cpp +++ b/hurricane/src/hviewer/CellViewer.cpp @@ -37,8 +37,7 @@ #include "hurricane/viewer/Graphics.h" #include "hurricane/viewer/CellWidget.h" #include "hurricane/viewer/CellViewer.h" -//#include "hurricane/viewer/MousePositionWidget.h" -#include "hurricane/viewer/HMousePosition.h" +#include "hurricane/viewer/MousePositionWidget.h" #include "hurricane/viewer/ControllerWidget.h" diff --git a/hurricane/src/hviewer/HDisplayFilter.cpp b/hurricane/src/hviewer/DisplayFilterWidget.cpp similarity index 98% rename from hurricane/src/hviewer/HDisplayFilter.cpp rename to hurricane/src/hviewer/DisplayFilterWidget.cpp index 86ab15c0..df0b3d08 100644 --- a/hurricane/src/hviewer/HDisplayFilter.cpp +++ b/hurricane/src/hviewer/DisplayFilterWidget.cpp @@ -32,8 +32,7 @@ #include "hurricane/viewer/Graphics.h" #include "hurricane/viewer/CellWidget.h" -//#include "hurricane/viewer/DisplayFilterWidget.h" -#include "hurricane/viewer/HDisplayFilter.h" +#include "hurricane/viewer/DisplayFilterWidget.h" namespace Hurricane { diff --git a/hurricane/src/hviewer/HGraphics.cpp b/hurricane/src/hviewer/GraphicsWidget.cpp similarity index 97% rename from hurricane/src/hviewer/HGraphics.cpp rename to hurricane/src/hviewer/GraphicsWidget.cpp index 747ab812..7640bb84 100644 --- a/hurricane/src/hviewer/HGraphics.cpp +++ b/hurricane/src/hviewer/GraphicsWidget.cpp @@ -32,8 +32,7 @@ #include "hurricane/viewer/Graphics.h" #include "hurricane/viewer/DisplayStyle.h" -//#include "hurricane/viewer/GraphicsWidget.h" -#include "hurricane/viewer/HGraphics.h" +#include "hurricane/viewer/GraphicsWidget.h" namespace Hurricane { diff --git a/hurricane/src/hviewer/HInspectorWidget.cpp b/hurricane/src/hviewer/InspectorWidget.cpp similarity index 98% rename from hurricane/src/hviewer/HInspectorWidget.cpp rename to hurricane/src/hviewer/InspectorWidget.cpp index 040393c7..c0b857af 100644 --- a/hurricane/src/hviewer/HInspectorWidget.cpp +++ b/hurricane/src/hviewer/InspectorWidget.cpp @@ -36,8 +36,7 @@ #include "hurricane/viewer/Graphics.h" #include "hurricane/viewer/RecordModel.h" -//#include "hurricane/viewer/InspectorWidget.h" -#include "hurricane/viewer/HInspectorWidget.h" +#include "hurricane/viewer/InspectorWidget.h" #include "hurricane/Slot.h" diff --git a/hurricane/src/hviewer/HMousePosition.cpp b/hurricane/src/hviewer/MousePositionWidget.cpp similarity index 94% rename from hurricane/src/hviewer/HMousePosition.cpp rename to hurricane/src/hviewer/MousePositionWidget.cpp index a38ab8ea..1bfe31ae 100644 --- a/hurricane/src/hviewer/HMousePosition.cpp +++ b/hurricane/src/hviewer/MousePositionWidget.cpp @@ -16,7 +16,7 @@ // | Author : Jean-Paul CHAPUT | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | -// | C++ Module : "./MousePositionWidget.cpp" | +// | C++ Module : "./MousePositionWidget.cpp" | // | *************************************************************** | // | U p d a t e s | // | | @@ -26,8 +26,7 @@ #include #include "hurricane/viewer/DynamicLabel.h" -//# include "hurricane/viewer/MousePositionWidget.h" -#include "hurricane/viewer/HMousePosition.h" +#include "hurricane/viewer/MousePositionWidget.h" namespace Hurricane { diff --git a/hurricane/src/hviewer/HNetlistModel.cpp b/hurricane/src/hviewer/NetlistModel.cpp similarity index 98% rename from hurricane/src/hviewer/HNetlistModel.cpp rename to hurricane/src/hviewer/NetlistModel.cpp index 5b95b494..0b1a0725 100644 --- a/hurricane/src/hviewer/HNetlistModel.cpp +++ b/hurricane/src/hviewer/NetlistModel.cpp @@ -31,7 +31,7 @@ #include "hurricane/Cell.h" #include "hurricane/viewer/Graphics.h" #include "hurricane/viewer/NetInformations.h" -#include "hurricane/viewer/HNetlistModel.h" +#include "hurricane/viewer/NetlistModel.h" namespace Hurricane { diff --git a/hurricane/src/hviewer/HNetlist.cpp b/hurricane/src/hviewer/NetlistWidget.cpp similarity index 96% rename from hurricane/src/hviewer/HNetlist.cpp rename to hurricane/src/hviewer/NetlistWidget.cpp index 7de2c404..0de92771 100644 --- a/hurricane/src/hviewer/HNetlist.cpp +++ b/hurricane/src/hviewer/NetlistWidget.cpp @@ -34,10 +34,8 @@ #include "hurricane/Net.h" #include "hurricane/viewer/Graphics.h" -//#include "hurricane/viewer/NetlistModel.h" -//#include "hurricane/viewer/NetlistWidget.h" -#include "hurricane/viewer/HNetlistModel.h" -#include "hurricane/viewer/HNetlist.h" +#include "hurricane/viewer/NetlistModel.h" +#include "hurricane/viewer/NetlistWidget.h" namespace Hurricane { diff --git a/hurricane/src/hviewer/SelectCommand.cpp b/hurricane/src/hviewer/SelectCommand.cpp index 1f6561e9..73ccb8f7 100644 --- a/hurricane/src/hviewer/SelectCommand.cpp +++ b/hurricane/src/hviewer/SelectCommand.cpp @@ -31,7 +31,7 @@ # include "hurricane/viewer/CellWidget.h" # include "hurricane/viewer/SelectCommand.h" -# include "hurricane/viewer/HSelectionPopup.h" +# include "hurricane/viewer/SelectionPopup.h" namespace Hurricane { @@ -46,7 +46,7 @@ namespace Hurricane { , _selectAction(NULL) , _selectionPopup(NULL) { - _selectionPopup = new HSelectionPopup (); + _selectionPopup = new SelectionPopup (); connect ( _selectionPopup, SIGNAL(occurrenceSelected(Occurrence,bool)) , this , SIGNAL(selectionToggled (Occurrence,bool)) ); diff --git a/hurricane/src/hviewer/HSelectionModel.cpp b/hurricane/src/hviewer/SelectionModel.cpp similarity index 96% rename from hurricane/src/hviewer/HSelectionModel.cpp rename to hurricane/src/hviewer/SelectionModel.cpp index 306c3f68..1443516f 100644 --- a/hurricane/src/hviewer/HSelectionModel.cpp +++ b/hurricane/src/hviewer/SelectionModel.cpp @@ -32,10 +32,8 @@ #include "hurricane/Occurrence.h" #include "hurricane/viewer/Graphics.h" #include "hurricane/viewer/Selector.h" -//#include "hurricane/viewer/SelectionModel.h" -//#include "hurricane/viewer/SelectionWidget.h" -#include "hurricane/viewer/HSelectionModel.h" -#include "hurricane/viewer/HSelection.h" +#include "hurricane/viewer/SelectionModel.h" +#include "hurricane/viewer/SelectionWidget.h" namespace Hurricane { diff --git a/hurricane/src/hviewer/HSelectionPopup.cpp b/hurricane/src/hviewer/SelectionPopup.cpp similarity index 63% rename from hurricane/src/hviewer/HSelectionPopup.cpp rename to hurricane/src/hviewer/SelectionPopup.cpp index 2679a8bb..c39d8d91 100644 --- a/hurricane/src/hviewer/HSelectionPopup.cpp +++ b/hurricane/src/hviewer/SelectionPopup.cpp @@ -1,36 +1,9 @@ // -*- C++ -*- // -// This file is part of the Coriolis Project. -// Copyright (C) Laboratoire LIP6 - Departement ASIM -// Universite Pierre et Marie Curie +// This file is part of the Coriolis Software. +// Copyright (c) UPMC/LIP6 2008-2008, All Rights Reserved // -// Main contributors : -// Christophe Alexandre -// Sophie Belloeil -// Hugo Clément -// Jean-Paul Chaput -// Damien Dupuis -// Christian Masson -// Marek Sroka -// -// The Coriolis Project is free software; you can redistribute it -// and/or modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 of -// the License, or (at your option) any later version. -// -// The Coriolis Project is distributed in the hope that it will be -// useful, but WITHOUT ANY WARRANTY; without even the implied warranty -// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with the Coriolis Project; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA -// -// License-Tag -// Authors-Tag // =================================================================== // // $Id$ @@ -42,7 +15,7 @@ // | Author : Jean-Paul CHAPUT | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | -// | C++ Module : "./HSelectionPopup.cpp" | +// | C++ Module : "./SelectionPopup.cpp" | // | *************************************************************** | // | U p d a t e s | // | | @@ -59,15 +32,15 @@ #include "hurricane/Commons.h" #include "hurricane/viewer/Graphics.h" -#include "hurricane/viewer/HSelectionPopupModel.h" -#include "hurricane/viewer/HSelectionPopup.h" +#include "hurricane/viewer/SelectionPopupModel.h" +#include "hurricane/viewer/SelectionPopup.h" namespace Hurricane { - HSelectionPopup::HSelectionPopup ( QWidget* parent ) + SelectionPopup::SelectionPopup ( QWidget* parent ) : QWidget(parent) , _model(NULL) , _view(NULL) @@ -81,7 +54,7 @@ namespace Hurricane { _rowHeight = QFontMetrics(Graphics::getFixedFont()).height() + 4; - _model = new HSelectionPopupModel ( this ); + _model = new SelectionPopupModel ( this ); _view = new QTableView ( this ); _view->setShowGrid ( false ); @@ -109,28 +82,28 @@ namespace Hurricane { } - void HSelectionPopup::popup () + void SelectionPopup::popup () { show (); grabMouse (); } - void HSelectionPopup::forceRowHeight () + void SelectionPopup::forceRowHeight () { for ( int rows=_model->rowCount()-1; rows >= 0 ; rows-- ) _view->setRowHeight ( rows, _rowHeight ); } - void HSelectionPopup::keyPressEvent ( QKeyEvent* event ) + void SelectionPopup::keyPressEvent ( QKeyEvent* event ) { event->ignore(); } - void HSelectionPopup::mouseMoveEvent ( QMouseEvent* event ) + void SelectionPopup::mouseMoveEvent ( QMouseEvent* event ) { QModelIndex index = _view->indexAt ( event->pos() ); if ( index.isValid() ) @@ -141,7 +114,7 @@ namespace Hurricane { - void HSelectionPopup::mouseReleaseEvent ( QMouseEvent* event ) + void SelectionPopup::mouseReleaseEvent ( QMouseEvent* event ) { releaseMouse (); hide (); @@ -157,19 +130,19 @@ namespace Hurricane { } - void HSelectionPopup::add ( Occurrence occurrence, bool showChange ) + void SelectionPopup::add ( Occurrence occurrence, bool showChange ) { _model->add ( occurrence, showChange ); } - void HSelectionPopup::clear () + void SelectionPopup::clear () { _model->clear (); } - void HSelectionPopup::updateLayout () + void SelectionPopup::updateLayout () { _model->updateLayout (); diff --git a/hurricane/src/hviewer/HSelectionPopupModel.cpp b/hurricane/src/hviewer/SelectionPopupModel.cpp similarity index 60% rename from hurricane/src/hviewer/HSelectionPopupModel.cpp rename to hurricane/src/hviewer/SelectionPopupModel.cpp index 6976fc77..bbc33146 100644 --- a/hurricane/src/hviewer/HSelectionPopupModel.cpp +++ b/hurricane/src/hviewer/SelectionPopupModel.cpp @@ -1,36 +1,9 @@ // -*- C++ -*- // -// This file is part of the Coriolis Project. -// Copyright (C) Laboratoire LIP6 - Departement ASIM -// Universite Pierre et Marie Curie +// This file is part of the Coriolis Software. +// Copyright (c) UPMC/LIP6 2008-2008, All Rights Reserved // -// Main contributors : -// Christophe Alexandre -// Sophie Belloeil -// Hugo Clément -// Jean-Paul Chaput -// Damien Dupuis -// Christian Masson -// Marek Sroka -// -// The Coriolis Project is free software; you can redistribute it -// and/or modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 of -// the License, or (at your option) any later version. -// -// The Coriolis Project is distributed in the hope that it will be -// useful, but WITHOUT ANY WARRANTY; without even the implied warranty -// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with the Coriolis Project; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA -// -// License-Tag -// Authors-Tag // =================================================================== // // $Id$ @@ -43,7 +16,7 @@ // | Author : Jean-Paul CHAPUT | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | -// | C++ Module : "./HSelectionPopupModel.cpp" | +// | C++ Module : "./SelectionPopupModel.cpp" | // | *************************************************************** | // | U p d a t e s | // | | @@ -57,25 +30,25 @@ #include "hurricane/Occurrence.h" #include "hurricane/viewer/Graphics.h" #include "hurricane/viewer/Selector.h" -#include "hurricane/viewer/HSelectionPopupModel.h" +#include "hurricane/viewer/SelectionPopupModel.h" namespace Hurricane { - HSelectionPopupModel::HSelectionPopupModel ( QObject* parent ) + SelectionPopupModel::SelectionPopupModel ( QObject* parent ) : QAbstractTableModel(parent) , _occurrences(NULL) { } - HSelectionPopupModel::~HSelectionPopupModel () + SelectionPopupModel::~SelectionPopupModel () { clear (); } - void HSelectionPopupModel::add ( Occurrence occurrence, bool showChange ) + void SelectionPopupModel::add ( Occurrence occurrence, bool showChange ) { if ( !_occurrences ) _occurrences = new vector (); @@ -84,7 +57,7 @@ namespace Hurricane { } - void HSelectionPopupModel::clear () + void SelectionPopupModel::clear () { if ( _occurrences ) { delete _occurrences; @@ -94,13 +67,13 @@ namespace Hurricane { } - void HSelectionPopupModel::updateLayout () + void SelectionPopupModel::updateLayout () { emit layoutChanged (); } - QVariant HSelectionPopupModel::data ( const QModelIndex& index, int role ) const + QVariant SelectionPopupModel::data ( const QModelIndex& index, int role ) const { static QFont occurrenceFont = Graphics::getFixedFont ( QFont::Normal ); static QFont entityFont = Graphics::getFixedFont ( QFont::Bold, false ); @@ -143,7 +116,7 @@ namespace Hurricane { } - QVariant HSelectionPopupModel::headerData ( int section + QVariant SelectionPopupModel::headerData ( int section , Qt::Orientation orientation , int role ) const { @@ -158,20 +131,20 @@ namespace Hurricane { } - int HSelectionPopupModel::rowCount ( const QModelIndex& parent ) const + int SelectionPopupModel::rowCount ( const QModelIndex& parent ) const { if ( !_occurrences ) return 1; return _occurrences->size(); } - int HSelectionPopupModel::columnCount ( const QModelIndex& parent ) const + int SelectionPopupModel::columnCount ( const QModelIndex& parent ) const { return 1; } - Occurrence HSelectionPopupModel::getOccurrence ( int row ) + Occurrence SelectionPopupModel::getOccurrence ( int row ) { if ( !_occurrences || (row >= (int)_occurrences->size()) ) return Occurrence(); diff --git a/hurricane/src/hviewer/HSelection.cpp b/hurricane/src/hviewer/SelectionWidget.cpp similarity index 97% rename from hurricane/src/hviewer/HSelection.cpp rename to hurricane/src/hviewer/SelectionWidget.cpp index f0589346..90bad895 100644 --- a/hurricane/src/hviewer/HSelection.cpp +++ b/hurricane/src/hviewer/SelectionWidget.cpp @@ -38,10 +38,8 @@ #include "hurricane/Cell.h" #include "hurricane/viewer/Graphics.h" -//#include "hurricane/viewer/SelectionModel.h" -//#include "hurricane/viewer/SelectionWidget.h" -#include "hurricane/viewer/HSelectionModel.h" -#include "hurricane/viewer/HSelection.h" +#include "hurricane/viewer/SelectionModel.h" +#include "hurricane/viewer/SelectionWidget.h" namespace Hurricane { diff --git a/hurricane/src/hviewer/hurricane/viewer/HDisplayFilter.h b/hurricane/src/hviewer/hurricane/viewer/DisplayFilterWidget.h similarity index 100% rename from hurricane/src/hviewer/hurricane/viewer/HDisplayFilter.h rename to hurricane/src/hviewer/hurricane/viewer/DisplayFilterWidget.h diff --git a/hurricane/src/hviewer/hurricane/viewer/HGraphics.h b/hurricane/src/hviewer/hurricane/viewer/GraphicsWidget.h similarity index 100% rename from hurricane/src/hviewer/hurricane/viewer/HGraphics.h rename to hurricane/src/hviewer/hurricane/viewer/GraphicsWidget.h diff --git a/hurricane/src/hviewer/hurricane/viewer/HInspectorWidget.h b/hurricane/src/hviewer/hurricane/viewer/InspectorWidget.h similarity index 100% rename from hurricane/src/hviewer/hurricane/viewer/HInspectorWidget.h rename to hurricane/src/hviewer/hurricane/viewer/InspectorWidget.h diff --git a/hurricane/src/hviewer/hurricane/viewer/HMousePosition.h b/hurricane/src/hviewer/hurricane/viewer/MousePositionWidget.h similarity index 100% rename from hurricane/src/hviewer/hurricane/viewer/HMousePosition.h rename to hurricane/src/hviewer/hurricane/viewer/MousePositionWidget.h diff --git a/hurricane/src/hviewer/hurricane/viewer/HNetlistModel.h b/hurricane/src/hviewer/hurricane/viewer/NetlistModel.h similarity index 100% rename from hurricane/src/hviewer/hurricane/viewer/HNetlistModel.h rename to hurricane/src/hviewer/hurricane/viewer/NetlistModel.h diff --git a/hurricane/src/hviewer/hurricane/viewer/HNetlist.h b/hurricane/src/hviewer/hurricane/viewer/NetlistWidget.h similarity index 96% rename from hurricane/src/hviewer/hurricane/viewer/HNetlist.h rename to hurricane/src/hviewer/hurricane/viewer/NetlistWidget.h index 788b8733..02312b06 100644 --- a/hurricane/src/hviewer/hurricane/viewer/HNetlist.h +++ b/hurricane/src/hviewer/hurricane/viewer/NetlistWidget.h @@ -16,15 +16,15 @@ // | Author : Jean-Paul CHAPUT | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | -// | C++ Header : "./NetlistWidget.h" | +// | C++ Header : "./NetlistWidget.h" | // | *************************************************************** | // | U p d a t e s | // | | // x-----------------------------------------------------------------x -#ifndef __HURRICANE_NETLIST_WIDGET_H__ -#define __HURRICANE_NETLIST_WIDGET_H__ +#ifndef __HURRICANE_NETLIST_WIDGET__ +#define __HURRICANE_NETLIST_WIDGET__ #include @@ -33,7 +33,7 @@ #include "hurricane/Commons.h" #include "hurricane/viewer/CellWidget.h" -#include "hurricane/viewer/HNetlistModel.h" +#include "hurricane/viewer/NetlistModel.h" class QSortFilterProxyModel; diff --git a/hurricane/src/hviewer/hurricane/viewer/SelectCommand.h b/hurricane/src/hviewer/hurricane/viewer/SelectCommand.h index 441b115c..590dcbe8 100644 --- a/hurricane/src/hviewer/hurricane/viewer/SelectCommand.h +++ b/hurricane/src/hviewer/hurricane/viewer/SelectCommand.h @@ -1,36 +1,9 @@ // -*- C++ -*- // -// This file is part of the Coriolis Project. -// Copyright (C) Laboratoire LIP6 - Departement ASIM -// Universite Pierre et Marie Curie +// This file is part of the Coriolis Software. +// Copyright (c) UPMC/LIP6 2008-2008, All Rights Reserved // -// Main contributors : -// Christophe Alexandre -// Sophie Belloeil -// Hugo Clément -// Jean-Paul Chaput -// Damien Dupuis -// Christian Masson -// Marek Sroka -// -// The Coriolis Project is free software; you can redistribute it -// and/or modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 of -// the License, or (at your option) any later version. -// -// The Coriolis Project is distributed in the hope that it will be -// useful, but WITHOUT ANY WARRANTY; without even the implied warranty -// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with the Coriolis Project; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA -// -// License-Tag -// Authors-Tag // =================================================================== // // $Id$ @@ -72,26 +45,26 @@ namespace Hurricane { class Cell; class Selector; - class HSelectionPopup; + class SelectionPopup; class SelectCommand : public QObject, public AreaCommand { Q_OBJECT; public: - SelectCommand (); - virtual ~SelectCommand (); - virtual bool mousePressEvent ( CellWidget*, QMouseEvent* ); - virtual bool mouseReleaseEvent ( CellWidget*, QMouseEvent* ); - void bindToAction ( QAction* action ); + SelectCommand (); + virtual ~SelectCommand (); + virtual bool mousePressEvent ( CellWidget*, QMouseEvent* ); + virtual bool mouseReleaseEvent ( CellWidget*, QMouseEvent* ); + void bindToAction ( QAction* action ); signals: - void selectionToggled ( Occurrence occurrence, bool fromPopup ); + void selectionToggled ( Occurrence occurrence, bool fromPopup ); private: - QAction* _selectAction; - HSelectionPopup* _selectionPopup; + QAction* _selectAction; + SelectionPopup* _selectionPopup; private: - SelectCommand ( const SelectCommand& ); - SelectCommand& operator= ( const SelectCommand& ); + SelectCommand ( const SelectCommand& ); + SelectCommand& operator= ( const SelectCommand& ); }; diff --git a/hurricane/src/hviewer/hurricane/viewer/HSelectionModel.h b/hurricane/src/hviewer/hurricane/viewer/SelectionModel.h similarity index 100% rename from hurricane/src/hviewer/hurricane/viewer/HSelectionModel.h rename to hurricane/src/hviewer/hurricane/viewer/SelectionModel.h diff --git a/hurricane/src/hviewer/hurricane/viewer/HSelectionPopup.h b/hurricane/src/hviewer/hurricane/viewer/SelectionPopup.h similarity index 57% rename from hurricane/src/hviewer/hurricane/viewer/HSelectionPopup.h rename to hurricane/src/hviewer/hurricane/viewer/SelectionPopup.h index 9c9b0e40..377e3c44 100644 --- a/hurricane/src/hviewer/hurricane/viewer/HSelectionPopup.h +++ b/hurricane/src/hviewer/hurricane/viewer/SelectionPopup.h @@ -1,36 +1,9 @@ // -*- C++ -*- // -// This file is part of the Coriolis Project. -// Copyright (C) Laboratoire LIP6 - Departement ASIM -// Universite Pierre et Marie Curie +// This file is part of the Coriolis Software. +// Copyright (c) UPMC/LIP6 2008-2008, All Rights Reserved // -// Main contributors : -// Christophe Alexandre -// Sophie Belloeil -// Hugo Clément -// Jean-Paul Chaput -// Damien Dupuis -// Christian Masson -// Marek Sroka -// -// The Coriolis Project is free software; you can redistribute it -// and/or modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 of -// the License, or (at your option) any later version. -// -// The Coriolis Project is distributed in the hope that it will be -// useful, but WITHOUT ANY WARRANTY; without even the implied warranty -// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with the Coriolis Project; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA -// -// License-Tag -// Authors-Tag // =================================================================== // // $Id$ @@ -43,7 +16,7 @@ // | Author : Jean-Paul CHAPUT | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | -// | C++ Header : "./HSelectionPopup.h" | +// | C++ Header : "./SelectionPopup.h" | // | *************************************************************** | // | U p d a t e s | // | | @@ -70,14 +43,14 @@ class QHeaderView; namespace Hurricane { - class HSelectionPopupModel; + class SelectionPopupModel; - class HSelectionPopup : public QWidget { + class SelectionPopup : public QWidget { Q_OBJECT; public: - HSelectionPopup ( QWidget* parent=NULL ); + SelectionPopup ( QWidget* parent=NULL ); void updateLayout (); void popup (); signals: @@ -92,7 +65,7 @@ namespace Hurricane { virtual void mouseReleaseEvent ( QMouseEvent* event ); private: - HSelectionPopupModel* _model; + SelectionPopupModel* _model; QTableView* _view; int _rowHeight; }; diff --git a/hurricane/src/hviewer/hurricane/viewer/HSelectionPopupModel.h b/hurricane/src/hviewer/hurricane/viewer/SelectionPopupModel.h similarity index 57% rename from hurricane/src/hviewer/hurricane/viewer/HSelectionPopupModel.h rename to hurricane/src/hviewer/hurricane/viewer/SelectionPopupModel.h index 54d45f9b..f6b9af4d 100644 --- a/hurricane/src/hviewer/hurricane/viewer/HSelectionPopupModel.h +++ b/hurricane/src/hviewer/hurricane/viewer/SelectionPopupModel.h @@ -1,36 +1,9 @@ // -*- C++ -*- // -// This file is part of the Coriolis Project. -// Copyright (C) Laboratoire LIP6 - Departement ASIM -// Universite Pierre et Marie Curie +// This file is part of the Coriolis Software. +// Copyright (c) UPMC/LIP6 2008-2008, All Rights Reserved // -// Main contributors : -// Christophe Alexandre -// Sophie Belloeil -// Hugo Clément -// Jean-Paul Chaput -// Damien Dupuis -// Christian Masson -// Marek Sroka -// -// The Coriolis Project is free software; you can redistribute it -// and/or modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 of -// the License, or (at your option) any later version. -// -// The Coriolis Project is distributed in the hope that it will be -// useful, but WITHOUT ANY WARRANTY; without even the implied warranty -// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with the Coriolis Project; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA -// -// License-Tag -// Authors-Tag // =================================================================== // // $Id$ @@ -43,7 +16,7 @@ // | Author : Jean-Paul CHAPUT | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | -// | C++ Header : "./HSelectionPopupModel.h" | +// | C++ Header : "./SelectionPopupModel.h" | // | *************************************************************** | // | U p d a t e s | // | | @@ -71,12 +44,12 @@ namespace Hurricane { class Selector; - class HSelectionPopupModel : public QAbstractTableModel { + class SelectionPopupModel : public QAbstractTableModel { Q_OBJECT; public: - HSelectionPopupModel ( QObject* parent=NULL ); - ~HSelectionPopupModel (); + SelectionPopupModel ( QObject* parent=NULL ); + ~SelectionPopupModel (); void add ( Occurrence occurrence, bool showChange=false ); void clear (); void updateLayout (); diff --git a/hurricane/src/hviewer/hurricane/viewer/HSelection.h b/hurricane/src/hviewer/hurricane/viewer/SelectionWidget.h similarity index 97% rename from hurricane/src/hviewer/hurricane/viewer/HSelection.h rename to hurricane/src/hviewer/hurricane/viewer/SelectionWidget.h index 9586d0dc..8c19717a 100644 --- a/hurricane/src/hviewer/hurricane/viewer/HSelection.h +++ b/hurricane/src/hviewer/hurricane/viewer/SelectionWidget.h @@ -33,8 +33,7 @@ #include "hurricane/Commons.h" #include "hurricane/Occurrence.h" -//#include "hurricane/viewer/SelectionModel.h" -#include "hurricane/viewer/HSelectionModel.h" +#include "hurricane/viewer/SelectionModel.h" class QSortFilterProxyModel; diff --git a/hurricane/src/hviewer/images/swiss-knife.png b/hurricane/src/hviewer/images/swiss-knife.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a9b92f96d1bd857bd6e2916883e624e58d8d8e GIT binary patch literal 53113 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 Hu0mjfflv8U literal 0 HcmV?d00001