]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dirdlg.cpp
Fixed filename in wxOSX-Cocoa's file dialog using extension of wrong file type.
[wxWidgets.git] / src / msw / dirdlg.cpp
index f379d76255cd5bff362451e9f41bb4656753cbb4..9d3b47205831e6efa98459510c0877204109e4ff 100644 (file)
@@ -100,20 +100,18 @@ void wxDirDialog::SetPath(const wxString& path)
     m_path = path;
 
     // SHBrowseForFolder doesn't like '/'s nor the trailing backslashes
     m_path = path;
 
     // SHBrowseForFolder doesn't like '/'s nor the trailing backslashes
-    m_path.Replace(_T("/"), _T("\\"));
-    if ( !m_path.empty() )
+    m_path.Replace(wxT("/"), wxT("\\"));
+
+    while ( !m_path.empty() && (*(m_path.end() - 1) == wxT('\\')) )
     {
     {
-        while ( *(m_path.end() - 1) == _T('\\') )
-        {
-            m_path.erase(m_path.length() - 1);
-        }
+        m_path.erase(m_path.length() - 1);
+    }
 
 
-        // but the root drive should have a trailing slash (again, this is just
-        // the way the native dialog works)
-        if ( *(m_path.end() - 1) == _T(':') )
-        {
-            m_path += _T('\\');
-        }
+    // but the root drive should have a trailing slash (again, this is just
+    // the way the native dialog works)
+    if ( !m_path.empty() && (*(m_path.end() - 1) == wxT(':')) )
+    {
+        m_path += wxT('\\');
     }
 }
 
     }
 }
 
@@ -134,7 +132,7 @@ int wxDirDialog::ShowModal()
 #endif
     bi.ulFlags        = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
     bi.lpfn           = BrowseCallbackProc;
 #endif
     bi.ulFlags        = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
     bi.lpfn           = BrowseCallbackProc;
-    bi.lParam         = (LPARAM)m_path.c_str();    // param for the callback
+    bi.lParam         = (LPARAM)m_path.wx_str(); // param for the callback
 
     static const int verComCtl32 = wxApp::GetComCtl32Version();
 
 
     static const int verComCtl32 = wxApp::GetComCtl32Version();
 
@@ -234,7 +232,7 @@ BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData)
                     }
 
                     SendMessage(hwnd, BFFM_SETSTATUSTEXT,
                     }
 
                     SendMessage(hwnd, BFFM_SETSTATUSTEXT,
-                                0, (LPARAM)strDir.c_str());
+                                0, (LPARAM)strDir.wx_str());
                 }
             }
             break;
                 }
             }
             break;