From 69b51cc2454e80d1da483d48f7ba4d5a32fc8a07 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Thu, 10 May 2001 17:23:00 -0400 Subject: [PATCH] BUG: fix up gui with values that stay around too long --- Source/MFCDialog/CMakeSetupDialog.cpp | 16 ++++------------ Source/MFCDialog/PropertyList.cpp | 26 +++++++------------------- Source/cmDSPMakefile.cxx | 2 +- Source/cmDSPWriter.cxx | 2 +- 4 files changed, 13 insertions(+), 33 deletions(-) diff --git a/Source/MFCDialog/CMakeSetupDialog.cpp b/Source/MFCDialog/CMakeSetupDialog.cpp index 2cc655229..fae2e8b6f 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 1e5f13bcd..47af0d196 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::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(); diff --git a/Source/cmDSPMakefile.cxx b/Source/cmDSPMakefile.cxx index fba87f591..443732c08 100644 --- a/Source/cmDSPMakefile.cxx +++ b/Source/cmDSPMakefile.cxx @@ -461,7 +461,7 @@ void cmDSPMakefile::WriteDSPHeader(std::ostream& fout, const char *libName, { // add libraries to executables and dlls (but never include // a library in a library, bad recursion) - if (!target.GetType() == cmTarget::LIBRARY || + if (!(target.GetType() == cmTarget::LIBRARY) || (m_LibraryBuildType == DLL && libName != j->first)) { std::string lib = j->first; diff --git a/Source/cmDSPWriter.cxx b/Source/cmDSPWriter.cxx index fba87f591..443732c08 100644 --- a/Source/cmDSPWriter.cxx +++ b/Source/cmDSPWriter.cxx @@ -461,7 +461,7 @@ void cmDSPMakefile::WriteDSPHeader(std::ostream& fout, const char *libName, { // add libraries to executables and dlls (but never include // a library in a library, bad recursion) - if (!target.GetType() == cmTarget::LIBRARY || + if (!(target.GetType() == cmTarget::LIBRARY) || (m_LibraryBuildType == DLL && libName != j->first)) { std::string lib = j->first;