Quellcode durchsuchen

ENH: check for values that switch to internal, can happen with a load cache command

Ken Martin vor 24 Jahren
Ursprung
Commit
b341539bc1

+ 1 - 10
Source/MFCDialog/CMakeSetupDialog.cpp

@@ -601,6 +601,7 @@ void CMakeSetupDialog::FillCacheGUIFromCacheManager()
           );
         break;
       case cmCacheManager::INTERNAL:
+	m_CacheEntriesList.RemoveProperty(key);
         break;
       }
     }
@@ -645,16 +646,6 @@ void CMakeSetupDialog::LoadCacheFromDiskToGUI()
         {
         m_GeneratorChoiceString = curGen.c_str();
         this->UpdateData(FALSE);
-  //        m_GeneratorChoice.SetWindowText(m_GeneratorChoiceString); 
-//          int c = m_GeneratorChoice.GetCount();
-//          int j = m_GeneratorChoice.FindStringExact(0, curGen.c_str());
-//          if (j != CB_ERR)
-//            {
-//            m_GeneratorChoice.SetCurSel(j);
-//            }
-        
-//          m_GeneratorChoice.SelectString(0, curGen.c_str());
-//          this->UpdateData(FALSE);
         }
       }
     }

+ 14 - 0
Source/MFCDialog/PropertyList.cpp

@@ -614,6 +614,20 @@ void CPropertyList::OnRButtonUp( UINT nFlags, CPoint point )
                       rect.TopLeft().y + point.y, this, NULL);
 }
 
+void CPropertyList::RemoveProperty(const char* name)
+{
+  for(int i =0; i < this->GetCount(); ++i)
+    {
+    CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(i);
+    if(pItem->m_propName == name)
+      {
+      m_PropertyItems.erase(pItem);
+      delete pItem; 
+      this->DeleteString(i);
+      return;
+      }
+    }
+}
 
 void CPropertyList::OnDelete()
 { 

+ 1 - 0
Source/MFCDialog/PropertyList.h

@@ -67,6 +67,7 @@ public:
                   int type,
                   const char* comboItems,
                   bool reverseOrder);
+  void RemoveProperty(const char* name);
   void HideControls();
   std::set<CPropertyItem*> GetItems() 
     {