diff --git a/kite/src/CMakeLists.txt b/kite/src/CMakeLists.txt index e65a2868..61aa0b1a 100644 --- a/kite/src/CMakeLists.txt +++ b/kite/src/CMakeLists.txt @@ -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} ) diff --git a/kite/src/Configuration.cpp b/kite/src/Configuration.cpp index 3c600ad8..dfd62637 100644 --- a/kite/src/Configuration.cpp +++ b/kite/src/Configuration.cpp @@ -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; } diff --git a/kite/src/ConfigurationWidget.cpp b/kite/src/ConfigurationWidget.cpp index 1565cb70..2b0f897d 100644 --- a/kite/src/ConfigurationWidget.cpp +++ b/kite/src/ConfigurationWidget.cpp @@ -24,7 +24,9 @@ #include +#include #include +#include #include #include #include @@ -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; diff --git a/kite/src/KiteMain.cpp b/kite/src/KiteMain.cpp index 7da9c082..339821f9 100644 --- a/kite/src/KiteMain.cpp +++ b/kite/src/KiteMain.cpp @@ -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 ); diff --git a/kite/src/kite/Configuration.h b/kite/src/kite/Configuration.h index fdc43985..2b2c43c4 100644 --- a/kite/src/kite/Configuration.h +++ b/kite/src/kite/Configuration.h @@ -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; diff --git a/kite/src/kite/ConfigurationWidget.h b/kite/src/kite/ConfigurationWidget.h index 2ae65e5d..fcf127e9 100644 --- a/kite/src/kite/ConfigurationWidget.h +++ b/kite/src/kite/ConfigurationWidget.h @@ -46,6 +46,7 @@ namespace Kite { ConfigurationWidget ( QWidget* parent=NULL ); public slots: void setConfiguration ( Configuration* ); + void _applySettings (); void _updateSaturateRatio (); void _updateGlobalThreshold (); void _updateEdgeCapacity (); diff --git a/kite/src/kite/KiteEngine.h b/kite/src/kite/KiteEngine.h index 1057794b..264641b3 100644 --- a/kite/src/kite/KiteEngine.h +++ b/kite/src/kite/KiteEngine.h @@ -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); }