ENH: Added Methods for loading the cache

This commit is contained in:
Luis Ibanez 2001-05-17 12:38:19 -04:00
parent 063e398d57
commit 43fb9a11b5
1 changed files with 126 additions and 1 deletions

View File

@ -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();
}