* ./kite:

- Bug: In CMakeLists.txt, local include directories *first*.
    - Change: In Configuration::setRipupLimit(), swap the two parameters,
        more natural ordering.
    - New: In ConfigurationWidget, adds an "apply" button to register the
        new parameters values.
This commit is contained in:
Jean-Paul Chaput 2010-06-08 12:03:24 +00:00
parent 8bab63c864
commit 0c7878df11
7 changed files with 60 additions and 23 deletions

View File

@ -1,8 +1,8 @@
include ( ${QT_USE_FILE} )
include_directories ( ${Boost_INCLUDE_DIRS}
${KITE_SOURCE_DIR}/src
include_directories ( ${KITE_SOURCE_DIR}/src
${Boost_INCLUDE_DIRS}
${HURRICANE_INCLUDE_DIR}
${CORIOLIS_INCLUDE_DIR}
)

View File

@ -167,7 +167,7 @@ namespace Kite {
{ _base->setGlobalThreshold(threshold); }
void Configuration::setRipupLimit ( unsigned int limit, unsigned int type )
void Configuration::setRipupLimit ( unsigned int type, unsigned int limit )
{
if ( type >= RipupLimitsTableSize ) {
cerr << Error("setRipupLimit(): Bad ripup limit index: %ud (> %ud)."
@ -192,7 +192,7 @@ namespace Kite {
unsigned int Configuration::getRipupLimit ( unsigned int type ) const
{
if ( type >= RipupLimitsTableSize ) {
cerr << Error("getRipupLimit(): Bad ripup limit index: %ud (> %ud)."
cerr << Error("getRipupLimit(): Bad ripup limit index: %u (> %u)."
,type,RipupLimitsTableSize) << endl;
return 0;
}

View File

@ -24,7 +24,9 @@
#include <QLabel>
#include <QPushButton>
#include <QFrame>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QGridLayout>
#include <QSpinBox>
@ -163,22 +165,38 @@ namespace Kite {
gLayout->addWidget ( label , kiteRow+8, 2, Qt::AlignRight );
gLayout->addWidget ( _longGlobalRipupLimitSb, kiteRow+8, 3, Qt::AlignLeft );
separator = new QFrame ();
separator->setFrameShape ( QFrame::HLine );
separator->setFrameShadow ( QFrame::Sunken );
gLayout->addWidget ( separator, kiteRow+9, 0, 1, 4 );
vLayout->addLayout ( gLayout );
QHBoxLayout* hLayout = new QHBoxLayout ();
hLayout->addStretch ();
QPushButton* apply = new QPushButton ();
apply->setText ( tr("Apply") );
hLayout->addWidget ( apply );
hLayout->addStretch ();
vLayout->addLayout ( hLayout );
vLayout->addStretch ();
setLayout ( vLayout );
connect ( _saturateRatioEdit , SIGNAL(returnPressed()) , this, SLOT(_updateSaturateRatio()) );
connect ( _globalThresholdEdit , SIGNAL(returnPressed()) , this, SLOT(_updateGlobalThreshold()) );
connect ( _edgeCapacityEdit , SIGNAL(returnPressed()) , this, SLOT(_updateEdgeCapacity()) );
connect ( _expandStepEdit , SIGNAL(returnPressed()) , this, SLOT(_updateExpandStep()) );
connect ( _eventsLimitEdit , SIGNAL(returnPressed()) , this, SLOT(_updateEventsLimit()) );
connect ( _ripupCostSb , SIGNAL(valueChanged(int)), this, SLOT(_updateRipupCost(int)) );
connect ( _borderRipupLimitSb , SIGNAL(valueChanged(int)), this, SLOT(_updateBorderRipupLimit(int)) );
connect ( _strapRipupLimitSb , SIGNAL(valueChanged(int)), this, SLOT(_updateStrapRipupLimit(int)) );
connect ( _localRipupLimitSb , SIGNAL(valueChanged(int)), this, SLOT(_updateLocalRipupLimit(int)) );
connect ( _globalRipupLimitSb , SIGNAL(valueChanged(int)), this, SLOT(_updateGlobalRipupLimit(int)) );
connect ( _longGlobalRipupLimitSb, SIGNAL(valueChanged(int)), this, SLOT(_updateLongGlobalRipupLimit(int)) );
connect ( apply, SIGNAL(clicked()), this, SLOT(_applySettings()) );
// connect ( _saturateRatioEdit , SIGNAL(returnPressed()) , this, SLOT(_updateSaturateRatio()) );
// connect ( _globalThresholdEdit , SIGNAL(returnPressed()) , this, SLOT(_updateGlobalThreshold()) );
// connect ( _edgeCapacityEdit , SIGNAL(returnPressed()) , this, SLOT(_updateEdgeCapacity()) );
// connect ( _expandStepEdit , SIGNAL(returnPressed()) , this, SLOT(_updateExpandStep()) );
// connect ( _eventsLimitEdit , SIGNAL(returnPressed()) , this, SLOT(_updateEventsLimit()) );
// connect ( _ripupCostSb , SIGNAL(valueChanged(int)), this, SLOT(_updateRipupCost(int)) );
// connect ( _borderRipupLimitSb , SIGNAL(valueChanged(int)), this, SLOT(_updateBorderRipupLimit(int)) );
// connect ( _strapRipupLimitSb , SIGNAL(valueChanged(int)), this, SLOT(_updateStrapRipupLimit(int)) );
// connect ( _localRipupLimitSb , SIGNAL(valueChanged(int)), this, SLOT(_updateLocalRipupLimit(int)) );
// connect ( _globalRipupLimitSb , SIGNAL(valueChanged(int)), this, SLOT(_updateGlobalRipupLimit(int)) );
// connect ( _longGlobalRipupLimitSb, SIGNAL(valueChanged(int)), this, SLOT(_updateLongGlobalRipupLimit(int)) );
}
@ -227,6 +245,24 @@ namespace Kite {
}
void ConfigurationWidget::_applySettings ()
{
if ( _configuration == NULL ) return;
_updateSaturateRatio ();
_updateGlobalThreshold ();
_updateEdgeCapacity ();
_updateExpandStep ();
_updateEventsLimit ();
_updateRipupCost (_ripupCostSb ->value());
_updateBorderRipupLimit (_borderRipupLimitSb ->value());
_updateStrapRipupLimit (_strapRipupLimitSb ->value());
_updateLocalRipupLimit (_localRipupLimitSb ->value());
_updateGlobalRipupLimit (_globalRipupLimitSb ->value());
_updateLongGlobalRipupLimit(_longGlobalRipupLimitSb->value());
}
void ConfigurationWidget::_updateSaturateRatio ()
{
if ( _configuration == NULL ) return;

View File

@ -178,11 +178,11 @@ int main ( int argc, char *argv[] )
// kite->setSaturateRatio ( 0.85 );
// kite->setExpandStep ( 0.20 );
// kite->setRipupCost ( 3 );
// kite->setRipupLimit ( 25, Configuration::BorderRipupLimit );
// kite->setRipupLimit ( 15, Configuration::StrapRipupLimit );
// kite->setRipupLimit ( 5, Configuration::LocalRipupLimit );
// kite->setRipupLimit ( 5, Configuration::GlobalRipupLimit );
// kite->setRipupLimit ( 5, Configuration::LongGlobalRipupLimit );
// kite->setRipupLimit ( Configuration::BorderRipupLimit, 25 );
// kite->setRipupLimit ( Configuration::StrapRipupLimit , 15 );
// kite->setRipupLimit ( Configuration::LocalRipupLimit , 5 );
// kite->setRipupLimit ( Configuration::GlobalRipupLimit, 5 );
// kite->setRipupLimit ( Configuration::LongGlobalRipupLimit, 5 );
kite->runGlobalRouter ( Kite::LoadGlobalSolution );
kite->loadGlobalRouting ( Katabatic::LoadGrByNet, routingNets );
kite->layerAssign ( Katabatic::NoNetLayerAssign );

View File

@ -93,7 +93,7 @@ namespace Kite {
inline void setEventsLimit ( unsigned long );
inline void setExpandStep ( float );
inline void setRipupCost ( unsigned int );
void setRipupLimit ( unsigned int type, unsigned int limit );
void setRipupLimit ( unsigned int limit, unsigned int type );
inline void setPostEventCb ( PostEventCb_t );
void setEdgeCapacityPercent ( float );
virtual Record* _getRecord () const;

View File

@ -46,6 +46,7 @@ namespace Kite {
ConfigurationWidget ( QWidget* parent=NULL );
public slots:
void setConfiguration ( Configuration* );
void _applySettings ();
void _updateSaturateRatio ();
void _updateGlobalThreshold ();
void _updateEdgeCapacity ();

View File

@ -108,7 +108,7 @@ namespace Kite {
inline void setPostEventCb ( Configuration::PostEventCb_t );
inline void setEventLimit ( unsigned long );
inline void setMinimumWL ( double );
inline void setRipupLimit ( unsigned int, unsigned int type );
inline void setRipupLimit ( unsigned int type, unsigned int );
inline void setRipupCost ( unsigned int );
inline void setExpandStep ( float );
inline void setEdgeCapacityPercent ( float );
@ -179,7 +179,7 @@ namespace Kite {
inline NegociateWindow* KiteEngine::getNegociateWindow () { return _negociateWindow; }
inline size_t KiteEngine::getRoutingPlanesSize () const { return _routingPlanes.size(); }
inline void KiteEngine::setEventLimit ( unsigned long limit ) { _configuration->setEventsLimit(limit); }
inline void KiteEngine::setRipupLimit ( unsigned int limit, unsigned int type ) { _configuration->setRipupLimit(limit,type); }
inline void KiteEngine::setRipupLimit ( unsigned int type, unsigned int limit ) { _configuration->setRipupLimit(limit,type); }
inline void KiteEngine::setRipupCost ( unsigned int cost ) { _configuration->setRipupCost(cost); }
inline void KiteEngine::setExpandStep ( float step ) { _configuration->setExpandStep(step); }
inline void KiteEngine::setEdgeCapacityPercent ( float percent ) { _configuration->setEdgeCapacityPercent(percent); }