diff --git a/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx b/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx index 330e1ac30..64d2ce415 100644 --- a/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx +++ b/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx @@ -7,6 +7,7 @@ #include "../cmCacheManager.h" #include "../cmMakefile.h" #include +#include "FLTKPropertyList.h" @@ -254,6 +255,12 @@ void CMakeSetupGUIImplementation ::SaveCacheFromGUI( void ) { + this->FillCacheManagerFromCacheGUI(); + if( m_WhereBuild != "" ) + { + cmCacheManager::GetInstance()->SaveCache( + m_WhereBuild.c_str() ); + } } @@ -341,3 +348,28 @@ CMakeSetupGUIImplementation +/** + * Fill cache manager from Cache GUI + */ +void +CMakeSetupGUIImplementation +::FillCacheManagerFromCacheGUI( void ) +{ + cmCacheManager::GetInstance()->GetCacheMap(); + std::set items = m_CacheEntriesList.GetItems(); + for(std::set::iterator i = items.begin(); + i != items.end(); ++i) + { + fltk::PropertyItem* item = *i; + cmCacheManager::CacheEntry *entry = + cmCacheManager::GetInstance()->GetCacheEntry( + (const char*)item->m_propName.c_str() ); + if (entry) + { + entry->m_Value = item->m_curValue; + } + } + +} + + diff --git a/Source/FLTKDialog/CMakeSetupGUIImplementation.h b/Source/FLTKDialog/CMakeSetupGUIImplementation.h index 5149ee6df..870f052ce 100644 --- a/Source/FLTKDialog/CMakeSetupGUIImplementation.h +++ b/Source/FLTKDialog/CMakeSetupGUIImplementation.h @@ -33,6 +33,7 @@ public: virtual void SaveCacheFromGUI( void ); virtual void LoadCacheFromDiskToGUI( void ); virtual void FillCacheGUIFromCacheManager( void ); + virtual void FillCacheManagerFromCacheGUI( void ); private: fltk::PropertyList m_CacheEntriesList;