]> git.saurik.com Git - wxWidgets.git/commitdiff
Add stub for parsing globs file
authorRobert Roebling <robert@roebling.de>
Tue, 1 Jul 2008 09:28:08 +0000 (09:28 +0000)
committerRobert Roebling <robert@roebling.de>
Tue, 1 Jul 2008 09:28:08 +0000 (09:28 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54448 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/unix/mimetype.h
src/unix/mimetype.cpp

index fca5e9212e1406105cd6317544019b0e34a0b517..76a27cc59b8e40448faca52f3a5e283848d87563 100644 (file)
@@ -84,6 +84,9 @@ protected:
     // Scan XDG directory
     void LoadXDGAppsFilesFromDir(const wxString& dirname);
 
+    // Load XDG globs files
+    void LoadXDGGlobs(const wxString& filename);
+
     // functions used to do associations
     virtual int AddToMimeData(const wxString& strType,
                       const wxString& strIcon,
index 5c7ba44abb6e59bed8362d866f32e037c2dd4e80..dd76cf2a6a0f9df934cdd0e56ac75a36c666379b 100644 (file)
@@ -16,7 +16,7 @@
     #pragma hdrstop
 #endif
 
-#if wxUSE_MIMETYPE && wxUSE_FILE && wxUSE_TEXTFILE
+#if wxUSE_MIMETYPE && wxUSE_FILE
 
 #include "wx/unix/mimetype.h"
 
@@ -32,7 +32,6 @@
 #include "wx/confbase.h"
 
 #include "wx/ffile.h"
-#include "wx/textfile.h"
 #include "wx/dir.h"
 #include "wx/tokenzr.h"
 #include "wx/iconloc.h"
@@ -73,7 +72,7 @@ public:
        {
           wxString t = tok.GetNextToken();
           t.MakeLower();
-          if ((!!t) && (t.Find( "comment" ) != 0) && (t.Find( "generic" ) != 0))
+          if ((!!t) && (t.Find( "comment" ) != 0) && (t.Find( "#" ) != 0) && (t.Find( "generic" ) != 0))
              m_text.Add( t );
        }
        return true;
@@ -248,6 +247,17 @@ void wxMimeTypesManagerImpl::LoadXDGAppsFilesFromDir(const wxString& dirname)
 }
 
 
+void wxMimeTypesManagerImpl::LoadXDGGlobs(const wxString& filename)
+{
+    wxLogTrace(TRACE_MIME, wxT("loading XDG globs file from %s"), filename.c_str());
+
+    wxMimeTextFile file(filename);
+    if ( !file.Open() )
+        return;
+
+    // Parse it here 
+}
+
 // ----------------------------------------------------------------------------
 // wxFileTypeImpl (Unix)
 // ----------------------------------------------------------------------------
@@ -494,6 +504,8 @@ void wxMimeTypesManagerImpl::InitIfNeeded()
     }
 }
 
+
+
 // read system and user mailcaps and other files
 void wxMimeTypesManagerImpl::Initialize(int mailcapStyles,
                                         const wxString& sExtraDir)
@@ -503,7 +515,10 @@ void wxMimeTypesManagerImpl::Initialize(int mailcapStyles,
     return;
 #endif
 
-    // Load desktop files for Gnome, and then override them with the Gnome defaults.
+    // Read MIME type - extension associations
+    LoadXDGGlobs( "/usr/share/mime/globs" );
+
+    // Load desktop files for XDG, and then override them with the defaults.
     // We will override them one desktop file at a time, rather
     // than one mime type at a time, but it should be a reasonable
     // heuristic.
@@ -815,6 +830,7 @@ wxFileType * wxMimeTypesManagerImpl::GetFileTypeFromMimeType(const wxString& mim
 
     // first look for an exact match
     int index = m_aTypes.Index(mimetype);
+    
     if ( index != wxNOT_FOUND )
     {
         fileType = new wxFileType;
@@ -973,4 +989,4 @@ bool wxMimeTypesManagerImpl::Unassociate(wxFileType *ft)
 }
 
 #endif
-  // wxUSE_MIMETYPE && wxUSE_FILE && wxUSE_TEXTFILE
+  // wxUSE_MIMETYPE && wxUSE_FILE