From 43fb9a11b57e5ed9325cd707df933525fc5ef6b2 Mon Sep 17 00:00:00 2001 From: Luis Ibanez Date: Thu, 17 May 2001 12:38:19 -0400 Subject: [PATCH] ENH: Added Methods for loading the cache --- .../CMakeSetupGUIImplementation.cpp | 127 +++++++++++++++++- 1 file changed, 126 insertions(+), 1 deletion(-) diff --git a/Source/FLTKDialog/CMakeSetupGUIImplementation.cpp b/Source/FLTKDialog/CMakeSetupGUIImplementation.cpp index 23b917c58..dade486ec 100644 --- a/Source/FLTKDialog/CMakeSetupGUIImplementation.cpp +++ b/Source/FLTKDialog/CMakeSetupGUIImplementation.cpp @@ -4,6 +4,8 @@ #include "Fl/filename.H" #include "Fl/fl_ask.H" #include "cstring" +#include "../cmCacheManager.h" +#include "../cmMakefile.h" @@ -212,8 +214,131 @@ CMakeSetupGUIImplementation return; } - fl_message("Building project files ... please wait"); + SaveCacheFromGUI(); + + fl_message("Building project files ... please wait"); } + + +/** + * Load Cache from disk to GUI + */ +void +CMakeSetupGUIImplementation +::LoadCacheFromDiskToGUI( void ) +{ + + const char * m_WhereBuild = binaryPathTextInput->value(); + + if( m_WhereBuild != "" ) + { + cmCacheManager::GetInstance()->LoadCache(m_WhereBuild); + + // Make sure the internal "CMAKE" cache entry is set. + const char* cacheValue = cmCacheManager::GetInstance()->GetCacheValue("CMAKE"); + if(!cacheValue) + { + // Find our own exectuable. + std::string cMakeCMD = "\""+cmSystemTools::GetProgramPath(_pgmptr); + cMakeCMD += "/CMakeSetupCMD.exe\""; + + // Save the value in the cache + cmCacheManager::GetInstance()->AddCacheEntry("CMAKE", + cMakeCMD.c_str(), + "Path to CMake executable.", + cmCacheManager::INTERNAL); + } + + this->FillCacheGUIFromCacheManager(); + } +} + + + +/** + * Save Cache from disk to GUI + */ +void +CMakeSetupGUIImplementation +::SaveCacheFromGUI( void ) +{ +} + + +/** + * Fill Cache GUI from cache manager + */ +void +CMakeSetupGUIImplementation +::FillCacheGUIFromCacheManager( void ) +{ + const cmCacheManager::CacheEntryMap &cache = + cmCacheManager::GetInstance()->GetCacheMap(); + for(cmCacheManager::CacheEntryMap::const_iterator i = cache.begin(); + i != cache.end(); ++i) + { + const char* key = i->first.c_str(); + const cmCacheManager::CacheEntry& value = i->second; + /* + switch(value.m_Type ) + { + case cmCacheManager::BOOL: + if(cmCacheManager::GetInstance()->IsOn(key)) + { + m_CacheEntriesList.AddProperty(key, + "ON", + value.m_HelpString.c_str(), + CPropertyList::CHECKBOX,""); + } + else + { + m_CacheEntriesList.AddProperty(key, + "OFF", + value.m_HelpString.c_str(), + CPropertyList::CHECKBOX,""); + } + break; + case cmCacheManager::PATH: + m_CacheEntriesList.AddProperty(key, + value.m_Value.c_str(), + value.m_HelpString.c_str(), + CPropertyList::PATH,""); + break; + case cmCacheManager::FILEPATH: + m_CacheEntriesList.AddProperty(key, + value.m_Value.c_str(), + value.m_HelpString.c_str(), + CPropertyList::FILE,""); + break; + case cmCacheManager::STRING: + m_CacheEntriesList.AddProperty(key, + value.m_Value.c_str(), + value.m_HelpString.c_str(), + CPropertyList::EDIT,""); + break; + case cmCacheManager::INTERNAL: + break; + } + */ + } + this->UpdateData(false); + +} + + +/** + * UpdateData + */ +void +CMakeSetupGUIImplementation +::UpdateData( bool option ) +{ + dialogWindow->redraw(); + Fl::check(); +} + + +