]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/variant.cpp
Integrated fixes from latest UNIX version.
[wxWidgets.git] / src / common / variant.cpp
index 859f722a799739a856055f178520eb7d45a68877..48d54c7ec1841cdf6b57e586e678fabeef37a726 100644 (file)
@@ -1390,6 +1390,7 @@ wxVariant::wxVariant(const wxArrayString& val, const wxString& name) // Strings
 }
 
 wxVariant::wxVariant(const wxVariant& variant)
+    : wxObject()
 {
     if (!variant.IsNull())
     {
@@ -1436,8 +1437,10 @@ void wxVariant::operator= (const wxVariant& variant)
             delete m_data;
         m_data = (wxVariantData*) variant.GetData()->GetClassInfo()->CreateObject();
     }
-//    GetData()->Copy(* variant.GetData());
+
     variant.GetData()->Copy(* GetData());
+
+    m_name = variant.m_name;
 }
 
 // Assignment using data, e.g.
@@ -2051,6 +2054,12 @@ wxStringList& wxVariant::GetStringList() const
     return (wxStringList&) ((wxVariantDataStringList*) m_data)->GetValue();
 }
 
+// Make empty list
+void wxVariant::NullList()
+{
+    SetData(new wxVariantDataList());
+};
+
 // Append to list
 void wxVariant::Append(const wxVariant& value)
 {
@@ -2235,9 +2244,11 @@ bool wxVariant::Convert(wxDateTime* value) const
 {
     wxString type(GetType());
     if (type == wxT("datetime"))
+    {
         *value = ((wxVariantDataDateTime*)GetData())->GetValue();
-    else
-        return FALSE;
-
-    return TRUE;
+       return TRUE;
+    } 
+    // Fallback to string conversion
+    wxString val;
+    return Convert(&val) && (value->ParseDate(val));
 }