]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/mimetype.cpp
Replaced 'InlineHelp' property attribute with 'Hint'; Use SetHint() wxTextCtrl and...
[wxWidgets.git] / src / unix / mimetype.cpp
index 9467a8c1b46852c6800a3e84fd9be9320ef1e3ae..05426d667ae373c2f025b9f9a19c7586abd1b837 100644 (file)
@@ -161,7 +161,7 @@ void wxMimeTypesManagerImpl::LoadXDGApp(const wxString& filename)
 #if wxUSE_INTL // try "Name[locale name]" first
     wxLocale *locale = wxGetLocale();
     if ( locale )
-        nIndex = file.pIndexOf(_T("Name[")+locale->GetName()+_T("]="));
+        nIndex = file.pIndexOf(wxT("Name[")+locale->GetName()+wxT("]="));
 #endif // wxUSE_INTL
     if(nIndex == wxNOT_FOUND)
         nIndex = file.pIndexOf( wxT("Name=") );
@@ -173,7 +173,7 @@ void wxMimeTypesManagerImpl::LoadXDGApp(const wxString& filename)
     nIndex = wxNOT_FOUND;
 #if wxUSE_INTL // try "Icon[locale name]" first
     if ( locale )
-        nIndex = file.pIndexOf(_T("Icon[")+locale->GetName()+_T("]="));
+        nIndex = file.pIndexOf(wxT("Icon[")+locale->GetName()+wxT("]="));
 #endif // wxUSE_INTL
     if(nIndex == wxNOT_FOUND)
         nIndex = file.pIndexOf( wxT("Icon=") );
@@ -198,7 +198,7 @@ void wxMimeTypesManagerImpl::LoadXDGApp(const wxString& filename)
     sCmd.Replace(wxT("%i"), nameicon);
     sCmd.Replace(wxT("%m"), namemini);
 
-    wxStringTokenizer tokenizer(mimetypes, _T(";"));
+    wxStringTokenizer tokenizer(mimetypes, wxT(";"));
     while(tokenizer.HasMoreTokens()) {
         wxString mimetype = tokenizer.GetNextToken().Lower();
         nIndex = m_aTypes.Index(mimetype);
@@ -222,7 +222,7 @@ void wxMimeTypesManagerImpl::LoadXDGAppsFilesFromDir(const wxString& dirname)
 
     wxString filename;
     // Look into .desktop files
-    bool cont = dir.GetFirst(&filename, _T("*.desktop"), wxDIR_FILES);
+    bool cont = dir.GetFirst(&filename, wxT("*.desktop"), wxDIR_FILES);
     while (cont)
     {
         wxFileName p(dirname, filename);
@@ -527,7 +527,7 @@ void wxMimeTypesManagerImpl::Initialize(int mailcapStyles,
 #ifdef __VMS
     // XDG tables are never installed on OpenVMS
     return;
-#endif
+#else
 
     // Read MIME type - extension associations
     LoadXDGGlobs( "/usr/share/mime/globs" );
@@ -603,7 +603,6 @@ void wxMimeTypesManagerImpl::Initialize(int mailcapStyles,
                     {
                         if (textfile.GetLine(i).Find(wxT("=")) != wxNOT_FOUND)
                         {
-                            wxString mimeType = textfile.GetVerb(i);
                             wxString desktopFile = textfile.GetCmd(i);
 
                             if (deskTopFilesSeen.Index(desktopFile) == wxNOT_FOUND)
@@ -627,6 +626,7 @@ void wxMimeTypesManagerImpl::Initialize(int mailcapStyles,
             }
         }
     }
+#endif
 }
 
 // clear data so you can read another group of WM files
@@ -718,16 +718,35 @@ int wxMimeTypesManagerImpl::AddToMimeData(const wxString& strType,
     int nIndex = m_aTypes.Index(mimeType);
     if ( nIndex == wxNOT_FOUND )
     {
-        // new file type
-        m_aTypes.Add(mimeType);
-        m_aIcons.Add(strIcon);
-        m_aEntries.Add(entry ? entry : new wxMimeTypeCommands);
+        // We put MIME types containing  "application" at the end, so that
+        // if the MIME type for the extention "htm" is searched for, it will
+        // rather find "text/html" than "application/x-mozilla-bookmarks".
+        if (mimeType.Find( "application" ) == 0)
+        {
+           // new file type
+           m_aTypes.Add(mimeType);
+           m_aIcons.Add(strIcon);
+           m_aEntries.Add(entry ? entry : new wxMimeTypeCommands);
 
-        // change nIndex so we can use it below to add the extensions
-        m_aExtensions.Add(wxEmptyString);
-        nIndex = m_aExtensions.size() - 1;
+           // change nIndex so we can use it below to add the extensions
+           m_aExtensions.Add(wxEmptyString);
+           nIndex = m_aExtensions.size() - 1;
 
-        m_aDescriptions.Add(strDesc);
+           m_aDescriptions.Add(strDesc);
+        }
+        else
+        {
+           // new file type
+           m_aTypes.Insert(mimeType,0);
+           m_aIcons.Insert(strIcon,0);
+           m_aEntries.Insert(entry ? entry : new wxMimeTypeCommands,0);
+
+           // change nIndex so we can use it below to add the extensions
+           m_aExtensions.Insert(wxEmptyString,0);
+           nIndex = 0;
+
+           m_aDescriptions.Insert(strDesc,0);
+        }
     }
     else // yes, we already have it
     {