diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2001-05-10 21:23:00 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2001-05-10 21:23:00 (GMT) |
commit | 69b51cc2454e80d1da483d48f7ba4d5a32fc8a07 (patch) | |
tree | cdfa24baeb8220f048e3a395238b49292a4623c7 /Source/MFCDialog | |
parent | e5394324954f0f6d0358fa360b3adc18ea541c94 (diff) | |
download | CMake-69b51cc2454e80d1da483d48f7ba4d5a32fc8a07.zip CMake-69b51cc2454e80d1da483d48f7ba4d5a32fc8a07.tar.gz CMake-69b51cc2454e80d1da483d48f7ba4d5a32fc8a07.tar.bz2 |
BUG: fix up gui with values that stay around too long
Diffstat (limited to 'Source/MFCDialog')
-rw-r--r-- | Source/MFCDialog/CMakeSetupDialog.cpp | 16 | ||||
-rw-r--r-- | Source/MFCDialog/PropertyList.cpp | 26 |
2 files changed, 11 insertions, 31 deletions
diff --git a/Source/MFCDialog/CMakeSetupDialog.cpp b/Source/MFCDialog/CMakeSetupDialog.cpp index 2cc6552..fae2e8b 100644 --- a/Source/MFCDialog/CMakeSetupDialog.cpp +++ b/Source/MFCDialog/CMakeSetupDialog.cpp @@ -434,19 +434,11 @@ void CMakeSetupDialog::FillCacheManagerFromCacheGUI() i != items.end(); ++i) { CPropertyItem* item = *i; - // check to see if the editor has removed the cache entry - if(item->m_Removed) - { - cmCacheManager::GetInstance()->RemoveCacheEntry((*i)->m_propName); - } - else - { - cmCacheManager::CacheEntry *entry = + cmCacheManager::CacheEntry *entry = cmCacheManager::GetInstance()->GetCacheEntry((const char*)item->m_propName); - if (entry) - { - entry->m_Value = item->m_curValue; - } + if (entry) + { + entry->m_Value = item->m_curValue; } } } diff --git a/Source/MFCDialog/PropertyList.cpp b/Source/MFCDialog/PropertyList.cpp index 1e5f13b..47af0d1 100644 --- a/Source/MFCDialog/PropertyList.cpp +++ b/Source/MFCDialog/PropertyList.cpp @@ -3,6 +3,7 @@ #include "stdafx.h" #include "PropertyList.h" +#include "../cmCacheManager.h" #define IDC_PROPCMBBOX 712 #define IDC_PROPEDITBOX 713 @@ -146,28 +147,11 @@ int CPropertyList::AddProperty(const char* name, return i; } } - // if it is not in the displayed list, then - // check for it in the m_PropertyItems list as - // a removed item - for(std::set<CPropertyItem*>::iterator - p = m_PropertyItems.begin(); - p != m_PropertyItems.end(); ++p) - { - if((*p)->m_propName == name) - { - pItem = *p; - pItem->m_Removed = false; - pItem->m_curValue = value; - pItem->m_HelpString = helpString; - Invalidate(); - } - } // if it is not found, then create a new one if(!pItem) { pItem = new CPropertyItem(name, value, helpString, type, comboItems); } - return this->AddPropItem(pItem); } @@ -671,7 +655,9 @@ void CPropertyList::OnDelete() return; } CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(m_curSel); - pItem->m_Removed = true; + cmCacheManager::GetInstance()->RemoveCacheEntry(pItem->m_propName); + m_PropertyItems.erase(pItem); + delete pItem; this->DeleteString(m_curSel); Invalidate(); } @@ -692,7 +678,9 @@ void CPropertyList::RemoveAll() for(int i =0; i < c; ++i) { CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(0); - pItem->m_Removed = true; + cmCacheManager::GetInstance()->RemoveCacheEntry(pItem->m_propName); + m_PropertyItems.erase(pItem); + delete pItem; this->DeleteString(0); } Invalidate(); |