* ./hurricane/src/viewer:

- Change: The tab settings of the controller now refers to the XML
        configuration widget.
This commit is contained in:
Jean-Paul Chaput 2010-06-18 14:01:08 +00:00
parent 8d46e014ab
commit 72418edb16
7 changed files with 112 additions and 20 deletions

View File

@ -41,6 +41,7 @@ FIND_PACKAGE(BISON REQUIRED)
FIND_PACKAGE(FLEX REQUIRED) FIND_PACKAGE(FLEX REQUIRED)
FIND_PACKAGE(PythonLibs REQUIRED) FIND_PACKAGE(PythonLibs REQUIRED)
FIND_PACKAGE(PythonSitePackages REQUIRED) FIND_PACKAGE(PythonSitePackages REQUIRED)
FIND_PACKAGE(VLSISAPD REQUIRED)
IF(BUILD_DOC) IF(BUILD_DOC)
FIND_PACKAGE(Doxygen) FIND_PACKAGE(Doxygen)
ENDIF(BUILD_DOC) ENDIF(BUILD_DOC)

View File

@ -299,6 +299,52 @@ namespace Hurricane {
} }
string DbU::getValueString ( double u, int mode )
{
char buffer[1024];
char unitPower = 'u';
char unitSymbol = '\0';
if ( _stringMode == Grid ) {
unitPower = 'g';
snprintf ( buffer, 1024, "%.1f", getGrid(u) );
} else if ( _stringMode == Symbolic ) {
unitPower = 'l';
snprintf ( buffer, 1024, "%.1f", getLambda(u) );
} else if ( _stringMode == Physical ) {
unitSymbol = 'm';
switch ( _stringModeUnitPower ) {
case Pico: unitPower = 'p'; break;
case Nano: unitPower = 'n'; break;
case Micro: unitPower = 'u'; break;
case Milli: unitPower = 'm'; break;
case Unity: unitPower = 'U'; break;
case Kilo: unitPower = 'k'; break;
default: unitPower = '?'; break;
}
snprintf ( buffer, 1024, "%.3f", getPhysical(u,_stringModeUnitPower) );
} else {
if ( _stringMode != Db )
cerr << "[ERROR] Unknown Unit representation mode: " << _stringMode << endl;
snprintf ( buffer, 1024, "%f", u );
}
size_t length = strlen(buffer) - 1;
if ( mode & SmartTruncate ) {
for ( ; length > 0 ; length-- ) {
if ( buffer[length] == '.' ) { length--; break; }
if ( buffer[length] != '0' ) break;
}
}
buffer[++length] = unitPower;
if ( unitSymbol ) buffer[++length] = unitSymbol;
buffer[++length] = '\0';
return buffer;
}
Record* DbU::getValueRecord ( const DbU::Unit* u ) Record* DbU::getValueRecord ( const DbU::Unit* u )
{ {
Record* record = new Record(getValueString(*u)); Record* record = new Record(getValueString(*u));

View File

@ -103,9 +103,13 @@ namespace Hurricane {
// Conversions. // Conversions.
static inline long getDb ( Unit u ); static inline long getDb ( Unit u );
static inline double getGrid ( Unit u ); static inline double getGrid ( Unit u );
static inline double getGrid ( double u );
static inline double getLambda ( Unit u ); static inline double getLambda ( Unit u );
static inline double getLambda ( double u );
static inline double getPhysical ( Unit u, UnitPower p ); static inline double getPhysical ( Unit u, UnitPower p );
static inline double getPhysical ( double u, UnitPower p );
static string getValueString ( Unit u, int mode=SmartTruncate ); static string getValueString ( Unit u, int mode=SmartTruncate );
static string getValueString ( double u, int mode=SmartTruncate );
static Record* getValueRecord ( const Unit* u ); static Record* getValueRecord ( const Unit* u );
static Slot* getValueSlot ( const string& name, const Unit* u ); static Slot* getValueSlot ( const string& name, const Unit* u );
static void setStringMode ( unsigned int mode, UnitPower p=Nano ); static void setStringMode ( unsigned int mode, UnitPower p=Nano );
@ -134,8 +138,11 @@ namespace Hurricane {
inline DbU::Unit DbU::lambda ( double value ) { return grid(value*_gridsPerLambda); } inline DbU::Unit DbU::lambda ( double value ) { return grid(value*_gridsPerLambda); }
inline long DbU::getDb ( DbU::Unit u ) { return u; } inline long DbU::getDb ( DbU::Unit u ) { return u; }
inline double DbU::getGrid ( DbU::Unit u ) { return _resolution*(double)u; } inline double DbU::getGrid ( DbU::Unit u ) { return _resolution*(double)u; }
inline double DbU::getGrid ( double u ) { return _resolution*u; }
inline double DbU::getLambda ( DbU::Unit u ) { return getGrid(u)/_gridsPerLambda; } inline double DbU::getLambda ( DbU::Unit u ) { return getGrid(u)/_gridsPerLambda; }
inline double DbU::getLambda ( double u ) { return getGrid(u)/_gridsPerLambda; }
inline double DbU::getPhysical ( DbU::Unit u, UnitPower p ) { return (_physicalsPerGrid*_resolution*(double)u)/getUnitPower(p); } inline double DbU::getPhysical ( DbU::Unit u, UnitPower p ) { return (_physicalsPerGrid*_resolution*(double)u)/getUnitPower(p); }
inline double DbU::getPhysical ( double u, UnitPower p ) { return (_physicalsPerGrid*_resolution*u)/getUnitPower(p); }
inline void DbU::setRealSnapGridStep ( DbU::Unit step ) { _realSnapGridStep = step; } inline void DbU::setRealSnapGridStep ( DbU::Unit step ) { _realSnapGridStep = step; }
inline void DbU::setSymbolicSnapGridStep ( DbU::Unit step ) { _symbolicSnapGridStep = step; } inline void DbU::setSymbolicSnapGridStep ( DbU::Unit step ) { _symbolicSnapGridStep = step; }
inline DbU::Unit DbU::getOnPhysicalGrid ( DbU::Unit u, SnapMode mode ) { return getOnCustomGrid(u, grid(1), mode); } inline DbU::Unit DbU::getOnPhysicalGrid ( DbU::Unit u, SnapMode mode ) { return getOnCustomGrid(u, grid(1), mode); }

View File

@ -3,7 +3,9 @@
include_directories ( ${HURRICANE_SOURCE_DIR}/src/hurricane include_directories ( ${HURRICANE_SOURCE_DIR}/src/hurricane
${HURRICANE_SOURCE_DIR}/src/viewer ${HURRICANE_SOURCE_DIR}/src/viewer
${Boost_INCLUDE_DIRS} ) ${CONFIGURATION_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
)
set ( mocincludes hurricane/viewer/HApplication.h set ( mocincludes hurricane/viewer/HApplication.h
hurricane/viewer/PaletteItem.h hurricane/viewer/PaletteItem.h
@ -113,7 +115,8 @@
add_library ( viewer ${cpps} ${MOC_SRCS} ${RCC_SRCS} ) add_library ( viewer ${cpps} ${MOC_SRCS} ${RCC_SRCS} )
target_link_libraries ( viewer hurricane target_link_libraries ( viewer hurricane
${CONFIGURATION_LIBRARIES}
${QT_LIBRARIES} ${QT_LIBRARIES}
# ${Boost_LIBRARIES} ${Boost_LIBRARIES}
) )
install ( TARGETS viewer DESTINATION lib${LIB_SUFFIX} ) install ( TARGETS viewer DESTINATION lib${LIB_SUFFIX} )

View File

@ -100,8 +100,6 @@ namespace Hurricane {
} }
void CellViewer::createActions () void CellViewer::createActions ()
{ {
if ( _openAction ) return; if ( _openAction ) return;

View File

@ -29,6 +29,8 @@
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QCheckBox> #include <QCheckBox>
#include <QComboBox> #include <QComboBox>
#include <vlsisapd/configuration/Configuration.h>
#include <vlsisapd/configuration/ConfigurationWidget.h>
#include <hurricane/DataBase.h> #include <hurricane/DataBase.h>
#include <hurricane/Cell.h> #include <hurricane/Cell.h>
#include <hurricane/viewer/Graphics.h> #include <hurricane/viewer/Graphics.h>
@ -44,6 +46,8 @@
namespace Hurricane { namespace Hurricane {
using Cfg::Configuration;
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Class : "Hurricane::ControllerTab". // Class : "Hurricane::ControllerTab".
@ -436,16 +440,16 @@ namespace Hurricane {
TabSettings::TabSettings ( QWidget* parent ) TabSettings::TabSettings ( QWidget* parent )
: ControllerTab(parent) : ControllerTab (parent)
, _settings(new QTabWidget()) , _configuration(Configuration::get()->buildWidget())
{ {
setContentsMargins ( 5, 0, 5, 5 ); setContentsMargins ( 5, 0, 5, 5 );
_settings->setObjectName ( "controller.tabSettings.settings" ); _configuration->setObjectName ( "controller.tabSettings.settings" );
QVBoxLayout* vLayout = new QVBoxLayout (); QVBoxLayout* vLayout = new QVBoxLayout ();
vLayout->setContentsMargins ( 0, 0, 0, 0 ); vLayout->setContentsMargins ( 0, 0, 0, 0 );
vLayout->addWidget ( _settings ); vLayout->addWidget ( _configuration );
setLayout ( vLayout ); setLayout ( vLayout );
} }
@ -454,6 +458,21 @@ namespace Hurricane {
{ } { }
// TabSettings::TabSettings ( QWidget* parent )
// : ControllerTab(parent)
// , _settings(new QTabWidget())
// {
// setContentsMargins ( 5, 0, 5, 5 );
// _settings->setObjectName ( "controller.tabSettings.settings" );
// QVBoxLayout* vLayout = new QVBoxLayout ();
// vLayout->setContentsMargins ( 0, 0, 0, 0 );
// vLayout->addWidget ( _settings );
// setLayout ( vLayout );
// }
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Class : "Hurricane::ControllerWidget". // Class : "Hurricane::ControllerWidget".

View File

@ -31,11 +31,16 @@
class QCheckBox; class QCheckBox;
class QComboBox; class QComboBox;
namespace Cfg {
class ConfigurationWidget;
}
#include "hurricane/Occurrence.h" #include "hurricane/Occurrence.h"
namespace Hurricane { namespace Hurricane {
using Cfg::ConfigurationWidget;
class Record; class Record;
class Net; class Net;
@ -233,21 +238,34 @@ namespace Hurricane {
class TabSettings : public ControllerTab { class TabSettings : public ControllerTab {
Q_OBJECT; Q_OBJECT;
public: public:
TabSettings ( QWidget* parent=NULL ); TabSettings ( QWidget* parent=NULL );
inline QTabWidget* getSettings (); inline ConfigurationWidget* getSettings ();
inline int addSetting ( QWidget* page, const QString& label );
public slots: public slots:
void setCellWidget ( CellWidget* ); void setCellWidget ( CellWidget* );
private:
protected: ConfigurationWidget* _configuration;
QTabWidget* _settings;
}; };
inline QTabWidget* TabSettings::getSettings () { return _settings; } // class TabSettings : public ControllerTab {
inline int TabSettings::addSetting ( QWidget* page, const QString& label ) { return _settings->addTab(page,label); } // Q_OBJECT;
// public:
// TabSettings ( QWidget* parent=NULL );
// inline QTabWidget* getSettings ();
// inline int addSetting ( QWidget* page, const QString& label );
// public slots:
// void setCellWidget ( CellWidget* );
// protected:
// QTabWidget* _settings;
// };
// inline QTabWidget* TabSettings::getSettings () { return _settings; }
// inline int TabSettings::addSetting ( QWidget* page, const QString& label ) { return _settings->addTab(page,label); }
// ------------------------------------------------------------------- // -------------------------------------------------------------------
@ -268,7 +286,7 @@ namespace Hurricane {
inline InspectorWidget* getInspectorWidget (); inline InspectorWidget* getInspectorWidget ();
inline TabSettings* getSettings (); inline TabSettings* getSettings ();
void setCellWidget ( CellWidget* ); void setCellWidget ( CellWidget* );
inline int addSetting ( QWidget* page, const QString& label ); //inline int addSetting ( QWidget* page, const QString& label );
public slots: public slots:
void cellPreModificate (); void cellPreModificate ();
void cellPostModificate (); void cellPostModificate ();
@ -296,7 +314,7 @@ namespace Hurricane {
inline SelectionWidget* ControllerWidget::getSelection () { return _tabSelection->getSelection(); } inline SelectionWidget* ControllerWidget::getSelection () { return _tabSelection->getSelection(); }
inline InspectorWidget* ControllerWidget::getInspectorWidget () { return _tabInspector->getInspectorWidget(); } inline InspectorWidget* ControllerWidget::getInspectorWidget () { return _tabInspector->getInspectorWidget(); }
inline TabSettings* ControllerWidget::getSettings () { return _tabSettings; } inline TabSettings* ControllerWidget::getSettings () { return _tabSettings; }
inline int ControllerWidget::addSetting ( QWidget* page, const QString& label ) { return _tabSettings->addSetting(page,label); } //inline int ControllerWidget::addSetting ( QWidget* page, const QString& label ) { return _tabSettings->addSetting(page,label); }
} // End of Hurricane namespace. } // End of Hurricane namespace.