]> git.saurik.com Git - wxWidgets.git/commitdiff
bugfix: wxList's copy ctor now works with keyed lists
authorVáclav Slavík <vslavik@fastmail.fm>
Wed, 27 Oct 1999 23:32:54 +0000 (23:32 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Wed, 27 Oct 1999 23:32:54 +0000 (23:32 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/list.cpp

index e442699d80a9aa72a8f123e88dbf2d1aec8889f4..9d88dea967b743fd963e0e9568cf2b7972619b66 100644 (file)
@@ -171,9 +171,38 @@ void wxListBase::DoCopy(const wxListBase& list)
     m_nodeFirst =
     m_nodeLast = (wxNodeBase *) NULL;
 
-    for ( wxNodeBase *node = list.GetFirst(); node; node = node->GetNext() )
-    {
-        Append(node);
+    switch (m_keyType) {
+    
+        case wxKEY_INTEGER:
+            {
+                long key;                
+                for ( wxNodeBase *node = list.GetFirst(); node; node = node->GetNext() )
+                {
+                    key = node->GetKeyInteger();
+                    Append(key, node->GetData());
+                }
+                break;
+            }
+
+        case wxKEY_STRING:
+            {
+                const wxChar *key;                
+                for ( wxNodeBase *node = list.GetFirst(); node; node = node->GetNext() )
+                {
+                    key = node->GetKeyString();
+                    Append(key, node->GetData());
+                }
+                break;
+            }
+
+        default:
+            {
+                for ( wxNodeBase *node = list.GetFirst(); node; node = node->GetNext() )
+                {
+                    Append(node->GetData());
+                }
+                break;
+            }
     }
 }